1
0
Fork 0
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:
Luke Pulverenti 2016-05-22 02:08:44 -04:00
parent dcb6b103ec
commit 6a539b8f3a
13 changed files with 362 additions and 303 deletions

View file

@ -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');
}
}

View file

@ -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 () {

View file

@ -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";
}
};
});

View file

@ -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";