From 657105abb294e71ffb01b89b1e828a9655401065 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20G=C3=B6bel?= <dgoebel@techfak.uni-bielefeld.de>
Date: Tue, 27 Sep 2022 10:32:10 +0200
Subject: [PATCH] Add delete modal to confirm deletion of permission

#13
---
 src/components/Modals/PermissionModal.vue | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/components/Modals/PermissionModal.vue b/src/components/Modals/PermissionModal.vue
index cafe98c..a470e2f 100644
--- a/src/components/Modals/PermissionModal.vue
+++ b/src/components/Modals/PermissionModal.vue
@@ -1,6 +1,7 @@
 <script setup lang="ts">
 import { onMounted, reactive, watch, ref, computed } from "vue";
 import BootstrapModal from "@/components/Modals/BootstrapModal.vue";
+import DeleteModal from "@/components/Modals/DeleteModal.vue";
 import { Modal } from "bootstrap";
 import dayjs from "dayjs";
 import type {
@@ -248,7 +249,7 @@ function formSubmit() {
  * @param bucketName Bucket to delete
  * @param uid ID of grantee of the permission
  */
-function deletePermission(bucketName: string, uid: string) {
+function confirmedDeletePermission(bucketName: string, uid: string) {
   if (!formState.loading) {
     formState.loading = true;
     BucketPermissionsService.bucketPermissionsDeletePermissionForBucket(
@@ -280,6 +281,15 @@ onMounted(() => {
 </script>
 
 <template>
+  <DeleteModal
+    :modalID="'delete-permission-modal' + randomIDSuffix"
+    modal-label="some-label"
+    object-name-delete="permission"
+    :back-modal-id="modalID"
+    @confirm-delete="
+      confirmedDeletePermission(permission.bucket_name, permission.uid)
+    "
+  />
   <div class="toast-container position-fixed top-0 end-0 p-3">
     <div
       role="alert"
@@ -329,7 +339,8 @@ onMounted(() => {
         fill="currentColor"
         class="me-2"
         :class="{ 'delete-icon': !formState.loading }"
-        @click="deletePermission(permission.bucket_name, permission.uid)"
+        data-bs-toggle="modal"
+        :data-bs-target="'#delete-permission-modal' + randomIDSuffix"
       />
       <bootstrap-icon
         v-if="formState.readonly && props.editable"
-- 
GitLab