From 58886076fe3ca3ad91c539f4bcfccde01cc430df Mon Sep 17 00:00:00 2001 From: Emmi Rehn Date: Fri, 10 Mar 2023 08:30:41 +0200 Subject: [PATCH 1/7] Change buefy.dialogs to csc-ui modals --- .../src/common/globalFunctions.js | 10 ++ swift_browser_ui_frontend/src/common/store.js | 8 + .../src/components/ContainerTable.vue | 29 +--- .../src/components/Containers.vue | 10 ++ .../src/components/DeleteModal.vue | 160 ++++++++++++++++++ .../src/components/ObjectDeleteButton.vue | 77 --------- .../src/components/ObjectTable.vue | 60 +------ swift_browser_ui_frontend/src/entries/main.js | 10 ++ .../src/pages/BrowserPage.vue | 5 + 9 files changed, 209 insertions(+), 160 deletions(-) create mode 100644 swift_browser_ui_frontend/src/components/DeleteModal.vue delete mode 100644 swift_browser_ui_frontend/src/components/ObjectDeleteButton.vue diff --git a/swift_browser_ui_frontend/src/common/globalFunctions.js b/swift_browser_ui_frontend/src/common/globalFunctions.js index 70eaa2b53..1f33938f3 100644 --- a/swift_browser_ui_frontend/src/common/globalFunctions.js +++ b/swift_browser_ui_frontend/src/common/globalFunctions.js @@ -30,6 +30,16 @@ 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); + } +} + 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 8f62eda2a..a7fba7359 100644 --- a/swift_browser_ui_frontend/src/common/store.js +++ b/swift_browser_ui_frontend/src/common/store.js @@ -54,6 +54,8 @@ const store = new Vuex.Store({ openEditTagsModal: false, selectedObjectName: "", openCopyFolderModal: false, + openDeleteModal: false, + deletableObjects: [], isFolderCopied: false, sourceProjectId: "", uploadAbort: undefined, @@ -239,6 +241,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 7a5cdf006..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,34 +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) { - this.$buefy.toast.open({ - message: this.$t("message.container_ops.deleteSuccess"), - type: "is-success", - }); - 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/Containers.vue b/swift_browser_ui_frontend/src/components/Containers.vue index c46ec5b5e..31eda984d 100644 --- a/swift_browser_ui_frontend/src/components/Containers.vue +++ b/swift_browser_ui_frontend/src/components/Containers.vue @@ -20,6 +20,7 @@ :conts="renderingContainers" :disable-pagination="hidePagination" :hide-tags="hideTags" + :key="tableKey" /> @@ -52,6 +53,7 @@ export default { abortController: null, containers: [], renderingContainers: [], + tableKey: 1, }; }, computed: { @@ -64,6 +66,9 @@ export default { }, set() {}, }, + openDeleteModal() { + return this.$store.state.openDeleteModal; + }, isFolderCopied() { return this.$store.state.isFolderCopied; }, @@ -80,6 +85,11 @@ export default { this.fetchContainers(); } }, + openDeleteModal: function () { + if (!this.openDeleteModal) { + this.tableKey++; + } + }, currentProject: function() { const savedDisplayOptions = this.currentProject.displayOptions; if (savedDisplayOptions) { 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..399c53119 --- /dev/null +++ b/swift_browser_ui_frontend/src/components/DeleteModal.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/swift_browser_ui_frontend/src/components/ObjectDeleteButton.vue b/swift_browser_ui_frontend/src/components/ObjectDeleteButton.vue deleted file mode 100644 index 3c8963e2b..000000000 --- a/swift_browser_ui_frontend/src/components/ObjectDeleteButton.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - diff --git a/swift_browser_ui_frontend/src/components/ObjectTable.vue b/swift_browser_ui_frontend/src/components/ObjectTable.vue index 6dc7f9c25..306a97fb7 100644 --- a/swift_browser_ui_frontend/src/components/ObjectTable.vue +++ b/swift_browser_ui_frontend/src/components/ObjectTable.vue @@ -107,17 +107,17 @@ :checked-rows="checkedRows" @change-folder="changeFolder" @selected-rows="handleSelection" - @delete-object="confirmDelete([$event])" + @delete-object="toggleDeleteModal([$event])" />