X-Git-Url: http://git.rohieb.name/iserv-mod-room-reservation.git/blobdiff_plain/5760b2a8d146d7c186daab1743c84683d0d84cea..HEAD:/src/index.php diff --git a/src/index.php b/src/index.php old mode 100755 new mode 100644 index 8b48d53..6ad479d --- a/src/index.php +++ b/src/index.php @@ -1,247 +1,250 @@ -setTitle(_c("room-reservation:Schedule of room bookings")); $page->show(); -/** -require_once("sec/secure.inc"); -require_once("mod_rooms.inc"); -TestConfig(); - -// Ist der User berechtigt? -$bAllowAccess = false; -foreach($user[groups] as $group) -{ - foreach($cfgRooms["AllowedGroups"] as $allowed) - { - $bAllowAccess |= (($group == $allowed) == true); - } -} -if(!$bAllowAccess and $cfgRooms["RestrictAccess"] == true) - die_nice("Fehler: Sie sind nicht berechtigt, diese Seite zu benutzen. Wenden Sie sich an einen Administrator."); - -$bookings = new AllBookings(false); - -// Zeitstunden in Schulstunden umrechnen -$lessons_begin = array_flip($cfgRooms["TimeslicesBegin"]); -$lessons_end = array_flip($cfgRooms["TimeslicesEnd"]); - -$action = $_GET["action"]; -$room = isset($_GET["room"]) ? $_GET["room"] : $cfgRooms["Rooms"][0]; -$start = isset($_GET["start"]) ? $_GET["start"] : Monday(); -$act = $user[act]; -$id = isset($_POST["id"]) ? $_POST["id"] : $_GET["id"]; -$class = isset($_POST["class"]) ? $_POST["class"] : $_GET["class"]; -$room_form = isset($_POST["room_form"]) ? $_POST["room_form"] : $_GET["room"]; -$date = isset($_POST["date"]) ? $_POST["date"] : $_GET["date"]; -$timebegin = isset($_POST["timebegin"]) ? $_POST["timebegin"] : $_GET["timebegin"]; -$timeend = isset($_POST["timeend"]) ? $_POST["timeend"] : (isset($_GET["timeend"]) ? $_GET["timeend"] : $cfgRooms["TimeslicesEnd"][$lessons_begin[$timebegin]]); // Standardmäßig auf einen Zeitraum später als Anfangszeit -$reason = isset($_POST["reason"]) ? $_POST["reason"] : $_GET["reason"]; -$submit = $_POST["submit"]; -$cancel = $_POST["cancel"]; - -PageBlue("Raumbelegungsplan", "rooms_index"); - -// Formular anzeigen -function ShowForm() -{ - global $cfgRooms; - global $act, $class, $room_form, $date, $timebegin, $timeend, $reason, $user; - - Title("Einen Raum buchen"); - $form = "

Füllen Sie das Formular aus und klicken Sie dann auf die Schaltfläche „Raum buchen“.

-
- - - -"; - - // Klasse nur anzeigen, wenn angeschaltet - if($cfgRooms["ShowClassEdit"]) - $form .= "\n \n"; - - $form .= "\n \n\n"; - $form .= " \n\n"; - $form .= " \n\n"; - $form .= " \n\n"; - $form .= " \n
Ihr Name:{$user[name]}
".q(stripslashes($cfgRooms["ClassEditText"])).":
Raum:
Datum:
Zeit:vonbis
Grund für die Belegung:
  
"; - - echo $form; -} - - -if($action == "book") -{ - ShowForm(); -} -// ...oder Buchung löschen? -else if($action == "delete") -{ - // Rausfinden, wo unsere gewünschte ID im Array steht - for($n = 0; isset($bookings->objBookings[$n]->sqlData->id) and ($id != $bookings->objBookings[$n]->sqlData->id); $n++); - - // Auf Besitz oder Admin prüfen - $bAdminMode = FALSE; - $bAdminMode |= ($bookings->objBookings[$n]->UserIsOwner() and !$bookings->objBookings[$n]->rawData->fixed); // Benutzer dürfen keine festen Buchungen löschen - $bAdminMode |= $bookings->UserIsAdmin(); - - if(!$bAdminMode) - echo "
Sie sind nicht berechtigt, diese Buchung zu löschen!
\n"; - else - { - if($_POST["surely_delete"] == "Löschen" && $_POST["surely_delete_fixed"] == "true") - { - $bookings->Delete($id); - echo "
Ihre Buchung wurde gelöscht.
\n"; - } - else - { - echo "

Eine Buchung löschen

\n"; - if($bookings->objBookings[$n]->rawData->fixed and $_POST["surely_delete_fixed"] == "false") - echo "

Sie müssen bestätigen, dass Sie die Warnung über das Löschen von festen Buchungen zur Kenntnis genommen haben.

\n"; - // Formular zur Bestätigung anzeigen - echo "

Wollen Sie diese Buchung löschen?

\n"; - $bookings->PrintBooking($id); - echo "
\n"; - echo "

\n"; - if($bookings->objBookings[$n]->rawData->fixed) - // Bestätigungsfeld für feste Buchungen - echo "

