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 @@ + + + + + \ 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])" />