1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/scripts/deleteHelper.js
Bill Thornton 5010367163
Use consistent import style
Co-authored-by: Dmitry Lyzo <56478732+dmitrylyzo@users.noreply.github.com>
2024-08-15 10:15:58 -04:00

81 lines
2.6 KiB
JavaScript

import globalize from 'lib/globalize';
import alert from '../components/alert';
import confirm from '../components/confirm/confirm';
import { appRouter } from '../components/router/appRouter';
import ServerConnections from '../components/ServerConnections';
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
function alertText(options) {
return alert(options);
}
function getDeletionConfirmContent(item) {
if (item.Type === BaseItemKind.Series) {
const totalEpisodes = item.RecursiveItemCount;
return {
title: globalize.translate('HeaderDeleteSeries'),
text: globalize.translate('ConfirmDeleteSeries', totalEpisodes),
confirmText: globalize.translate('DeleteEntireSeries', totalEpisodes),
primary: 'delete'
};
}
return {
title: globalize.translate('HeaderDeleteItem'),
text: globalize.translate('ConfirmDeleteItem'),
confirmText: globalize.translate('Delete'),
primary: 'delete'
};
}
export function deleteItem(options) {
const item = options.item;
const parentId = item.SeasonId || item.SeriesId || item.ParentId;
const apiClient = ServerConnections.getApiClient(item.ServerId);
return confirm(getDeletionConfirmContent(item)).then(function () {
return apiClient.deleteItem(item.Id).then(function () {
if (options.navigate) {
if (parentId) {
appRouter.showItem(parentId, item.ServerId);
} else {
appRouter.goHome();
}
}
}, function (err) {
const result = function () {
return Promise.reject(err);
};
return alertText(globalize.translate('ErrorDeletingItem')).then(result, result);
});
});
}
export function deleteLyrics (item) {
return confirm({
title: globalize.translate('HeaderDeleteLyrics'),
text: globalize.translate('ConfirmDeleteLyrics'),
confirmText: globalize.translate('Delete'),
primary: 'delete'
}).then(() => {
const apiClient = ServerConnections.getApiClient(item.ServerId);
return apiClient.ajax({
url: apiClient.getUrl('Audio/' + item.Id + '/Lyrics'),
type: 'DELETE'
}).catch((err) => {
const result = function () {
return Promise.reject(err);
};
return alertText(globalize.translate('ErrorDeletingLyrics')).then(result, result);
});
});
}
export default {
deleteItem,
deleteLyrics
};