".icona("dlg-warn", 16)."Achtung: Diese Buchung ist eine feste Buchung. Wenn sie gelöscht wird, wird der Zeitraum nicht in dieser Woche, sondern in allen Wochen wieder freigegeben.

\n

<$smlchk name='surely_delete_fixed' value='true' />

\n"; - else - echo "\n"; - echo "<$stdbtn name='surely_delete' value='Löschen' />
\n"; - } - } - - // Zurück-Link anzeigen - Option(_("Back"), "", "href='?room=$room&start=$start'", "back"); -} - -// ... oder alle Buchungen anzeigen / Buchung eintragen? -else -{ - if($action == "insert" and $submit == "Raum buchen") - { - $err = $bookings->Insert(null, $room_form, $date, $timebegin, $timeend, $act, $class, $reason, false); - if(!$err) - { - switch($bookings->lastError) - { - case ALLBOOKINGS_SQL_ERROR: - ReportError("\$booking->Insert", $booking->lastError, __FILE__, __LINE__); - default: - } - ShowForm(); - die_nice(); - } - else - { - // Log-Eintrag, wenn erwünscht - if($cfgRooms["LogOnInsert"]) - InsertLog("Raum $room_form am $date von $timebegin bis $timeend gebucht. Begründung: $reason"); - - // Passenderweise gleich die Woche mit der eingetragenen Buchung anzeigen - $tmp = explode(".", $date); - $start = Monday(strtotime($tmp[2]."-".$tmp[1]."-".$tmp[0])); - $room = $room_form; - Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start)); - echo "

".icona("dlg-info", 16, "bl")."Ihre Buchung wurde eingetragen.

\n"; - } - } - else - { - Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start)); - } - - $nPrevWeek = strtotime("last monday", Monday($start)); // der Montag vor dem Montag in der Startwoche - $nFirstWeek = Monday(); // der Montag in der aktuellen Woche - $nLastWeek = strtotime("last monday", Monday($bookings->GetLastBookingDate())); - $nNextWeek = strtotime("next monday", Monday($start)); // der Montag nach dem Montag der Startwoche - - echo "
-Raum:

"; - - // Navigation für die Wochen ausgeben - echo "

Vorherige Woche | Aktuelle Woche | "; - // Fünf Wochen zur direkten Anwahl anbieten - for($i = 1; $i <= 5; $i++) - { - $nCurWeek = Monday(strtotime("$i week", $start)); - echo "Woche ".date("W", $nCurWeek)." | "; - } - echo "Letzte Buchung | Nächste Woche

"; - echo "

\n"; - - $bookings->PrintTimeTable($start, $room); - - echo "
"; -} - -_PageBlue(); -*/ -?> +/** +require_once("sec/secure.inc"); +require_once("mod_rooms.inc"); +TestConfig(); + +// Ist der User berechtigt? +$bAllowAccess = false; +foreach($user[groups] as $group) +{ + foreach($cfgRooms["AllowedGroups"] as $allowed) + { + $bAllowAccess |= (($group == $allowed) == true); + } +} +if(!$bAllowAccess and $cfgRooms["RestrictAccess"] == true) + die_nice("Fehler: Sie sind nicht berechtigt, diese Seite zu benutzen. Wenden Sie sich an einen Administrator."); + +$bookings = new AllBookings(false); + +// Zeitstunden in Schulstunden umrechnen +$lessons_begin = array_flip($cfgRooms["TimeslicesBegin"]); +$lessons_end = array_flip($cfgRooms["TimeslicesEnd"]); + +$action = $_GET["action"]; +$room = isset($_GET["room"]) ? $_GET["room"] : $cfgRooms["Rooms"][0]; +$start = isset($_GET["start"]) ? $_GET["start"] : Monday(); +$act = $user[act]; +$id = isset($_POST["id"]) ? $_POST["id"] : $_GET["id"]; +$class = isset($_POST["class"]) ? $_POST["class"] : $_GET["class"]; +$room_form = isset($_POST["room_form"]) ? $_POST["room_form"] : $_GET["room"]; +$date = isset($_POST["date"]) ? $_POST["date"] : $_GET["date"]; +$timebegin = isset($_POST["timebegin"]) ? $_POST["timebegin"] : $_GET["timebegin"]; +$timeend = isset($_POST["timeend"]) ? $_POST["timeend"] : (isset($_GET["timeend"]) ? $_GET["timeend"] : $cfgRooms["TimeslicesEnd"][$lessons_begin[$timebegin]]); // Standardmäßig auf einen Zeitraum später als Anfangszeit +$reason = isset($_POST["reason"]) ? $_POST["reason"] : $_GET["reason"]; +$submit = $_POST["submit"]; +$cancel = $_POST["cancel"]; + +PageBlue("Raumbelegungsplan", "rooms_index"); + +// Formular anzeigen +function ShowForm() +{ + global $cfgRooms; + global $act, $class, $room_form, $date, $timebegin, $timeend, $reason, $user; + + Title("Einen Raum buchen"); + $form = "

