diff --git a/CHANGELOG.md b/CHANGELOG.md
index a1b0af463..b942a3532 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -67,6 +67,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- (GL #944) Replace buefy b-select with c-select from `csc-ui`
- (GL #944) Replace buefy b-loading with c-loader from `csc-ui` and remove unused b-loading
- (GL #944) Replace buefy b-table with c-data-table from `csc-ui`
+- (GL #944) Replace buefy dialogs with c-modal from `csc-ui`
### Fixed
diff --git a/swift_browser_ui_frontend/src/common/globalFunctions.js b/swift_browser_ui_frontend/src/common/globalFunctions.js
index ca285b3a0..9731a26f3 100644
--- a/swift_browser_ui_frontend/src/common/globalFunctions.js
+++ b/swift_browser_ui_frontend/src/common/globalFunctions.js
@@ -31,6 +31,17 @@ export function toggleCopyFolderModal(folderName, sourceProjectId) {
modifyBrowserPageStyles();
}
+export function toggleDeleteModal(objects, containerName) {
+ store.commit("toggleDeleteModal", true);
+ if (objects) {
+ store.commit("setDeletableObjects", objects);
+ }
+ if (containerName) {
+ store.commit("setFolderName", containerName);
+ }
+ modifyBrowserPageStyles();
+}
+
export function modifyBrowserPageStyles() {
const element = document.getElementById("mainContainer");
element.classList.toggle("mainContainer-additionalStyles");
diff --git a/swift_browser_ui_frontend/src/common/store.js b/swift_browser_ui_frontend/src/common/store.js
index c04a68570..0eda9d651 100644
--- a/swift_browser_ui_frontend/src/common/store.js
+++ b/swift_browser_ui_frontend/src/common/store.js
@@ -52,6 +52,8 @@ const store = new Vuex.Store({
openEditTagsModal: false,
selectedObjectName: "",
openCopyFolderModal: false,
+ openDeleteModal: false,
+ deletableObjects: [],
isFolderCopied: false,
sourceProjectId: "",
uploadAbort: undefined,
@@ -231,6 +233,12 @@ const store = new Vuex.Store({
toggleCopyFolderModal(state, payload) {
state.openCopyFolderModal = payload;
},
+ toggleDeleteModal(state, payload) {
+ state.openDeleteModal = payload;
+ },
+ setDeletableObjects(state, payload) {
+ state.deletableObjects = payload;
+ },
setFolderCopiedStatus(state, payload) {
state.isFolderCopied = payload;
},
diff --git a/swift_browser_ui_frontend/src/components/ContainerTable.vue b/swift_browser_ui_frontend/src/components/ContainerTable.vue
index 7f613f7f7..0404a4d23 100644
--- a/swift_browser_ui_frontend/src/components/ContainerTable.vue
+++ b/swift_browser_ui_frontend/src/components/ContainerTable.vue
@@ -31,8 +31,8 @@ import {
getAccessDetails,
toggleCopyFolderModal,
modifyBrowserPageStyles,
+ toggleDeleteModal,
} from "@/common/globalFunctions";
-import {swiftDeleteContainer} from "@/common/api";
export default {
name: "ContainerTable",
@@ -397,35 +397,9 @@ export default {
+ container,
);
} else {
- this.$buefy.dialog.confirm({
- title: this.$t("message.container_ops.deleteConfirm"),
- message: this.$t("message.container_ops.deleteConfirmMessage"),
- confirmText: this.$t("message.container_ops.deleteConfirm"),
- type: "is-danger",
- hasIcon: true,
- onConfirm: () => {this.deleteContainer(container);},
- });
+ toggleDeleteModal(null, container);
}
},
- deleteContainer: function(container) {
- document.querySelector("#container-toasts").addToast(
- { progress: false,
- type: "success",
- message: this.$t("message.container_ops.deleteSuccess")},
- );
- const projectID = this.$store.state.active.id;
- swiftDeleteContainer(
- projectID,
- container,
- ).then(async () => {
- await this.$store.state.db.containers
- .where({
- projectID,
- name: container,
- })
- .delete();
- });
- },
handlePaginationText() {
this.paginationOptions.textOverrides = this.locale === "fi"
? this.paginationTextOverrides
diff --git a/swift_browser_ui_frontend/src/components/DeleteModal.vue b/swift_browser_ui_frontend/src/components/DeleteModal.vue
new file mode 100644
index 000000000..6e532cd7f
--- /dev/null
+++ b/swift_browser_ui_frontend/src/components/DeleteModal.vue
@@ -0,0 +1,164 @@
+
+
+
+
+ {{ title }}
+
+
+ {{ message }}
+
+
+
+ {{ $t("message.cancel") }}
+
+
+ {{ confirmText }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/swift_browser_ui_frontend/src/components/ObjectTable.vue b/swift_browser_ui_frontend/src/components/ObjectTable.vue
index a73dd0bf5..245a83d1e 100644
--- a/swift_browser_ui_frontend/src/components/ObjectTable.vue
+++ b/swift_browser_ui_frontend/src/components/ObjectTable.vue
@@ -110,7 +110,7 @@
:checked-rows="checkedRows"
@change-folder="changeFolder"
@selected-rows="handleSelection"
- @delete-object="confirmDelete([$event])"
+ @delete-object="toggleDeleteModal([$event])"
/>