diff --git a/webapp/components/Modal.vue b/webapp/components/Modal.vue index fd11414d0..0db4b74fd 100644 --- a/webapp/components/Modal.vue +++ b/webapp/components/Modal.vue @@ -19,8 +19,8 @@ v-if="open === 'delete'" :id="data.resource.id" :type="data.type" - :confirmCallback="data.callbacks.confirm" - :cancelCallback="!!data.callbacks.cancel ? data.callbacks.cancel : null" + :confirm-callback="data.callbacks.confirm" + :cancel-callback="!!data.callbacks.cancel ? data.callbacks.cancel : null" :name="name" @close="close" /> diff --git a/webapp/components/Modal/DeleteModal.vue b/webapp/components/Modal/DeleteModal.vue index ace5d9097..8f6c6400b 100644 --- a/webapp/components/Modal/DeleteModal.vue +++ b/webapp/components/Modal/DeleteModal.vue @@ -84,9 +84,13 @@ export default { }, 1000) }, async confirm() { + console.log('"confirm" was reached !!!') this.loading = true try { + console.log('"confirmCallback" is: ', this.confirmCallback) await this.confirmCallback() + // this.confirmCallback() + console.log('"confirmCallback" was exec !!!') this.success = true setTimeout(() => { this.isOpen = false diff --git a/webapp/mixins/Post.js b/webapp/mixins/Post.js index 87c1461cf..69c1b5426 100644 --- a/webapp/mixins/Post.js +++ b/webapp/mixins/Post.js @@ -2,7 +2,7 @@ import gql from 'graphql-tag' export default { methods: { - async deletePostCallback() { + async deletePostCallback(listPageType = true) { try { var gqlMutation = gql` mutation($id: ID!) { @@ -16,7 +16,13 @@ export default { variables: { id: this.post.id } }) this.$toast.success(this.$t(`delete.contribution.success`)) - this.$emit('deletePost') + if (listPageType) { + console.log('Emit "deletePost" !!!') + this.$emit('deletePost') + } else { + console.log('Redirect to index !!!') + this.$router.history.push('/') // Single page type: redirect to index + } } catch (err) { this.$toast.error(err.message) } diff --git a/webapp/pages/index.vue b/webapp/pages/index.vue index d3e0feaca..135c96735 100644 --- a/webapp/pages/index.vue +++ b/webapp/pages/index.vue @@ -87,7 +87,7 @@ export default { }) }, deletePost(_index, postId) { - this.Post = this.Post.filter((post) => { + this.Post = this.Post.filter(post => { return post.id !== postId }) // Ideal solution: diff --git a/webapp/pages/post/_id/_slug/index.vue b/webapp/pages/post/_id/_slug/index.vue index 0225334fa..bede9c1c8 100644 --- a/webapp/pages/post/_id/_slug/index.vue +++ b/webapp/pages/post/_id/_slug/index.vue @@ -18,7 +18,7 @@ placement="bottom-end" resource-type="contribution" :resource="post" - :callbacks="{ confirm: deletePostCallback, cancel: null }" + :callbacks="{ confirm: deletePostOptionsCallback, cancel: null }" :is-owner="isAuthor(post.author.id)" /> @@ -256,6 +256,9 @@ export default { methods: { isAuthor(id) { return this.$store.getters['auth/user'].id === id + }, + async deletePostOptionsCallback() { + await deletePostCallback(true) } } }