chore: address linter

This commit is contained in:
jon r 2025-04-03 10:29:24 +02:00
parent 76aa05dd59
commit 70ac26dbff
11 changed files with 120 additions and 110 deletions

View File

@ -79,7 +79,7 @@ watch(
<template> <template>
<Section <Section
align-left align-left
columns-per-item=1 columns-per-item="1"
:h2="title" :h2="title"
> >
<Loader <Loader

View File

@ -25,15 +25,18 @@ const getRoute = (ac: ArtistCredit) => {
</script> </script>
<template> <template>
<Layout flex gap-8> <Layout
flex
gap-8
>
<template <template
v-for="ac in props.artistCredit" v-for="ac in props.artistCredit"
:key="ac.artist.id" :key="ac.artist.id"
> >
<router-link <router-link
:to="{name: 'library.artists.detail', params: {id: ac.artist.id }}" :to="{name: 'library.artists.detail', params: {id: ac.artist.id }}"
@click.stop.prevent=""
class="username" class="username"
@click.stop.prevent=""
> >
<Pill> <Pill>
<template #image> <template #image>

View File

@ -101,9 +101,9 @@ const { copy, copied } = useClipboard({ source: embedCode })
<div class="field"> <div class="field">
<Button <Button
class="right floated" class="right floated"
@click="copy()"
icon="bi-copy" icon="bi-copy"
secondary secondary
@click="copy()"
> >
{{ t('components.audio.EmbedWizard.button.copy') }} {{ t('components.audio.EmbedWizard.button.copy') }}
</Button> </Button>

View File

@ -280,8 +280,8 @@ const resetField = (fieldId: string) => {
<template v-else-if="fieldConfig.type === 'content'"> <template v-else-if="fieldConfig.type === 'content'">
<Textarea <Textarea
:id="fieldConfig.id" :id="fieldConfig.id"
:label="fieldConfig.label"
v-model="values[fieldConfig.id].text" v-model="values[fieldConfig.id].text"
:label="fieldConfig.label"
initial-lines="3" initial-lines="3"
/> />
</template> </template>

View File

@ -27,84 +27,83 @@ const labels = computed(() => ({
</script> </script>
<template> <template>
<h1 class="ui header"> <h1 class="ui header">
<span class="funkwhale solid raised secondary pill"> <span class="funkwhale solid raised secondary pill">
<span class="pill-content"> <span class="pill-content">
{{ labels.title }} {{ labels.title }}
</span>
</span> </span>
</h1> </span>
<Layout </h1>
flex <Layout
class="buttons" flex
class="buttons"
>
<radio-button
type="tag"
:object-id="id"
/>
<Button
v-if="store.state.auth.availablePermissions['library']"
icon="bi-wrench"
secondary
:to="{name: 'manage.library.tags.detail', params: {id: id}}"
> >
<radio-button {{ t('components.library.TagDetail.link.moderation') }}
type="tag" </Button>
:object-id="id" </Layout>
/>
<Button
v-if="store.state.auth.availablePermissions['library']"
icon="bi-wrench"
secondary
:to="{name: 'manage.library.tags.detail', params: {id: id}}"
>
{{ t('components.library.TagDetail.link.moderation') }}
</Button>
</Layout>
<Spacer :size=64 /> <Spacer :size="64" />
<artist-widget <artist-widget
:key="'artist' + id" :key="'artist' + id"
:controls="false" :controls="false"
:title="t('components.library.TagDetail.header.artists')" :title="t('components.library.TagDetail.header.artists')"
:action="{ :action="{
text: t('components.library.TagDetail.link.artists'), text: t('components.library.TagDetail.link.artists'),
to: {name: 'library.artists.browse', query: {tag: id}}, to: {name: 'library.artists.browse', query: {tag: id}},
secondary: true, secondary: true,
solid: true solid: true
}" }"
:filters="{playable: true, ordering: '-creation_date', tag: id, include_channels: 'false'}" :filters="{playable: true, ordering: '-creation_date', tag: id, include_channels: 'false'}"
> />
</artist-widget> <Spacer :size="64" />
<Spacer :size=64 /> <channels-widget
<channels-widget :key="'channels' + id"
:key="'channels' + id" :show-modification-date="true"
:show-modification-date="true" :limit="12"
:limit="12" :title="t('components.library.TagDetail.header.channels')"
:title="t('components.library.TagDetail.header.channels')" :action="{
:action="{ text: t('components.library.TagDetail.link.channels'),
text: t('components.library.TagDetail.link.channels'), to: {name: 'library.channels.browse', query: {tag: id}},
to: {name: 'library.channels.browse', query: {tag: id}}, secondary: true,
secondary: true, solid: true
solid: true }"
}" :filters="{tag: id, ordering: '-creation_date'}"
:filters="{tag: id, ordering: '-creation_date'}" />
/> <Spacer :size="64" />
<Spacer :size=64 /> <album-widget
<album-widget :key="'album' + id"
:key="'album' + id" :show-count="true"
:show-count="true" :controls="false"
:controls="false" :filters="{playable: true, ordering: '-creation_date', tag: id}"
:filters="{playable: true, ordering: '-creation_date', tag: id}" :title="t('components.library.TagDetail.header.albums')"
:title="t('components.library.TagDetail.header.albums')" :action="{
:action="{ text: t('components.library.TagDetail.link.albums'),
text: t('components.library.TagDetail.link.albums'), to: {name: 'library.albums.browse', query: {tag: id}},
to: {name: 'library.albums.browse', query: {tag: id}}, secondary: true,
secondary: true, solid: true
solid: true }"
}" />
/> <Spacer :size="64" />
<Spacer :size=64 /> <track-widget
<track-widget :key="'track' + id"
:key="'track' + id" :show-count="true"
:show-count="true" :limit="12"
:limit="12" item-classes="track-item inline"
item-classes="track-item inline" :url="'/tracks/'"
:url="'/tracks/'" :is-activity="false"
:is-activity="false" :filters="{playable: true, ordering: '-creation_date', tag: id}"
:filters="{playable: true, ordering: '-creation_date', tag: id}" :title="t('components.library.TagDetail.header.tracks')"
:title="t('components.library.TagDetail.header.tracks')" />
/>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -334,27 +334,30 @@ watch(showDeleteModal, (newValue) => {
</Layout> </Layout>
<hr> <hr>
<Layout flex gap-8> <Layout
<span v-if="track.attributed_to"> flex
{{ t('components.library.TrackBase.subtitle.with-uploader') }} gap-8
</span> >
<span v-else> <span v-if="track.attributed_to">
{{ t('components.library.TrackBase.subtitle.without-uploader') }} {{ t('components.library.TrackBase.subtitle.with-uploader') }}
</span> </span>
<ActorLink <span v-else>
v-if="track.attributed_to" {{ t('components.library.TrackBase.subtitle.without-uploader') }}
:actor="track.attributed_to" </span>
:avatar="false" <ActorLink
/> v-if="track.attributed_to"
:actor="track.attributed_to"
:avatar="false"
/>
<time <time
:title="track.creation_date" :title="track.creation_date"
:datetime="track.creation_date" :datetime="track.creation_date"
> >
{{ momentFormat(new Date(track.creation_date), 'LL') }} {{ momentFormat(new Date(track.creation_date), 'LL') }}
</time> </time>
</Layout> </Layout>
<Spacer :size=16 /> <Spacer :size="16" />
<Modal <Modal
v-if="isEmbedable" v-if="isEmbedable"

View File

@ -148,7 +148,7 @@ const trackDetails: {
flex flex
style="gap: 24px;" style="gap: 24px;"
> >
<Spacer /> <Spacer />
<Layout <Layout
stack stack
style="flex: 1; gap: 0;" style="flex: 1; gap: 0;"

View File

@ -52,10 +52,10 @@ if (import.meta.env.PROD) {
</template> </template>
<PlayButton <PlayButton
:icon-only="true" :icon-only="true"
:is-playable="playlist.is_playable" :is-playable="playlist.is_playable"
:playlist="playlist" :playlist="playlist"
/> />
<a <a
class="funkwhale link" class="funkwhale link"

View File

@ -162,7 +162,7 @@ const submit = async () => {
:placeholder="t('components.playlists.Form.placeholder.description')" :placeholder="t('components.playlists.Form.placeholder.description')"
:rows="3" :rows="3"
:max-length="500" :max-length="500"
/> />
</div> </div>
<div class="field"> <div class="field">
<span id="updatePlaylistLabel" /> <span id="updatePlaylistLabel" />

View File

@ -2866,7 +2866,8 @@
"visibility": "Playlist visiblity" "visibility": "Playlist visiblity"
}, },
"placeholder": { "placeholder": {
"name": "My awesome playlist" "name": "My awesome playlist",
"description": "Description"
} }
}, },
"PlaylistModal": { "PlaylistModal": {
@ -4070,7 +4071,8 @@
"overview": "Overview", "overview": "Overview",
"manageUploads": "Manage uploads" "manageUploads": "Manage uploads"
}, },
"title": "{username}'s profile" "title": "{username}'s profile",
"copyUsername": "Copy federated profile link"
}, },
"ProfileOverview": { "ProfileOverview": {
"button": { "button": {

View File

@ -147,8 +147,8 @@ const deletePlaylist = async () => {
> >
</div> </div>
<Layout <Layout
stack stack
style="flex: 1; gap: 8px;" style="flex: 1; gap: 8px;"
> >
<Spacer /> <Spacer />
<h1>{{ playlist.name }}</h1> <h1>{{ playlist.name }}</h1>
@ -158,7 +158,10 @@ const deletePlaylist = async () => {
<i class="bi bi-dot" /> <i class="bi bi-dot" />
<Duration :seconds="playlist.duration" /> <Duration :seconds="playlist.duration" />
</div> </div>
<Layout flex gap-8> <Layout
flex
gap-8
>
<!-- TODO: Translations --> <!-- TODO: Translations -->
by by
<ActorLink <ActorLink