From 8dc5b31fe8bd343277fcc32d6832b794eeaa6ea5 Mon Sep 17 00:00:00 2001
From: Sirieam Hunke <shunke@hunke.vulcanus.internal>
Date: Wed, 4 Jun 2025 10:35:31 +0000
Subject: [PATCH] Update: Tooltip for role based disabled create action

---
 src/modules/project/i18n/de.ts            |  2 ++
 src/modules/project/i18n/en.ts            |  2 ++
 src/modules/project/pages/ProjectPage.vue | 31 ++++++++++++++++++++---
 3 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/src/modules/project/i18n/de.ts b/src/modules/project/i18n/de.ts
index c2f3cd25..8b5e4843 100644
--- a/src/modules/project/i18n/de.ts
+++ b/src/modules/project/i18n/de.ts
@@ -113,6 +113,8 @@ export default {
       tooltipDisabled:
         "Fügen Sie bitte {linkToUserProfile} Ihre E-Mail Adresse hinzu und verfizieren Sie diese, um eine neue Ressource anlegen zu können.",
       tooltipHere: "hier",
+      tooltipCreateAction:
+        "Mit Ihrer aktuellen Rolle haben Sie keine Berechtigung, dieses Element zu erstellen.",
       members: {
         toProjectMembers: "Mitgliederverwaltung...",
 
diff --git a/src/modules/project/i18n/en.ts b/src/modules/project/i18n/en.ts
index 3e668b67..5e3f12b6 100644
--- a/src/modules/project/i18n/en.ts
+++ b/src/modules/project/i18n/en.ts
@@ -107,6 +107,8 @@ export default {
       tooltipDisabled:
         "Please add and verify your email address {linkToUserProfile} to create a new resource.",
       tooltipHere: "here",
+      tooltipCreateAction:
+        "You don’t have permission to create this item with your current role.",
       members: {
         toProjectMembers: "Manage Members....",
 
diff --git a/src/modules/project/pages/ProjectPage.vue b/src/modules/project/pages/ProjectPage.vue
index 0bc7feb6..ca6b054e 100644
--- a/src/modules/project/pages/ProjectPage.vue
+++ b/src/modules/project/pages/ProjectPage.vue
@@ -33,6 +33,18 @@
                     </template>
                   </i18n-t>
                 </b-tooltip>
+                <b-tooltip
+                  v-if="isGuest || isMember"
+                  id="resourceActionTooltip"
+                  target="addResource"
+                  :delay="{ show: 0, hide: 2000 }"
+                >
+                  <i18n-t
+                    scope="global"
+                    keypath="page.project.tooltipCreateAction"
+                  >
+                  </i18n-t>
+                </b-tooltip>
 
                 <!-- Content Cards -->
                 <CoscineCard
@@ -72,12 +84,25 @@
               <b-card-group id="card-deck" deck>
                 <CoscineCard
                   v-if="!isLoadingRoles"
+                  id="addSubproject"
                   :title="$t('page.listProjects.addProject')"
                   type="create"
                   :to="toCreateSubProject()"
                   :disabled="isGuest || isMember"
                   @open-card="openCreateProject($event)"
                 />
+                <b-tooltip
+                  v-if="isGuest || isMember"
+                  id="subProjectActionTooltip"
+                  target="addSubproject"
+                  :delay="{ show: 0, hide: 2000 }"
+                >
+                  <i18n-t
+                    scope="global"
+                    keypath="page.project.tooltipCreateAction"
+                  >
+                  </i18n-t>
+                </b-tooltip>
                 <!-- Loading Card Placeholder -->
                 <CoscineCard
                   v-if="!subProjects || isLoadingRoles"
@@ -214,7 +239,7 @@ export default defineComponent({
         this.$router.push(to);
       } else {
         console.error(
-          `Slug for ${project.displayName} is possibly undefined...`,
+          `Slug for ${project.displayName} is possibly undefined...`
         );
       }
     },
@@ -225,7 +250,7 @@ export default defineComponent({
         this.$router.push(to);
       } else {
         console.warn(
-          `Resource ${resource.displayName} is currently in maintenance mode and cannot be accessed...`,
+          `Resource ${resource.displayName} is currently in maintenance mode and cannot be accessed...`
         );
       }
     },
@@ -236,7 +261,7 @@ export default defineComponent({
         this.$router.push(to);
       } else {
         console.warn(
-          `Resource ${resource.displayName} is currently in maintenance mode and cannot be accessed...`,
+          `Resource ${resource.displayName} is currently in maintenance mode and cannot be accessed...`
         );
       }
     },
-- 
GitLab