Merge branch 'pre-release/1.3.0' into develop
This commit is contained in:
commit
b0d6a0407a
1122 changed files with 76173 additions and 66002 deletions
|
|
@ -85,8 +85,15 @@ server {
|
|||
proxy_pass http://funkwhale-api;
|
||||
}
|
||||
|
||||
location /media/ {
|
||||
alias ${MEDIA_ROOT}/;
|
||||
# Allow direct access to only specific subdirectories in /media
|
||||
location /media/__sized__/ {
|
||||
alias ${MEDIA_ROOT}/__sized__/;
|
||||
add_header Access-Control-Allow-Origin '*';
|
||||
}
|
||||
|
||||
# Allow direct access to only specific subdirectories in /media
|
||||
location /media/attachments/ {
|
||||
alias ${MEDIA_ROOT}/attachments/;
|
||||
add_header Access-Control-Allow-Origin '*';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"additionalStylesheets": ["/front/custom.css"],
|
||||
"additionalStylesheets": ["/custom.css"],
|
||||
"defaultServerUrl": null
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import type { QueueTrack } from '~/composables/audio/queue'
|
||||
|
||||
import { useIntervalFn, useToggle, useWindowSize } from '@vueuse/core'
|
||||
import { useIntervalFn, useStyleTag, useToggle, useWindowSize } from '@vueuse/core'
|
||||
import { computed, nextTick, onMounted, ref, watchEffect, defineAsyncComponent } from 'vue'
|
||||
|
||||
import { useQueue } from '~/composables/audio/queue'
|
||||
|
|
@ -49,6 +49,8 @@ const customStylesheets = computed(() => {
|
|||
return store.state.instance.frontSettings.additionalStylesheets ?? []
|
||||
})
|
||||
|
||||
useStyleTag(computed(() => store.state.instance.settings.ui.custom_css.value))
|
||||
|
||||
// Fake content
|
||||
onMounted(async () => {
|
||||
await nextTick()
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ const submit = async () => {
|
|||
errors.value = []
|
||||
|
||||
try {
|
||||
const response = await axios.post('manage/users/invitations/', { code: code.value })
|
||||
const response = await axios.post('manage/users/invitations/', { code: code.value || undefined })
|
||||
invitations.unshift(response.data)
|
||||
code.value = ''
|
||||
} catch (error) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -246,6 +246,7 @@
|
|||
"url": "Pod-Adresse"
|
||||
},
|
||||
"message": {
|
||||
"currentConnection": "Du bist aktuell mit { 0 } verbunden. Wenn du fortfährst, wird die Verbindung unterbrochen und alle lokalen Daten werden gelöscht.",
|
||||
"newUrl": "Du verwendest jetzt den Funkwhale-Pod unter { url }"
|
||||
}
|
||||
},
|
||||
|
|
@ -299,6 +300,7 @@
|
|||
"language": "Sprache",
|
||||
"main": "Hauptmenü",
|
||||
"play": "Diesen Titel abspielen",
|
||||
"reports": "Ausstehende Überprüfungen",
|
||||
"theme": "Theme"
|
||||
},
|
||||
"link": {
|
||||
|
|
@ -318,6 +320,7 @@
|
|||
"radios": "Radios",
|
||||
"search": "Suchen",
|
||||
"settings": "Einstellungen",
|
||||
"switchInstance": "Ändere die Instanz",
|
||||
"users": "Nutzende"
|
||||
}
|
||||
},
|
||||
|
|
@ -513,7 +516,17 @@
|
|||
"unmute": "Stummschaltung aufheben"
|
||||
},
|
||||
"meta": {
|
||||
"position": "{ index } von { length }"
|
||||
"position": "{ index } von { length }",
|
||||
"unknownAlbum": "Unbekanntes Album",
|
||||
"unknownArtist": "Unbekannte*r Künstler*in"
|
||||
}
|
||||
},
|
||||
"PlayerControls": {
|
||||
"labels": {
|
||||
"next": "Nächster Titel",
|
||||
"pause": "Pause",
|
||||
"play": "Abspielen",
|
||||
"previous": "Vorheriger Titel"
|
||||
}
|
||||
},
|
||||
"Search": {
|
||||
|
|
@ -664,6 +677,7 @@
|
|||
},
|
||||
"header": {
|
||||
"appDetails": "Anwendungsdetails",
|
||||
"appSecretWarning": "Stelle sicher, dass dieser Token sicher gespeichert ist.",
|
||||
"editApp": "Anwendung bearbeiten"
|
||||
},
|
||||
"help": {
|
||||
|
|
@ -677,6 +691,9 @@
|
|||
"link": {
|
||||
"settings": "Zurück zu den Einstellungen"
|
||||
},
|
||||
"message": {
|
||||
"appSecretWarning": "Du wirst es nie wieder angezeigt bekommen, nachdem du diese Ansicht verlassen hast."
|
||||
},
|
||||
"title": "Anwendung bearbeiten"
|
||||
},
|
||||
"ApplicationForm": {
|
||||
|
|
@ -695,6 +712,7 @@
|
|||
"redirectUri": "Umleitungs-URI",
|
||||
"scopes": {
|
||||
"description": "Beim Aktivieren der übergeordneten Bereiche \"Lesen\" oder \"Schreiben\" erhältst du Zugriff auf alle entsprechenden untergeordneten Bereiche.",
|
||||
"label": "Bereiche",
|
||||
"read": {
|
||||
"description": "Lesezugriff auf Benutzerdaten",
|
||||
"label": "Lesen"
|
||||
|
|
@ -754,6 +772,9 @@
|
|||
"createAccount": "Konto erstellen",
|
||||
"resetPassword": "Kennwort zurücksetzen"
|
||||
},
|
||||
"message": {
|
||||
"redirect": "Du wirst jetzt zu {domain} weitergeleitet, um dich zu authentifizieren"
|
||||
},
|
||||
"placeholder": {
|
||||
"username": "Benutzername oder E-Mail-Adresse eingeben"
|
||||
}
|
||||
|
|
@ -925,6 +946,7 @@
|
|||
},
|
||||
"label": {
|
||||
"email": "E-Mail-Adresse",
|
||||
"invitation": "Einladung",
|
||||
"password": "Kennwort",
|
||||
"username": "Benutzername"
|
||||
},
|
||||
|
|
@ -1247,6 +1269,11 @@
|
|||
"failure": "Fehler beim Aktualisieren der Beschreibung"
|
||||
}
|
||||
},
|
||||
"UserLink": {
|
||||
"link": {
|
||||
"username": "{'@'}{username}"
|
||||
}
|
||||
},
|
||||
"UserMenu": {
|
||||
"label": {
|
||||
"language": "Sprache",
|
||||
|
|
@ -1283,6 +1310,7 @@
|
|||
"link": {
|
||||
"about": "Über",
|
||||
"chat": "Chat-Raum",
|
||||
"docs": "Dokumentation",
|
||||
"forum": "Forum",
|
||||
"git": "Bugtracker",
|
||||
"login": "Anmelden",
|
||||
|
|
@ -1402,7 +1430,8 @@
|
|||
"meta": {
|
||||
"episodes": "{ n } Folge | { n } Folgen",
|
||||
"tracks": "{ n } Titel | { n } Titel"
|
||||
}
|
||||
},
|
||||
"title": "Album"
|
||||
},
|
||||
"AlbumDetail": {
|
||||
"description": {
|
||||
|
|
@ -1651,6 +1680,9 @@
|
|||
"import": "Import-Ergebnisse:",
|
||||
"previousImport": "Ergebnisse des letzten Imports:"
|
||||
},
|
||||
"empty": {
|
||||
"noFiles": "0"
|
||||
},
|
||||
"header": {
|
||||
"failure": "Fehler beim Starten des Imports",
|
||||
"local": "Musik aus deinem Computer importieren",
|
||||
|
|
@ -1668,6 +1700,7 @@
|
|||
"uploading": "Hochladen läuft"
|
||||
},
|
||||
"message": {
|
||||
"listener": "Willst Du diese Seite wirklich verlassen? Eingegebene Daten werden gegebenenfalls nicht gespeichert.",
|
||||
"local": {
|
||||
"copyright": "Die lädst kein urheberrechtlich geschütztes Material in eine öffentliche Mediathek hoch. Wenn doch, missachtest du das Gesetz",
|
||||
"format": "Die Dateien, die du hochlädst, sind im OGG-, Flac-, MP3- oder AIFF-Format",
|
||||
|
|
@ -1683,6 +1716,7 @@
|
|||
"size": "Größe",
|
||||
"status": "Status"
|
||||
},
|
||||
"progress": "{percent}%",
|
||||
"status": {
|
||||
"pending": "Ausstehend",
|
||||
"uploaded": "Hochgeladen",
|
||||
|
|
@ -1799,7 +1833,8 @@
|
|||
"Radios": {
|
||||
"button": {
|
||||
"add": "Ein Radio erstellen",
|
||||
"create": "Dein eigenes Radio erstellen"
|
||||
"create": "Dein eigenes Radio erstellen",
|
||||
"search": "Suche"
|
||||
},
|
||||
"empty": {
|
||||
"noResults": "Keine Ergebnisse zu deiner Anfrage"
|
||||
|
|
@ -1872,6 +1907,10 @@
|
|||
"header": "Bette diesen Titel in deine Webseite ein"
|
||||
}
|
||||
},
|
||||
"subtitle": {
|
||||
"with-uploader": "Hochgeladen von {0} auf {1}",
|
||||
"without-uploader": "Hochgeladen auf {0}"
|
||||
},
|
||||
"title": "Titel"
|
||||
},
|
||||
"TrackDetail": {
|
||||
|
|
@ -1901,7 +1940,8 @@
|
|||
},
|
||||
"track": {
|
||||
"bitrate": {
|
||||
"label": "Bitrate"
|
||||
"label": "Bitrate",
|
||||
"value": "{bitrate}/s"
|
||||
},
|
||||
"codec": "Codec",
|
||||
"downloads": "Downloads",
|
||||
|
|
@ -1963,6 +2003,7 @@
|
|||
"Filter": {
|
||||
"cancelButton": "Abbrechen",
|
||||
"excludeLabel": "Ausschließen",
|
||||
"matchingTracks": "Kein Titel passt zu den Kriterien | {n} zu den Kriterien passender Titel | {n} zu den Kriterien passende Titel",
|
||||
"matchingTracksModalHeader": "Titel, die dem Filter entsprechen",
|
||||
"removeButton": "Entfernen"
|
||||
}
|
||||
|
|
@ -2096,6 +2137,7 @@
|
|||
},
|
||||
"EditsCardList": {
|
||||
"label": {
|
||||
"search": "Suche",
|
||||
"status": "Status"
|
||||
},
|
||||
"option": {
|
||||
|
|
@ -2568,6 +2610,7 @@
|
|||
"internalNotes": "Interne Notizen",
|
||||
"pending": "Ausstehend",
|
||||
"refused": "Abgelehnt",
|
||||
"resolutionDate": "Datum des Beschlusses",
|
||||
"status": "Status"
|
||||
}
|
||||
}
|
||||
|
|
@ -2629,12 +2672,16 @@
|
|||
"creationDate": "Erstellungsdatum",
|
||||
"expirationDate": "Ablaufdatum",
|
||||
"owner": "Besitzer·in",
|
||||
"status": "Status"
|
||||
"status": "Status",
|
||||
"user": "Benutzer*in"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"UsersTable": {
|
||||
"label": {
|
||||
"search": "Suche"
|
||||
},
|
||||
"notApplicable": "k. A.",
|
||||
"ordering": {
|
||||
"direction": {
|
||||
|
|
@ -2725,6 +2772,9 @@
|
|||
"message": "Verwende dieses Feld, um dem Moderationsteam zusätzlichen Kontext bereitzustellen.",
|
||||
"modal": "Mithilfe dieses Formulars kannst du einen Bericht an unser Moderationsteam senden."
|
||||
},
|
||||
"error": {
|
||||
"nodeinfoFetch": "Informationen über diese Instanz können nicht abgerufen werden: {error}"
|
||||
},
|
||||
"header": {
|
||||
"disabled": "Anonyme Meldungen sind deaktiviert. Melde dich an, um eine Meldung einzureichen.",
|
||||
"modal": "Möchtest du dieses Objekt melden?",
|
||||
|
|
@ -2751,7 +2801,8 @@
|
|||
"message": {
|
||||
"libraryAcceptFollow": "Das Abonnieren der Mediathek \"{ library }\" wurde von { username } bestätigt",
|
||||
"libraryFollow": "{ username } hat deine Mediathek \"{ library }\" abonniert",
|
||||
"libraryPendingFollow": "{ username } möchte deine Mediathek \"{ library }\" abonnieren"
|
||||
"libraryPendingFollow": "{ username } möchte deine Mediathek \"{ library }\" abonnieren",
|
||||
"libraryReject": "Du hast {username}s Anfrage, \"{library}\" zu folgen, abgelehnt"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -2830,7 +2881,8 @@
|
|||
"addToPlaylist": "Zur Wiedergabeliste hinzufügen",
|
||||
"available": "Verfügbare Wiedergabelisten",
|
||||
"manage": "Wiedergabelisten verwalten",
|
||||
"noResults": "Keine Ergebnisse für diesen Filter"
|
||||
"noResults": "Keine Ergebnisse für diesen Filter",
|
||||
"track": "{title}, von {artist}"
|
||||
},
|
||||
"label": {
|
||||
"filter": "Filter"
|
||||
|
|
@ -2869,8 +2921,12 @@
|
|||
},
|
||||
"radios": {
|
||||
"Button": {
|
||||
"startArtistsRadio": "Start Künstler*innen Radio",
|
||||
"startRadio": "Radio abspielen",
|
||||
"stopRadio": "Radio ausschalten"
|
||||
"startTagsRadio": "Starte Tag Radio",
|
||||
"stopArtistsRadio": "Stoppe Künstler*innen Radio",
|
||||
"stopRadio": "Radio ausschalten",
|
||||
"stopTagsRadio": "Stoppe Tag Radio"
|
||||
},
|
||||
"Card": {
|
||||
"button": {
|
||||
|
|
|
|||
|
|
@ -1458,7 +1458,7 @@
|
|||
"discogs": "Rechercher sur Discogs",
|
||||
"django": "Voir dans l'administration Django",
|
||||
"domain": "Voir sur { domaine }",
|
||||
"moderation": "Ouvrir dans l'interface de modérations",
|
||||
"moderation": "Ouvrir dans l'interface de modération",
|
||||
"musicbrainz": "Voir sur MusicBrainz"
|
||||
},
|
||||
"modal": {
|
||||
|
|
@ -1527,7 +1527,7 @@
|
|||
"discogs": "Rechercher sur Discogs",
|
||||
"django": "Voir dans l'administration Django",
|
||||
"domain": "Voir sur { domaine }",
|
||||
"moderation": "Ouvrir dans l'interface de modérations",
|
||||
"moderation": "Ouvrir dans l'interface de modération",
|
||||
"musicbrainz": "Voir sur MusicBrainz",
|
||||
"wikipedia": "Rechercher sur Wikipédia"
|
||||
},
|
||||
|
|
@ -1871,7 +1871,7 @@
|
|||
"link": {
|
||||
"albums": "Albums",
|
||||
"artists": "Artistes",
|
||||
"moderation": "Ouvrir dans l'interface de modérations"
|
||||
"moderation": "Ouvrir dans l'interface de modération"
|
||||
}
|
||||
},
|
||||
"TagSelector": {
|
||||
|
|
@ -1893,7 +1893,7 @@
|
|||
"discogs": "Rechercher sur Discogs",
|
||||
"django": "Voir dans l'administration Django",
|
||||
"domain": "Voir sur { domaine }",
|
||||
"moderation": "Ouvrir dans l'interface de modérations",
|
||||
"moderation": "Ouvrir dans l'interface de modération",
|
||||
"wikipedia": "Rechercher sur Wikipédia"
|
||||
},
|
||||
"modal": {
|
||||
|
|
@ -2543,7 +2543,7 @@
|
|||
"reportedObject": "Élément signalé"
|
||||
},
|
||||
"link": {
|
||||
"moderation": "Ouvrir dans l'interface de modérations",
|
||||
"moderation": "Ouvrir dans l'interface de modération",
|
||||
"publicPage": "Voir la page publique",
|
||||
"report": "Signaler { id }"
|
||||
},
|
||||
|
|
@ -4024,7 +4024,7 @@
|
|||
"link": {
|
||||
"activity": "Activité",
|
||||
"domainView": "Voir sur { domaine }",
|
||||
"moderation": "Ouvrir dans l'interface de modérations",
|
||||
"moderation": "Ouvrir dans l'interface de modération",
|
||||
"overview": "Aperçu"
|
||||
},
|
||||
"title": "Profil de { username }"
|
||||
|
|
@ -4085,7 +4085,7 @@
|
|||
"channelTracks": "Pistes",
|
||||
"domainView": "Voir sur { domaine }",
|
||||
"mirrored": "Redondé depuis { domain }",
|
||||
"moderation": "Ouvrir dans l'interface de modérations"
|
||||
"moderation": "Ouvrir dans l'interface de modération"
|
||||
},
|
||||
"meta": {
|
||||
"episodes": "{ n } épisode | { n } épisodes",
|
||||
|
|
@ -4505,7 +4505,7 @@
|
|||
"albums": "Albums",
|
||||
"artists": "Artistes",
|
||||
"domain": "Voir sur { domaine }",
|
||||
"moderation": "Ouvrir dans l'interface de modérations",
|
||||
"moderation": "Ouvrir dans l'interface de modération",
|
||||
"owner": "Appartient à { username }",
|
||||
"tracks": "Pistes"
|
||||
},
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -18,6 +18,9 @@
|
|||
"publicContent": "浏览公开内容",
|
||||
"signup": "注册"
|
||||
},
|
||||
"help": {
|
||||
"closedRegistrations": "本实例已关闭注册。您可以使用以下链接在其他实例注册。"
|
||||
},
|
||||
"link": {
|
||||
"findOtherPod": "查看其他实例",
|
||||
"learnMore": "查看更多"
|
||||
|
|
@ -144,7 +147,7 @@
|
|||
"message": {
|
||||
"pageNotFound": "抱歉,您访问的页面不存在:"
|
||||
},
|
||||
"title": "找不到页面"
|
||||
"title": "未找到页面"
|
||||
},
|
||||
"Queue": {
|
||||
"button": {
|
||||
|
|
@ -159,6 +162,9 @@
|
|||
"label": {
|
||||
"addArtistContentFilter": "隐藏这个歌手的相关内容…",
|
||||
"duration": "时长",
|
||||
"enterFullscreen": "进入全屏模式",
|
||||
"exitFullscreen": "退出全屏模式",
|
||||
"favorite": "收藏歌曲",
|
||||
"next": "下一首",
|
||||
"pause": "暂停",
|
||||
"play": "播放",
|
||||
|
|
|
|||
|
|
@ -108,11 +108,16 @@ interface SubsonicSettings {
|
|||
enabled: { value: boolean }
|
||||
}
|
||||
|
||||
interface UISettings {
|
||||
custom_css: { value: string }
|
||||
}
|
||||
|
||||
interface Settings {
|
||||
instance: InstanceSettings
|
||||
users: UsersSettings
|
||||
moderation: ModerationSettings
|
||||
subsonic: SubsonicSettings
|
||||
ui: UISettings
|
||||
}
|
||||
|
||||
const logger = useLogger()
|
||||
|
|
@ -169,6 +174,11 @@ const store: Module<State, RootState> = {
|
|||
enabled: {
|
||||
value: true
|
||||
}
|
||||
},
|
||||
ui: {
|
||||
custom_css: {
|
||||
value: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ $tooltip-background: var(--site-background) !default;
|
|||
$tooltip-color: var(--text-color) !default;
|
||||
|
||||
$card-background: var(--site-background) !default;
|
||||
$card-text-colar: var(-text-color) !default;
|
||||
$card-text-color: var(--text-color) !default;
|
||||
$card-box-shadow: 0 1px 3px 0 #D4D4D5, 0 0 0 1px #D4D4D5 !default;
|
||||
|
||||
$dimmer-background: rgba(255, 255, 255, 0.85) !default;
|
||||
|
|
|
|||
|
|
@ -459,5 +459,5 @@
|
|||
|
||||
.drag-container:not(.dragging) .hover .queue-item {
|
||||
background: rgba(0,0,0,.05);
|
||||
color: #000000f2;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
|
|
|||
1048
front/yarn.lock
1048
front/yarn.lock
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue