From 368c7ec74a94cadee287d42a00c812130928e9eb Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms Date: Mon, 15 Apr 2024 16:07:15 +0200 Subject: rework delete action, re #4017 --- app/controllers/course/room_requests.php | 11 +- app/views/course/room_requests/index.php | 16 ++- app/views/course/timesrooms/_roomRequest.php | 172 ++++++++++++++------------- 3 files changed, 101 insertions(+), 98 deletions(-) diff --git a/app/controllers/course/room_requests.php b/app/controllers/course/room_requests.php index 166bb84..22985fe 100644 --- a/app/controllers/course/room_requests.php +++ b/app/controllers/course/room_requests.php @@ -18,6 +18,8 @@ class Course_RoomRequestsController extends AuthenticatedController { + protected $_autobind = true; + /** * Common tasks for all actions * @@ -618,16 +620,12 @@ class Course_RoomRequestsController extends AuthenticatedController /** * delete one room request */ - public function delete_action($request_id) + public function delete_action(RoomRequest $request) { - $request = RoomRequest::find($request_id); - if (!$request) { - throw new Trails\Exception(403); - } if (Request::isGet()) { PageLayout::postQuestion(sprintf( _('Möchten Sie die Raumanfrage "%s" löschen?'), - htmlReady($request->getTypeString())), $this->url_for('course/room_requests/delete/' . $request_id)); + htmlReady($request->getTypeString())), $this->url_for('course/room_requests/delete/' . $request->id)); } else { CSRFProtection::verifyUnsafeRequest(); if (Request::submitted('yes')) { @@ -636,6 +634,7 @@ class Course_RoomRequestsController extends AuthenticatedController } } } + $this->redirect('course/timesrooms/index'); } diff --git a/app/views/course/room_requests/index.php b/app/views/course/room_requests/index.php index 0b8fec2..1b3707c 100644 --- a/app/views/course/room_requests/index.php +++ b/app/views/course/room_requests/index.php @@ -92,16 +92,14 @@ echo $flash['message']; ['data-dialog' => '1'] ) ?> - addLink( - $controller->url_for('course/room_requests/delete/' . $rr->id), + addButton( + 'delete', _('Diese Anfrage löschen'), - Icon::create( - 'trash', - Icon::ROLE_CLICKABLE, - [ - 'title' => _('Diese Anfrage löschen') - ] - ) + Icon::create('trash'), + [ + 'data-confirm' => sprintf(_('Möchten Sie die Raumanfrage "%s" löschen?'), $rr->getTypeString()), + 'formaction' => $controller->deleteURL($rr), + ] ) ?> render() ?> diff --git a/app/views/course/timesrooms/_roomRequest.php b/app/views/course/timesrooms/_roomRequest.php index ffa72b0..df85a56 100644 --- a/app/views/course/timesrooms/_roomRequest.php +++ b/app/views/course/timesrooms/_roomRequest.php @@ -28,93 +28,99 @@
- - - - - - - - - - - - - - - - - - - - - - + + + id) : ?> + + + + + +
- getTypeString(), 1, 1) ?> - - user ? $rr->user->getFullName() : '') ?> - - getStatusText()) ?> - - - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + - - - id) : ?> - - - - - -
+ getTypeString(), 1, 1) ?> + + user ? $rr->user->getFullName() : '') ?> + + getStatusText()) ?> + + + + + + + + - setContext($rr->getTypeString()) ?> - addLink( - $controller->url_for('course/room_requests/request_show_summary/' . $rr->id, ['clear_cache' => 1]), - _('Diese Anfrage bearbeiten'), - Icon::create('edit'), - ['title' => _('Diese Anfrage bearbeiten'), 'data-dialog' => 'size=big'] - ) ?> + setContext($rr->getTypeString()) ?> + addLink( + $controller->url_for('course/room_requests/request_show_summary/' . $rr->id, ['clear_cache' => 1]), + _('Diese Anfrage bearbeiten'), + Icon::create('edit'), + ['title' => _('Diese Anfrage bearbeiten'), 'data-dialog' => 'size=big'] + ) ?> - room && !$user_has_permissions) { - $user_has_permissions = $rr->room->userHasPermission($current_user, 'admin'); - } - ?> + room && !$user_has_permissions) { + $user_has_permissions = $rr->room->userHasPermission($current_user, 'admin'); + } + ?> - closed): ?> - 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'), - ['title' => _('Diese Anfrage selbst auflösen'), 'data-dialog' => ''] + closed): ?> + 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'), + ['title' => _('Diese Anfrage selbst auflösen'), 'data-dialog' => ''] + ) ?> + + addButton( + 'delete', + _('Diese Anfrage löschen'), + Icon::create('trash'), + [ + 'data-confirm' => sprintf(_('Möchten Sie die Raumanfrage "%s" löschen?'), $rr->getTypeString()), + 'formaction' => $controller->url_for('course/room_requests/delete', $rr), + ] ) ?> - - addLink( - $controller->url_for('course/room_requests/delete/' . $rr->id), - _('Diese Anfrage löschen'), - Icon::create('trash'), - ['title' => _('Diese Anfrage löschen')] - ) ?> - render() ?> -
- render_partial('course/room_requests/_request.php', ['request' => $rr]); ?> -
+ render() ?> +
+ render_partial('course/room_requests/_request.php', ['request' => $rr]); ?> +
+
-- cgit v1.0