-
- /front/src/components/library/AlbumBase.vue
+
+
+
{
{{ t('components.library.AlbumBase.meta.tracks', totalTracks) }}
-
-
{
/>
-
+
{
-
+
{
@libraries-loaded="libraries = $event"
/>
-
+
-
+
diff --git a/front/src/components/library/AlbumDetail.vue b/front/src/components/library/AlbumDetail.vue
index a33569f55..2d120a30c 100644
--- a/front/src/components/library/AlbumDetail.vue
+++ b/front/src/components/library/AlbumDetail.vue
@@ -56,7 +56,6 @@ const paginatedDiscs = computed(() => props.object.tracks.slice(props.paginateBy
diff --git a/front/src/components/library/ArtistEdit.vue b/front/src/components/library/ArtistEdit.vue
index 441a39238..76d0a0fe5 100644
--- a/front/src/components/library/ArtistEdit.vue
+++ b/front/src/components/library/ArtistEdit.vue
@@ -3,10 +3,13 @@ import type { EditObjectType } from '~/composables/moderation/useEditConfigs'
import type { Artist, Library } from '~/types'
import { useI18n } from 'vue-i18n'
-
import { useStore } from '~/store'
import EditForm from '~/components/library/EditForm.vue'
+import Section from '~/components/ui/Section.vue'
+import Spacer from '~/components/ui/Spacer.vue'
+import Layout from '~/components/ui/Layout.vue'
+import Alert from '~/components/ui/Alert.vue'
interface Props {
objectType: EditObjectType
@@ -23,27 +26,23 @@ const canEdit = store.state.auth.availablePermissions.library
-
-
-
-
- {{ t('components.library.ArtistEdit.header.edit') }}
-
-
- {{ t('components.library.ArtistEdit.header.suggest') }}
-
-
-
- {{ t('components.library.ArtistEdit.message.remote') }}
-
-
-
-
+
+
+
+
+ {{ t('components.library.ArtistEdit.message.remote') }}
+
+
+
diff --git a/front/src/components/library/EditCard.vue b/front/src/components/library/EditCard.vue
index b579c4961..b25a1fdfc 100644
--- a/front/src/components/library/EditCard.vue
+++ b/front/src/components/library/EditCard.vue
@@ -8,13 +8,20 @@ import { useRouter } from 'vue-router'
import { computed, ref } from 'vue'
import { useStore } from '~/store'
import { useI18n } from 'vue-i18n'
-
+import { color, setColors } from '~/composables/color'
import axios from 'axios'
import useEditConfigs from '~/composables/moderation/useEditConfigs'
import useErrorHandler from '~/composables/useErrorHandler'
+import Button from '~/components/ui/Button.vue'
+import DangerousButton from '~/components/common/DangerousButton.vue'
+import Card from '~/components/ui/Card.vue'
+import Link from '~/components/ui/Link.vue'
+import Alert from '~/components/ui/Alert.vue'
+import Spacer from '~/components/ui/Spacer.vue'
+
interface Events {
(e: 'approved', isApproved: boolean): void
(e: 'deleted'): void
@@ -155,7 +162,8 @@ const approve = async (approved: boolean) => {
-
{
>
{{ obj.summary }}
-
-
+
+
-
-
-
- {{ t('components.library.EditCard.table.update.header.field') }}
- |
-
- {{ t('components.library.EditCard.table.update.header.oldValue') }}
- |
-
- {{ t('components.library.EditCard.table.update.header.newValue') }}
- |
-
-
-
-
- {{ field.id }} |
-
-
-
-
-
-
-
- {{ part.value }}
-
-
- |
-
- {{ t('components.library.EditCard.table.update.notApplicable') }}
- |
-
-
+
+
+ {{ t('components.library.EditCard.status.applied') }}
+
+
+
+ {{ t('components.library.EditCard.status.approved') }}
+
+
+
+ {{ t('components.library.EditCard.status.pending') }}
+
+
+
+ {{ t('components.library.EditCard.status.rejected') }}
+
+
+
+
+
+
+ {{ t('components.library.EditCard.table.update.header.field') }}
+ |
+
+ {{ t('components.library.EditCard.table.update.header.oldValue') }}
+ |
+
+ {{ t('components.library.EditCard.table.update.header.newValue') }}
+ |
+
+
+
+
-
-
-
-
-
- {{ part.value }}
-
-
-
-
-
-
-
-
- {{ field.newRepr }}
-
- |
-
-
-
-
+ | {{ field.id }} |
+
+
+
+
+
+
+
+ {{ part.value }}
+
+
+ |
+
+ {{ t('components.library.EditCard.table.update.notApplicable') }}
+ |
+
+
+
+
+
+
+
+ {{ part.value }}
+
+
+ |
+
+
+
+
+
+ {{ field.newRepr }}
+
+ |
+
+
+
+
+
-
-
-
+
{
-
-
+
+
+
+
\ No newline at end of file
diff --git a/front/src/components/library/EditForm.vue b/front/src/components/library/EditForm.vue
index b3103b9dd..c5d232540 100644
--- a/front/src/components/library/EditForm.vue
+++ b/front/src/components/library/EditForm.vue
@@ -2,19 +2,27 @@
import type { EditObject, EditObjectType } from '~/composables/moderation/useEditConfigs'
import type { BackendError, License, ReviewState } from '~/types'
-import { computed, onMounted, reactive, ref, watchEffect } from 'vue'
+import { computed, reactive, ref } from 'vue'
import { isEqual, clone } from 'lodash-es'
import { useI18n } from 'vue-i18n'
import { useStore } from '~/store'
import axios from 'axios'
-import $ from 'jquery'
import AttachmentInput from '~/components/common/AttachmentInput.vue'
import useEditConfigs from '~/composables/moderation/useEditConfigs'
import TagsSelector from '~/components/library/TagsSelector.vue'
import EditList from '~/components/library/EditList.vue'
import EditCard from '~/components/library/EditCard.vue'
+import Layout from '~/components/ui/Layout.vue'
+import Button from '~/components/ui/Button.vue'
+import Link from '~/components/ui/Link.vue'
+import Section from '~/components/ui/Section.vue'
+import Spacer from '~/components/ui/Spacer.vue'
+import Input from '~/components/ui/Input.vue'
+import Textarea from "~/components/ui/Textarea.vue"
+import Pills from "~/components/ui/Pills.vue"
+import Alert from "~/components/ui/Alert.vue"
interface Props {
objectType: EditObjectType
@@ -93,20 +101,6 @@ for (const { id, getValue } of config.value.fields) {
initialValues[id] = clone(values[id])
}
-const license = ref()
-watchEffect(() => {
- if (values.license === null) {
- $(license.value).dropdown('clear')
- return
- }
-
- $(license.value).dropdown('set selected', values.license)
-})
-
-onMounted(() => {
- $('.ui.dropdown').dropdown({ fullTextSearch: true })
-})
-
const submittedMutation = ref()
const summary = ref('')
@@ -145,23 +139,21 @@ const resetField = (fieldId: string) => {
-
-
-
{{ t('components.library.EditForm.button.new') }}
-
-
+
+
{
:current-state="currentState"
>
+
{{ t('components.library.EditForm.header.unreviewed') }}
{
-
+
+
diff --git a/front/src/components/library/EditList.vue b/front/src/components/library/EditList.vue
index ede66661c..ed754ce63 100644
--- a/front/src/components/library/EditList.vue
+++ b/front/src/components/library/EditList.vue
@@ -5,6 +5,9 @@ import { ref, watchEffect } from 'vue'
import axios from 'axios'
import EditCard from '~/components/library/EditCard.vue'
+import Layout from '~/components/ui/Layout.vue'
+import Button from '~/components/ui/Button.vue'
+import Loader from '~/components/ui/Loader.vue'
interface Props {
url: string
@@ -45,37 +48,24 @@ watchEffect(() => fetchData())
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
fetchData())
@updated="fetchData(url)"
@deleted="fetchData(url)"
/>
-
+
+
+
diff --git a/front/src/views/content/remote/Card.vue b/front/src/views/content/remote/Card.vue
index b814c5608..c14abba6e 100644
--- a/front/src/views/content/remote/Card.vue
+++ b/front/src/views/content/remote/Card.vue
@@ -9,6 +9,11 @@ import { useStore } from '~/store'
import axios from 'axios'
import RadioButton from '~/components/radios/Button.vue'
+import Card from '~/components/ui/Card.vue'
+import OptionsButton from '~/components/ui/button/Options.vue'
+import Popover from '~/components/ui/Popover.vue'
+import PopoverItem from '~/components/ui/popover/PopoverItem.vue'
+import Spacer from '~/components/ui/Spacer.vue'
import useErrorHandler from '~/composables/useErrorHandler'
import useReport from '~/composables/moderation/useReport'
@@ -142,58 +147,63 @@ watch(showScan, (shouldShow) => {
stopFetching()
})
+
+const isOpen = ref(false)
-
+
-
+
{{ library.description }}
-
+
-
+
{{ t('views.content.remote.Card.meta.tracks', library.uploads_count) }}
{
class="meta"
>
-
+
{{ t('views.content.remote.Card.label.scanPending') }}
@@ -209,15 +219,15 @@ watch(showScan, (shouldShow) => {
{{ t('views.content.remote.Card.label.scanProgress', {progress: scanProgress}) }}
-
+
{{ t('views.content.remote.Card.label.scanFailure') }}
-
+
{{ t('views.content.remote.Card.label.scanSuccess') }}
-
+
{{ t('views.content.remote.Card.label.scanPartialSuccess') }}
{
{{ t('views.content.remote.Card.link.scanDetails') }}
@@ -251,16 +261,19 @@ watch(showScan, (shouldShow) => {
class="right floated link"
@click.prevent="launchScan"
>
- {{ t('views.content.remote.Card.link.scan') }}
+ {{ t('views.content.remote.Card.link.scan') }}
+
+
+
-
+