provide more information (multiple rooms) in available shifts

This commit is contained in:
Philip Häusler 2011-12-29 14:47:04 +01:00
parent cf3960aeba
commit 8968763ff3
2 changed files with 37 additions and 18 deletions

View File

@ -175,9 +175,8 @@ function user_shifts() {
else else
$user_id = $user['UID']; $user_id = $user['UID'];
$user_test = sql_select("SELECT * FROM `User` WHERE `UID`=" . sql_escape($user_id) . " LIMIT 1"); if (sql_num_query("SELECT * FROM `User` WHERE `UID`=" . sql_escape($user_id) . " LIMIT 1") == 0)
if (count($user_test) == 0) redirect(page_link_to('user_shifts'));
header("Location: " . page_link_to('user_shifts'));
} else } else
$user_id = $user['UID']; $user_id = $user['UID'];
@ -198,8 +197,16 @@ function user_shifts() {
foreach ($users as $usr) foreach ($users as $usr)
$users_select[$usr['UID']] = $usr['Nick']; $users_select[$usr['UID']] = $usr['Nick'];
$user_text = html_select_key('user_id', 'user_id', $users_select, $user['UID']); $user_text = html_select_key('user_id', 'user_id', $users_select, $user['UID']);
} else
$angeltypes_source = sql_select("SELECT * FROM `AngelTypes` ORDER BY `name`");
$angeltypes = array ();
foreach ($angeltypes_source as $angeltype)
$angeltypes[$angeltype['id']] = $angeltype['name'];
$angeltyppe_select = html_select_key('angeltype_id', 'angeltype_id', $angeltypes, $type['id']);
} else {
$user_text = $user['Nick']; $user_text = $user['Nick'];
$angeltyppe_select = $type['name'];
}
return template_render('../templates/user_shifts_add.html', array ( return template_render('../templates/user_shifts_add.html', array (
//'date' => date("Y-m-d H:i", $shift['start']) . ', ' . date("H:i", $shift['end'] - $shift['start']) . 'h', //'date' => date("Y-m-d H:i", $shift['start']) . ', ' . date("H:i", $shift['end'] - $shift['start']) . 'h',
@ -207,7 +214,7 @@ function user_shifts() {
'title' => $shift['name'], 'title' => $shift['name'],
'location' => $shift['Name'], 'location' => $shift['Name'],
'angel' => $user_text, 'angel' => $user_text,
'type' => $type['name'], 'type' => $angeltyppe_select,
'comment' => "" 'comment' => ""
)); ));
} else { } else {
@ -269,32 +276,41 @@ function view_user_shifts() {
date('Y-m-d') date('Y-m-d')
); );
$shifts = sql_select("SELECT * FROM `Shifts` $shifts = sql_select("SELECT `Shifts`.*, `Room`.`Name` as `room_name` FROM `Shifts` JOIN `Room` USING (`RID`)
WHERE `RID` IN (" . implode(',', $_SESSION['user_shifts']['rooms']) . ") WHERE `Shifts`.`RID` IN (" . implode(',', $_SESSION['user_shifts']['rooms']) . ")
AND DATE(FROM_UNIXTIME(`start`)) IN ('" . implode("','", $_SESSION['user_shifts']['days']) . "') AND DATE(FROM_UNIXTIME(`start`)) IN ('" . implode("','", $_SESSION['user_shifts']['days']) . "')
ORDER BY `start`"); ORDER BY `start`");
$shifts_table = ""; $shifts_table = "";
$row_count = 0; $row_count = 0;
foreach ($shifts as $shift) { foreach ($shifts as $shift) {
$shift_row = '<tr><td>' . date(($_SESSION['user_shifts']['id'] == 0 ? "Y-m-d " : "") . "H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']) . ($_SESSION['user_shifts']['id'] == 0 ? "<br />" . $shift['Name'] : "") . '</td><td>' . $shift['name']; $info = array ();
if (count($_SESSION['user_shifts']['days']) > 1)
$info[] = date("Y-m-d", $shift['start']);
$info[] = date("H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']);
if (count($_SESSION['user_shifts']['rooms']) > 1)
$info[] = $shift['room_name'];
$shift_row = '<tr><td>' . join('<br />', $info) . '</td>';
$shift_row .= '<td>' . $shift['name'];
//$shift_row = '<tr><td>' . date(($_SESSION['user_shifts']['id'] == 0 ? "Y-m-d " : "") . "H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']) . '</td><td>' . $shift['name'];
if (in_array('admin_shifts', $privileges)) if (in_array('admin_shifts', $privileges))
$shift_row .= ' <a href="?p=user_shifts&edit_shift=' . $shift['SID'] . '">[edit]</a> <a href="?p=user_shifts&delete_shift=' . $shift['SID'] . '">[x]</a>'; $shift_row .= ' <a href="?p=user_shifts&edit_shift=' . $shift['SID'] . '">[edit]</a> <a href="?p=user_shifts&delete_shift=' . $shift['SID'] . '">[x]</a>';
$shift_row .= '<br />'; $shift_row .= '<br />';
$is_free = false; $is_free = false;
$shift_has_special_needs = 0 < sql_num_query("SELECT `id` FROM `NeededAngelTypes` WHERE `shift_id` = " . $shift['SID']); $shift_has_special_needs = 0 < sql_num_query("SELECT `id` FROM `NeededAngelTypes` WHERE `shift_id` = " . $shift['SID']);
$query = "SELECT * $query = "SELECT *
FROM `NeededAngelTypes` FROM `NeededAngelTypes`
JOIN `AngelTypes` JOIN `AngelTypes`
ON (`NeededAngelTypes`.`angel_type_id` = `AngelTypes`.`id`) ON (`NeededAngelTypes`.`angel_type_id` = `AngelTypes`.`id`)
WHERE "; WHERE ";
if ($shift_has_special_needs) if ($shift_has_special_needs)
$query .= "`shift_id` = " . sql_escape($shift['SID']); $query .= "`shift_id` = " . sql_escape($shift['SID']);
else else
$query .= "`room_id` = " . sql_escape($shift['RID']); $query .= "`room_id` = " . sql_escape($shift['RID']);
$query .= " AND `count` > 0 $query .= " AND `count` > 0
AND `angel_type_id` IN (" . implode(',', $_SESSION['user_shifts']['types']) . ") AND `angel_type_id` IN (" . implode(',', $_SESSION['user_shifts']['types']) . ")
ORDER BY `AngelTypes`.`name`"; ORDER BY `AngelTypes`.`name`";
$angeltypes = sql_select($query); $angeltypes = sql_select($query);
if (count($angeltypes) > 0) { if (count($angeltypes) > 0) {
@ -321,6 +337,9 @@ function view_user_shifts() {
$shift_row .= join(", ", $entry_list); $shift_row .= join(", ", $entry_list);
$shift_row .= '<br />'; $shift_row .= '<br />';
} }
if (in_array('user_shifts_admin', $privileges)) {
$shift_row .= '<a href="' . page_link_to('user_shifts') . '&shift_id=' . $shift['SID'] . '&type_id=' . $angeltype['id'] . '">Weitere Helfer eintragen &raquo;</a>';
}
if (($is_free && in_array(0, $_SESSION['user_shifts']['filled'])) || (!$is_free && in_array(1, $_SESSION['user_shifts']['filled']))) { if (($is_free && in_array(0, $_SESSION['user_shifts']['filled'])) || (!$is_free && in_array(1, $_SESSION['user_shifts']['filled']))) {
$shifts_table .= $shift_row . '</td></tr>'; $shifts_table .= $shift_row . '</td></tr>';
$row_count++; $row_count++;
@ -332,7 +351,7 @@ function view_user_shifts() {
if ($user['ical_key'] == "") if ($user['ical_key'] == "")
user_reset_ical_key($user); user_reset_ical_key($user);
return template_render('../templates/user_shifts.html', array ( return msg() . template_render('../templates/user_shifts.html', array (
'room_select' => make_select($rooms, $_SESSION['user_shifts']['rooms'], "rooms", "Räume"), 'room_select' => make_select($rooms, $_SESSION['user_shifts']['rooms'], "rooms", "Räume"),
'day_select' => make_select($days, $_SESSION['user_shifts']['days'], "days", "Tage"), 'day_select' => make_select($days, $_SESSION['user_shifts']['days'], "days", "Tage"),
'type_select' => make_select($types, $_SESSION['user_shifts']['types'], "types", "Aufgaben"), 'type_select' => make_select($types, $_SESSION['user_shifts']['types'], "types", "Aufgaben"),

View File

@ -13,7 +13,7 @@
<thead> <thead>
<tr> <tr>
<th> <th>
Zeit Zeit/Raum
</th> </th>
<th> <th>
Einträge Einträge