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 @@
+