mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
use shared playlist editor
This commit is contained in:
parent
dcb6b103ec
commit
6a539b8f3a
13 changed files with 362 additions and 303 deletions
|
@ -1,4 +1,4 @@
|
|||
define(['playlistManager', 'scrollHelper', 'appSettings', 'appStorage', 'apphost', 'datetime', 'jQuery', 'itemHelper', 'mediaInfo', 'scrollStyles'], function (playlistManager, scrollHelper, appSettings, appStorage, appHost, datetime, $, itemHelper, mediaInfo) {
|
||||
define(['scrollHelper', 'appSettings', 'appStorage', 'apphost', 'datetime', 'jQuery', 'itemHelper', 'mediaInfo', 'scrollStyles'], function (scrollHelper, appSettings, appStorage, appHost, datetime, $, itemHelper, mediaInfo) {
|
||||
|
||||
function parentWithClass(elem, className) {
|
||||
|
||||
|
@ -670,11 +670,11 @@
|
|||
|
||||
var commands = [];
|
||||
|
||||
if (LibraryBrowser.supportsAddingToCollection(item)) {
|
||||
if (itemHelper.supportsAddingToCollection(item)) {
|
||||
commands.push('addtocollection');
|
||||
}
|
||||
|
||||
if (playlistManager.supportsPlaylists(item)) {
|
||||
if (itemHelper.supportsAddingToPlaylist(item)) {
|
||||
commands.push('playlist');
|
||||
}
|
||||
|
||||
|
@ -938,9 +938,11 @@
|
|||
});
|
||||
break;
|
||||
case 'playlist':
|
||||
require(['playlistManager'], function (playlistManager) {
|
||||
|
||||
playlistManager.showPanel([itemId]);
|
||||
require(['playlistEditor'], function (playlistEditor) {
|
||||
new playlistEditor().show({
|
||||
items: items,
|
||||
serverId: serverId
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'delete':
|
||||
|
@ -1561,13 +1563,6 @@
|
|||
return html;
|
||||
},
|
||||
|
||||
supportsAddingToCollection: function (item) {
|
||||
|
||||
var invalidTypes = ['Person', 'Genre', 'MusicGenre', 'Studio', 'GameGenre', 'BoxSet', 'Playlist', 'UserView', 'CollectionFolder', 'Audio', 'Episode', 'TvChannel', 'Program', 'MusicAlbum', 'Timer'];
|
||||
|
||||
return !item.CollectionType && invalidTypes.indexOf(item.Type) == -1 && item.MediaType != 'Photo';
|
||||
},
|
||||
|
||||
enableSync: function (item, user) {
|
||||
if (AppInfo.isNativeApp && !Dashboard.capabilities().SupportsSync) {
|
||||
return false;
|
||||
|
@ -1604,7 +1599,7 @@
|
|||
itemCommands.push('shuffle');
|
||||
}
|
||||
|
||||
if (playlistManager.supportsPlaylists(item)) {
|
||||
if (itemHelper.supportsAddingToPlaylist(item)) {
|
||||
|
||||
if (options.showRemoveFromPlaylist) {
|
||||
itemCommands.push('removefromplaylist');
|
||||
|
@ -1614,7 +1609,7 @@
|
|||
}
|
||||
|
||||
if (options.showAddToCollection !== false) {
|
||||
if (LibraryBrowser.supportsAddingToCollection(item)) {
|
||||
if (itemHelper.supportsAddingToCollection(item)) {
|
||||
itemCommands.push('addtocollection');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -503,9 +503,11 @@
|
|||
});
|
||||
break;
|
||||
case 'playlist':
|
||||
require(['playlistManager'], function (playlistManager) {
|
||||
|
||||
playlistManager.showPanel([itemId]);
|
||||
require(['playlistEditor'], function (playlistEditor) {
|
||||
new playlistEditor().show({
|
||||
items: [itemId],
|
||||
serverId: serverId
|
||||
});
|
||||
});
|
||||
break;
|
||||
case 'delete':
|
||||
|
@ -1244,11 +1246,13 @@
|
|||
hideSelections();
|
||||
break;
|
||||
case 'playlist':
|
||||
require(['playlistManager'], function (playlistManager) {
|
||||
|
||||
playlistManager.showPanel(items);
|
||||
hideSelections();
|
||||
require(['playlistEditor'], function (playlistEditor) {
|
||||
new playlistEditor().show({
|
||||
items: items,
|
||||
serverId: serverId
|
||||
});
|
||||
});
|
||||
hideSelections();
|
||||
break;
|
||||
case 'delete':
|
||||
LibraryBrowser.deleteItems(items).then(function () {
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
define([], function () {
|
||||
|
||||
return {
|
||||
|
||||
showPanel: function (items) {
|
||||
|
||||
require(['playlisteditor'], function (playlisteditor) {
|
||||
new playlisteditor().show(items);
|
||||
});
|
||||
},
|
||||
|
||||
supportsPlaylists: function (item) {
|
||||
|
||||
if (item.Type == 'Program') {
|
||||
return false;
|
||||
}
|
||||
if (item.Type == 'Timer') {
|
||||
return false;
|
||||
}
|
||||
return item.RunTimeTicks || item.IsFolder || item.Type == "Genre" || item.Type == "MusicGenre" || item.Type == "MusicArtist";
|
||||
}
|
||||
};
|
||||
});
|
|
@ -1769,6 +1769,7 @@ var AppInfo = {};
|
|||
|
||||
define("emby-select", [embyWebComponentsBowerPath + "/emby-select/emby-select"], returnFirstDependency);
|
||||
define("collectionEditor", [embyWebComponentsBowerPath + "/collectioneditor/collectioneditor"], returnFirstDependency);
|
||||
define("playlistEditor", [embyWebComponentsBowerPath + "/playlisteditor/playlisteditor"], returnFirstDependency);
|
||||
define("recordingCreator", [embyWebComponentsBowerPath + "/recordingcreator/recordingcreator"], returnFirstDependency);
|
||||
define("recordingEditor", [embyWebComponentsBowerPath + "/recordingcreator/recordingeditor"], returnFirstDependency);
|
||||
define("mediaInfo", [embyWebComponentsBowerPath + "/mediainfo/mediainfo"], returnFirstDependency);
|
||||
|
@ -1804,7 +1805,6 @@ var AppInfo = {};
|
|||
paths.appStorage = apiClientBowerPath + "/appstorage";
|
||||
}
|
||||
|
||||
paths.playlistManager = "scripts/playlistmanager";
|
||||
paths.syncDialog = "scripts/sync";
|
||||
|
||||
var sha1Path = bowerPath + "/cryptojslib/components/sha1-min";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue