feat(playlists): improve smart playlist editing and localization

Open smart playlist editing from playlist cards, load rules via Navidrome single-playlist API with safer fallbacks, and keep edit visibility aligned with ownership rules.
Also add/clean smart playlist locale keys across all supported languages and preserve smarter autogenerated naming behavior.
This commit is contained in:
Maxim Isaev
2026-04-24 17:29:41 +03:00
parent da4e0189b9
commit 401fed8368
12 changed files with 519 additions and 56 deletions
+3 -6
View File
@@ -1319,8 +1319,6 @@ export const enTranslation = {
csvImportDownloadError: 'Failed to download report',
},
smartPlaylists: {
title: 'Smart Playlists',
empty: 'No smart playlists yet.',
sectionBasic: '1. Basic',
sectionGenres: '2. Genres',
sectionYearsAndFilters: '3. Years and filters',
@@ -1334,7 +1332,6 @@ export const enTranslation = {
yearModeInclude: 'Include range',
yearModeExclude: 'Exclude range',
name: 'Name (without prefix)',
anyGenre: 'Any genre',
limit: 'Limit',
limitHint: 'How many tracks to include in playlist (1-{{max}}, usually 50).',
artistContains: 'Artist contains…',
@@ -1348,13 +1345,13 @@ export const enTranslation = {
excludeUnrated: 'Exclude unrated tracks',
compilationOnly: 'Only compilations',
create: 'New Smart Playlist',
save: 'Save Smart Playlist',
created: 'Created {{name}}',
updated: 'Updated {{name}}',
createFailed: 'Could not create smart playlist.',
deleted: 'Deleted {{name}}',
deleteFailed: 'Could not delete smart playlist.',
updateFailed: 'Could not update smart playlist.',
navidromeOnly: 'Smart playlists can only be created on Navidrome servers.',
loadFailed: 'Could not load smart playlists from Navidrome.',
liveBadge: 'live',
sortRandom: 'Sort: random',
sortTitleAsc: 'Sort: title A-Z',
sortTitleDesc: 'Sort: title Z-A',