diff --git a/includes/controller/shifttypes_controller.php b/includes/controller/shifttypes_controller.php index 6d061111..aaefaa33 100644 --- a/includes/controller/shifttypes_controller.php +++ b/includes/controller/shifttypes_controller.php @@ -3,26 +3,70 @@ function shifttype_delete_controller() { } +/** + * 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['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) {} else { + $shifttype_id = ShiftType_create($name, $angeltype_id, $description); + if ($shifttype_id === false) + engelsystem_error('Unable to create shift type.'); + 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() { } +/** + * List all shift types. + */ function shifttypes_list_controller() { - global $privileges, $user; - - if (! in_array('shifttypes', $privileges)) - redirect('?'); - $shifttypes = ShiftTypes(); if ($shifttypes === false) engelsystem_error("Unable to load shifttypes."); - return array( + return [ shifttypes_title(), ShiftTypes_list_view($shifttypes) - ); + ]; } /** @@ -32,6 +76,9 @@ function shifttypes_title() { return _("Shifttypes"); } +/** + * Route shift type actions + */ function shifttypes_controller() { if (! isset($_REQUEST['action'])) $_REQUEST['action'] = 'list'; diff --git a/includes/sys_template.php b/includes/sys_template.php index d7017bd9..b9ae39de 100644 --- a/includes/sys_template.php +++ b/includes/sys_template.php @@ -6,13 +6,13 @@ $themes = array( "0" => "Engelsystem light", "1" => "Engelsystem dark", - "2" => "Engelsystem 31c3" + "2" => "Engelsystem 31c3" ); /** * Render glyphicon * - * @param string $glyph_name + * @param string $glyph_name */ function glyph($glyph_name) { return ' '; @@ -21,7 +21,7 @@ function glyph($glyph_name) { /** * Renders a tick or a cross by given boolean * - * @param boolean $boolean + * @param boolean $boolean */ function glyph_bool($boolean) { return '' . glyph($boolean ? 'ok' : 'remove') . ''; @@ -39,7 +39,7 @@ function heading($content, $number = 1) { /** * Render a toolbar. * - * @param array $items + * @param array $items * @return string */ function toolbar($items = array(), $right = false) { @@ -49,10 +49,10 @@ function toolbar($items = array(), $right = false) { /** * Render a link for a toolbar. * - * @param string $href - * @param string $glyphicon - * @param string $label - * @param bool $selected + * @param string $href + * @param string $glyphicon + * @param string $label + * @param bool $selected * @return string */ function toolbar_item_link($href, $glyphicon, $label, $selected = false) { @@ -125,9 +125,9 @@ function form_checkboxes($name, $label, $items, $selected) { $html = form_element($label, ''); foreach ($items as $key => $item) $html .= form_checkbox($name . '_' . $key, $item, array_search($key, $selected) !== false); - + return $html; - + $html = "