From 7b4184cbde3a42112a252677991b1ee4ec814c06 Mon Sep 17 00:00:00 2001 From: Angelina Filippova Date: Sat, 25 May 2019 01:11:54 +0200 Subject: [PATCH] Add ability to change status scope --- src/api/reports.js | 10 +++++++ src/store/modules/reports.js | 14 +++++++++- src/views/reports/components/Statuses.vue | 34 +++++++++++++++++++---- 3 files changed, 51 insertions(+), 7 deletions(-) diff --git a/src/api/reports.js b/src/api/reports.js index 6e2ca530..cfc8bd3c 100644 --- a/src/api/reports.js +++ b/src/api/reports.js @@ -12,6 +12,16 @@ export async function changeState(state, id, authHost, token) { }) } +export async function changeStatusScope(id, sensitive, visibility, authHost, token) { + return await request({ + baseURL: baseName(authHost), + url: `/api/pleroma/admin/statuses/${id}`, + method: 'put', + headers: authHeaders(token), + data: { sensitive, visibility } + }) +} + export async function fetchReports(limit, max_id, authHost, token) { return await request({ baseURL: baseName(authHost), diff --git a/src/store/modules/reports.js b/src/store/modules/reports.js index c1f523fc..a432f63e 100644 --- a/src/store/modules/reports.js +++ b/src/store/modules/reports.js @@ -1,4 +1,4 @@ -import { changeState, fetchReports, filterReports } from '@/api/reports' +import { changeState, changeStatusScope, fetchReports, filterReports } from '@/api/reports' const reports = { state: { @@ -28,6 +28,18 @@ const reports = { const updatedReports = state.fetchedReports.map(report => report.id === reportId ? data : report) commit('SET_REPORTS', updatedReports) }, + async ChangeStatusScope({ commit, getters, state }, { statusId, isSensitive, visibility, reportId }) { + const { data } = await changeStatusScope(statusId, isSensitive, visibility, getters.authHost, getters.token) + const updatedReports = state.fetchedReports.map(report => { + if (report.id === reportId) { + const statuses = report.statuses.map(status => status.id === statusId ? data : status) + return { ...report, statuses } + } else { + return report + } + }) + commit('SET_REPORTS', updatedReports) + }, async FetchReports({ commit, getters, state }) { commit('SET_LOADING', true) const response = await fetchReports(state.page_limit, state.idOfLastReport, getters.authHost, getters.token) diff --git a/src/views/reports/components/Statuses.vue b/src/views/reports/components/Statuses.vue index c073d4d9..44849793 100644 --- a/src/views/reports/components/Statuses.vue +++ b/src/views/reports/components/Statuses.vue @@ -13,11 +13,31 @@ {{ $t('reports.changeScope') }} - {{ $t('reports.addSensitive') }} - {{ $t('reports.removeSensitive') }} - {{ $t('reports.public') }} - {{ $t('reports.private') }} - {{ $t('reports.unlisted') }} + + {{ $t('reports.addSensitive') }} + + + {{ $t('reports.removeSensitive') }} + + + {{ $t('reports.public') }} + + + {{ $t('reports.private') }} + + + {{ $t('reports.unlisted') }} + @@ -51,8 +71,10 @@ export default { capitalizeFirstLetter(str) { return str.charAt(0).toUpperCase() + str.slice(1) }, + changeStatus(statusId, isSensitive, visibility, reportId) { + this.$store.dispatch('ChangeStatusScope', { statusId, isSensitive, visibility, reportId }) + }, getStatusesTitle(statuses) { - console.log(this.report) return `Reported statuses: ${statuses.length} item(s)` }, parseTimestamp(timestamp) {