From 57ed63e4b39ea1126fb411ebf7bc02c041380616 Mon Sep 17 00:00:00 2001 From: David Siegfried <david.siegfried@uni-vechta.de> Date: Tue, 8 Mar 2022 14:03:20 +0000 Subject: [PATCH] remember selected semester, fixes #745 --- app/controllers/resources/room_planning.php | 55 +++++++++++-------- .../resources/room_planning/semester_plan.php | 10 ++-- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/app/controllers/resources/room_planning.php b/app/controllers/resources/room_planning.php index 0b4389fff7c..4651e4be710 100644 --- a/app/controllers/resources/room_planning.php +++ b/app/controllers/resources/room_planning.php @@ -451,6 +451,22 @@ class Resources_RoomPlanningController extends AuthenticatedController } $this->rooms = RoomManager::getUserRooms($current_user); + //For the semester selector: + if (Request::get('semester_id')) { + $this->semester = Semester::find(Request::get('semester_id')); + if (!$this->semester) { + PageLayout::postError( + _('Das ausgewählte Semester wurde nicht in der Datenbank gefunden!') + ); + return; + } + } else { + $this->semester = Semester::findCurrent(); + } + + $this->current_semester_id = $this->semester->id; + URLHelper::addLinkParam('semester_id', $this->semester->id); + if (Navigation::hasItem('/resources/planning/semester_plan')) { Navigation::activateItem('/resources/planning/semester_plan'); } @@ -458,7 +474,8 @@ class Resources_RoomPlanningController extends AuthenticatedController $new_resource_id = Request::get('new_resource_id'); if ($new_resource_id) { $this->redirect( - 'resources/room_planning/semester_plan/' . $new_resource_id + 'resources/room_planning/semester_plan/' . $new_resource_id, + ['semester_id' => $this->semester->id] ); } @@ -490,18 +507,14 @@ class Resources_RoomPlanningController extends AuthenticatedController $this->resource->getFullName() ) ); - $this->current_semester_id = Request::get('semester_id'); - if ($this->current_semester_id) { - URLHelper::addLinkParam('semester_id', $this->semester_id); - } else { - $this->current_semester_id = Semester::findCurrent()->id; - } + if (Request::isDialog()) { $this->dialog_semesters = array_reverse(Semester::getAll()); $this->plan_link = URLHelper::getLink( 'dispatch.php/resources/room_planning/semester_plan/' . $this->resource->id, [ - 'allday' => Request::get('allday', false) + 'allday' => Request::get('allday', false), + 'semester_id' => $this->semester->id ] ); } @@ -558,17 +571,6 @@ class Resources_RoomPlanningController extends AuthenticatedController //Build sidebar: $sidebar = Sidebar::get(); - $this->semester = Semester::findCurrent(); - //For the semester selector: - if (Request::submitted('semester_id')) { - $this->semester = Semester::find(Request::get('semester_id')); - if (!$this->semester) { - PageLayout::postError( - _('Das ausgewählte Semester wurde nicht in der Datenbank gefunden!') - ); - return; - } - } $this->fullcalendar_studip_urls = []; if ($this->user_has_booking_permissions) { @@ -581,7 +583,7 @@ class Resources_RoomPlanningController extends AuthenticatedController if ($this->rooms) { $room_select = new SelectWidget( _('Anderen Raum wählen'), - '', + URLHelper::getURL('', ['semester_id' => $this->semester->id]), 'new_resource_id' ); $options = []; @@ -591,7 +593,7 @@ class Resources_RoomPlanningController extends AuthenticatedController $room_select->setOptions($options, $this->resource->id); $sidebar->addWidget($room_select); } - if ($this->resource->userHasPermission($current_user, 'user')) { + if ($this->resource->userHasPermission($current_user)) { $views = new ViewsWidget(); $views->setTitle(_('Zeitfenster')); $views->addLink( @@ -599,7 +601,8 @@ class Resources_RoomPlanningController extends AuthenticatedController URLHelper::getURL( 'dispatch.php/resources/room_planning/semester_plan/' . $this->resource->id, [ - 'allday' => null + 'allday' => null, + 'semester_id' => $this->semester->id ] ), null, @@ -612,6 +615,7 @@ class Resources_RoomPlanningController extends AuthenticatedController 'dispatch.php/resources/room_planning/semester_plan/' . $this->resource->id, [ 'allday' => true, + 'semester_id' => $this->semester->id ] ), null, @@ -662,6 +666,7 @@ class Resources_RoomPlanningController extends AuthenticatedController 'resources/room_planning/semester_plan/' . $this->resource->id, [ 'display_single_bookings' => '1', + 'semester_id' => $this->semester->id ] ), @@ -669,6 +674,7 @@ class Resources_RoomPlanningController extends AuthenticatedController 'resources/room_planning/semester_plan/' . $this->resource->id, [ 'display_single_bookings' => null, + 'semester_id' => $this->semester->id ] ), [] @@ -680,7 +686,8 @@ class Resources_RoomPlanningController extends AuthenticatedController URLHelper::getURL( 'dispatch.php/resources/room_planning/semester_plan/' . $this->resource->id, [ - 'allday' => Request::get('allday', false) + 'allday' => Request::get('allday', false), + 'semester_id' => $this->semester->id ] ) ); @@ -700,7 +707,7 @@ class Resources_RoomPlanningController extends AuthenticatedController _('Anderen Raum wählen'), URLHelper::getURL( 'dispatch.php/resources/room_planning/semester_plan', - [], + ['semester_id' => $this->semester->id], true ), Icon::create('refresh') diff --git a/app/views/resources/room_planning/semester_plan.php b/app/views/resources/room_planning/semester_plan.php index 773191e535e..34e8f9d5d91 100644 --- a/app/views/resources/room_planning/semester_plan.php +++ b/app/views/resources/room_planning/semester_plan.php @@ -24,7 +24,7 @@ <? foreach ($dialog_semesters as $sem) : ?> <option value="<?= htmlReady($sem->id) ?>" title="<?= htmlReady($sem->name) ?>" - <?= ($current_semester_id == $sem->id) + <?= ($semester->id == $sem->id) ? 'selected="selected"' : '' ?>> <?= htmlReady($sem->name) ?> </option> @@ -96,10 +96,10 @@ 'right' => '' ], 'defaultView' => - in_array(Request::get("defaultView"), ['dayGridMonth','timeGridWeek','timeGridDay']) - ? Request::get("defaultView") + in_array(Request::get('defaultView'), ['dayGridMonth','timeGridWeek','timeGridDay']) + ? Request::get('defaultView') : 'timeGridWeek', - 'defaultDate' => ((Request::get("semester_timerange") == 'fullsem') ? date('Y-m-d',$semester->beginn) : date('Y-m-d',$semester->vorles_beginn)), + 'defaultDate' => ((Request::get('semester_timerange') === 'fullsem') ? date('Y-m-d', $semester->beginn) : date('Y-m-d', $semester->vorles_beginn)), 'eventSources' => [ [ 'url' => URLHelper::getURL( @@ -112,7 +112,7 @@ 'extraParams' => [ 'booking_types' => [0,1,2], 'semester_id' => $semester->id, - 'semester_timerange' => Request::get("semester_timerange", 'vorles'), + 'semester_timerange' => Request::get('semester_timerange', 'vorles'), 'display_requests' => 1, 'display_all_requests' => $display_all_requests ? 1 : 0 ] -- GitLab