From b48786ef5d6589316c167752134186b6195a7e6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Fri, 2 Sep 2022 16:10:10 +0000 Subject: [PATCH] Revert wromng commits aad38b537 e7f0e311e 0d99c65b4 c8bcec4bb e8d608700 b70bc19f8 5797405d3 to main re #1327" Merge request studip/studip!952 --- app/controllers/admin/courses.php | 1 - app/controllers/course/room_requests.php | 240 +----------------- app/controllers/course/timesrooms.php | 16 -- .../_new_request_form_footer.php | 27 -- .../_new_request_form_header.php | 0 .../room_requests/_new_request_header.php | 23 -- .../room_requests/_room_with_properties.php | 8 - .../course/room_requests/find_by_category.php | 129 ---------- .../course/room_requests/find_by_roomname.php | 161 ------------ .../course/room_requests/new_request.php | 92 ------- .../room_requests/request_select_room.php | 3 +- app/views/course/timesrooms/_roomRequest.php | 141 +--------- lib/modules/CoreAdmin.class.php | 3 - 13 files changed, 15 insertions(+), 829 deletions(-) delete mode 100644 app/views/course/room_requests/_new_request_form_footer.php delete mode 100644 app/views/course/room_requests/_new_request_form_header.php delete mode 100644 app/views/course/room_requests/_new_request_header.php delete mode 100644 app/views/course/room_requests/_room_with_properties.php delete mode 100644 app/views/course/room_requests/find_by_category.php delete mode 100644 app/views/course/room_requests/find_by_roomname.php delete mode 100644 app/views/course/room_requests/new_request.php diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php index 5a89dbaea87..711494a4ed0 100644 --- a/app/controllers/admin/courses.php +++ b/app/controllers/admin/courses.php @@ -1070,7 +1070,6 @@ class Admin_CoursesController extends AuthenticatedController 'attributes' => ['data-dialog' => 'size=big'], ]; } - ksort($actions); foreach (PluginManager::getInstance()->getPlugins('AdminCourseAction') as $plugin) { diff --git a/app/controllers/course/room_requests.php b/app/controllers/course/room_requests.php index 12141cbdc30..8747e9b4ab5 100644 --- a/app/controllers/course/room_requests.php +++ b/app/controllers/course/room_requests.php @@ -48,10 +48,6 @@ class Course_RoomRequestsController extends AuthenticatedController $pagetitle .= Course::find($this->course_id)->getFullname() . ' - '; $pagetitle .= _('Verwalten von Raumanfragen'); PageLayout::setTitle($pagetitle); - - - $this->available_room_categories = ResourceCategory::findByClass_name('Room'); - $this->step = 0; } /** @@ -249,240 +245,6 @@ 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) { - throw new AccessDeniedException( - _('Das Erstellen von Raumanfragen ist nicht erlaubt!') - ); - } - Helpbar::get()->addPlainText( - _('Information'), - _('Hier können Sie Angaben zu gewünschten Raumeigenschaften machen.') - ); - - // create a new request - $this->request_id = $request_id; - if (Request::submitted('request_id')) { - $this->request_id = Request::get('request_id'); - } - if (!$this->request_id) { - $this->request_id = md5(uniqid('RoomRequest')); - } - - $this->request = null; - $this->request = RoomRequest::find(Request::get('request_id')) ? RoomRequest::find(Request::get('request_id')) : new RoomRequest($this->request_id); - - // time ranges (start date, end date) - $this->request->setRangeFields('course', [Context::getId()]); - $this->request_time_intervals = $this->request->getTimeIntervals(); - - - - - } - - /* - * 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; - $this->step = 1; - $_SESSION[$request_id]['search_by'] = ''; - - if (Request::isPost()) { - CSRFProtection::verifyUnsafeRequest(); - - // either search by room name or room category, then go to next step - $this->room_name = Request::get('room_name'); - $_SESSION[$request_id]['room_name'] = $this->room_name; - $this->search_by_roomname = Request::submitted('search_by_name'); - $this->category_id = Request::get('category_id'); - $_SESSION[$request_id]['room_category'] = $this->category_id; - $this->search_by_category = Request::submitted('search_by_category'); - - // user looks for a special room OR for room within a selected category - if ($this->room_name != null && $this->search_by_roomname != null) { - $_SESSION[$request_id]['search_by'] = 'roomname'; - $this->redirect( - 'course/room_requests/find_by_roomname/' . $this->request_id . '/' . $this->step - ); - } else if ($this->category_id != null && $this->search_by_category != null ) { - $_SESSION[$request_id]['search_by'] = 'category'; - - $this->redirect( - 'course/room_requests/find_by_category/' . $this->request_id . '/' . $this->step - ); - } else { - $this->redirect( - 'course/room_requests/new_request/' . $this->request_id - ); - } - } - - } - - public function find_by_roomname_action($request_id, $step) - { - $this->request_id = $request_id; - $this->step = $step; - $this->room_name = $_SESSION[$request_id]['room_name']; - - $this->available_rooms = RoomManager::findRooms( - $this->room_name, - null, - null, - null, - [], - 'name ASC, mkdate ASC' - ); - - // 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) { - $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'))) { - $this->selected_room_id = Request::get('selected_room_id'); - $_SESSION[$request_id]['room_id'] = $this->selected_room_id; - - $this->redirect( - 'course/room_requests/request_second_step/' . $this->request_id - ); - - } - - // 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 - ); - } - $this->selected_properties = Request::getArray('selected_properties'); - $_SESSION[$request_id]['seats'] = $this->selected_properties['seats']; - - if (Request::submitted('save_request')) { - // we need the seats property with at least one seat, else we get an error - if ($_SESSION[$request_id]['seats'] < 1) { - PageLayout::postError( - _('Es wurde keine Anzahl an gewünschten Sitzplätzen angegeben!') - ); - $this->redirect( - 'course/room_requests/find_by_roomname/' . $this->request_id . '/' . $this->step - ); - } else { - // TODO actually save the request - PageLayout::postSuccess(_('Die Anfrage wurde gespeichert!')); - $this->relocate('course/timesrooms/'); - } - - } - - - } - - public function find_by_category_action($request_id, $step) - { - $this->request_id = $request_id; - $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); - $this->available_properties = $this->category->getRequestableProperties(); - - } - - /* - * 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->redirect( - 'course/room_requests/find_by_roomname/' . $this->request_id . '/' . $this->step - ); - - } - - public function save_request_action($request_id) { - $this->request_id = $request_id; - - - - } - - private function getRoomBookingIcons($available_rooms, $request_id) - { - $this->request_id = $request_id; - - $this->available_room_icons = []; - $this->request = RoomRequest::find($this->request_id) ? RoomRequest::find($this->request_id) : new RoomRequest($this->request_id); - - // TODO set range fields for other - $this->request->setRangeFields('course', [Context::getId()]); - $request_time_intervals = $this->request->getTimeIntervals(); - - foreach ($available_rooms as $room) { - $request_dates_booked = 0; - foreach ($request_time_intervals as $interval) { - $booked = ResourceBookingInterval::countBySql( - 'resource_id = :room_id AND begin < :end AND end > :begin', - [ - 'room_id' => $room->id, - 'begin' => $interval['begin'], - 'end' => $interval['end'] - ] - ) > 0; - if ($booked) { - $request_dates_booked++; - } - } - if ($request_dates_booked == 0) { - $this->available_room_icons[$room->id] = - Icon::create('check-circle', Icon::ROLE_STATUS_GREEN)->asImg( - [ - 'class' => 'text-bottom', - 'title' => _('freier Raum') - ] - ); - $available_rooms[] = $room; - } elseif ($request_dates_booked < $request_time_intervals) { - $this->available_room_icons[$room->id] = - Icon::create('exclaim-circle', Icon::ROLE_STATUS_YELLOW)->asImg( - [ - 'class' => 'text-bottom', - 'title' => _('teilweise belegter Raum') - ] - ); - $available_rooms[] = $room; - } - } - return $this->available_room_icons; - } - - - - - /************ OLD STUFF *******/ /** * This action is the entry point for adding properties to a room request. */ @@ -573,6 +335,7 @@ class Course_RoomRequestsController extends AuthenticatedController ); return; } + if (Request::isPost()) { CSRFProtection::verifyUnsafeRequest(); $this->room_name = Request::get('room_name'); @@ -861,7 +624,6 @@ class Course_RoomRequestsController extends AuthenticatedController ); } $this->available_room_icons = []; - $request_time_intervals = $this->request->getTimeIntervals(); $request_date_amount = count($request_time_intervals); foreach ($this->matching_rooms as $room) { diff --git a/app/controllers/course/timesrooms.php b/app/controllers/course/timesrooms.php index 95b797e9312..cd9d001b4a4 100644 --- a/app/controllers/course/timesrooms.php +++ b/app/controllers/course/timesrooms.php @@ -187,23 +187,7 @@ class Course_TimesroomsController extends AuthenticatedController $dates = $this->course->getDatesWithExdates(); - $this->current_user = User::findCurrent(); - $this->user_has_permissions = ResourceManager::userHasGlobalPermission($this->current_user, 'admin'); - $check_room_requests = Config::get()->RESOURCES_ALLOW_ROOM_REQUESTS; - $this->room_requests = RoomRequest::findBySQL( - 'course_id = :course_id - ORDER BY course_id, metadate_id, termin_id', - [ - 'course_id' => $this->course->id - ] - ); - - $this->global_requests = $this->course->room_requests->filter(function (RoomRequest $request) { - return $request->closed < 2 && !$request->termin_id; - }); - - $single_dates = []; $this->single_date_room_request_c = 0; foreach ($dates as $val) { diff --git a/app/views/course/room_requests/_new_request_form_footer.php b/app/views/course/room_requests/_new_request_form_footer.php deleted file mode 100644 index 68b82db5105..00000000000 --- a/app/views/course/room_requests/_new_request_form_footer.php +++ /dev/null @@ -1,27 +0,0 @@ - <footer data-dialog-button> - <? if ($step >= 1) : ?> - <?= \Studip\LinkButton::create( - _('Zurück'), - $controller->link_for('course/room_requests/new_request/' . $request_id), - ['data-dialog' => 'size=big'] - ) ?> - - - <? endif ?> - - <? if ($step == 1 && $_SESSION[$request_id]['search_by'] == 'roomname') : ?> - <?= \Studip\Button::create(_('Weiter'), 'request_second_step') ?> - <? elseif (($step == 1 && $_SESSION[$request_id]['search_by'] == 'category') || ($step == 2 && $_SESSION[$request_id]['search_by'] == 'roomname')) : ?> - <?= \Studip\Button::create(_('Speichern'), 'save_request') ?> - <? endif ?> - - <?= \Studip\LinkButton::createCancel( - _('Abbrechen'), - $controller->link_for('course/room_requests/index/' . $course_id), - [ - 'title' => _('Abbrechen') - ] - ) ?> - </footer> -</form> -Step: <?= $step ?> diff --git a/app/views/course/room_requests/_new_request_form_header.php b/app/views/course/room_requests/_new_request_form_header.php deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/app/views/course/room_requests/_new_request_header.php b/app/views/course/room_requests/_new_request_header.php deleted file mode 100644 index 1f27c74390c..00000000000 --- a/app/views/course/room_requests/_new_request_header.php +++ /dev/null @@ -1,23 +0,0 @@ -<?= MessageBox::info( - _('Geben Sie den gewünschten Raum und/oder Raumeigenschaften an. Ihre Raumanfrage wird von der zuständigen Raumvergabe bearbeitet.'), - [_('<strong>Achtung:</strong> Um später einen passenden Raum für Ihre Veranstaltung zu bekommen, geben Sie bitte immer die gewünschten Eigenschaften mit an!')] -)?> - -<section class="resources-grid"> - <section class="contentbox"> - <header><h1><?= _('Anfrage') ?></h1></header> - <section> - <?= htmlready($request->getTypeString(), 1, 1) ?> - <? if ($request->getType() == 'course'): ?> - <? - $dates = $request->getDateString(true); - ?> - <?= tooltipHtmlIcon(implode('<br>', $dates)) ?> - <? endif ?> - </section> - </section> - <section class="contentbox"> - <header><h1><?= _('Bearbeitungsstatus') ?></h1></header> - <section></section> - </section> -</section> diff --git a/app/views/course/room_requests/_room_with_properties.php b/app/views/course/room_requests/_room_with_properties.php deleted file mode 100644 index 138803b5152..00000000000 --- a/app/views/course/room_requests/_room_with_properties.php +++ /dev/null @@ -1,8 +0,0 @@ -<label><?= _('Ausgewählter Raum') ?></label> -<? if ($selected_room): ?> - <input type="hidden" name="selected_room_id" - value="<?= htmlReady($selected_room->id) ?>"> - <?= htmlReady($selected_room->name) ?> -<? endif ?> - - diff --git a/app/views/course/room_requests/find_by_category.php b/app/views/course/room_requests/find_by_category.php deleted file mode 100644 index 5eade46fffe..00000000000 --- a/app/views/course/room_requests/find_by_category.php +++ /dev/null @@ -1,129 +0,0 @@ -<form method="post" name="room_request" class="default" - action="<?= $this->controller->link_for('course/room_requests/request_second_step/' . $request_id . '/' . $this->step) ?>" - <?= Request::isXhr() ? 'data-dialog="size=big"' : ''?>> - <input type="hidden" name="request_id" value="<?= htmlReady($request_id) ?>"> - <?= CSRFProtection::tokenTag() ?> - - - <?= $this->render_partial( - 'course/room_requests/_new_request_header') ?> - - <?= var_dump($_SESSION[$request_id]) ?> - <section class="resources-grid"> - <div> - <fieldset> - <legend><?= _('Wünschbare Eigenschaften') ?></legend> - - <? if ($available_room_categories): ?> - <label> - <?= _('Raumkategorie') ?> - <span class="flex-row"> - <select name="category_id" <?= $category ? 'disabled' : '' ?>> - <option value=""><?= _('bitte auswählen') ?></option> - <? foreach ($available_room_categories as $rc): ?> - <option value="<?= htmlReady($rc->id) ?>" - <?= ($_SESSION[$request_id]['room_category'] == $rc->id) - ? 'selected="selected"' - : '' ?>> - <?= htmlReady($rc->name) ?> - </option> - <? endforeach ?> - </select> - <? if ($category) : ?> - <?= Icon::create('refresh', Icon::ROLE_CLICKABLE, ['title' => _('alle Angaben zurücksetzen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'reset_category', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? else : ?> - <?= Icon::create('accept', Icon::ROLE_CLICKABLE, ['title' => _('Raumtyp auswählen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'select_properties', - 'value' => _('Raumtyp auswählen'), - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? endif ?> - </span> - </label> - <? endif ?> - - <!-- ROOM CATEGORY PROPERTIES --> - <? if ($available_properties) : ?> - <? foreach ($available_properties as $property) : ?> - <?= var_dump($property) ?> - <?= $property->toHtmlInput( - $selected_properties[$property->name], - 'selected_properties[' . htmlReady($property->name) . ']', - true, - false - ) ?> - <? endforeach ?> - <? endif ?> - - <label> - <?= _('Rüstzeit (in Minuten)') ?> - <input type="number" name="preparation_time" - value="<?= htmlReady($preparation_time) ?>" - min="0" max="<?= htmlReady($max_preparation_time) ?>"> - </label> - - <? if ($user_is_global_resource_admin) : ?> - <label> - <input type="checkbox" name="reply_lecturers" value="1" - <?= $reply_lecturers - ? 'checked="checked"' - : '' - ?>> - <?= _('Benachrichtigung bei Ablehnung der Raumanfrage auch an alle Lehrenden der Veranstaltung senden') ?> - </label> - <? endif ?> - - <label> - <?= _('Nachricht an die Raumvergabe') ?> - <textarea name="comment" cols="58" rows="4" - placeholder="<?= _('Weitere Wünsche oder Bemerkungen zur angefragten Raumbelegung') ?>"><?= htmlReady($comment) ?></textarea> - </label> - - </fieldset> - </div> - - <div> - <fieldset> - <legend><?= _('Raumsuche') ?></legend> - <label> - <?= _('Raumname') ?> - <span class="flex-row"> - <input type="text" name="room_name" value="<?= htmlReady($room_name) ?>"> - <?= Icon::create('search', Icon::ROLE_CLICKABLE)->asInput( - [ - 'name' => 'search_by_name', - 'class' => 'text-bottom', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? if ($room_name) : ?> - <?= Icon::create('refresh', Icon::ROLE_CLICKABLE, ['title' => _('alle Angaben zurücksetzen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'reset_category', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? endif?> - </span> - </label> - - </fieldset> - - </div> - </section> - - -<?= $this->render_partial('course/room_requests/_new_request_form_footer', ['step' => $step]) ?> diff --git a/app/views/course/room_requests/find_by_roomname.php b/app/views/course/room_requests/find_by_roomname.php deleted file mode 100644 index eadb0347dc5..00000000000 --- a/app/views/course/room_requests/find_by_roomname.php +++ /dev/null @@ -1,161 +0,0 @@ -<form method="post" name="room_request" class="default" - action="<?= $this->controller->link_for('course/room_requests/find_by_roomname/' . $request_id . '/' . $this->step) ?>" - <?= Request::isXhr() ? 'data-dialog="size=big"' : ''?>> - <input type="hidden" name="request_id" value="<?= htmlReady($request_id) ?>"> - <?= CSRFProtection::tokenTag() ?> - - - <?= $this->render_partial( - 'course/room_requests/_new_request_header') ?> - - <?= var_dump($_SESSION[$request_id]) ?> - <section class="resources-grid"> - <div> - <fieldset> - <legend><?= _('Wünschbare Eigenschaften') ?></legend> - - <? if ($step == 2) : ?> - <?= $this->render_partial('course/room_requests/_room_with_properties') ?> - <? endif ?> - - <? if ($available_room_categories): ?> - <label> - <?= _('Raumkategorie') ?> - <span class="flex-row"> - <select name="category_id" <?= $category ? 'disabled' : '' ?>> - <option value=""><?= _('bitte auswählen') ?></option> - <? foreach ($available_room_categories as $rc): ?> - <option value="<?= htmlReady($rc->id) ?>" - <?= ($selected_room->category_id == $rc->id) - ? 'selected="selected"' - : '' ?>> - <?= htmlReady($rc->name) ?> - </option> - <? endforeach ?> - </select> - <? if ($category) : ?> - <?= Icon::create('refresh', Icon::ROLE_CLICKABLE, ['title' => _('alle Angaben zurücksetzen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'reset_category', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? else : ?> - <?= Icon::create('accept', Icon::ROLE_CLICKABLE, ['title' => _('Raumtyp auswählen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'select_properties', - 'value' => _('Raumtyp auswählen'), - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? endif ?> - </span> - </label> - <? endif ?> - - <? if ($step == 2) : ?> - <!-- After choosing a category or room --> - <? if ($available_properties) : ?> - <? foreach ($available_properties as $property) : ?> - <?= $property->toHtmlInput( - $selected_properties[$property->name], - 'selected_properties[' . htmlReady($property->name) . ']', - true, - false - ) ?> - <? endforeach ?> - <? endif ?> - <label> - <?= _('Rüstzeit (in Minuten)') ?> - <input type="number" name="preparation_time" - value="<?= htmlReady($preparation_time) ?>" - min="0" max="<?= htmlReady($max_preparation_time) ?>"> - </label> - <? if ($user_is_global_resource_admin) : ?> - <label> - <input type="checkbox" name="reply_lecturers" value="1" - <?= $reply_lecturers - ? 'checked="checked"' - : '' - ?>> - <?= _('Benachrichtigung bei Ablehnung der Raumanfrage auch an alle Lehrenden der Veranstaltung senden') ?> - </label> - <? endif ?> - - <label> - <?= _('Nachricht an die Raumvergabe') ?> - <textarea name="comment" cols="58" rows="4" - placeholder="<?= _('Weitere Wünsche oder Bemerkungen zur angefragten Raumbelegung') ?>"><?= htmlReady($comment) ?></textarea> - </label> - <? endif ?> - - <? if (!$embedded) : ?> - </fieldset> - </div> - - <div> - <fieldset> - <legend><?= _('Raumsuche') ?></legend> - <label> - <?= _('Raumname') ?> - <span class="flex-row"> - <input type="text" name="room_name" value="<?= htmlReady($_SESSION[$request_id]['room_name']) ?>"> - <?= Icon::create('search', Icon::ROLE_CLICKABLE)->asInput( - [ - 'name' => 'search_by_name', - 'class' => 'text-bottom', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? if ($_SESSION[$request_id]['room_name']) : ?> - <?= Icon::create('refresh', Icon::ROLE_CLICKABLE, ['title' => _('alle Angaben zurücksetzen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'reset_category', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? endif?> - </span> - </label> - - <? if ($available_rooms) : ?> - <label><?= _('Passende Räume') ?> - <section class="selectbox"> - <? foreach ($available_rooms as $room): ?> - <div class="flex-row"> - <label class="horizontal"> - <?= $available_room_icons[$room->id] ?> - <input type="radio" name="selected_room_id" - data-activates="button[type='submit'][name='select_room']" - value="<?= htmlReady($room->id) ?>" - <? if ($_SESSION[$request_id]['room_id'] == $room->id) echo 'checked' ?>> - - > - <?= htmlReady(mb_substr($room->name, 0, 50)); ?> - <? if ($room->properties): ?> - <? $property_names = $room->getInfolabelPrperties() - ->pluck('fullname') ?> - <?= tooltipIcon(implode("\n", $property_names)) ?> - <? endif ?> - </label> - </div> - <? endforeach ?> - </section> - </label> - <? else : ?> - <?= MessageBox::info(_('Es wurden keine passenden Räume gefunden!')) ?> - <? endif ?> - - </fieldset> - - </div> - </section> - -<?= $this->render_partial('course/room_requests/_new_request_form_footer', ['step' => $step]) ?> -<? endif ?> diff --git a/app/views/course/room_requests/new_request.php b/app/views/course/room_requests/new_request.php deleted file mode 100644 index 9a47c87dc0e..00000000000 --- a/app/views/course/room_requests/new_request.php +++ /dev/null @@ -1,92 +0,0 @@ -<form method="post" name="room_request" class="default" - action="<?= $this->controller->link_for('course/room_requests/request_first_step/' . $request_id) ?>" - <?= Request::isXhr() ? 'data-dialog="size=big"' : ''?>> - <input type="hidden" name="request_id" value="<?= htmlReady($request_id) ?>"> - <?= CSRFProtection::tokenTag() ?> - - -<?= $this->render_partial( - 'course/room_requests/_new_request_header') ?> - -<?= var_dump($_SESSION[$request_id]) ?> - <br/> - <section class="resources-grid"> - <div> - <fieldset> - <legend><?= _('Wünschbare Eigenschaften') ?></legend> - - <? if ($available_room_categories): ?> - <label> - <?= _('Raumkategorie') ?> - <span class="flex-row"> - <select name="category_id" <?= $category ? 'disabled' : '' ?>> - <option value=""><?= _('bitte auswählen') ?></option> - <? foreach ($available_room_categories as $rc): ?> - <option value="<?= htmlReady($rc->id) ?>" - <?= ($_SESSION[$request_id]['room_category'] == $rc->id) - ? 'selected="selected"' - : '' ?>> - <?= htmlReady($rc->name) ?> - </option> - <? endforeach ?> - </select> - <? if ($category) : ?> - <?= Icon::create('refresh', Icon::ROLE_CLICKABLE, ['title' => _('alle Angaben zurücksetzen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'reset_category', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? else : ?> - <?= Icon::create('accept', Icon::ROLE_CLICKABLE, ['title' => _('Raumtyp auswählen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'search_by_category', - 'value' => _('Raumtyp auswählen'), - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? endif ?> - </span> - </label> - <? endif ?> - <? if (!$embedded) : ?> - </fieldset> - </div> - - <div> - <fieldset> - <legend><?= _('Raumsuche') ?></legend> - <label> - <?= _('Raumname') ?> - <span class="flex-row"> - <input type="text" name="room_name" value="<?= htmlReady($_SESSION[$request_id]['room_name']) ?>"> - <?= Icon::create('search', Icon::ROLE_CLICKABLE)->asInput( - [ - 'name' => 'search_by_name', - 'class' => 'text-bottom', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? if ($room_name) : ?> - <?= Icon::create('refresh', Icon::ROLE_CLICKABLE, ['title' => _('alle Angaben zurücksetzen')])->asInput( - [ - 'type' => 'image', - 'class' => 'text-bottom', - 'name' => 'reset_name', - 'style' => 'margin-left: 0.2em; margin-top: 0.6em;' - ] - ) ?> - <? endif?> - </span> - </label> - - </fieldset> - - </div> -</section> -<?= $this->render_partial('course/room_requests/_new_request_form_footer', ['step' => $step]) ?> -<? endif ?> diff --git a/app/views/course/room_requests/request_select_room.php b/app/views/course/room_requests/request_select_room.php index 097e136a1e7..37e28c3606d 100644 --- a/app/views/course/room_requests/request_select_room.php +++ b/app/views/course/room_requests/request_select_room.php @@ -26,8 +26,7 @@ <div> <? if ($available_rooms) : ?> <section class="contentbox"> - <header><h1><?= _('Passende Räume') ?> <?= count($available_rooms) ?> - </h1></header> + <header><h1><?= _('Passende Räume') ?></h1></header> <section class="selectbox"> <fieldset> <? foreach ($available_rooms as $room): ?> diff --git a/app/views/course/timesrooms/_roomRequest.php b/app/views/course/timesrooms/_roomRequest.php index f83e47e3a2f..3eecb3c46b1 100644 --- a/app/views/course/timesrooms/_roomRequest.php +++ b/app/views/course/timesrooms/_roomRequest.php @@ -1,3 +1,8 @@ +<?php +$global_requests = $course->room_requests->filter(function (RoomRequest $request) { + return $request->closed < 2 && !$request->termin_id; +}); +?> <section class="contentbox"> <header> <h1> @@ -9,7 +14,7 @@ _('Hier können Sie für die gesamte Veranstaltung, also für alle regelmäßigen und unregelmäßigen Termine, ' . 'eine Raumanfrage erstellen.') ) ?> - <a class="link-add" href="<?= $controller->url_for('course/room_requests/new_request', + <a class="link-add" href="<?= $controller->url_for('course/room_requests/request_start', [ 'cid' => $course->id, 'range_str' => 'course', @@ -24,133 +29,13 @@ </nav> </header> - <?php - echo $flash['message']; - ?> - - <? if (count($room_requests)) : ?> <section> - <table class="default"> - <colgroup> - <col style="width: 40%"> - <col style="width: 20%"> - <col> - <col style="width: 50px"> - </colgroup> - <thead> - <tr> - <th><?= _('Art der Anfrage') ?></th> - <th><?= _('Anfragender') ?></th> - <th><?= _('Bearbeitungsstatus') ?></th> - <th></th> - </tr> - </thead> - <tbody> - <? foreach ($room_requests as $rr): ?> - <tr> - <td> - <?= htmlReady($rr->getTypeString(), 1, 1) ?> - </td> - <td> - <?= htmlReady($rr->user ? $rr->user->getFullName() : '') ?> - </td> - <td> - <?= htmlReady($rr->getStatusText()) ?> - </td> - <td class="actions"> - <a class="load-in-new-row" - href="<?= $controller->link_for('course/room_requests/info/' . $rr->id) ?>"> - <?= Icon::create( - 'info', - Icon::ROLE_CLICKABLE, - [ - 'title' => _('Weitere Informationen einblenden') - ] - ) ?> - </a> - <? $params = [] ?> - <? $dialog = []; ?> - <? if (Request::isXhr()) : ?> - <? $params['asDialog'] = true; ?> - <? $dialog['data-dialog'] = 'size=big' ?> - <? endif ?> - - <? $actionMenu = ActionMenu::get()->setContext($rr->getTypeString()) ?> - <? $actionMenu->addLink( - $controller->url_for('course/room_requests/request_summary/' . $rr->id, ['clear_cache' => 1]), - _('Diese Anfrage bearbeiten'), - Icon::create( - 'edit', - Icon::ROLE_CLICKABLE, - [ - 'title' => _('Diese Anfrage bearbeiten') - ] - ), - $dialog - ) ?> - - <?php - if ($rr->room && !$user_has_permissions) { - $user_has_permissions = $rr->room->userHasPermission($current_user, 'admin'); - } - ?> - - <? if ($user_has_permissions && (int)$rr->closed === 0): ?> - <? $actionMenu->addLink( - URLHelper::getURL( - 'dispatch.php/resources/room_request/resolve/' . $rr->id, - [ - 'reload-on-close' => 1, - 'single-request' => 1 - ] - ), - _('Diese Anfrage selbst auflösen'), - Icon::create( - 'admin', - Icon::ROLE_CLICKABLE, - [ - 'title' => _('Diese Anfrage selbst auflösen') - ] - ), - ['data-dialog' => '1'] - ) ?> - <? endif ?> - <? $actionMenu->addLink( - $controller->url_for('course/room_requests/delete/' . $rr->id), - _('Diese Anfrage löschen'), - Icon::create( - 'trash', - Icon::ROLE_CLICKABLE, - [ - 'title' => _('Diese Anfrage löschen') - ] - ) - ) ?> - <?= $actionMenu->render() ?> - </td> - </tr> - <? endforeach ?> - <? if ($request_id == $rr->id) : ?> - <tr> - <td colspan="4"> - <?= $this->render_partial('course/room_requests/_request.php', ['request' => $rr]); ?> - </td> - </tr> - <? endif ?> - </tbody> - </table> + <? if (count($global_requests) > 0): ?> + <p><?= _('Für diese Veranstaltung liegt eine offene Raumanfrage vor') ?></p> + <?= Studip\LinkButton::create(_('Raumanfragen anzeigen'), + URLHelper::getURL('dispatch.php/course/room_requests/index/' . $course->getId())) ?> + <? else: ?> + <p><?= _('Keine Raumanfrage vorhanden') ?></p> + <? endif ?> </section> - <? else : ?> - <?= MessageBox::info(_('Zu dieser Veranstaltung sind noch keine Raumanfragen vorhanden.')) ?> - <? endif ?> - - <? if (Request::isXhr()) : ?> - <div data-dialog-button> - <?= \Studip\LinkButton::createEdit( - _('Neue Raumanfrage erstellen'), - $controller->url_for('course/room_requests/new/' . $course_id, $url_params), - ['data-dialog' => 'size=big'] - ) ?> - </div> -<? endif ?> </section> diff --git a/lib/modules/CoreAdmin.class.php b/lib/modules/CoreAdmin.class.php index 46d797cf596..b307b6f21bf 100644 --- a/lib/modules/CoreAdmin.class.php +++ b/lib/modules/CoreAdmin.class.php @@ -63,15 +63,12 @@ class CoreAdmin extends CorePlugin implements StudipModule $item->setDescription(_('Regelmäßige Veranstaltungszeiten, Einzeltermine und Ortsangaben ändern.')); $navigation->addSubNavigation('dates', $item); - // TODO remove whole navigation entry - /* if (Config::get()->RESOURCES_ENABLE && Config::get()->RESOURCES_ALLOW_ROOM_REQUESTS) { $item = new Navigation(_('Raumanfragen'), 'dispatch.php/course/room_requests/index/' . $course_id); $item->setImage(Icon::create('resources')); $item->setDescription(_('Raumanfragen zu Veranstaltungszeiten verwalten.')); $navigation->addSubNavigation('room_requests', $item); } - */ $item = new Navigation(_('Zugangsberechtigungen'), 'dispatch.php/course/admission'); $item->setImage(Icon::create('lock-locked')); -- GitLab