From c246c15b42d29bff4fd05d8a98cdcf1dc5782baf Mon Sep 17 00:00:00 2001
From: David Siegfried <david.siegfried@uni-vechta.de>
Date: Sat, 11 Mar 2023 12:08:39 +0000
Subject: [PATCH] add missing action-menu, closes #2342

Closes #2342

Merge request studip/studip!1531
---
 .../resources/_common/_resource_tree_item.php | 51 +++++++++++++++++--
 1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/app/views/resources/_common/_resource_tree_item.php b/app/views/resources/_common/_resource_tree_item.php
index a3db8665b77..504226c4f97 100644
--- a/app/views/resources/_common/_resource_tree_item.php
+++ b/app/views/resources/_common/_resource_tree_item.php
@@ -1,15 +1,60 @@
 <?php
 $children     = $resource->children;
 $has_children = count($children) > 0;
+$current_user_is_resource_admin = $resource->userHasPermission(User::findCurrent(), 'admin');
+$current_user_is_resource_autor = $resource->userHasPermission(User::findCurrent(), 'autor');
+$current_user_is_resource_tutor = $resource->userHasPermission(User::findCurrent(), 'tutor');
+$booking_plan_is_visible        = $resource->bookingPlanVisibleForUser(User::findCurrent());
 ?>
 <article class="studip <?= $has_children ? 'toggle' : ((string)$resource->description === '' ? 'empty' : '') ?> <?= $open ? 'open' : '' ?>">
     <header>
         <h1>
             <a href="#"><?= htmlReady($resource->getFullName()) ?></a>
         </h1>
-        <a href="<?= $resource->getActionLink('show') ?>" data-dialog>
-            <?= Icon::create('info-circle') ?>
-        </a>
+        <?= ActionMenu::get()
+            ->addLink(
+                $resource->getActionURL('show'),
+                _('Informationen anzeigen'),
+                Icon::create('info-circle'),
+                ['data-dialog' => 'sitze=auto']
+            )
+            ->condition($current_user_is_resource_admin)
+            ->addLink(
+                $resource->getActionURL('edit'),
+                _('Bearbeiten'),
+                Icon::create('edit'),
+                ['data-dialog' => 'size=auto']
+            )
+            ->condition($current_user_is_resource_admin)
+            ->addLink(
+                $resource->getActionURL('permissions'),
+                _('Rechte bearbeiten'),
+                Icon::create('roles'),
+                ['data-dialog' => 'size=auto']
+            )
+            ->conditionAll(($resource instanceof Room && $current_user_is_resource_autor) || $booking_plan_is_visible)
+            ->addLink(
+                $resource->getActionURL('booking_plan'),
+                _('Wochenbelegung'),
+                Icon::create('timetable'),
+                ['target' => '_blank']
+            )
+            ->addLink(
+                $resource->getActionURL('semester_plan'),
+                _('Semesterbelegung'),
+                Icon::create('timetable'),
+                ['target' => '_blank']
+            )
+            ->conditionAll(null)
+            ->condition($resource instanceof Room && $current_user_is_resource_tutor && $resource->requestable)
+            ->addLink(
+                $resource->getActionURL('request_list'),
+                _('Raumanfragen anzeigen'),
+                Icon::create('room-request'),
+                ['target' => '_blank']
+            )
+            ->render();
+        ?>
     </header>
     <? if ($has_children) : ?>
         <section>
-- 
GitLab