diff options
author | Philip Häusler <msquare@notrademark.de> | 2014-12-25 22:32:18 +0100 |
---|---|---|
committer | Philip Häusler <msquare@notrademark.de> | 2014-12-25 22:32:18 +0100 |
commit | e89acc0c1d1188662da7490e3a75a4a5c3950a75 (patch) | |
tree | f646260cc23195008f6ca5152426b17641fc4f69 /includes/controller/shifttypes_controller.php | |
parent | bcd33c02c814a8d82c08c078c8fae287d1cd95a5 (diff) | |
parent | 544a51612f14c4f3cf7d1c4a6de26a99ea94b788 (diff) |
merge feature-shift-types
Diffstat (limited to 'includes/controller/shifttypes_controller.php')
-rw-r--r-- | includes/controller/shifttypes_controller.php | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php new file mode 100644 index 00000000..443ce470 --- /dev/null +++ b/includes/controller/shifttypes_controller.php @@ -0,0 +1,167 @@ +<?php + +function shifttype_link($shifttype) { + return page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id']; +} + +/** + * Delete a shifttype. + */ +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.'); + + engelsystem_log('Deleted shifttype ' . $shifttype['name']); + success(sprintf(_('Shifttype %s deleted.'), $shifttype['name'])); + redirect(page_link_to('shifttypes')); + } + + return array( + sprintf(_("Delete shifttype %s"), $shifttype['name']), + ShiftType_delete_view($shifttype) + ); +} + +/** + * Edit or create shift type. + */ +function shifttype_edit_controller() { + $shifttype_id = null; + $name = ""; + $angeltype_id = null; + $description = ""; + + $angeltypes = AngelTypes(); + if ($angeltypes === false) + engelsystem_error("Unable to load angel types."); + + 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'])) { + $ok = true; + + if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') + $name = strip_request_item('name'); + else { + $ok = 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'); + + if ($ok) { + if ($shifttype_id) { + $result = ShiftType_update($shifttype_id, $name, $angeltype_id, $description); + if ($result === false) + engelsystem_error('Unable to update shifttype.'); + 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.'); + 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) + ]; +} + +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']); + if ($angeltype === false) + engelsystem_error('Unable to load angeltype.'); + } + + return [ + $shifttype['name'], + ShiftType_view($shifttype, $angeltype) + ]; +} + +/** + * List all shift types. + */ +function shifttypes_list_controller() { + $shifttypes = ShiftTypes(); + if ($shifttypes === false) + engelsystem_error("Unable to load shifttypes."); + + return [ + shifttypes_title(), + ShiftTypes_list_view($shifttypes) + ]; +} + +/** + * Text for shift type related links. + */ +function shifttypes_title() { + return _("Shifttypes"); +} + +/** + * Route shift type actions + */ +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(); + } +} + +?>
\ No newline at end of file |