From 16d437be62983d9db39ff76e00bcb3a4cdcd569b Mon Sep 17 00:00:00 2001 From: Kasper Seweryn Date: Sun, 1 May 2022 18:46:27 +0200 Subject: [PATCH] Migrate Translations mixin to useSharedLabels composable --- front/src/components/audio/track/Modal.vue | 2 +- front/src/components/auth/ApplicationForm.vue | 7 +- front/src/components/auth/Authorize.vue | 8 +- front/src/components/auth/Settings.vue | 7 +- front/src/components/common/ContentForm.vue | 12 +- front/src/components/common/UserModal.vue | 2 +- front/src/components/favorites/List.vue | 8 +- front/src/components/library/Albums.vue | 8 +- front/src/components/library/Artists.vue | 8 +- front/src/components/library/EditForm.vue | 9 +- front/src/components/library/FsBrowser.vue | 57 +++---- front/src/components/library/Podcasts.vue | 8 +- front/src/components/library/Radios.vue | 8 +- front/src/components/library/TagsSelector.vue | 8 +- front/src/components/manage/ChannelsTable.vue | 8 +- .../components/manage/library/AlbumsTable.vue | 8 +- .../manage/library/ArtistsTable.vue | 8 +- .../manage/library/EditsCardList.vue | 8 +- .../manage/library/LibrariesTable.vue | 8 +- .../components/manage/library/TagsTable.vue | 7 +- .../components/manage/library/TracksTable.vue | 8 +- .../manage/library/UploadsTable.vue | 7 +- .../manage/moderation/AccountsTable.vue | 8 +- .../manage/moderation/DomainsTable.vue | 8 +- .../manage/moderation/ReportCard.vue | 4 +- .../manage/users/InvitationsTable.vue | 8 +- .../components/manage/users/UsersTable.vue | 8 +- front/src/components/mixins/Translations.vue | 148 ------------------ .../moderation/ReportCategoryDropdown.vue | 104 ++++++------ front/src/components/playlists/Form.vue | 7 +- front/src/composables/useSharedLabels.ts | 144 +++++++++++++++++ front/src/main.ts | 4 +- front/src/types.ts | 11 ++ .../src/views/admin/library/LibraryDetail.vue | 10 +- .../src/views/admin/library/UploadDetail.vue | 8 +- .../views/admin/moderation/ReportsList.vue | 12 +- .../views/admin/moderation/RequestsList.vue | 8 +- front/src/views/content/libraries/Card.vue | 6 +- .../views/content/libraries/FilesTable.vue | 7 +- front/src/views/content/libraries/Form.vue | 7 +- front/src/views/playlists/List.vue | 8 +- 41 files changed, 421 insertions(+), 313 deletions(-) delete mode 100644 front/src/components/mixins/Translations.vue create mode 100644 front/src/composables/useSharedLabels.ts diff --git a/front/src/components/audio/track/Modal.vue b/front/src/components/audio/track/Modal.vue index 56228500b..cb18978d1 100644 --- a/front/src/components/audio/track/Modal.vue +++ b/front/src/components/audio/track/Modal.vue @@ -228,7 +228,7 @@ import Modal from '~/components/semantic/Modal.vue' import ReportMixin from '~/components/mixins/Report.vue' import PlayOptionsMixin from '~/components/mixins/PlayOptions.vue' -import { useVModel } from '@vueuse/core/index' +import { useVModel } from '@vueuse/core' export default { components: { diff --git a/front/src/components/auth/ApplicationForm.vue b/front/src/components/auth/ApplicationForm.vue index 059aa3f53..1269c8cdc 100644 --- a/front/src/components/auth/ApplicationForm.vue +++ b/front/src/components/auth/ApplicationForm.vue @@ -121,14 +121,17 @@ + - diff --git a/front/src/components/library/Podcasts.vue b/front/src/components/library/Podcasts.vue index 002394c4d..54121fb23 100644 --- a/front/src/components/library/Podcasts.vue +++ b/front/src/components/library/Podcasts.vue @@ -201,13 +201,13 @@ import $ from 'jquery' import OrderingMixin from '~/components/mixins/Ordering.vue' import PaginationMixin from '~/components/mixins/Pagination.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import ArtistCard from '~/components/audio/artist/Card.vue' import Pagination from '~/components/Pagination.vue' 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' const logger = useLogger() @@ -221,12 +221,16 @@ export default { RemoteSearchForm, Modal }, - mixins: [OrderingMixin, PaginationMixin, TranslationsMixin], + mixins: [OrderingMixin, PaginationMixin], props: { defaultQuery: { type: String, required: false, default: '' }, defaultTags: { type: Array, required: false, default: () => { return [] } }, scope: { type: String, required: false, default: 'all' } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { isLoading: true, diff --git a/front/src/components/library/Radios.vue b/front/src/components/library/Radios.vue index df80b6650..2593a5ceb 100644 --- a/front/src/components/library/Radios.vue +++ b/front/src/components/library/Radios.vue @@ -179,10 +179,10 @@ import $ from 'jquery' import OrderingMixin from '~/components/mixins/Ordering.vue' import PaginationMixin from '~/components/mixins/Pagination.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import RadioCard from '~/components/radios/Card.vue' import Pagination from '~/components/Pagination.vue' import useLogger from '~/composables/useLogger' +import useSharedLabels from '../../composables/useSharedLabels' const logger = useLogger() @@ -193,11 +193,15 @@ export default { RadioCard, Pagination }, - mixins: [OrderingMixin, PaginationMixin, TranslationsMixin], + mixins: [OrderingMixin, PaginationMixin], props: { defaultQuery: { type: String, required: false, default: '' }, scope: { type: String, required: false, default: 'all' } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { isLoading: true, diff --git a/front/src/components/library/TagsSelector.vue b/front/src/components/library/TagsSelector.vue index 10e148541..3015a16f5 100644 --- a/front/src/components/library/TagsSelector.vue +++ b/front/src/components/library/TagsSelector.vue @@ -22,9 +22,9 @@ import $ from 'jquery' import { isEqual } from 'lodash-es' export default { - props: { value: { type: Array, required: true } }, + props: { modelValue: { type: Array, required: true } }, watch: { - value: { + modelValue: { handler (v) { const current = $(this.$refs.dropdown).dropdown('get value').split(',').sort() if (!isEqual([...v].sort(), current)) { @@ -44,7 +44,7 @@ export default { const self = this const handleUpdate = () => { const value = $(self.$refs.dropdown).dropdown('get value').split(',') - self.$emit('input', value) + self.$emit('update:modelValue', value) return value } const settings = { @@ -95,7 +95,7 @@ export default { onChange: handleUpdate } $(this.$refs.dropdown).dropdown(settings) - $(this.$refs.dropdown).dropdown('set exactly', this.value) + $(this.$refs.dropdown).dropdown('set exactly', this.modelValue) } } } diff --git a/front/src/components/manage/ChannelsTable.vue b/front/src/components/manage/ChannelsTable.vue index 7dc663fd0..524f294b7 100644 --- a/front/src/components/manage/ChannelsTable.vue +++ b/front/src/components/manage/ChannelsTable.vue @@ -206,18 +206,22 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' +import useSharedLabels from '../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/library/AlbumsTable.vue b/front/src/components/manage/library/AlbumsTable.vue index 23ecf23a5..914d0414b 100644 --- a/front/src/components/manage/library/AlbumsTable.vue +++ b/front/src/components/manage/library/AlbumsTable.vue @@ -191,18 +191,22 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/library/ArtistsTable.vue b/front/src/components/manage/library/ArtistsTable.vue index 3d6a8e295..fdbe729b2 100644 --- a/front/src/components/manage/library/ArtistsTable.vue +++ b/front/src/components/manage/library/ArtistsTable.vue @@ -190,18 +190,22 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/library/EditsCardList.vue b/front/src/components/manage/library/EditsCardList.vue index 28aba1190..b3abcb979 100644 --- a/front/src/components/manage/library/EditsCardList.vue +++ b/front/src/components/manage/library/EditsCardList.vue @@ -135,22 +135,26 @@ import { uniq, merge } from 'lodash-es' import time from '~/utils/time' import Pagination from '~/components/Pagination.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import EditCard from '~/components/library/EditCard.vue' import { normalizeQuery, parseTokens } from '~/search' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' import edits from '~/edits' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, EditCard }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/library/LibrariesTable.vue b/front/src/components/manage/library/LibrariesTable.vue index 838de0d2c..55c1cf241 100644 --- a/front/src/components/manage/library/LibrariesTable.vue +++ b/front/src/components/manage/library/LibrariesTable.vue @@ -221,18 +221,22 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/library/TagsTable.vue b/front/src/components/manage/library/TagsTable.vue index ce4b9824b..e2f3ed821 100644 --- a/front/src/components/manage/library/TagsTable.vue +++ b/front/src/components/manage/library/TagsTable.vue @@ -152,10 +152,10 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.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' export default { components: { @@ -163,12 +163,13 @@ export default { ActionTable, ImportStatusModal }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, setup () { - return { truncate } + const sharedLabels = useSharedLabels() + return { sharedLabels, truncate } }, data () { return { diff --git a/front/src/components/manage/library/TracksTable.vue b/front/src/components/manage/library/TracksTable.vue index d6f6fb174..880417d94 100644 --- a/front/src/components/manage/library/TracksTable.vue +++ b/front/src/components/manage/library/TracksTable.vue @@ -204,18 +204,22 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: () => { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/library/UploadsTable.vue b/front/src/components/manage/library/UploadsTable.vue index b5a6e44c3..1f5fc7d54 100644 --- a/front/src/components/manage/library/UploadsTable.vue +++ b/front/src/components/manage/library/UploadsTable.vue @@ -313,10 +313,10 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.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' export default { components: { @@ -324,12 +324,13 @@ export default { ActionTable, ImportStatusModal }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: function () { return {} } } }, setup () { - return { humanSize, truncate } + const sharedLabels = useSharedLabels() + return { sharedLabels, humanSize, truncate } }, data () { return { diff --git a/front/src/components/manage/moderation/AccountsTable.vue b/front/src/components/manage/moderation/AccountsTable.vue index 5992ccaf8..30f9f4dbc 100644 --- a/front/src/components/manage/moderation/AccountsTable.vue +++ b/front/src/components/manage/moderation/AccountsTable.vue @@ -177,18 +177,22 @@ import { normalizeQuery, parseTokens } from '~/search' import Pagination from '~/components/Pagination.vue' import ActionTable from '~/components/common/ActionTable.vue' import OrderingMixin from '~/components/mixins/Ordering.vue' -import TranslationsMixin from '~/components/mixins/Translations.vue' import SmartSearchMixin from '~/components/mixins/SmartSearch.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin, SmartSearchMixin], + mixins: [OrderingMixin, SmartSearchMixin], props: { filters: { type: Object, required: false, default: function () { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/moderation/DomainsTable.vue b/front/src/components/manage/moderation/DomainsTable.vue index 46c793949..9669d56ef 100644 --- a/front/src/components/manage/moderation/DomainsTable.vue +++ b/front/src/components/manage/moderation/DomainsTable.vue @@ -187,18 +187,22 @@ 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 TranslationsMixin from '~/components/mixins/Translations.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin], + mixins: [OrderingMixin], props: { filters: { type: Object, required: false, default: function () { return {} } }, allowListEnabled: { type: Boolean, default: false } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/manage/moderation/ReportCard.vue b/front/src/components/manage/moderation/ReportCard.vue index a01dc88ae..15391a8ab 100644 --- a/front/src/components/manage/moderation/ReportCard.vue +++ b/front/src/components/manage/moderation/ReportCard.vue @@ -47,8 +47,8 @@ diff --git a/front/src/components/manage/users/InvitationsTable.vue b/front/src/components/manage/users/InvitationsTable.vue index cdb7e4992..1bbc877ca 100644 --- a/front/src/components/manage/users/InvitationsTable.vue +++ b/front/src/components/manage/users/InvitationsTable.vue @@ -161,17 +161,21 @@ 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 TranslationsMixin from '~/components/mixins/Translations.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin], + mixins: [OrderingMixin], props: { filters: { type: Object, required: false, default: function () { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { moment, diff --git a/front/src/components/manage/users/UsersTable.vue b/front/src/components/manage/users/UsersTable.vue index fac5bde43..ac5db61ea 100644 --- a/front/src/components/manage/users/UsersTable.vue +++ b/front/src/components/manage/users/UsersTable.vue @@ -204,17 +204,21 @@ 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 TranslationsMixin from '~/components/mixins/Translations.vue' +import useSharedLabels from '../../../composables/useSharedLabels' export default { components: { Pagination, ActionTable }, - mixins: [OrderingMixin, TranslationsMixin], + mixins: [OrderingMixin], props: { filters: { type: Object, required: false, default: function () { return {} } } }, + setup () { + const sharedLabels = useSharedLabels() + return { sharedLabels } + }, data () { return { time, diff --git a/front/src/components/mixins/Translations.vue b/front/src/components/mixins/Translations.vue deleted file mode 100644 index 4380ae6ee..000000000 --- a/front/src/components/mixins/Translations.vue +++ /dev/null @@ -1,148 +0,0 @@ - diff --git a/front/src/components/moderation/ReportCategoryDropdown.vue b/front/src/components/moderation/ReportCategoryDropdown.vue index 0b5ef81af..3c9c30621 100644 --- a/front/src/components/moderation/ReportCategoryDropdown.vue +++ b/front/src/components/moderation/ReportCategoryDropdown.vue @@ -1,11 +1,65 @@ + + - - diff --git a/front/src/components/playlists/Form.vue b/front/src/components/playlists/Form.vue index d11e31f9c..cde454b9d 100644 --- a/front/src/components/playlists/Form.vue +++ b/front/src/components/playlists/Form.vue @@ -100,18 +100,21 @@