From 22cfc99ceb0f901f1029622a13fb4461fb881b31 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 24 Jun 2016 11:31:45 +0200 Subject: [exams] Unify add/edit template; check date ranges; other small fixes --- modules-available/exams/lang/de/messages.json | 5 ++++- modules-available/exams/lang/de/template-tags.json | 4 +--- modules-available/exams/lang/en/messages.json | 5 ++++- modules-available/exams/lang/en/template-tags.json | 4 +--- modules-available/exams/page.inc.php | 21 +++++++++++++++++++++ 5 files changed, 31 insertions(+), 8 deletions(-) (limited to 'modules-available/exams') diff --git a/modules-available/exams/lang/de/messages.json b/modules-available/exams/lang/de/messages.json index 01be29fd..eda4257e 100644 --- a/modules-available/exams/lang/de/messages.json +++ b/modules-available/exams/lang/de/messages.json @@ -1,9 +1,12 @@ { "changes-successfully-saved": "\u00c4nderungen erfolgreich gespeichert", + "end-before-start": "Endzeitpunkt liegt vor Startzeitpunkt!", + "endtime-invalid": "Ung\u00fcltige Endzeit: {{0}}", "error-while-saving-changes": "Fehler beim Speichern der \u00c4nderungen", "exam-added-success": "Klausurzeitraum erfolgreich hinzugef\u00fcgt", "exam-deleted-success": "Klausurzeitraum erfolgreich gel\u00f6scht", "exam-not-added": "Klausurzeitraum konnte nicht hinzugef\u00fcgt werden", "exam-not-deleted-error": "Klausurzeitraum konnte nicht gel\u00f6scht werden", - "invalid-exam-id": "Ung\u00fcltige Klausur-ID: {{0}}" + "invalid-exam-id": "Ung\u00fcltige Klausur-ID: {{0}}", + "starttime-invalid": "Ung\u00fcltige Startzeit: {{0}}" } \ No newline at end of file diff --git a/modules-available/exams/lang/de/template-tags.json b/modules-available/exams/lang/de/template-tags.json index ab138d65..9b9225de 100644 --- a/modules-available/exams/lang/de/template-tags.json +++ b/modules-available/exams/lang/de/template-tags.json @@ -13,7 +13,5 @@ "lang_end_time": "Uhrzeit", "lang_id": "ID", "lang_location": "Raum\/Ort", - "lang_locations": "R\u00e4ume\/Orte", - "lang_pleaseSelectLocation": "Bitte w\u00e4hlen Sie mindestens einen Raum\/Ort", - "lang_saveExam": "Klausurzeitraum speichern" + "lang_locations": "R\u00e4ume\/Orte" } \ No newline at end of file diff --git a/modules-available/exams/lang/en/messages.json b/modules-available/exams/lang/en/messages.json index a684a82c..a62cc489 100644 --- a/modules-available/exams/lang/en/messages.json +++ b/modules-available/exams/lang/en/messages.json @@ -1,9 +1,12 @@ { "changes-successfully-saved": "Changes successfully saved", + "end-before-start": "Exam ends before it starts!", + "endtime-invalid": "Invalid end time: {{0}}", "error-while-saving-changes": "Error saving changes", "exam-added-success": "Exam period successfully added", "exam-deleted-success": "Exam period successfully deleted", "exam-not-added": "Exam period was not added", "exam-not-deleted-error": "Exam period was not deleted", - "invalid-exam-id": "Invalid exam id: {{0}}" + "invalid-exam-id": "Invalid exam id: {{0}}", + "starttime-invalid": "Invalid start time: {{0}}" } \ No newline at end of file diff --git a/modules-available/exams/lang/en/template-tags.json b/modules-available/exams/lang/en/template-tags.json index b1b0ab0a..9c49c8a3 100644 --- a/modules-available/exams/lang/en/template-tags.json +++ b/modules-available/exams/lang/en/template-tags.json @@ -13,7 +13,5 @@ "lang_end_time": "Time", "lang_id": "ID", "lang_location": "Room\/Location", - "lang_locations": "Rooms\/Locations", - "lang_pleaseSelectLocation": "Please select at least one room\/location", - "lang_saveExam": "Save Exam Period" + "lang_locations": "Rooms\/Locations" } \ No newline at end of file diff --git a/modules-available/exams/page.inc.php b/modules-available/exams/page.inc.php index 211ae5ac..4b626483 100644 --- a/modules-available/exams/page.inc.php +++ b/modules-available/exams/page.inc.php @@ -116,6 +116,15 @@ class Page_Exams extends Page return $out; } + private function dateSane($time) + { + if ($time < strtotime('-1 day')) + return false; + if ($time > strtotime('+90 day')) + return false; + return true; + } + private function saveExam() { if (!Request::isPost()) { @@ -133,6 +142,18 @@ class Page_Exams extends Page $starttime = strtotime(Request::post('starttime_date') . " " . Request::post('starttime_time')); $endtime = strtotime(Request::post('endtime_date') . " " . Request::post('endtime_time')); $description = Request::post('description'); + if (!$this->dateSane($starttime)) { + Message::addError('starttime-invalid', Request::post('starttime_date') . " " . Request::post('starttime_time')); + Util::redirect('?do=exams'); + } + if (!$this->dateSane($endtime)) { + Message::addError('endtime-invalid', Request::post('endtime_date') . " " . Request::post('endtime_time')); + Util::redirect('?do=exams'); + } + if ($endtime <= $starttime) { + Message::addError('end-before-start'); + Util::redirect('?do=exams'); + } if ($examid === 0) { // No examid given, is add -- cgit v1.2.3-55-g7522