diff options
Diffstat (limited to 'includes/controller/shifttypes_controller.php')
-rw-r--r-- | includes/controller/shifttypes_controller.php | 296 |
1 files changed, 152 insertions, 144 deletions
diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php index 456e39ae..4e7cd92c 100644 --- a/includes/controller/shifttypes_controller.php +++ b/includes/controller/shifttypes_controller.php @@ -1,179 +1,187 @@ <?php -function shifttype_link($shifttype) { - return page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id']; +/** + * @param array $shifttype + * @return string + */ +function shifttype_link($shifttype) +{ + return page_link_to('shifttypes', ['action' => 'view', 'shifttype_id' => $shifttype['id']]); } /** * Delete a shifttype. + * + * @return array */ -function shifttype_delete_controller() { - if (! isset($_REQUEST['shifttype_id'])) { - redirect(page_link_to('shifttypes')); - } - - $shifttype = ShiftType($_REQUEST['shifttype_id']); - if ($shifttype === false) { - engelsystem_error('Unable to load shifttype.'); - } - - if ($shifttype == null) { - redirect(page_link_to('shifttypes')); - } - - if (isset($_REQUEST['confirmed'])) { - $result = ShiftType_delete($shifttype['id']); - if ($result === false) { - engelsystem_error('Unable to delete shifttype.'); +function shifttype_delete_controller() +{ + $request = request(); + if (!$request->has('shifttype_id')) { + redirect(page_link_to('shifttypes')); + } + + $shifttype = ShiftType($request->input('shifttype_id')); + + if ($shifttype == null) { + redirect(page_link_to('shifttypes')); } - - engelsystem_log('Deleted shifttype ' . $shifttype['name']); - success(sprintf(_('Shifttype %s deleted.'), $shifttype['name'])); - redirect(page_link_to('shifttypes')); - } - - return [ - sprintf(_("Delete shifttype %s"), $shifttype['name']), - ShiftType_delete_view($shifttype) - ]; + + if ($request->has('confirmed')) { + ShiftType_delete($shifttype['id']); + + engelsystem_log('Deleted shifttype ' . $shifttype['name']); + success(sprintf(_('Shifttype %s deleted.'), $shifttype['name'])); + redirect(page_link_to('shifttypes')); + } + + return [ + sprintf(_('Delete shifttype %s'), $shifttype['name']), + ShiftType_delete_view($shifttype) + ]; } /** * Edit or create shift type. + * + * @return array */ -function shifttype_edit_controller() { - $shifttype_id = null; - $name = ""; - $angeltype_id = null; - $description = ""; - - $angeltypes = AngelTypes(); - - if (isset($_REQUEST['shifttype_id'])) { - $shifttype = ShiftType($_REQUEST['shifttype_id']); - if ($shifttype === false) { - engelsystem_error('Unable to load shifttype.'); - } - if ($shifttype == null) { - error(_('Shifttype not found.')); - redirect(page_link_to('shifttypes')); - } - $shifttype_id = $shifttype['id']; - $name = $shifttype['name']; - $angeltype_id = $shifttype['angeltype_id']; - $description = $shifttype['description']; - } - - if (isset($_REQUEST['submit'])) { - $valid = true; - - if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { - $name = strip_request_item('name'); - } else { - $valid = false; - error(_('Please enter a name.')); - } - - if (isset($_REQUEST['angeltype_id']) && preg_match("/^[0-9]+$/", $_REQUEST['angeltype_id'])) { - $angeltype_id = $_REQUEST['angeltype_id']; - } else { - $angeltype_id = null; - } - - if (isset($_REQUEST['description'])) { - $description = strip_request_item_nl('description'); +function shifttype_edit_controller() +{ + $shifttype_id = null; + $name = ''; + $angeltype_id = null; + $description = ''; + + $angeltypes = AngelTypes(); + $request = request(); + + if ($request->has('shifttype_id')) { + $shifttype = ShiftType($request->input('shifttype_id')); + if ($shifttype == null) { + error(_('Shifttype not found.')); + redirect(page_link_to('shifttypes')); + } + $shifttype_id = $shifttype['id']; + $name = $shifttype['name']; + $angeltype_id = $shifttype['angeltype_id']; + $description = $shifttype['description']; } - - if ($valid) { - if ($shifttype_id) { - $result = ShiftType_update($shifttype_id, $name, $angeltype_id, $description); - if ($result === false) { - engelsystem_error('Unable to update shifttype.'); + + if ($request->has('submit')) { + $valid = true; + + if ($request->has('name') && $request->input('name') != '') { + $name = strip_request_item('name'); + } else { + $valid = false; + error(_('Please enter a name.')); } - engelsystem_log('Updated shifttype ' . $name); - success(_('Updated shifttype.')); - } else { - $shifttype_id = ShiftType_create($name, $angeltype_id, $description); - if ($shifttype_id === false) { - engelsystem_error('Unable to create shifttype.'); + + if ($request->has('angeltype_id') && preg_match('/^\d+$/', $request->input('angeltype_id'))) { + $angeltype_id = $request->input('angeltype_id'); + } else { + $angeltype_id = null; + } + + if ($request->has('description')) { + $description = strip_request_item_nl('description'); + } + + if ($valid) { + if ($shifttype_id) { + ShiftType_update($shifttype_id, $name, $angeltype_id, $description); + + engelsystem_log('Updated shifttype ' . $name); + success(_('Updated shifttype.')); + } else { + $shifttype_id = ShiftType_create($name, $angeltype_id, $description); + + engelsystem_log('Created shifttype ' . $name); + success(_('Created shifttype.')); + } + redirect(page_link_to('shifttypes', ['action' => 'view', 'shifttype_id' => $shifttype_id])); } - engelsystem_log('Created shifttype ' . $name); - success(_('Created shifttype.')); - } - redirect(page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype_id); } - } - - return [ - shifttypes_title(), - ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id) - ]; + + return [ + shifttypes_title(), + ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id) + ]; } -function shifttype_controller() { - if (! isset($_REQUEST['shifttype_id'])) { - redirect(page_link_to('shifttypes')); - } - $shifttype = ShiftType($_REQUEST['shifttype_id']); - if ($shifttype === false) { - engelsystem_error('Unable to load shifttype.'); - } - if ($shifttype == null) { - redirect(page_link_to('shifttypes')); - } - - $angeltype = null; - if ($shifttype['angeltype_id'] != null) { - $angeltype = AngelType($shifttype['angeltype_id']); - } - - return [ - $shifttype['name'], - ShiftType_view($shifttype, $angeltype) - ]; +/** + * @return array + */ +function shifttype_controller() +{ + $request = request(); + if (!$request->has('shifttype_id')) { + redirect(page_link_to('shifttypes')); + } + $shifttype = ShiftType($request->input('shifttype_id')); + if ($shifttype == null) { + redirect(page_link_to('shifttypes')); + } + + $angeltype = null; + if ($shifttype['angeltype_id'] != null) { + $angeltype = AngelType($shifttype['angeltype_id']); + } + + return [ + $shifttype['name'], + ShiftType_view($shifttype, $angeltype) + ]; } /** * List all shift types. + * + * @return array */ -function shifttypes_list_controller() { - $shifttypes = ShiftTypes(); - if ($shifttypes === false) { - engelsystem_error("Unable to load shifttypes."); - } - - return [ - shifttypes_title(), - ShiftTypes_list_view($shifttypes) - ]; +function shifttypes_list_controller() +{ + $shifttypes = ShiftTypes(); + + return [ + shifttypes_title(), + ShiftTypes_list_view($shifttypes) + ]; } /** * Text for shift type related links. + * + * @return string */ -function shifttypes_title() { - return _("Shifttypes"); +function shifttypes_title() +{ + return _('Shifttypes'); } /** * Route shift type actions + * + * @return array */ -function shifttypes_controller() { - if (! isset($_REQUEST['action'])) { - $_REQUEST['action'] = 'list'; - } - - 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(); - } -} +function shifttypes_controller() +{ + $request = request(); + $action = 'list'; + if ($request->has('action')) { + $action = $request->input('action'); + } -?>
\ No newline at end of file + switch ($action) { + case 'view': + return shifttype_controller(); + case 'edit': + return shifttype_edit_controller(); + case 'delete': + return shifttype_delete_controller(); + case 'list': + default: + return shifttypes_list_controller(); + } +} |