diff --git a/front/src/components/common/AjaxButton.vue b/front/src/components/common/AjaxButton.vue
index 2a9503f79..d0a87e2c0 100644
--- a/front/src/components/common/AjaxButton.vue
+++ b/front/src/components/common/AjaxButton.vue
@@ -5,6 +5,8 @@ import { ref } from 'vue'
import axios from 'axios'
+import Button from '~/components/ui/Button.vue'
+
interface Events {
(e: 'action-done', data: any): void
(e: 'action-error', error: BackendError): void
@@ -34,10 +36,13 @@ const ajaxCall = async () => {
-
+
diff --git a/front/src/components/common/CollapseLink.vue b/front/src/components/common/CollapseLink.vue
index c0819097a..2f75ec6e0 100644
--- a/front/src/components/common/CollapseLink.vue
+++ b/front/src/components/common/CollapseLink.vue
@@ -2,6 +2,8 @@
import { useVModel } from '@vueuse/core'
import { useI18n } from 'vue-i18n'
+import Button from '~/components/ui/Button.vue'
+
interface Events {
(e: 'update:modelValue', value: boolean): void
}
@@ -18,8 +20,11 @@ const value = useVModel(props, 'modelValue', emit)
-
@@ -30,5 +35,5 @@ const value = useVModel(props, 'modelValue', emit)
{{ t('components.common.CollapseLink.button.collapse') }}
-
+
diff --git a/front/src/components/manage/moderation/InstancePolicyCard.vue b/front/src/components/manage/moderation/InstancePolicyCard.vue
index cd19d334b..683c3945a 100644
--- a/front/src/components/manage/moderation/InstancePolicyCard.vue
+++ b/front/src/components/manage/moderation/InstancePolicyCard.vue
@@ -4,6 +4,8 @@ import { useI18n } from 'vue-i18n'
import useMarkdown from '~/composables/useMarkdown'
+import Button from '~/components/ui/Button.vue'
+
interface Events {
(e: 'update'): void
}
@@ -24,21 +26,21 @@ const summary = useMarkdown(() => props.object.summary)
-
- {{ object.actor }}
+
+ {{ object.actor }}
-
+
{{ t('components.manage.moderation.InstancePolicyCard.status.enabled') }}
-
+
{{ t('components.manage.moderation.InstancePolicyCard.status.paused') }}
{{ t('components.manage.moderation.InstancePolicyCard.header.rule') }}
-
+
{{ t('components.manage.moderation.InstancePolicyCard.label.blockAll') }}
props.object.summary)
v-if="object.silence_activity"
class="ui item"
>
-
+
{{ t('components.manage.moderation.InstancePolicyCard.label.muteActivity') }}
@@ -58,7 +60,7 @@ const summary = useMarkdown(() => props.object.summary)
v-if="object.silence_notifications"
class="ui item"
>
-
+
{{ t('components.manage.moderation.InstancePolicyCard.label.muteNotifications') }}
@@ -67,7 +69,7 @@ const summary = useMarkdown(() => props.object.summary)
v-if="object.reject_media"
class="ui item"
>
-
+
{{ t('components.manage.moderation.InstancePolicyCard.label.rejectMedia') }}
@@ -80,12 +82,12 @@ const summary = useMarkdown(() => props.object.summary)
-
+
diff --git a/front/src/components/manage/moderation/InstancePolicyForm.vue b/front/src/components/manage/moderation/InstancePolicyForm.vue
index 131b285b3..466b0d307 100644
--- a/front/src/components/manage/moderation/InstancePolicyForm.vue
+++ b/front/src/components/manage/moderation/InstancePolicyForm.vue
@@ -9,6 +9,9 @@ import axios from 'axios'
import DangerousButton from '~/components/common/DangerousButton.vue'
+import Layout from '~/components/ui/Layout.vue'
+import Button from '~/components/ui/Button.vue'
+
interface Events {
(e: 'save', data: InstancePolicy): void
(e: 'delete'): void
@@ -119,8 +122,8 @@ const remove = async () => {
-
-
-
-
-
- {{ t('components.manage.moderation.InstancePolicyForm.button.delete') }}
-
- {{ t('components.manage.moderation.InstancePolicyForm.modal.delete.content.warning') }}
-
-
- {{ t('components.manage.moderation.InstancePolicyForm.button.confirm') }}
-
-
-
+
+
+
+
+ {{ t('components.manage.moderation.InstancePolicyForm.button.delete') }}
+
+ {{ t('components.manage.moderation.InstancePolicyForm.modal.delete.content.warning') }}
+
+
+ {{ t('components.manage.moderation.InstancePolicyForm.button.confirm') }}
+
+
+
+
diff --git a/front/src/components/manage/moderation/NoteForm.vue b/front/src/components/manage/moderation/NoteForm.vue
index 53a832dd1..2a229e371 100644
--- a/front/src/components/manage/moderation/NoteForm.vue
+++ b/front/src/components/manage/moderation/NoteForm.vue
@@ -5,6 +5,8 @@ import axios from 'axios'
import { ref, computed } from 'vue'
import { useI18n } from 'vue-i18n'
+import Button from '~/components/ui/Button.vue'
+
interface Events {
(e: 'created', note: Note): void
}
@@ -76,12 +78,13 @@ const submit = async () => {
:placeholder="labels.summaryPlaceholder"
/>
-
+
diff --git a/front/src/components/manage/moderation/NotesThread.vue b/front/src/components/manage/moderation/NotesThread.vue
index eb1ac3725..328f0bcee 100644
--- a/front/src/components/manage/moderation/NotesThread.vue
+++ b/front/src/components/manage/moderation/NotesThread.vue
@@ -11,6 +11,10 @@ import useErrorHandler from '~/composables/useErrorHandler'
import DangerousButton from '~/components/common/DangerousButton.vue'
+import Alert from '~/components/ui/Alert.vue'
+import Layout from '~/components/ui/Layout.vue'
+import Spacer from '~/components/ui/Spacer.vue'
+
interface Events {
(e: 'deleted', uuid: string): void
}
@@ -40,48 +44,53 @@ const remove = async (note: Note) => {
-
-
+
-
-
-
-
-
-
+
+
+
+
+
-
-
-
- {{ t('components.manage.moderation.NotesThread.button.delete') }}
+
+
+
+
+
+
+ {{ t('components.manage.moderation.NotesThread.button.delete') }}
-
- {{ t('components.manage.moderation.NotesThread.modal.delete.content.warning') }}
-
-
- {{ t('components.manage.moderation.NotesThread.button.delete') }}
-
-
-
-
-
+
+ {{ t('components.manage.moderation.NotesThread.modal.delete.content.warning') }}
+
+
+ {{ t('components.manage.moderation.NotesThread.button.delete') }}
+
+
+
+
diff --git a/front/src/components/manage/moderation/ReportCard.vue b/front/src/components/manage/moderation/ReportCard.vue
index d3c892348..22541d3c0 100644
--- a/front/src/components/manage/moderation/ReportCard.vue
+++ b/front/src/components/manage/moderation/ReportCard.vue
@@ -18,6 +18,11 @@ import useErrorHandler from '~/composables/useErrorHandler'
import useMarkdown from '~/composables/useMarkdown'
import useLogger from '~/composables/useLogger'
+import Card from '~/components/ui/Card.vue'
+import Layout from '~/components/ui/Layout.vue'
+import Button from '~/components/ui/Button.vue'
+import Link from '~/components/ui/Link.vue'
+
interface Events {
(e: 'updated', updating: { type: string }): void
(e: 'handled', isHandled: boolean): void
@@ -110,7 +115,7 @@ const update = async (type: string) => {
}
const store = useStore()
-const isCollapsed = ref(false)
+const isCollapsed = ref(true)
const resolveReport = async (isHandled: boolean) => {
isLoading.value = true
@@ -140,136 +145,124 @@ const handleRemovedNote = (uuid: string) => {
-
-
-
-
-
-
-
-
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.report.submittedBy') }}
- |
-
-
-
- {{ obj.submitter_email }}
-
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.report.category') }}
- |
-
-
-
-
-
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.report.creationDate') }}
- |
-
-
- |
-
-
-
-
-
-
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.status.status') }}
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.status.resolved') }}
-
- |
-
-
- {{ t('components.manage.moderation.ReportCard.table.status.unresolved') }}
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.status.assignedTo') }}
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.notApplicable') }}
-
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.status.resolutionDate') }}
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.notApplicable') }}
-
- |
-
-
-
- {{ t('components.manage.moderation.ReportCard.table.status.internalNotes') }}
- |
-
-
- {{ obj.notes.length }}
- |
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.report.submittedBy') }}
+ |
+
+
+
+ {{ obj.submitter_email }}
+
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.report.category') }}
+ |
+
+
+
+
+
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.report.creationDate') }}
+ |
+
+
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.status.status') }}
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.status.resolved') }}
+
+ |
+
+
+ {{ t('components.manage.moderation.ReportCard.table.status.unresolved') }}
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.status.assignedTo') }}
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.notApplicable') }}
+
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.status.resolutionDate') }}
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.notApplicable') }}
+
+ |
+
+
+
+ {{ t('components.manage.moderation.ReportCard.table.status.internalNotes') }}
+ |
+
+
+ {{ obj.notes.length }}
+ |
+
+
+
+
-
+
{{ t('components.manage.moderation.ReportCard.header.message') }}
@@ -286,29 +279,34 @@ const handleRemovedNote = (uuid: string) => {
{{ t('components.manage.moderation.ReportCard.header.reportedObject') }}
-
{{ t('components.manage.moderation.ReportCard.warning.objectDeleted') }}
-
-
-
- {{ t('components.manage.moderation.ReportCard.link.publicPage') }}
-
-
-
- {{ t('components.manage.moderation.ReportCard.link.moderation') }}
-
+
+
+
+ {{ t('components.manage.moderation.ReportCard.link.publicPage') }}
+
+
+ {{ t('components.manage.moderation.ReportCard.link.moderation') }}
+
+
@@ -369,9 +367,9 @@ const handleRemovedNote = (uuid: string) => {
-
+
{{ t('components.manage.moderation.ReportCard.table.object.domain') }}
-
+
|
{{ obj.target_state.domain }}
@@ -405,65 +403,61 @@ const handleRemovedNote = (uuid: string) => {
|
-
-
-
-
- {{ t('components.manage.moderation.ReportCard.header.notes') }}
-
-
-
-
-
-
- {{ t('components.manage.moderation.ReportCard.header.actions') }}
-
-
-
-
-
-
- {{ action.label }}
-
- {{ action.modalContent }}
-
-
- {{ action.modalConfirmLabel }}
-
-
+
+
+ {{ t('components.manage.moderation.ReportCard.header.notes') }}
+
+
+
+
+ {{ t('components.manage.moderation.ReportCard.header.actions') }}
+
+
+
+
+
+
+ {{ action.label }}
+
+ {{ action.modalContent }}
-
-
-
-
-
+
+ {{ action.modalConfirmLabel }}
+
+
+
+
+
+
diff --git a/front/src/components/moderation/FilterModal.vue b/front/src/components/moderation/FilterModal.vue
index 88ba5dd40..fe8f7cd15 100644
--- a/front/src/components/moderation/FilterModal.vue
+++ b/front/src/components/moderation/FilterModal.vue
@@ -11,6 +11,7 @@ import useLogger from '~/composables/useLogger'
import Modal from '~/components/ui/Modal.vue'
import Alert from '~/components/ui/Alert.vue'
+import Button from '~/components/ui/Button.vue'
const logger = useLogger()
const { t } = useI18n()
@@ -62,6 +63,7 @@ const hide = async () => {
@@ -104,13 +106,14 @@ const hide = async () => {
-
-
+
+
diff --git a/front/src/components/moderation/ReportCategoryDropdown.vue b/front/src/components/moderation/ReportCategoryDropdown.vue
index 1041d1549..dc36d1300 100644
--- a/front/src/components/moderation/ReportCategoryDropdown.vue
+++ b/front/src/components/moderation/ReportCategoryDropdown.vue
@@ -58,11 +58,11 @@ const allCategories = computed(() => {
-
+
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.description.policy') }}
-
-
- {{ t('views.admin.moderation.DomainsDetail.button.addPolicy') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.inAllowList.label') }}
- |
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.inAllowList.true') }}
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.inAllowList.false') }}
-
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.lastChecked') }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.notApplicable') }}
-
- |
-
+ {{ t('views.admin.moderation.DomainsDetail.link.website') }}
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.django') }}
+
+
+
+
+
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.button.removeFromAllowList') }}
+
+
+ {{ t('views.admin.moderation.DomainsDetail.button.addToAllowList') }}
+
+
+
+
+
+
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.software.label') }}
- |
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.software.value', {name: get(object, 'nodeinfo.payload.software.name', t('views.admin.moderation.DomainsDetail.notApplicable')), version: get(object, 'nodeinfo.payload.software.version', t('views.admin.moderation.DomainsDetail.notApplicable'))}) }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.domainName') }}
- |
-
- {{ get(object, 'nodeinfo.payload.metadata.nodeName', t('views.admin.moderation.DomainsDetail.notApplicable')) }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.totalUsers') }}
- |
-
- {{ get(object, 'nodeinfo.payload.usage.users.total', t('views.admin.moderation.DomainsDetail.notApplicable')) }}
- |
-
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.nodeInfoStatus.label') }}
- |
-
- {{ t('views.admin.moderation.DomainsDetail.table.instanceData.nodeInfoStatus.value') }}
-
-
- |
-
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.button.refreshNodeInfo') }}
-
-
-
-
-
-
-
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.activity.firstSeen') }}
- |
-
-
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.knownAccounts') }}
-
- |
-
- {{ stats.actors }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.activity.emittedMessages') }}
- |
-
- {{ stats.outbox_activities }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.activity.receivedFollows') }}
- |
-
- {{ stats.received_library_follows }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.activity.emittedFollows') }}
- |
-
- {{ stats.emitted_library_follows }}
- |
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.audioContent.cachedSize') }}
- |
-
- {{ humanSize(stats.media_downloaded_size) }}
- |
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.table.audioContent.totalSize') }}
- |
-
- {{ humanSize(stats.media_total_size) }}
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.channels') }}
-
- |
-
- {{ stats.channels }}
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.libraries') }}
-
- |
-
- {{ stats.libraries }}
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.uploads') }}
-
- |
-
- {{ stats.uploads }}
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.artists') }}
-
- |
-
- {{ stats.artists }}
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.albums') }}
-
- |
-
- {{ stats.albums }}
- |
-
-
-
-
- {{ t('views.admin.moderation.DomainsDetail.link.tracks') }}
-
- |
-
- {{ stats.tracks }}
- |
-
-
-
-
-
-
+
+
+
-
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.description.policy') }}
+
+
+ {{ t('views.admin.moderation.DomainsDetail.button.addPolicy') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.inAllowList.label') }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.inAllowList.true') }}
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.inAllowList.false') }}
+
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.lastChecked') }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.notApplicable') }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.software.label') }}
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.software.value', {name: get(object, 'nodeinfo.payload.software.name', t('views.admin.moderation.DomainsDetail.notApplicable')), version: get(object, 'nodeinfo.payload.software.version', t('views.admin.moderation.DomainsDetail.notApplicable'))}) }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.nodeInfoStatus.label') }}
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.instanceData.nodeInfoStatus.value', {name: get(object, 'nodeinfo.payload.software.name', t('views.admin.moderation.DomainsDetail.notApplicable')), version: get(object, 'nodeinfo.payload.software.version', t('views.admin.moderation.DomainsDetail.notApplicable'))}) }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.button.refreshNodeInfo') }}
+
+
+
+
+
+
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.activity.firstSeen') }}
+
+
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.knownAccounts') }}
+
+
+ {{ stats?.actors }}
+
+
+
+
+
+
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.audioContent.cachedSize') }}
+
+
+ {{ humanSize(stats?.media_downloaded_size) }}
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.table.audioContent.totalSize') }}
+
+
+ {{ humanSize(stats?.media_total_size) }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.channels') }}
+
+
+
+ {{ stats?.channels }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.libraries') }}
+
+
+
+ {{ stats?.libraries }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.uploads') }}
+
+
+
+ {{ stats?.uploads }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.artists') }}
+
+
+
+ {{ stats?.artists }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.albums') }}
+
+
+
+ {{ stats?.albums }}
+
+
+
+
+ {{ t('views.admin.moderation.DomainsDetail.link.tracks') }}
+
+
+
+ {{ stats?.tracks }}
+
+
+
+
+
diff --git a/front/src/views/admin/moderation/ReportsList.vue b/front/src/views/admin/moderation/ReportsList.vue
index a0d0ceef6..df25d7243 100644
--- a/front/src/views/admin/moderation/ReportsList.vue
+++ b/front/src/views/admin/moderation/ReportsList.vue
@@ -26,6 +26,7 @@ import useOrdering from '~/composables/navigation/useOrdering'
import useErrorHandler from '~/composables/useErrorHandler'
import usePage from '~/composables/navigation/usePage'
import useLogger from '~/composables/useLogger'
+import Loader from '~/components/ui/Loader.vue'
interface Props extends SmartSearchProps, OrderingProps {
mode?: 'card'
@@ -194,12 +195,9 @@ const labels = computed(() => ({
-
+ />