1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Preliminary Lyrics Editor

This commit is contained in:
LJQ 2024-04-22 20:09:27 +08:00 committed by Bill Thornton
parent 12ba71781e
commit 648e8ff2a6
11 changed files with 701 additions and 17 deletions

View file

@ -201,14 +201,6 @@ export function getCommands(options) {
id: 'delete',
icon: 'delete'
});
if (item.Type === 'Audio' && item.HasLyrics && window.location.href.includes(item.Id)) {
commands.push({
name: globalize.translate('DeleteLyrics'),
id: 'deleteLyrics',
icon: 'delete_sweep'
});
}
}
if (commands.length) {
@ -243,6 +235,14 @@ export function getCommands(options) {
});
}
if (itemHelper.canEditLyrics(user, item)) {
commands.push({
name: globalize.translate('EditLyrics'),
id: 'editlyrics',
icon: 'lyrics'
});
}
if (options.identify !== false && itemHelper.canIdentify(user, item)) {
commands.push({
name: globalize.translate('Identify'),
@ -441,6 +441,11 @@ function executeCommand(item, id, options) {
subtitleEditor.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
break;
case 'editlyrics':
import('./lyricseditor/lyricseditor').then(({ default: lyricseditor }) => {
lyricseditor.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
break;
case 'edit':
editItem(apiClient, item).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
break;
@ -514,9 +519,6 @@ function executeCommand(item, id, options) {
case 'delete':
deleteItem(apiClient, item).then(getResolveFunction(resolve, id, true, true), getResolveFunction(resolve, id));
break;
case 'deleteLyrics':
deleteLyrics(apiClient, item).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
break;
case 'share':
navigator.share({
title: item.Name,
@ -667,12 +669,6 @@ function deleteItem(apiClient, item) {
});
}
function deleteLyrics(apiClient, item) {
return import('../scripts/deleteHelper').then((deleteHelper) => {
return deleteHelper.deleteLyrics(item);
});
}
function refresh(apiClient, item) {
import('./refreshdialog/refreshdialog').then(({ default: RefreshDialog }) => {
new RefreshDialog({