From e7f0e311e47ec3a6a2037f95b721ca2eb83bb3c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michaela=20Br=C3=BCckner?= <brueckner@data-quest.de> Date: Mon, 22 Aug 2022 12:17:16 +0200 Subject: [PATCH] change room name and show category properties, re #1327 --- app/controllers/course/room_requests.php | 36 ++++++++++++++----- .../_new_request_form_footer.php | 2 +- .../room_requests/_room_with_properties.php | 2 +- .../course/room_requests/find_by_roomname.php | 15 ++++++++ .../course/room_requests/new_request.php | 2 +- 5 files changed, 46 insertions(+), 11 deletions(-) diff --git a/app/controllers/course/room_requests.php b/app/controllers/course/room_requests.php index 907f6abe9f6..4a2849bf9b3 100644 --- a/app/controllers/course/room_requests.php +++ b/app/controllers/course/room_requests.php @@ -249,7 +249,9 @@ class Course_RoomRequestsController extends AuthenticatedController } - + /* + * Start point to creating a new request + */ public function new_request_action($request_id = '') { if (!Config::get()->RESOURCES_ALLOW_ROOM_REQUESTS) { @@ -283,6 +285,9 @@ class Course_RoomRequestsController extends AuthenticatedController } + /* + * Step 1: Either selecting a room category or searching for a room name + */ public function request_first_step_action($request_id) { $this->request_id = $request_id; @@ -298,7 +303,6 @@ class Course_RoomRequestsController extends AuthenticatedController $this->category_id = Request::get('category_id'); $_SESSION[$request_id]['room_category'] = $this->category_id; $this->search_by_category = Request::submitted('search_by_category'); - // TODO do we need to delete one of these after step 0? // user looks for a special room OR for room within a selected category if ($this->room_name != null && $this->search_by_roomname != null) { @@ -336,6 +340,16 @@ class Course_RoomRequestsController extends AuthenticatedController // small icons before room name to show whether they are bookable or not $this->available_room_icons = $this->getRoomBookingIcons($this->available_rooms, $this->request_id); $this->selected_room = Resource::find($_SESSION[$request_id]['room_id']); + $this->selected_room_category_id = $this->selected_room->category_id; + $_SESSION[$request_id]['room_category'] = $this->selected_room_category_id; + + // for step 2 after choosing a room + if ($step == 2) { + echo"Hallo"; + $this->category = ResourceCategory::find($this->selected_room_category_id); + $this->available_properties = $this->category->getRequestableProperties(); + } + // after selecting a room, go to next step if ((Request::submitted('request_second_step'))) { @@ -348,6 +362,15 @@ class Course_RoomRequestsController extends AuthenticatedController } + // we might also search for new rooms and stay within step 1 + if (Request::get('room_name') && Request::submitted('search_by_name')) { + $_SESSION[$request_id]['room_name'] = Request::get('room_name'); + $this->redirect( + 'course/room_requests/find_by_roomname/' . $this->request_id . '/' . $this->step + ); + } + + } public function find_by_category_action($request_id, $step) @@ -356,9 +379,7 @@ class Course_RoomRequestsController extends AuthenticatedController $this->step = $step; $this->room_category_id = $_SESSION[$request_id]['room_category']; - $this->category = ResourceCategory::find($this->room_category_id); - $this->request = RoomRequest::find($this->request_id) ? RoomRequest::find($this->request_id) : new RoomRequest($this->request_id); RoomManager::findRoomsByRequest($this->request); @@ -366,11 +387,13 @@ class Course_RoomRequestsController extends AuthenticatedController } + /* + * Step 2: After choosing a category or a room, check the properties + */ public function request_second_step_action($request_id) { $this->request_id = $request_id; $this->step = 2; - //$this->selected_room = Resource::find($_SESSION[$request_id]['room_id']); $this->redirect( 'course/room_requests/find_by_roomname/' . $this->request_id . '/' . $this->step @@ -430,9 +453,6 @@ class Course_RoomRequestsController extends AuthenticatedController - - - /************ OLD STUFF *******/ /** * This action is the entry point for adding properties to a room request. diff --git a/app/views/course/room_requests/_new_request_form_footer.php b/app/views/course/room_requests/_new_request_form_footer.php index 52ed700de33..c32c567f8a6 100644 --- a/app/views/course/room_requests/_new_request_form_footer.php +++ b/app/views/course/room_requests/_new_request_form_footer.php @@ -9,7 +9,7 @@ ) ?> - <?= \Studip\Button::create(_('Raum auswählen und weiter'), 'request_second_step') ?> + <?= \Studip\Button::create(_('Weiter'), 'request_second_step') ?> <? endif ?> diff --git a/app/views/course/room_requests/_room_with_properties.php b/app/views/course/room_requests/_room_with_properties.php index ad1bd7554b0..138803b5152 100644 --- a/app/views/course/room_requests/_room_with_properties.php +++ b/app/views/course/room_requests/_room_with_properties.php @@ -5,4 +5,4 @@ <?= htmlReady($selected_room->name) ?> <? endif ?> -<?= var_dump($selected_room); ?> + diff --git a/app/views/course/room_requests/find_by_roomname.php b/app/views/course/room_requests/find_by_roomname.php index bcfaf79020a..6ffbd57d4d8 100644 --- a/app/views/course/room_requests/find_by_roomname.php +++ b/app/views/course/room_requests/find_by_roomname.php @@ -56,10 +56,25 @@ </span> </label> <? endif ?> + <!-- ROOM CATEGORY PROPERTIES --> + <? if ($available_properties) : ?> + <? foreach ($available_properties as $property) : ?> + <?= $property->toHtmlInput( + $selected_properties[$property->name], + 'selected_properties[' . htmlReady($property->name) . ']', + true, + false + ) ?> + <? endforeach ?> + <? endif ?> + + + <? if (!$embedded) : ?> </fieldset> </div> + <div> <fieldset> <legend><?= _('Raumsuche') ?></legend> diff --git a/app/views/course/room_requests/new_request.php b/app/views/course/room_requests/new_request.php index cacf8937d7c..bd10d45a036 100644 --- a/app/views/course/room_requests/new_request.php +++ b/app/views/course/room_requests/new_request.php @@ -76,7 +76,7 @@ [ 'type' => 'image', 'class' => 'text-bottom', - 'name' => 'reset_category', + 'name' => 'reset_name', 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' ] ) ?> -- GitLab