From 9e0596d1367416d03425ce5a94f72159d1e76e98 Mon Sep 17 00:00:00 2001 From: Kasper Seweryn Date: Mon, 2 May 2022 17:06:44 +0200 Subject: [PATCH] Move *.js to *.ts --- front/.eslintrc.js | 6 +- front/src/audio/backend.js | 23 -- front/src/audio/formats.js | 11 - front/src/audio/volume.js | 23 -- front/src/components/admin/SettingsGroup.vue | 2 +- front/src/components/audio/Player.vue | 2 +- front/src/components/audio/podcast/Table.vue | 8 +- front/src/components/auth/ApplicationForm.vue | 2 +- front/src/components/auth/Authorize.vue | 2 +- front/src/components/auth/Settings.vue | 2 +- .../src/components/common/AttachmentInput.vue | 2 +- front/src/components/common/ExpandableDiv.vue | 43 ++- front/src/components/common/HumanDuration.vue | 3 +- front/src/components/common/Message.vue | 2 +- front/src/components/favorites/List.vue | 2 +- front/src/components/library/Albums.vue | 2 +- front/src/components/library/Artists.vue | 2 +- front/src/components/library/EditCard.vue | 23 +- front/src/components/library/EditDetail.vue | 90 +++---- front/src/components/library/EditForm.vue | 26 +- front/src/components/library/Podcasts.vue | 2 +- front/src/components/library/Radios.vue | 2 +- front/src/components/manage/ChannelsTable.vue | 4 +- .../components/manage/library/AlbumsTable.vue | 4 +- .../manage/library/ArtistsTable.vue | 4 +- .../manage/library/EditsCardList.vue | 14 +- .../manage/library/LibrariesTable.vue | 4 +- .../components/manage/library/TagsTable.vue | 4 +- .../components/manage/library/TracksTable.vue | 4 +- .../manage/library/UploadsTable.vue | 4 +- .../manage/moderation/AccountsTable.vue | 4 +- .../manage/moderation/DomainsTable.vue | 2 +- .../manage/moderation/ReportCard.vue | 12 +- .../manage/users/InvitationsTable.vue | 2 +- .../components/manage/users/UsersTable.vue | 2 +- front/src/components/mixins/SmartSearch.vue | 2 +- .../moderation/ReportCategoryDropdown.vue | 2 +- front/src/components/playlists/Form.vue | 2 +- front/src/components/semantic/Modal.vue | 2 +- .../composables/audio/toLinearVolumeScale.ts | 11 + .../{ => locale}/useSharedLabels.ts | 0 .../composables/moderation/useEditConfigs.ts | 120 +++++++++ .../moderation/useReportConfigs.ts | 183 +++++++++++++ front/src/edits.js | 191 -------------- front/src/embed.ts | 2 +- front/src/entities.js | 245 ------------------ front/src/init/directives.ts | 4 +- front/src/main.ts | 3 +- front/src/{radios.js => radios.ts} | 0 front/src/sanitize.js | 43 --- front/src/search.js | 69 ----- front/src/shims-vuex.d.ts | 7 + front/src/store/{auth.js => auth.ts} | 0 front/src/store/{channels.js => channels.ts} | 0 .../src/store/{favorites.js => favorites.ts} | 0 front/src/store/index.ts | 10 +- front/src/store/{instance.js => instance.ts} | 0 .../src/store/{libraries.js => libraries.ts} | 0 .../store/{moderation.js => moderation.ts} | 0 front/src/store/{player.js => player.ts} | 0 .../src/store/{playlists.js => playlists.ts} | 0 front/src/store/{queue.js => queue.ts} | 0 front/src/store/{radios.js => radios.ts} | 0 front/src/store/{ui.js => ui.ts} | 0 front/src/types.ts | 50 +++- front/src/utils/{color.js => color.ts} | 5 +- front/src/utils/search.ts | 82 ++++++ .../src/views/admin/library/LibraryDetail.vue | 2 +- .../src/views/admin/library/UploadDetail.vue | 2 +- .../views/admin/moderation/ReportsList.vue | 4 +- .../views/admin/moderation/RequestsList.vue | 4 +- front/src/views/content/libraries/Card.vue | 2 +- .../views/content/libraries/FilesTable.vue | 4 +- front/src/views/content/libraries/Form.vue | 2 +- front/src/views/content/libraries/Quota.vue | 2 +- front/src/views/playlists/List.vue | 2 +- front/tsconfig.json | 5 +- front/tsconfig.node.json | 8 - 78 files changed, 626 insertions(+), 788 deletions(-) delete mode 100644 front/src/audio/backend.js delete mode 100644 front/src/audio/formats.js delete mode 100644 front/src/audio/volume.js create mode 100644 front/src/composables/audio/toLinearVolumeScale.ts rename front/src/composables/{ => locale}/useSharedLabels.ts (100%) create mode 100644 front/src/composables/moderation/useEditConfigs.ts create mode 100644 front/src/composables/moderation/useReportConfigs.ts delete mode 100644 front/src/edits.js delete mode 100644 front/src/entities.js rename front/src/{radios.js => radios.ts} (100%) delete mode 100644 front/src/sanitize.js delete mode 100644 front/src/search.js create mode 100644 front/src/shims-vuex.d.ts rename front/src/store/{auth.js => auth.ts} (100%) rename front/src/store/{channels.js => channels.ts} (100%) rename front/src/store/{favorites.js => favorites.ts} (100%) rename front/src/store/{instance.js => instance.ts} (100%) rename front/src/store/{libraries.js => libraries.ts} (100%) rename front/src/store/{moderation.js => moderation.ts} (100%) rename front/src/store/{player.js => player.ts} (100%) rename front/src/store/{playlists.js => playlists.ts} (100%) rename front/src/store/{queue.js => queue.ts} (100%) rename front/src/store/{radios.js => radios.ts} (100%) rename front/src/store/{ui.js => ui.ts} (100%) rename front/src/utils/{color.js => color.ts} (69%) create mode 100644 front/src/utils/search.ts delete mode 100644 front/tsconfig.node.json diff --git a/front/.eslintrc.js b/front/.eslintrc.js index cd4b153f9..df82458d0 100644 --- a/front/.eslintrc.js +++ b/front/.eslintrc.js @@ -28,11 +28,7 @@ module.exports = { // NOTE: Handled by typescript 'no-undef': 'off', 'no-unused-vars': 'off', - - // TODO (wvffle): Migrate to VUI - // We're using `// @ts-ignore` in jQuery extensions - // and gettext for vue 2 - '@typescript-eslint/ban-ts-comment': 'off', + 'no-use-before-define': 'off', // TODO (wvffle): Enable these rules later 'vue/multi-word-component-names': 'off', diff --git a/front/src/audio/backend.js b/front/src/audio/backend.js deleted file mode 100644 index 20032ac13..000000000 --- a/front/src/audio/backend.js +++ /dev/null @@ -1,23 +0,0 @@ -const Album = { - clean (album) { - // we manually rebind the album and artist to each child track - album.tracks = album.tracks.map((track) => { - track.album = album - return track - }) - return album - } -} -const Artist = { - clean (artist) { - // clean data as given by the API - artist.albums = artist.albums.map((album) => { - return Album.clean(album) - }) - return artist - } -} -export default { - Artist: Artist, - Album: Album -} diff --git a/front/src/audio/formats.js b/front/src/audio/formats.js deleted file mode 100644 index d8a5a4125..000000000 --- a/front/src/audio/formats.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - formats: [ - // 'audio/ogg', - 'audio/mpeg' - ], - formatsMap: { - 'audio/ogg': 'ogg', - 'audio/mpeg': 'mp3', - 'audio/x-flac': 'flac' - } -} diff --git a/front/src/audio/volume.js b/front/src/audio/volume.js deleted file mode 100644 index 05c74e670..000000000 --- a/front/src/audio/volume.js +++ /dev/null @@ -1,23 +0,0 @@ -const DYNAMIC_RANGE = 40 // dB - -export function toLinearVolumeScale (v) { - if (v <= 0.0) { - return 0.0 - } - - // (1.0; 0.0) -> (0; -DYNAMIC_RANGE) dB - const dB = (v - 1) * DYNAMIC_RANGE - - return Math.pow(10, dB / 20) -} - -export function toLogarithmicVolumeScale (v) { - if (v <= 0.0) { - return 0.0 - } - - const dB = 20 * Math.log10(v) - - // (0; -DYNAMIC_RANGE) [dB] -> (1.0; 0.0) - return 1 - (dB / -DYNAMIC_RANGE) -} diff --git a/front/src/components/admin/SettingsGroup.vue b/front/src/components/admin/SettingsGroup.vue index 6c55ff4df..676595626 100644 --- a/front/src/components/admin/SettingsGroup.vue +++ b/front/src/components/admin/SettingsGroup.vue @@ -51,8 +51,8 @@ import { useStore, mapState, mapGetters, mapActions } from 'vuex' -import { toLinearVolumeScale } from '~/audio/volume.js' +import toLinearVolumeScale from '~/composables/audio/toLinearVolumeScale' import { Howl, Howler } from 'howler' import { throttle, reverse } from 'lodash-es' import axios from 'axios' diff --git a/front/src/components/audio/podcast/Table.vue b/front/src/components/audio/podcast/Table.vue index cfa8a2d92..01c1f2cb6 100644 --- a/front/src/components/audio/podcast/Table.vue +++ b/front/src/components/audio/podcast/Table.vue @@ -27,17 +27,15 @@ class="ui center aligned basic segment desktop-and-up" > -
+
diff --git a/front/src/components/auth/ApplicationForm.vue b/front/src/components/auth/ApplicationForm.vue index 1269c8cdc..a28c5aafa 100644 --- a/front/src/components/auth/ApplicationForm.vue +++ b/front/src/components/auth/ApplicationForm.vue @@ -121,7 +121,7 @@ + - diff --git a/front/src/components/common/HumanDuration.vue b/front/src/components/common/HumanDuration.vue index 8505a6f91..81d0542db 100644 --- a/front/src/components/common/HumanDuration.vue +++ b/front/src/components/common/HumanDuration.vue @@ -7,7 +7,8 @@ interface Props { duration: number } -const { duration } = toRefs(defineProps()) +const props = defineProps() +const { duration } = toRefs(props) const parsedDuration = computed(() => time.parse(duration.value)) diff --git a/front/src/components/common/Message.vue b/front/src/components/common/Message.vue index f81fd1a95..d923e0f1f 100644 --- a/front/src/components/common/Message.vue +++ b/front/src/components/common/Message.vue @@ -23,7 +23,7 @@ onMounted(() => { ...props.message } - // @ts-expect-error + // @ts-expect-error toast is from semantic ui $('body').toast(params) $('.ui.toast.visible').last().attr('role', 'alert') }) diff --git a/front/src/components/favorites/List.vue b/front/src/components/favorites/List.vue index 0fa36027e..54bbd61a0 100644 --- a/front/src/components/favorites/List.vue +++ b/front/src/components/favorites/List.vue @@ -142,7 +142,7 @@ import PaginationMixin from '~/components/mixins/Pagination.vue' import { checkRedirectToLogin } from '~/utils' import TrackTable from '~/components/audio/track/Table.vue' import useLogger from '~/composables/useLogger' -import useSharedLabels from '../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' const logger = useLogger() diff --git a/front/src/components/library/Albums.vue b/front/src/components/library/Albums.vue index 98b6e104c..8ed558efe 100644 --- a/front/src/components/library/Albums.vue +++ b/front/src/components/library/Albums.vue @@ -157,7 +157,7 @@ import AlbumCard from '~/components/audio/album/Card.vue' import Pagination from '~/components/Pagination.vue' import TagsSelector from '~/components/library/TagsSelector.vue' import useLogger from '~/composables/useLogger' -import useSharedLabels from '../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' const logger = useLogger() diff --git a/front/src/components/library/Artists.vue b/front/src/components/library/Artists.vue index 7c0631de5..44444c8d9 100644 --- a/front/src/components/library/Artists.vue +++ b/front/src/components/library/Artists.vue @@ -173,7 +173,7 @@ import ArtistCard from '~/components/audio/artist/Card.vue' import Pagination from '~/components/Pagination.vue' import TagsSelector from '~/components/library/TagsSelector.vue' import useLogger from '~/composables/useLogger' -import useSharedLabels from '../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' const logger = useLogger() diff --git a/front/src/components/library/EditCard.vue b/front/src/components/library/EditCard.vue index acf8d80d8..209b0e129 100644 --- a/front/src/components/library/EditCard.vue +++ b/front/src/components/library/EditCard.vue @@ -219,7 +219,7 @@ import axios from 'axios' import { diffWordsWithSpace } from 'diff' -import edits from '~/edits.js' +import useEditConfigs from '~/composables/moderation/useEditConfigs' function castValue (value) { if (value === null || value === undefined) { @@ -233,15 +233,28 @@ export default { obj: { type: Object, required: true }, currentState: { type: Object, required: false, default: function () { return { } } } }, + setup () { + return { configs: useEditConfigs() } + }, data () { return { isLoading: false } }, computed: { - configs: edits.getConfigs, - canApprove: edits.getCanApprove, - canDelete: edits.getCanDelete, + canApprove () { + if (this.obj.is_applied) return false + if (!this.$store.state.auth.authenticated) return false + return this.$store.state.auth.availablePermissions.library + }, + canDelete () { + if (this.obj.is_applied || this.obj.is_approved) return false + if (!this.$store.state.auth.authenticated) return false + + // TODO (wvffle): Is it better to compare ids? Is full_username unique? + return this.obj.created_by.full_username === this.$store.state.auth.fullUsername || + this.$store.state.auth.availablePermissions.library + }, previousState () { if (this.obj.is_applied) { // mutation was applied, we use the previous state that is stored @@ -279,7 +292,7 @@ export default { const fields = Object.keys(payload) const self = this return fields.map((f) => { - const fieldConfig = edits.getFieldConfig(self.configs, this.obj.target.type, f) + const fieldConfig = configs[this.obj.target.type].fields.find(({ id }) => id === f) const dummyRepr = (v) => { return v } const getValueRepr = fieldConfig.getValueRepr || dummyRepr const d = { diff --git a/front/src/components/library/EditDetail.vue b/front/src/components/library/EditDetail.vue index 8758dab70..83d8e8bb7 100644 --- a/front/src/components/library/EditDetail.vue +++ b/front/src/components/library/EditDetail.vue @@ -1,5 +1,46 @@ + + - - diff --git a/front/src/components/library/EditForm.vue b/front/src/components/library/EditForm.vue index 48e3103b9..3543add6a 100644 --- a/front/src/components/library/EditForm.vue +++ b/front/src/components/library/EditForm.vue @@ -249,7 +249,8 @@ import AttachmentInput from '~/components/common/AttachmentInput.vue' import EditList from '~/components/library/EditList.vue' import EditCard from '~/components/library/EditCard.vue' import TagsSelector from '~/components/library/TagsSelector.vue' -import edits from '~/edits.js' +import useEditConfigs from '~/composables/useEditConfigs' +import { computed } from 'vue/dist/vue' export default { components: { @@ -263,6 +264,16 @@ export default { object: { type: Object, required: true }, licenses: { type: Array, required: true } }, + setup (props) { + const configs = useEditConfigs() + const config = computed(() => configs[props.objectType]) + const currentState = computed(() => config.value.fields.reduce((state/*: Record */, field) => { + state[field.id] = { value: field.getValue(props.object) } + return state + }, {})) + + return { config, currentState, configs } + }, data () { return { isLoading: false, @@ -275,10 +286,15 @@ export default { } }, computed: { - configs: edits.getConfigs, - config: edits.getConfig, - currentState: edits.getCurrentState, - canEdit: edits.getCanEdit, + canEdit () { + if (!this.$store.state.auth.authenticated) return false + + const isOwner = this.object.attributed_to && + // TODO (wvffle): Is it better to compare ids? Is full_username unique? + this.$store.state.auth.fullUsername === this.object.attributed_to.full_username + + return isOwner || this.$store.state.auth.availablePermissions.library + }, labels () { return { summaryPlaceholder: this.$pgettext('*/*/Placeholder', 'A short summary describing your changes.') diff --git a/front/src/components/library/Podcasts.vue b/front/src/components/library/Podcasts.vue index 54121fb23..10a0e7e57 100644 --- a/front/src/components/library/Podcasts.vue +++ b/front/src/components/library/Podcasts.vue @@ -207,7 +207,7 @@ import TagsSelector from '~/components/library/TagsSelector.vue' import Modal from '~/components/semantic/Modal.vue' import RemoteSearchForm from '~/components/RemoteSearchForm.vue' import useLogger from '~/composables/useLogger' -import useSharedLabels from '../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' const logger = useLogger() diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue index 2593a5ceb..9449c51a0 100644 --- a/front/src/components/library/Radios.vue +++ b/front/src/components/library/Radios.vue @@ -182,7 +182,7 @@ import PaginationMixin from '~/components/mixins/Pagination.vue' import RadioCard from '~/components/radios/Card.vue' import Pagination from '~/components/Pagination.vue' import useLogger from '~/composables/useLogger' -import useSharedLabels from '../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' const logger = useLogger() diff --git a/front/src/components/manage/ChannelsTable.vue b/front/src/components/manage/ChannelsTable.vue index 524f294b7..d92b85c82 100644 --- a/front/src/components/manage/ChannelsTable.vue +++ b/front/src/components/manage/ChannelsTable.vue @@ -202,12 +202,12 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import useSharedLabels from '../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/library/AlbumsTable.vue b/front/src/components/manage/library/AlbumsTable.vue index 914d0414b..43c9bb586 100644 --- a/front/src/components/manage/library/AlbumsTable.vue +++ b/front/src/components/manage/library/AlbumsTable.vue @@ -187,12 +187,12 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/library/ArtistsTable.vue b/front/src/components/manage/library/ArtistsTable.vue index fdbe729b2..2e2021b20 100644 --- a/front/src/components/manage/library/ArtistsTable.vue +++ b/front/src/components/manage/library/ArtistsTable.vue @@ -186,12 +186,12 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/library/EditsCardList.vue b/front/src/components/manage/library/EditsCardList.vue index 9266fa565..cee8027f8 100644 --- a/front/src/components/manage/library/EditsCardList.vue +++ b/front/src/components/manage/library/EditsCardList.vue @@ -136,11 +136,11 @@ import time from '~/utils/time' import Pagination from '~/components/Pagination.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import EditCard from '~/components/library/EditCard.vue' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import edits from '~/edits' -import useSharedLabels from '../../../composables/useSharedLabels' +import useEditConfigs from '~/composables/useEditConfigs' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { @@ -153,7 +153,8 @@ export default { }, setup () { const sharedLabels = useSharedLabels() - return { sharedLabels } + const configs = useEditConfigs() + return { sharedLabels, configs } }, data () { return { @@ -244,7 +245,10 @@ export default { response.data.results.forEach((e) => { self.targets[k][e.id] = { payload: e, - currentState: edits.getCurrentStateForObj(e, edits.getConfigs.bind(self)()[k]) + currentState: configs[k].fields.reduce((state/*: Record */, field) => { + state[field.id] = { value: field.getValue(e) } + return state + }, {}) } }) }, error => { diff --git a/front/src/components/manage/library/LibrariesTable.vue b/front/src/components/manage/library/LibrariesTable.vue index 55c1cf241..67d76968a 100644 --- a/front/src/components/manage/library/LibrariesTable.vue +++ b/front/src/components/manage/library/LibrariesTable.vue @@ -217,12 +217,12 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/library/TagsTable.vue b/front/src/components/manage/library/TagsTable.vue index e2f3ed821..47dc00296 100644 --- a/front/src/components/manage/library/TagsTable.vue +++ b/front/src/components/manage/library/TagsTable.vue @@ -148,14 +148,14 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' import ImportStatusModal from '~/components/library/ImportStatusModal.vue' import { truncate } from '~/utils/filters' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/library/TracksTable.vue b/front/src/components/manage/library/TracksTable.vue index 880417d94..5dd65bc16 100644 --- a/front/src/components/manage/library/TracksTable.vue +++ b/front/src/components/manage/library/TracksTable.vue @@ -200,12 +200,12 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/library/UploadsTable.vue b/front/src/components/manage/library/UploadsTable.vue index 1f5fc7d54..102e0d6f1 100644 --- a/front/src/components/manage/library/UploadsTable.vue +++ b/front/src/components/manage/library/UploadsTable.vue @@ -309,14 +309,14 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' import ImportStatusModal from '~/components/library/ImportStatusModal.vue' import { humanSize, truncate } from '~/utils/filters' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/moderation/AccountsTable.vue b/front/src/components/manage/moderation/AccountsTable.vue index 30f9f4dbc..9c82c81e8 100644 --- a/front/src/components/manage/moderation/AccountsTable.vue +++ b/front/src/components/manage/moderation/AccountsTable.vue @@ -173,12 +173,12 @@ import axios from 'axios' import { merge } from 'lodash-es' import time from '~/utils/time' -import { normalizeQuery, parseTokens } from '~/search' +import { normalizeQuery, parseTokens } from '~/utils/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/moderation/DomainsTable.vue b/front/src/components/manage/moderation/DomainsTable.vue index 9669d56ef..3de61a838 100644 --- a/front/src/components/manage/moderation/DomainsTable.vue +++ b/front/src/components/manage/moderation/DomainsTable.vue @@ -187,7 +187,7 @@ import time from '~/utils/time' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/moderation/ReportCard.vue b/front/src/components/manage/moderation/ReportCard.vue index 0bf1dd29d..30f4c4504 100644 --- a/front/src/components/manage/moderation/ReportCard.vue +++ b/front/src/components/manage/moderation/ReportCard.vue @@ -396,7 +396,7 @@ import NoteForm from '~/components/manage/moderation/NoteForm.vue' import NotesThread from '~/components/manage/moderation/NotesThread.vue' import ReportCategoryDropdown from '~/components/moderation/ReportCategoryDropdown.vue' import InstancePolicyModal from '~/components/manage/moderation/InstancePolicyModal.vue' -import entities from '~/entities' +import useReportConfigs from '~/composables/moderation/useReportConfigs.ts' import { setUpdate } from '~/utils' import showdown from 'showdown' @@ -418,6 +418,9 @@ export default { initObj: { type: Object, required: true }, currentState: { type: String, required: false, default: '' } }, + setup () { + return { configs: useReportConfigs() } + }, data () { return { obj: this.initObj, @@ -430,7 +433,6 @@ export default { } }, computed: { - configs: entities.getConfigs, previousState () { if (this.obj.is_applied) { // mutation was applied, we use the previous state that is stored @@ -466,15 +468,13 @@ export default { const payload = this.obj.target_state const fields = this.configs[this.target.type].moderatedFields return fields.map((fieldConfig) => { - const dummyRepr = (v) => { return v } - const getValueRepr = fieldConfig.getValueRepr || dummyRepr - const d = { + const getValueRepr = fieldConfig.getValueRepr ?? (i => i) + return { id: fieldConfig.id, label: fieldConfig.label, value: payload[fieldConfig.id], repr: castValue(getValueRepr(payload[fieldConfig.id])) } - return d }) }, target () { diff --git a/front/src/components/manage/users/InvitationsTable.vue b/front/src/components/manage/users/InvitationsTable.vue index 1bbc877ca..f3278652c 100644 --- a/front/src/components/manage/users/InvitationsTable.vue +++ b/front/src/components/manage/users/InvitationsTable.vue @@ -161,7 +161,7 @@ import { merge } from 'lodash-es' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/manage/users/UsersTable.vue b/front/src/components/manage/users/UsersTable.vue index ac5db61ea..627e6759a 100644 --- a/front/src/components/manage/users/UsersTable.vue +++ b/front/src/components/manage/users/UsersTable.vue @@ -204,7 +204,7 @@ import time from '~/utils/time' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import useSharedLabels from '../../../composables/useSharedLabels' +import useSharedLabels from '~/composables/locale/useSharedLabels' export default { components: { diff --git a/front/src/components/mixins/SmartSearch.vue b/front/src/components/mixins/SmartSearch.vue index 4eec45e73..97e308ed6 100644 --- a/front/src/components/mixins/SmartSearch.vue +++ b/front/src/components/mixins/SmartSearch.vue @@ -1,6 +1,6 @@