diff --git a/webapp/components/ContentMenu.vue b/webapp/components/ContentMenu.vue
index 521a8ed6e..3b1470fba 100644
--- a/webapp/components/ContentMenu.vue
+++ b/webapp/components/ContentMenu.vue
@@ -70,7 +70,7 @@ export default {
routes.push({
name: this.$t(`post.menu.delete`),
callback: () => {
- this.openModal('delete')
+ this.openModal('confirm', 'delete')
},
icon: 'trash',
})
@@ -108,7 +108,7 @@ export default {
routes.push({
name: this.$t(`comment.menu.delete`),
callback: () => {
- this.openModal('delete')
+ this.openModal('confirm', 'delete')
},
icon: 'trash',
})
@@ -137,7 +137,7 @@ export default {
routes.push({
name: this.$t(`release.${this.resourceType}.title`),
callback: () => {
- this.openModal('release', this.resource.id)
+ this.openModal('release')
},
icon: 'eye',
})
@@ -190,13 +190,13 @@ export default {
}
toggleMenu()
},
- openModal(dialog) {
+ openModal(dialog, modalDataName = null) {
this.$store.commit('modal/SET_OPEN', {
name: dialog,
data: {
type: this.resourceType,
resource: this.resource,
- modalsData: this.modalsData,
+ modalData: modalDataName ? this.modalsData[modalDataName] : {},
},
})
},
diff --git a/webapp/components/Modal.vue b/webapp/components/Modal.vue
index 3c83a0922..84a1871b5 100644
--- a/webapp/components/Modal.vue
+++ b/webapp/components/Modal.vue
@@ -23,11 +23,11 @@
@close="close"
/>
diff --git a/webapp/locales/de.json b/webapp/locales/de.json
index e38924d14..fabf3fc5d 100644
--- a/webapp/locales/de.json
+++ b/webapp/locales/de.json
@@ -464,7 +464,41 @@
"reasonCategory": "Kategorie",
"reasonDescription": "Beschreibung",
"createdAt": "Datum",
- "submitter": "Gemeldet von"
+ "submitter": "Gemeldet von",
+ "decideModal": {
+ "submit": "Abschließende Entscheidung",
+ "cancel": "Abbruch",
+ "User": {
+ "disable": {
+ "title": "Sperre den Benutzer abschließend",
+ "message": "Möchtest du den Benutzer \"{name}\" wirklich gesperrt lassen?"
+ },
+ "enable": {
+ "title": "Entsperre den Benutzer abschließend",
+ "message": "Möchtest du den Benutzer \"{name}\" wirklich entsperrt lassen?"
+ }
+ },
+ "Post": {
+ "disable": {
+ "title": "Sperre den Beitrag abschließend",
+ "message": "Möchtest du den Beitrag \"{name}\" wirklich gesperrt lassen?"
+ },
+ "enable": {
+ "title": "Entsperre den Beitrag abschließend",
+ "message": "Möchtest du den Beitrag \"{name}\" wirklich entsperrt lassen?"
+ }
+ },
+ "Comment": {
+ "disable": {
+ "title": "Sperre den Kommentar abschließend",
+ "message": "Möchtest du den Kommentar \"{name}\" wirklich gesperrt lassen?"
+ },
+ "enable": {
+ "title": "Entsperre den Kommentar abschließend",
+ "message": "Möchtest du den Kommentar \"{name}\" wirklich entsperrt lassen?"
+ }
+ }
+ }
}
},
"disable": {
diff --git a/webapp/locales/en.json b/webapp/locales/en.json
index eb31c620d..3ebe8104b 100644
--- a/webapp/locales/en.json
+++ b/webapp/locales/en.json
@@ -465,7 +465,41 @@
"reasonCategory": "Category",
"reasonDescription": "Description",
"createdAt": "Date",
- "submitter": "Reported by"
+ "submitter": "Reported by",
+ "decideModal": {
+ "submit": "Final decision",
+ "cancel": "Cancel",
+ "User": {
+ "disable": {
+ "title": "Finally Disable User",
+ "message": "Do you really want to let the user \"{name}\" stay disabled?"
+ },
+ "enable": {
+ "title": "Finally Enable User",
+ "message": "Do you really want to let the user \"{name}\" stay enabled?"
+ }
+ },
+ "Post": {
+ "disable": {
+ "title": "Finally Disable Post",
+ "message": "Do you really want to let the post \"{name}\" stay disabled?"
+ },
+ "enable": {
+ "title": "Finally Enable Post",
+ "message": "Do you really want to let the post \"{name}\" stay enabled?"
+ }
+ },
+ "Comment": {
+ "disable": {
+ "title": "Finally Disable Comment",
+ "message": "Do you really want to let the comment \"{name}\" stay disabled?"
+ },
+ "enable": {
+ "title": "Finally Enable Comment",
+ "message": "Do you really want to let the comment \"{name}\" stay enabled?"
+ }
+ }
+ }
}
},
"disable": {
diff --git a/webapp/pages/moderation/index.vue b/webapp/pages/moderation/index.vue
index 72cde9cb6..39ac245c6 100644
--- a/webapp/pages/moderation/index.vue
+++ b/webapp/pages/moderation/index.vue
@@ -8,7 +8,7 @@
cellpadding="0"
>
-
+
{{ $t('moderation.reports.decideButton') }}
@@ -234,7 +234,10 @@ export default {
},
},
methods: {
- async confirm(resourceId, index) {
+ confirm(content) {
+ this.openModal(content)
+ },
+ async confirmCallback(resourceId) {
this.$apollo
.mutate({
mutation: decideMutation(),
@@ -246,6 +249,52 @@ export default {
})
.catch(error => this.$toast.error(error.message))
},
+ openModal(content) {
+ const identStart =
+ 'moderation.reports.decideModal.' +
+ content.type +
+ '.' +
+ (content.decisionDisable ? 'disable' : 'enable')
+ this.$store.commit('modal/SET_OPEN', {
+ name: 'confirm',
+ data: {
+ type: content.type,
+ resource: content.resource,
+ modalData: {
+ titleIdent: identStart + '.title',
+ messageIdent: identStart + '.message',
+ messageParams: {
+ name:
+ content.type === 'User'
+ ? content.user.name
+ : content.type === 'Post'
+ ? this.$filters.truncate(content.post.title, 30)
+ : content.type === 'Comment'
+ ? this.$filters.truncate(
+ this.$filters.removeHtml(content.comment.contentExcerpt),
+ 30,
+ )
+ : '',
+ },
+ buttons: {
+ confirm: {
+ danger: true,
+ icon: 'exclamation-circle',
+ textIdent: 'moderation.reports.decideModal.submit',
+ callback: () => {
+ this.confirmCallback(content.resource.id)
+ },
+ },
+ cancel: {
+ icon: 'close',
+ textIdent: 'moderation.reports.decideModal.cancel',
+ callback: () => {},
+ },
+ },
+ },
+ },
+ })
+ },
},
apollo: {
reports: {