From d71e7bbfad2f07f82df0c515608996d250fd4182 Mon Sep 17 00:00:00 2001 From: Bot Date: Mon, 2 Jan 2017 15:43:36 +0100 Subject: Formatting --- includes/pages/user_shifts.php | 158 +++++++++++++++++++++++++---------------- 1 file changed, 98 insertions(+), 60 deletions(-) (limited to 'includes/pages/user_shifts.php') diff --git a/includes/pages/user_shifts.php b/includes/pages/user_shifts.php index 0a8ddf4f..e325989c 100644 --- a/includes/pages/user_shifts.php +++ b/includes/pages/user_shifts.php @@ -16,21 +16,21 @@ function shifts_title() function user_shifts() { global $user; - + if (User_is_freeloader($user)) { redirect(page_link_to('user_myshifts')); } - - // Löschen einzelner Schicht-Einträge (Also Belegung einer Schicht von Engeln) durch Admins - if (isset($_REQUEST['entry_id'])) { - return shift_entry_delete_controller(); - } elseif (isset($_REQUEST['edit_shift'])) { - return shift_edit_controller(); - } elseif (isset($_REQUEST['delete_shift'])) { - return shift_delete_controller(); - } elseif (isset($_REQUEST['shift_id'])) { - return shift_entry_add_controller(); - } + + // Löschen einzelner Schicht-Einträge (Also Belegung einer Schicht von Engeln) durch Admins + if (isset($_REQUEST['entry_id'])) { + return shift_entry_delete_controller(); + } elseif (isset($_REQUEST['edit_shift'])) { + return shift_edit_controller(); + } elseif (isset($_REQUEST['delete_shift'])) { + return shift_delete_controller(); + } elseif (isset($_REQUEST['shift_id'])) { + return shift_entry_add_controller(); + } return view_user_shifts(); } @@ -47,15 +47,15 @@ function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) if ($start_time == null) { $start_time = time(); } - + $end_time = $shiftsFilter->getEndTime(); if ($end_time == null) { $end_time = $start_time + 24 * 60 * 60; } - + $shiftsFilter->setStartTime(check_request_datetime('start_day', 'start_time', $days, $start_time)); $shiftsFilter->setEndTime(check_request_datetime('end_day', 'end_time', $days, $end_time)); - + if ($shiftsFilter->getStartTime() > $shiftsFilter->getEndTime()) { $shiftsFilter->setEndTime($shiftsFilter->getStartTime() + 24 * 60 * 60); } @@ -66,9 +66,9 @@ function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) * * @param ShiftsFilter $shiftsFilter * The shifts filter to update from request data - * @param boolean $user_shifts_admin + * @param boolean $user_shifts_admin * Has the user user_shift_admin privilege? - * @param string[] $days + * @param string[] $days * An array of available filter days */ function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $days) @@ -106,12 +106,30 @@ function load_days() function load_types() { global $user; - + if (sql_num_query("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0") == 0) { error(_("The administration has not configured any angeltypes yet - or you are not subscribed to any angeltype.")); redirect('?'); } - $types = sql_select("SELECT `AngelTypes`.`id`, `AngelTypes`.`name`, (`AngelTypes`.`restricted`=0 OR (NOT `UserAngelTypes`.`confirm_user_id` IS NULL OR `UserAngelTypes`.`id` IS NULL)) as `enabled` FROM `AngelTypes` LEFT JOIN `UserAngelTypes` ON (`UserAngelTypes`.`angeltype_id`=`AngelTypes`.`id` AND `UserAngelTypes`.`user_id`='" . sql_escape($user['UID']) . "') ORDER BY `AngelTypes`.`name`"); + $types = sql_select(" + SELECT + `AngelTypes`.`id`, + `AngelTypes`.`name`, + ( + `AngelTypes`.`restricted`=0 + OR ( + NOT `UserAngelTypes`.`confirm_user_id` IS NULL + OR `UserAngelTypes`.`id` IS NULL + ) + ) AS `enabled` + FROM `AngelTypes` + LEFT JOIN `UserAngelTypes` + ON ( + `UserAngelTypes`.`angeltype_id`=`AngelTypes`.`id` + AND `UserAngelTypes`.`user_id`='" . sql_escape($user['UID']) . "' + ) + ORDER BY `AngelTypes`.`name` + "); if (empty($types)) { return sql_select("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0"); } @@ -122,62 +140,77 @@ function view_user_shifts() { global $user, $privileges; global $ical_shifts; - + $ical_shifts = []; $days = load_days(); $rooms = load_rooms(); $types = load_types(); - - if (! isset($_SESSION['ShiftsFilter'])) { + + if (!isset($_SESSION['ShiftsFilter'])) { $room_ids = [ - $rooms[0]['id'] - ]; + $rooms[0]['id'] + ]; $type_ids = array_map('get_ids_from_array', $types); $_SESSION['ShiftsFilter'] = new ShiftsFilter(in_array('user_shifts_admin', $privileges), $room_ids, $type_ids); } update_ShiftsFilter($_SESSION['ShiftsFilter'], in_array('user_shifts_admin', $privileges), $days); $shiftsFilter = $_SESSION['ShiftsFilter']; - + $shiftCalendarRenderer = shiftCalendarRendererByShiftFilter($shiftsFilter); - + if ($user['api_key'] == "") { User_reset_api_key($user, false); } - + $filled = [ - [ - 'id' => '1', - 'name' => _("occupied") - ], - [ - 'id' => '0', - 'name' => _("free") - ] - ]; + [ + 'id' => '1', + 'name' => _("occupied") + ], + [ + 'id' => '0', + 'name' => _("free") + ] + ]; $start_day = date("Y-m-d", $shiftsFilter->getStartTime()); $start_time = date("H:i", $shiftsFilter->getStartTime()); $end_day = date("Y-m-d", $shiftsFilter->getEndTime()); $end_time = date("H:i", $shiftsFilter->getEndTime()); - + return page([ - div('col-md-12', [ - msg(), - template_render(__DIR__ . '/../../templates/user_shifts.html', [ - 'title' => shifts_title(), - 'room_select' => make_select($rooms, $shiftsFilter->getRooms(), "rooms", _("Rooms")), - 'start_select' => html_select_key("start_day", "start_day", array_combine($days, $days), $start_day), - 'start_time' => $start_time, - 'end_select' => html_select_key("end_day", "end_day", array_combine($days, $days), $end_day), - 'end_time' => $end_time, - 'type_select' => make_select($types, $shiftsFilter->getTypes(), "types", _("Angeltypes") . '1'), - 'filled_select' => make_select($filled, $shiftsFilter->getFilled(), "filled", _("Occupancy")), - 'task_notice' => '1' . _("The tasks shown here are influenced by the angeltypes you joined already!") . " " . _("Description of the jobs.") . "", - 'shifts_table' => msg() . $shiftCalendarRenderer->render(), - 'ical_text' => '

' . _("iCal export") . '

' . sprintf(_("Export of shown shifts. iCal format or JSON format available (please keep secret, otherwise reset the api key)."), page_link_to_absolute('ical') . '&key=' . $user['api_key'], page_link_to_absolute('shifts_json_export') . '&key=' . $user['api_key'], page_link_to('user_myshifts') . '&reset') . '

', - 'filter' => _("Filter") - ]) - ]) - ]); + div('col-md-12', [ + msg(), + template_render(__DIR__ . '/../../templates/user_shifts.html', [ + 'title' => shifts_title(), + 'room_select' => make_select($rooms, $shiftsFilter->getRooms(), "rooms", _("Rooms")), + 'start_select' => html_select_key("start_day", "start_day", array_combine($days, $days), $start_day), + 'start_time' => $start_time, + 'end_select' => html_select_key("end_day", "end_day", array_combine($days, $days), $end_day), + 'end_time' => $end_time, + 'type_select' => make_select( + $types, + $shiftsFilter->getTypes(), + "types", + _("Angeltypes") . '1' + ), + 'filled_select' => make_select($filled, $shiftsFilter->getFilled(), "filled", _("Occupancy")), + 'task_notice' => + '1' + . _("The tasks shown here are influenced by the angeltypes you joined already!") + . " " + . _("Description of the jobs.") + . "", + 'shifts_table' => msg() . $shiftCalendarRenderer->render(), + 'ical_text' => '

' . _("iCal export") . '

' . sprintf( + _("Export of shown shifts. iCal format or JSON format available (please keep secret, otherwise reset the api key)."), + page_link_to_absolute('ical') . '&key=' . $user['api_key'], + page_link_to_absolute('shifts_json_export') . '&key=' . $user['api_key'], + page_link_to('user_myshifts') . '&reset' + ) . '

', + 'filter' => _("Filter") + ]) + ]) + ]); } function get_ids_from_array($array) @@ -191,16 +224,21 @@ function make_select($items, $selected, $name, $title = null) if (isset($title)) { $html_items[] = '

' . $title . '

' . "\n"; } - + foreach ($items as $i) { - $html_items[] = '
' . (! isset($i['enabled']) || $i['enabled'] ? '' : glyph("lock")) . '

'; + $html_items[] = '
' + . '' + . (!isset($i['enabled']) || $i['enabled'] ? '' : glyph("lock")) + . '

'; } $html = '
' . "\n"; $html .= implode("\n", $html_items); $html .= buttons([ - button("javascript: checkAll('selection_" . $name . "', true)", _("All"), ""), - button("javascript: checkAll('selection_" . $name . "', false)", _("None"), "") - ]); + button("javascript: checkAll('selection_" . $name . "', true)", _("All"), ""), + button("javascript: checkAll('selection_" . $name . "', false)", _("None"), "") + ]); $html .= '
' . "\n"; return $html; } -- cgit v1.2.3-70-g09d2