From 94b9db062d296f7fce2c6bfd31e061236cc386d1 Mon Sep 17 00:00:00 2001 From: Eliot Berriot Date: Thu, 29 Aug 2019 16:58:53 +0200 Subject: [PATCH] See #890: make report category updatable --- .../manage/moderation/ReportCard.vue | 24 ++++++++++-- front/src/components/mixins/Translations.vue | 10 +++++ .../moderation/ReportCategoryDropdown.vue | 38 +++++++++++++++++++ front/src/lodash.js | 1 + .../views/admin/moderation/ReportsList.vue | 8 ++++ 5 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 front/src/components/moderation/ReportCategoryDropdown.vue diff --git a/front/src/components/manage/moderation/ReportCard.vue b/front/src/components/manage/moderation/ReportCard.vue index 41a288c65..fa2145823 100644 --- a/front/src/components/manage/moderation/ReportCard.vue +++ b/front/src/components/manage/moderation/ReportCard.vue @@ -29,8 +29,10 @@ Category - - {{ obj.type }} + @@ -210,9 +212,11 @@ import axios from 'axios' import { diffWordsWithSpace } from 'diff' import NoteForm from '@/components/manage/moderation/NoteForm' import NotesThread from '@/components/manage/moderation/NotesThread' +import ReportCategoryDropdown from '@/components/moderation/ReportCategoryDropdown' import entities from '@/entities' import showdown from 'showdown' + function castValue (value) { if (value === null || value === undefined) { return '' @@ -228,9 +232,10 @@ export default { components: { NoteForm, NotesThread, + ReportCategoryDropdown, }, data () { - return { + return { markdown: new showdown.Converter(), isLoading: false, } @@ -290,7 +295,7 @@ export default { } else { return this.obj.target_state._target } - } + }, }, methods: { remove () { @@ -306,6 +311,17 @@ export default { self.isLoading = false }) }, + update (payload) { + let url = `manage/moderation/reports/${this.obj.uuid}/` + let self = this + this.isLoading = true + axios.patch(url, payload).then((response) => { + self.$emit('updated', payload) + self.isLoading = false + }, error => { + self.isLoading = false + }) + }, resolve (v) { let url = `manage/moderation/reports/${this.obj.uuid}/` let self = this diff --git a/front/src/components/mixins/Translations.vue b/front/src/components/mixins/Translations.vue index e6e809252..fe7bf628b 100644 --- a/front/src/components/mixins/Translations.vue +++ b/front/src/components/mixins/Translations.vue @@ -39,6 +39,16 @@ export default { }, } }, + report_type: { + label: this.$pgettext('*/*/*', 'Category'), + choices: { + takedown_request: this.$pgettext("Content/Moderation/Dropdown", "Takedown request"), + invalid_metadata: this.$pgettext("Content/Moderation/Dropdown", "Invalid metadata"), + illegal_content: this.$pgettext("Content/Moderation/Dropdown", "Illegal content"), + offensive_content: this.$pgettext("Content/Moderation/Dropdown", "Offensive content"), + other: this.$pgettext("Content/Moderation/Dropdown", "Other"), + }, + }, }, filters: { creation_date: this.$pgettext('Content/*/*/Noun', 'Creation date'), diff --git a/front/src/components/moderation/ReportCategoryDropdown.vue b/front/src/components/moderation/ReportCategoryDropdown.vue new file mode 100644 index 000000000..af812f53c --- /dev/null +++ b/front/src/components/moderation/ReportCategoryDropdown.vue @@ -0,0 +1,38 @@ + + + diff --git a/front/src/lodash.js b/front/src/lodash.js index 31fdbaa58..213711bd3 100644 --- a/front/src/lodash.js +++ b/front/src/lodash.js @@ -2,6 +2,7 @@ export default { clone: require('lodash/clone'), + keys: require('lodash/keys'), debounce: require('lodash/debounce'), get: require('lodash/get'), merge: require('lodash/merge'), diff --git a/front/src/views/admin/moderation/ReportsList.vue b/front/src/views/admin/moderation/ReportsList.vue index 96c5400c7..e8a7e3ed4 100644 --- a/front/src/views/admin/moderation/ReportsList.vue +++ b/front/src/views/admin/moderation/ReportsList.vue @@ -25,6 +25,12 @@ +