diff options
-rw-r--r-- | includes/pages/user_shifts.php | 80 | ||||
-rw-r--r-- | public/css/base.css | 1 | ||||
-rw-r--r-- | templates/user_shifts_add.html | 45 |
3 files changed, 88 insertions, 38 deletions
diff --git a/includes/pages/user_shifts.php b/includes/pages/user_shifts.php index 979339c3..4616f6d0 100644 --- a/includes/pages/user_shifts.php +++ b/includes/pages/user_shifts.php @@ -1,49 +1,53 @@ <?php function user_shifts() { - $shifts = sql_select("SELECT * FROM `Shifts` ORDER BY `start`"); - $days = array (); - foreach ($shifts as $shift) - $days[] = date("Y-m-d", $shift['start']); - $days = array_unique($days); - if (count($days) == 0) - return "None"; - $day = $days[0]; - if (isset ($_REQUEST['day'])) - $day = $_REQUEST['day']; + if (isset ($_REQUEST['shift_id'])) { + return template_render('../templates/user_shifts_add.html', array ()); + } else { + $shifts = sql_select("SELECT * FROM `Shifts` ORDER BY `start`"); + $days = array (); + foreach ($shifts as $shift) + $days[] = date("Y-m-d", $shift['start']); + $days = array_unique($days); + if (count($days) == 0) + return "None"; + $day = $days[0]; + if (isset ($_REQUEST['day'])) + $day = $_REQUEST['day']; - $rooms = sql_select("SELECT * FROM `Room` WHERE `show`='Y' ORDER BY `Name`"); - if (count($rooms) == 0) - return "None"; - $id = $rooms[0]['RID']; - if (isset ($_REQUEST['room_id']) && preg_match("/^[0-9]*$/", $_REQUEST['room_id'])) - $id = $_REQUEST['room_id']; + $rooms = sql_select("SELECT * FROM `Room` WHERE `show`='Y' ORDER BY `Name`"); + if (count($rooms) == 0) + return "None"; + $id = $rooms[0]['RID']; + if (isset ($_REQUEST['room_id']) && preg_match("/^[0-9]*$/", $_REQUEST['room_id'])) + $id = $_REQUEST['room_id']; - $day_timestamp = DateTime :: createFromFormat("Y-m-d", $day)->getTimestamp(); - $shifts = sql_select("SELECT * FROM `Shifts` WHERE `RID`=" . sql_escape($id) . " AND `start` >= " . sql_escape($day_timestamp) . " AND `start` < " . sql_escape($day_timestamp +24 * 60 * 60) . " ORDER BY `start`"); + $day_timestamp = DateTime :: createFromFormat("Y-m-d", $day)->getTimestamp(); + $shifts = sql_select("SELECT * FROM `Shifts` WHERE `RID`=" . sql_escape($id) . " AND `start` >= " . sql_escape($day_timestamp) . " AND `start` < " . sql_escape($day_timestamp +24 * 60 * 60) . " ORDER BY `start`"); - $shifts_table = ""; - foreach ($shifts as $shift) { - $shifts_table .= '<tr><td>' . date("H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']) . '</td><td>' . $shift['name'] . '<br />'; - $angeltypes = sql_select("SELECT * FROM `RoomAngelTypes` JOIN `AngelTypes` ON (`RoomAngelTypes`.`angel_type_id` = `AngelTypes`.`TID`) WHERE `room_id`=" . sql_escape($id) . " AND `count` > 0 ORDER BY `AngelTypes`.`Name`"); - if (count($angeltypes)) { - foreach ($angeltypes as $angeltype) { - $shifts_table .= '<b>' . $angeltype['Name'] . ':</b> '; - $entries = sql_select("SELECT * FROM `ShiftEntry` JOIN `User` ON (`ShiftEntry`.`UID` = `User`.`UID`) WHERE `SID`=" . sql_escape($shift['SID']) . " AND `TID`=" . sql_escape($angeltype['TID']) . " ORDER BY `Nick`"); - $entry_list = array (); - if ($angeltype['count'] - count($entries) > 0) - $entry_list[] = '<a href="">'.($angeltype['count'] - count($entries)) . ' missing »</a>'; - $shifts_table .= join(", ", $entry_list); - $shifts_table .= '<br />'; + $shifts_table = ""; + foreach ($shifts as $shift) { + $shifts_table .= '<tr><td>' . date("H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']) . '</td><td>' . $shift['name'] . '<br />'; + $angeltypes = sql_select("SELECT * FROM `RoomAngelTypes` JOIN `AngelTypes` ON (`RoomAngelTypes`.`angel_type_id` = `AngelTypes`.`TID`) WHERE `room_id`=" . sql_escape($id) . " AND `count` > 0 ORDER BY `AngelTypes`.`Name`"); + if (count($angeltypes)) { + foreach ($angeltypes as $angeltype) { + $shifts_table .= '<b>' . $angeltype['Name'] . ':</b> '; + $entries = sql_select("SELECT * FROM `ShiftEntry` JOIN `User` ON (`ShiftEntry`.`UID` = `User`.`UID`) WHERE `SID`=" . sql_escape($shift['SID']) . " AND `TID`=" . sql_escape($angeltype['TID']) . " ORDER BY `Nick`"); + $entry_list = array (); + if ($angeltype['count'] - count($entries) > 0) + $entry_list[] = '<a href="' . page_link_to('user_shifts') . '&shift_id=' . $shift['SID'] . '&type_id=' . $angeltype['TID'] . '">' . ($angeltype['count'] - count($entries)) . ' missing »</a>'; + $shifts_table .= join(", ", $entry_list); + $shifts_table .= '<br />'; + } } + $shifts_table .= '</td></tr>'; } - $shifts_table .= '</td></tr>'; - } - return template_render('../templates/user_shifts.html', array ( - 'room_select' => make_room_select($rooms, $id, $day), - 'day_select' => make_day_select($days, $day, $id), - 'shifts_table' => $shifts_table - )); + return template_render('../templates/user_shifts.html', array ( + 'room_select' => make_room_select($rooms, $id, $day), + 'day_select' => make_day_select($days, $day, $id), + 'shifts_table' => $shifts_table + )); + } } function make_day_select($days, $day, $id) { diff --git a/public/css/base.css b/public/css/base.css index eaa7097c..0e05a4ff 100644 --- a/public/css/base.css +++ b/public/css/base.css @@ -113,6 +113,7 @@ fieldset table { } fieldset p { + clear: both; margin: 4px; } diff --git a/templates/user_shifts_add.html b/templates/user_shifts_add.html new file mode 100644 index 00000000..a8218120 --- /dev/null +++ b/templates/user_shifts_add.html @@ -0,0 +1,45 @@ +<form action="" method="post"> + <fieldset> + <p> + <label> + Angel: + </label> + %angel% + </p> + <p> + <label> + Date/Duration: + </label> + %date% + </p> + <p> + <label> + Location: + </label> + %location% + </p> + <p> + <label> + Title: + </label> + %title% + </p> + <p> + <label> + Type: + </label> + %type% + </p> + <p> + <label> + Comment: + <br/> + (For your eyes only) + </label> + <textarea name="comment"></textarea> + </p> + <p> + <input type="submit" name="submit" value="Send" /> + </p> + </fieldset> +</form>
\ No newline at end of file |