Füllen Sie das Formular aus und klicken Sie dann auf die Schaltfläche „Raum buchen“.

+
+ + + +"; + + // Klasse nur anzeigen, wenn angeschaltet + if($cfgRooms["ShowClassEdit"]) + $form .= "\n \n"; + + $form .= "\n \n\n"; + $form .= " \n\n"; + $form .= " \n\n"; + $form .= " \n\n"; + $form .= " \n
Ihr Name:{$user[name]}
".q(stripslashes($cfgRooms["ClassEditText"])).":
Raum:
Datum:
Zeit:vonbis
Grund für die Belegung:
  
"; + + echo $form; +} + + +if($action == "book") +{ + ShowForm(); +} +// ...oder Buchung löschen? +else if($action == "delete") +{ + // Rausfinden, wo unsere gewünschte ID im Array steht + for($n = 0; isset($bookings->objBookings[$n]->sqlData->id) and ($id != $bookings->objBookings[$n]->sqlData->id); $n++); + + // Auf Besitz oder Admin prüfen + $bAdminMode = FALSE; + $bAdminMode |= ($bookings->objBookings[$n]->UserIsOwner() and !$bookings->objBookings[$n]->rawData->fixed); // Benutzer dürfen keine festen Buchungen löschen + $bAdminMode |= $bookings->UserIsAdmin(); + + if(!$bAdminMode) + echo "
Sie sind nicht berechtigt, diese Buchung zu löschen!
\n"; + else + { + if($_POST["surely_delete"] == "Löschen" && $_POST["surely_delete_fixed"] == "true") + { + $bookings->Delete($id); + echo "
Ihre Buchung wurde gelöscht.
\n"; + } + else + { + echo "

Eine Buchung löschen

\n"; + if($bookings->objBookings[$n]->rawData->fixed and $_POST["surely_delete_fixed"] == "false") + echo "

Sie müssen bestätigen, dass Sie die Warnung über das Löschen von festen Buchungen zur Kenntnis genommen haben.

\n"; + // Formular zur Bestätigung anzeigen + echo "

Wollen Sie diese Buchung löschen?

\n"; + $bookings->PrintBooking($id); + echo "
\n"; + echo "

\n"; + if($bookings->objBookings[$n]->rawData->fixed) + // Bestätigungsfeld für feste Buchungen + echo "

".icona("dlg-warn", 16)."Achtung: Diese Buchung ist eine feste Buchung. Wenn sie gelöscht wird, wird der Zeitraum nicht in dieser Woche, sondern in allen Wochen wieder freigegeben.

\n

<$smlchk name='surely_delete_fixed' value='true' />

\n"; + else + echo "\n"; + echo "<$stdbtn name='surely_delete' value='Löschen' />
\n"; + } + } + + // Zurück-Link anzeigen + Option(_("Back"), "", "href='?room=$room&start=$start'", "back"); +} + +// ... oder alle Buchungen anzeigen / Buchung eintragen? +else +{ + if($action == "insert" and $submit == "Raum buchen") + { + $err = $bookings->Insert(null, $room_form, $date, $timebegin, $timeend, $act, $class, $reason, false); + if(!$err) + { + switch($bookings->lastError) + { + case ALLBOOKINGS_SQL_ERROR: + ReportError("\$booking->Insert", $booking->lastError, __FILE__, __LINE__); + default: + } + ShowForm(); + die_nice(); + } + else + { + // Log-Eintrag, wenn erwünscht + if($cfgRooms["LogOnInsert"]) + InsertLog("Raum $room_form am $date von $timebegin bis $timeend gebucht. Begründung: $reason"); + + // Passenderweise gleich die Woche mit der eingetragenen Buchung anzeigen + $tmp = explode(".", $date); + $start = Monday(strtotime($tmp[2]."-".$tmp[1]."-".$tmp[0])); + $room = $room_form; + Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start)); + echo "

".icona("dlg-info", 16, "bl")."Ihre Buchung wurde eingetragen.

\n"; + } + } + else + { + Title("Raumbelegungen für den Raum $room in Woche ".date("W", $start)); + } + + $nPrevWeek = strtotime("last monday", Monday($start)); // der Montag vor dem Montag in der Startwoche + $nFirstWeek = Monday(); // der Montag in der aktuellen Woche + $nLastWeek = strtotime("last monday", Monday($bookings->GetLastBookingDate())); + $nNextWeek = strtotime("next monday", Monday($start)); // der Montag nach dem Montag der Startwoche + + echo "
+Raum:

"; + + // Navigation für die Wochen ausgeben + echo "

Vorherige Woche | Aktuelle Woche | "; + // Fünf Wochen zur direkten Anwahl anbieten + for($i = 1; $i <= 5; $i++) + { + $nCurWeek = Monday(strtotime("$i week", $start)); + echo "Woche ".date("W", $nCurWeek)." | "; + } + echo "Letzte Buchung | Nächste Woche

"; + echo "

\n"; + + $bookings->PrintTimeTable($start, $room); + + echo "
"; +} + +_PageBlue(); +*/ +?>