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

Add playlist editing

This commit is contained in:
Bill Thornton 2024-09-23 14:42:08 -04:00
parent 9a192c7e5c
commit 363171b56d
6 changed files with 143 additions and 27 deletions

View file

@ -1,10 +1,14 @@
import { appHost } from './apphost';
import globalize from 'lib/globalize';
import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type';
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
import { LocationType } from '@jellyfin/sdk/lib/generated-client/models/location-type';
import { RecordingStatus } from '@jellyfin/sdk/lib/generated-client/models/recording-status';
import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type';
import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api';
import { appHost } from './apphost';
import globalize from 'lib/globalize';
import ServerConnections from './ServerConnections';
import { toApi } from 'utils/jellyfin-apiclient/compat';
export function getDisplayName(item, options = {}) {
if (!item) {
@ -159,6 +163,25 @@ export function canEditImages (user, item) {
return itemType !== 'Timer' && itemType !== 'SeriesTimer' && canEdit(user, item) && !isLocalItem(item);
}
export async function canEditPlaylist(user, item) {
const apiClient = ServerConnections.getApiClient(item.ServerId);
const api = toApi(apiClient);
try {
const { data: permissions } = await getPlaylistsApi(api)
.getPlaylistUser({
userId: user.Id,
playlistId: item.Id
});
return !!permissions.CanEdit;
} catch (err) {
console.error('Failed to get playlist permissions', err);
}
return false;
}
export function canEditSubtitles (user, item) {
if (item.MediaType !== MediaType.Video) {
return false;