summaryrefslogtreecommitdiff
path: root/includes/controller
diff options
context:
space:
mode:
Diffstat (limited to 'includes/controller')
-rw-r--r--includes/controller/angeltypes_controller.php25
-rw-r--r--includes/controller/event_config_controller.php6
-rw-r--r--includes/controller/rooms_controller.php23
-rw-r--r--includes/controller/shift_entries_controller.php22
-rw-r--r--includes/controller/shifts_controller.php34
-rw-r--r--includes/controller/shifttypes_controller.php23
-rw-r--r--includes/controller/user_angeltypes_controller.php26
-rw-r--r--includes/controller/user_driver_licenses_controller.php11
-rw-r--r--includes/controller/users_controller.php63
9 files changed, 208 insertions, 25 deletions
diff --git a/includes/controller/angeltypes_controller.php b/includes/controller/angeltypes_controller.php
index de4b8a49..12d5287a 100644
--- a/includes/controller/angeltypes_controller.php
+++ b/includes/controller/angeltypes_controller.php
@@ -2,6 +2,8 @@
/**
* Text for Angeltype related links.
+ *
+ * @return string
*/
function angeltypes_title()
{
@@ -10,15 +12,14 @@ function angeltypes_title()
/**
* Route angeltype actions.
+ *
+ * @return array
*/
function angeltypes_controller()
{
$action = strip_request_item('action', 'list');
switch ($action) {
- default:
- case 'list':
- return angeltypes_list_controller();
case 'view':
return angeltype_controller();
case 'edit':
@@ -27,13 +28,17 @@ function angeltypes_controller()
return angeltype_delete_controller();
case 'about':
return angeltypes_about_controller();
+ case 'list':
+ default:
+ return angeltypes_list_controller();
}
}
/**
* Path to angeltype view.
*
- * @param AngelType $angeltype_id
+ * @param int $angeltype_id AngelType id
+ * @return string
*/
function angeltype_link($angeltype_id)
{
@@ -42,6 +47,8 @@ function angeltype_link($angeltype_id)
/**
* Job description for all angeltypes (public to everyone)
+ *
+ * @return array
*/
function angeltypes_about_controller()
{
@@ -61,6 +68,8 @@ function angeltypes_about_controller()
/**
* Delete an Angeltype.
+ *
+ * @return array
*/
function angeltype_delete_controller()
{
@@ -86,6 +95,8 @@ function angeltype_delete_controller()
/**
* Change an Angeltype.
+ *
+ * @return array
*/
function angeltype_edit_controller()
{
@@ -151,6 +162,8 @@ function angeltype_edit_controller()
/**
* View details of a given angeltype.
+ *
+ * @return array
*/
function angeltype_controller()
{
@@ -182,6 +195,8 @@ function angeltype_controller()
/**
* View a list of all angeltypes.
+ *
+ * @return array
*/
function angeltypes_list_controller()
{
@@ -242,6 +257,8 @@ function angeltypes_list_controller()
/**
* Loads an angeltype from given angeltype_id request param.
+ *
+ * @return array
*/
function load_angeltype()
{
diff --git a/includes/controller/event_config_controller.php b/includes/controller/event_config_controller.php
index 623a2a7a..709d1b2a 100644
--- a/includes/controller/event_config_controller.php
+++ b/includes/controller/event_config_controller.php
@@ -1,10 +1,16 @@
<?php
+/**
+ * @return string
+ */
function event_config_title()
{
return _("Event config");
}
+/**
+ * @return array
+ */
function event_config_edit_controller()
{
global $privileges;
diff --git a/includes/controller/rooms_controller.php b/includes/controller/rooms_controller.php
index d19e91bb..9910f50c 100644
--- a/includes/controller/rooms_controller.php
+++ b/includes/controller/rooms_controller.php
@@ -8,6 +8,8 @@ use Engelsystem\ShiftsFilterRenderer;
/**
* View a room with its shifts.
+ *
+ * @return array
*/
function room_controller()
{
@@ -55,6 +57,8 @@ function room_controller()
/**
* Dispatch different room actions.
+ *
+ * @return array
*/
function rooms_controller()
{
@@ -63,19 +67,30 @@ function rooms_controller()
}
switch ($_REQUEST['action']) {
- default:
- case 'list':
- redirect(page_link_to('admin_rooms'));
case 'view':
return room_controller();
+ case 'list':
+ default:
+ redirect(page_link_to('admin_rooms'));
+ break;
}
+
+ exit;
}
+/**
+ * @param array $room
+ * @return string
+ */
function room_link($room)
{
return page_link_to('rooms') . '&action=view&room_id=' . $room['RID'];
}
+/**
+ * @param array $room
+ * @return string
+ */
function room_edit_link($room)
{
return page_link_to('admin_rooms') . '&show=edit&id=' . $room['RID'];
@@ -83,6 +98,8 @@ function room_edit_link($room)
/**
* Loads room by request param room_id
+ *
+ * @return array
*/
function load_room()
{
diff --git a/includes/controller/shift_entries_controller.php b/includes/controller/shift_entries_controller.php
index 928a0990..05491ee9 100644
--- a/includes/controller/shift_entries_controller.php
+++ b/includes/controller/shift_entries_controller.php
@@ -2,11 +2,14 @@
/**
* Sign up for a shift.
+ *
+ * @return string
*/
function shift_entry_add_controller()
{
global $privileges, $user;
+ $shift_id = 0;
if (isset($_REQUEST['shift_id']) && preg_match("/^[0-9]*$/", $_REQUEST['shift_id'])) {
$shift_id = $_REQUEST['shift_id'];
} else {
@@ -26,6 +29,7 @@ function shift_entry_add_controller()
redirect(page_link_to('user_shifts'));
}
+ $type_id = 0;
if (isset($_REQUEST['type_id']) && preg_match("/^[0-9]*$/", $_REQUEST['type_id'])) {
$type_id = $_REQUEST['type_id'];
} else {
@@ -145,6 +149,7 @@ function shift_entry_add_controller()
redirect(shift_link($shift));
}
+ $angeltype_select = '';
if (in_array('user_shifts_admin', $privileges)) {
$users = sql_select("
SELECT *, (SELECT count(*) FROM `ShiftEntry` WHERE `freeloaded`=1 AND `ShiftEntry`.`UID`=`User`.`UID`) AS `freeloaded`
@@ -186,9 +191,19 @@ function shift_entry_add_controller()
$angeltype_select = $type['name'];
}
- return ShiftEntry_edit_view($user_text, date("Y-m-d H:i", $shift['start']) . ' &ndash; ' . date('Y-m-d H:i',
- $shift['end']) . ' (' . shift_length($shift) . ')', $shift['Name'], $shift['name'], $angeltype_select, "",
- false, null, in_array('user_shifts_admin', $privileges));
+ return ShiftEntry_edit_view(
+ $user_text,
+ date("Y-m-d H:i", $shift['start'])
+ . ' &ndash; '
+ . date('Y-m-d H:i', $shift['end'])
+ . ' (' . shift_length($shift) . ')',
+ $shift['Name'],
+ $shift['name'],
+ $angeltype_select, "",
+ false,
+ null,
+ in_array('user_shifts_admin', $privileges)
+ );
}
/**
@@ -245,5 +260,6 @@ function shift_entry_delete_controller()
} else {
error(_("Entry not found."));
}
+
redirect(shift_link($shift_entry_source));
}
diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php
index e2dd712b..a9f4ec28 100644
--- a/includes/controller/shifts_controller.php
+++ b/includes/controller/shifts_controller.php
@@ -1,16 +1,28 @@
<?php
use Engelsystem\ShiftSignupState;
+/**
+ * @param array $shift
+ * @return string
+ */
function shift_link($shift)
{
return page_link_to('shifts') . '&action=view&shift_id=' . $shift['SID'];
}
+/**
+ * @param array $shift
+ * @return string
+ */
function shift_delete_link($shift)
{
return page_link_to('user_shifts') . '&delete_shift=' . $shift['SID'];
}
+/**
+ * @param array $shift
+ * @return string
+ */
function shift_edit_link($shift)
{
return page_link_to('user_shifts') . '&edit_shift=' . $shift['SID'];
@@ -18,6 +30,8 @@ function shift_edit_link($shift)
/**
* Edit a single shift.
+ *
+ * @return string
*/
function shift_edit_controller()
{
@@ -162,6 +176,9 @@ function shift_edit_controller()
);
}
+/**
+ * @return string
+ */
function shift_delete_controller()
{
global $privileges;
@@ -205,6 +222,9 @@ function shift_delete_controller()
]);
}
+/**
+ * @return array
+ */
function shift_controller()
{
global $user, $privileges;
@@ -249,6 +269,9 @@ function shift_controller()
];
}
+/**
+ * @return array|false
+ */
function shifts_controller()
{
if (!isset($_REQUEST['action'])) {
@@ -256,17 +279,21 @@ function shifts_controller()
}
switch ($_REQUEST['action']) {
- default:
- redirect(page_link_to('?'));
case 'view':
return shift_controller();
case 'next':
return shift_next_controller();
+ default:
+ redirect(page_link_to('?'));
}
+
+ return false;
}
/**
* Redirects the user to his next shift.
+ *
+ * @return false
*/
function shift_next_controller()
{
@@ -286,6 +313,7 @@ function shift_next_controller()
}
redirect(page_link_to('user_shifts'));
+ exit;
}
/**
@@ -346,6 +374,8 @@ function shifts_json_export_controller()
/**
* Returns users shifts to export.
+ *
+ * @return array
*/
function load_ical_shifts()
{
diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php
index 4bbf041d..08576641 100644
--- a/includes/controller/shifttypes_controller.php
+++ b/includes/controller/shifttypes_controller.php
@@ -1,5 +1,9 @@
<?php
+/**
+ * @param array $shifttype
+ * @return string
+ */
function shifttype_link($shifttype)
{
return page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id'];
@@ -7,6 +11,8 @@ function shifttype_link($shifttype)
/**
* Delete a shifttype.
+ *
+ * @return array
*/
function shifttype_delete_controller()
{
@@ -42,6 +48,8 @@ function shifttype_delete_controller()
/**
* Edit or create shift type.
+ *
+ * @return array
*/
function shifttype_edit_controller()
{
@@ -113,6 +121,9 @@ function shifttype_edit_controller()
];
}
+/**
+ * @return array
+ */
function shifttype_controller()
{
if (!isset($_REQUEST['shifttype_id'])) {
@@ -139,6 +150,8 @@ function shifttype_controller()
/**
* List all shift types.
+ *
+ * @return array
*/
function shifttypes_list_controller()
{
@@ -155,6 +168,8 @@ function shifttypes_list_controller()
/**
* Text for shift type related links.
+ *
+ * @return string
*/
function shifttypes_title()
{
@@ -163,6 +178,8 @@ function shifttypes_title()
/**
* Route shift type actions
+ *
+ * @return array
*/
function shifttypes_controller()
{
@@ -171,14 +188,14 @@ function shifttypes_controller()
}
switch ($_REQUEST['action']) {
- default:
- case 'list':
- return shifttypes_list_controller();
case 'view':
return shifttype_controller();
case 'edit':
return shifttype_edit_controller();
case 'delete':
return shifttype_delete_controller();
+ case 'list':
+ default:
+ return shifttypes_list_controller();
}
}
diff --git a/includes/controller/user_angeltypes_controller.php b/includes/controller/user_angeltypes_controller.php
index fefde9ae..3a316ee1 100644
--- a/includes/controller/user_angeltypes_controller.php
+++ b/includes/controller/user_angeltypes_controller.php
@@ -2,6 +2,8 @@
/**
* Display a hint for team/angeltype supporters if there are unconfirmed users for his angeltype.
+ *
+ * @return string|null
*/
function user_angeltypes_unconfirmed_hint()
{
@@ -14,7 +16,12 @@ function user_angeltypes_unconfirmed_hint()
$unconfirmed_links = [];
foreach ($unconfirmed_user_angeltypes as $user_angeltype) {
- $unconfirmed_links[] = '<a href="' . page_link_to('angeltypes') . '&action=view&angeltype_id=' . $user_angeltype['angeltype_id'] . '">' . $user_angeltype['name'] . ' (+' . $user_angeltype['count'] . ')' . '</a>';
+ $unconfirmed_links[] = '<a href="'
+ . page_link_to('angeltypes')
+ . '&action=view&angeltype_id=' . $user_angeltype['angeltype_id']
+ . '">' . $user_angeltype['name']
+ . ' (+' . $user_angeltype['count'] . ')'
+ . '</a>';
}
return sprintf(ngettext("There is %d unconfirmed angeltype.", "There are %d unconfirmed angeltypes.",
@@ -25,6 +32,8 @@ function user_angeltypes_unconfirmed_hint()
/**
* Remove all unconfirmed users from a specific angeltype.
+ *
+ * @return array
*/
function user_angeltypes_delete_all_controller()
{
@@ -62,6 +71,8 @@ function user_angeltypes_delete_all_controller()
/**
* Confirm all unconfirmed users for an angeltype.
+ *
+ * @return array
*/
function user_angeltypes_confirm_all_controller()
{
@@ -105,6 +116,8 @@ function user_angeltypes_confirm_all_controller()
/**
* Confirm an user for an angeltype.
+ *
+ * @return array
*/
function user_angeltype_confirm_controller()
{
@@ -165,6 +178,8 @@ function user_angeltype_confirm_controller()
/**
* Remove a user from an Angeltype.
+ *
+ * @return array
*/
function user_angeltype_delete_controller()
{
@@ -219,10 +234,13 @@ function user_angeltype_delete_controller()
/**
* Update an UserAngelType.
+ *
+ * @return array
*/
function user_angeltype_update_controller()
{
global $privileges;
+ $supporter = false;
if (!in_array('admin_angel_types', $privileges)) {
error(_("You are not allowed to set supporter rights."));
@@ -337,6 +355,9 @@ function user_angeltype_add_controller()
/**
* A user joins an angeltype.
+ *
+ * @param array $angeltype
+ * @return array
*/
function user_angeltype_join_controller($angeltype)
{
@@ -375,6 +396,8 @@ function user_angeltype_join_controller($angeltype)
/**
* Route UserAngelType actions.
+ *
+ * @return array
*/
function user_angeltypes_controller()
{
@@ -397,5 +420,6 @@ function user_angeltypes_controller()
return user_angeltype_add_controller();
default:
redirect(page_link_to('angeltypes'));
+ exit;
}
}
diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php
index a499eff7..f2a1c521 100644
--- a/includes/controller/user_driver_licenses_controller.php
+++ b/includes/controller/user_driver_licenses_controller.php
@@ -3,6 +3,8 @@
/**
* Generates a hint, if user joined angeltypes that require a driving license and the user has no driver license
* information provided.
+ *
+ * @return string|null
*/
function user_driver_license_required_hint()
{
@@ -30,6 +32,8 @@ function user_driver_license_required_hint()
/**
* Route user driver licenses actions.
+ *
+ * @return array
*/
function user_driver_licenses_controller()
{
@@ -51,7 +55,8 @@ function user_driver_licenses_controller()
/**
* Link to user driver license edit page for given user.
*
- * @param User $user
+ * @param array $user
+ * @return string
*/
function user_driver_license_edit_link($user = null)
{
@@ -63,6 +68,8 @@ function user_driver_license_edit_link($user = null)
/**
* Loads the user for the driver license.
+ *
+ * @return array
*/
function user_driver_license_load_user()
{
@@ -82,6 +89,8 @@ function user_driver_license_load_user()
/**
* Edit a users driver license information.
+ *
+ * @return array
*/
function user_driver_license_edit_controller()
{
diff --git a/includes/controller/users_controller.php b/includes/controller/users_controller.php
index 4a946aa8..a9f7dd61 100644
--- a/includes/controller/users_controller.php
+++ b/includes/controller/users_controller.php
@@ -4,6 +4,8 @@ use Engelsystem\ShiftsFilter;
/**
* Route user actions.
+ *
+ * @return array
*/
function users_controller()
{
@@ -18,22 +20,22 @@ function users_controller()
}
switch ($_REQUEST['action']) {
- default:
- case 'list':
- return users_list_controller();
case 'view':
return user_controller();
- case 'edit':
- return user_edit_controller();
case 'delete':
return user_delete_controller();
case 'edit_vouchers':
return user_edit_vouchers_controller();
+ case 'list':
+ default:
+ return users_list_controller();
}
}
/**
* Delete a user, requires to enter own password for reasons.
+ *
+ * @return array
*/
function user_delete_controller()
{
@@ -85,26 +87,44 @@ function user_delete_controller()
];
}
+/**
+ * @return string
+ */
function users_link()
{
return page_link_to('users');
}
+/**
+ * @param array $user
+ * @return string
+ */
function user_edit_link($user)
{
return page_link_to('admin_user') . '&user_id=' . $user['UID'];
}
+/**
+ * @param array $user
+ * @return string
+ */
function user_delete_link($user)
{
return page_link_to('users') . '&action=delete&user_id=' . $user['UID'];
}
+/**
+ * @param array $user
+ * @return string
+ */
function user_link($user)
{
return page_link_to('users') . '&action=view&user_id=' . $user['UID'];
}
+/**
+ * @return array
+ */
function user_edit_vouchers_controller()
{
global $privileges, $user;
@@ -122,6 +142,7 @@ function user_edit_vouchers_controller()
if (isset($_REQUEST['submit'])) {
$valid = true;
+ $vouchers = '';
if (isset($_REQUEST['vouchers']) && test_request_int('vouchers') && trim($_REQUEST['vouchers']) >= 0) {
$vouchers = trim($_REQUEST['vouchers']);
} else {
@@ -151,6 +172,9 @@ function user_edit_vouchers_controller()
];
}
+/**
+ * @return array
+ */
function user_controller()
{
global $privileges, $user;
@@ -167,7 +191,13 @@ function user_controller()
$shifts = Shifts_by_user($user_source, in_array("user_shifts_admin", $privileges));
foreach ($shifts as &$shift) {
// TODO: Move queries to model
- $shift['needed_angeltypes'] = sql_select("SELECT DISTINCT `AngelTypes`.* FROM `ShiftEntry` JOIN `AngelTypes` ON `ShiftEntry`.`TID`=`AngelTypes`.`id` WHERE `ShiftEntry`.`SID`='" . sql_escape($shift['SID']) . "' ORDER BY `AngelTypes`.`name`");
+ $shift['needed_angeltypes'] = sql_select("
+ SELECT DISTINCT `AngelTypes`.*
+ FROM `ShiftEntry`
+ JOIN `AngelTypes` ON `ShiftEntry`.`TID`=`AngelTypes`.`id`
+ WHERE `ShiftEntry`.`SID`='" . sql_escape($shift['SID']) . "'
+ ORDER BY `AngelTypes`.`name`
+ ");
foreach ($shift['needed_angeltypes'] as &$needed_angeltype) {
$needed_angeltype['users'] = sql_select("
SELECT `ShiftEntry`.`freeloaded`, `User`.*
@@ -198,6 +228,8 @@ function user_controller()
/**
* List all users.
+ *
+ * @return array
*/
function users_list_controller()
{
@@ -238,6 +270,8 @@ function users_list_controller()
/**
* Second step of password recovery: set a new password using the token link from email
+ *
+ * @return string
*/
function user_password_recovery_set_new_controller()
{
@@ -273,6 +307,8 @@ function user_password_recovery_set_new_controller()
/**
* First step of password recovery: display a form that asks for your email and send email with recovery link
+ *
+ * @return string
*/
function user_password_recovery_start_controller()
{
@@ -317,18 +353,22 @@ function user_password_recovery_start_controller()
/**
* User password recovery in 2 steps.
* (By email)
+ *
+ * @return string
*/
function user_password_recovery_controller()
{
if (isset($_REQUEST['token'])) {
return user_password_recovery_set_new_controller();
- } else {
- return user_password_recovery_start_controller();
}
+
+ return user_password_recovery_start_controller();
}
/**
* Menu title for password recovery.
+ *
+ * @return string
*/
function user_password_recovery_title()
{
@@ -337,6 +377,8 @@ function user_password_recovery_title()
/**
* Loads a user from param user_id.
+ *
+ * return array
*/
function load_user()
{
@@ -357,6 +399,10 @@ function load_user()
return $user;
}
+/**
+ * @param ShiftsFilter $shiftsFilter
+ * @return ShiftCalendarRenderer
+ */
function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter)
{
$shifts = Shifts_by_ShiftsFilter($shiftsFilter);
@@ -392,6 +438,7 @@ function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter)
$filtered_shifts = [];
foreach ($shifts as $shift) {
$needed_angels_count = 0;
+ $taken = 0;
foreach ($needed_angeltypes[$shift['SID']] as $needed_angeltype) {
$taken = 0;
foreach ($shift_entries[$shift['SID']] as $shift_entry) {