From f1b85d525623e21fe34e619cf4594eaa78cbd31d Mon Sep 17 00:00:00 2001 From: senderfm Date: Tue, 4 Jun 2019 16:25:59 +0200 Subject: [PATCH] Fixed clean ReleaseModal and DeleteModal --- webapp/components/ContentMenu.vue | 24 ++- webapp/components/Modal.vue | 9 + webapp/components/Modal/DisableModal.spec.js | 3 + webapp/components/Modal/DisableModal.vue | 7 +- .../ReleaseModal/ReleaseModal.spec.js | 175 ++++++++++++++++++ .../components/ReleaseModal/ReleaseModal.vue | 77 ++++++++ webapp/locales/de.json | 28 ++- webapp/locales/en.json | 22 ++- 8 files changed, 333 insertions(+), 12 deletions(-) create mode 100644 webapp/components/ReleaseModal/ReleaseModal.spec.js create mode 100644 webapp/components/ReleaseModal/ReleaseModal.vue diff --git a/webapp/components/ContentMenu.vue b/webapp/components/ContentMenu.vue index 69289cb6d..5cd49fe17 100644 --- a/webapp/components/ContentMenu.vue +++ b/webapp/components/ContentMenu.vue @@ -98,13 +98,23 @@ export default { } if (!this.isOwner && this.isModerator) { - routes.push({ - name: this.$t(`disable.${this.resourceType}.title`), - callback: () => { - this.openModal('disable') - }, - icon: 'eye-slash', - }) + if (!this.resource.disabled) { + routes.push({ + name: this.$t(`disable.${this.resourceType}.title`), + callback: () => { + this.openModal('disable') + }, + icon: 'eye-slash', + }) + } else { + routes.push({ + name: this.$t(`release.${this.resourceType}.title`), + callback: () => { + this.openModal('release', this.resource.id) + }, + icon: 'eye-slash', + }) + } } if (this.isOwner && this.resourceType === 'user') { diff --git a/webapp/components/Modal.vue b/webapp/components/Modal.vue index efe1b8ab6..317b5007a 100644 --- a/webapp/components/Modal.vue +++ b/webapp/components/Modal.vue @@ -9,6 +9,13 @@ :callbacks="data.callbacks" @close="close" /> + import DeleteModal from '~/components/Modal/DeleteModal' import DisableModal from '~/components/Modal/DisableModal' +import ReleaseModal from '~/components/ReleaseModal/ReleaseModal.vue' import ReportModal from '~/components/Modal/ReportModal' import { mapGetters } from 'vuex' @@ -38,6 +46,7 @@ export default { name: 'Modal', components: { DisableModal, + ReleaseModal, ReportModal, DeleteModal, }, diff --git a/webapp/components/Modal/DisableModal.spec.js b/webapp/components/Modal/DisableModal.spec.js index 02ae3fa5d..87484f6bf 100644 --- a/webapp/components/Modal/DisableModal.spec.js +++ b/webapp/components/Modal/DisableModal.spec.js @@ -33,6 +33,9 @@ describe('DisableModal.vue', () => { $apollo: { mutate: jest.fn().mockResolvedValue(), }, + location: { + reload: jest.fn(), + }, } }) diff --git a/webapp/components/Modal/DisableModal.vue b/webapp/components/Modal/DisableModal.vue index 690dcbf70..988ecc8af 100644 --- a/webapp/components/Modal/DisableModal.vue +++ b/webapp/components/Modal/DisableModal.vue @@ -4,9 +4,7 @@