From 833226f44f37c7a57e97ba770f3368422c80394d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20B=C3=B6ttcher?= <c.boettcher@fz-juelich.de>
Date: Wed, 16 Aug 2023 11:34:01 +0200
Subject: [PATCH] add bulk deletion functionality to frontend

---
 frontend/js/apicalls.js                       | 13 +++++++++++++
 frontend/templates/storage_content.html.jinja |  4 ++++
 2 files changed, 17 insertions(+)

diff --git a/frontend/js/apicalls.js b/frontend/js/apicalls.js
index f31a887..2ff84ce 100644
--- a/frontend/js/apicalls.js
+++ b/frontend/js/apicalls.js
@@ -273,6 +273,7 @@ async function setDatasetView() {
     $('#modifyDatasetButtonGroup').hide();
     $('#filterForm').hide();
     $('#pagingBar').hide();
+    $('#deleteButtonDiv').hide();
     if (window.sessionStorage.auth_token) {
         $('#modifyDatasetButtonGroup').show();
     }
@@ -450,11 +451,13 @@ async function showListingOrSingleDataset() {
             $('#addNewDatasetForm').show();
             $('#filterForm').show();
             $('#pagingBar').show();
+            $('#deleteButtonDiv').show();
         }
         listDatasets(getType(), getFilterSearch(), getFilterName(), getFilterUrl(), getFilterKeys(), getPage());
     } else if (getId() == "new") {
         $('#datasetListTable').hide();
         $('#pagingBar').hide();
+        $('#deleteButtonDiv').hide();
         $('#storageTypeChooser').hide();
         $('#datasetViewTable').show();
         $('#filterForm').hide();
@@ -538,6 +541,16 @@ function deleteMultipleDatasets(oids, datatype) {
     disableMetadataButtons();
 }
 
+function deleteMultipleButtonPressed() {
+    // collect list of oids
+    oids = collectDeleteOIDs();
+    datatype = getType()
+    // query if user is sure to delete X datasets
+    if (confirm("Delete " + oids.length +  " elements of the type " + datatype + "?")) {
+        deleteMultipleDatasets(oids, datatype);
+    }
+}
+
 function editButtonPressed() {
     // make all inputfields editable, enable save button, disable edit button
     enableButtons(true, false, true);
diff --git a/frontend/templates/storage_content.html.jinja b/frontend/templates/storage_content.html.jinja
index e010d1a..59066e5 100644
--- a/frontend/templates/storage_content.html.jinja
+++ b/frontend/templates/storage_content.html.jinja
@@ -101,6 +101,10 @@
         </table>
       </div>
 
+      <div id ="deleteButtonDiv">
+        <button type="button" class="btn btn-danger" onclick="deleteMultipleButtonPressed()">Delete Selected Datasets</button>
+      </div>
+
       <div class="btn-group" role="group" id="modifyDatasetButtonGroup">
         <button type="button" class="btn btn-success" disabled id="button-save" onclick="saveButtonPressed()">Save</button>
         <button type="button" class="btn btn-primary" id="button-edit" onclick="editButtonPressed()">Edit</button>
-- 
GitLab