1 line
5.6 KiB
JavaScript
1 line
5.6 KiB
JavaScript
define(["exports","./baseitemcontroller.js","./../globalize.js"],function(_exports,_baseitemcontroller,_globalize){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var DefaultItemControllerInstance=new _baseitemcontroller.default,commandSources=[],controllersByType={};function getItemController(typeName){return controllersByType[typeName]||DefaultItemControllerInstance}function rejectNoItems(){return Promise.reject("noitems")}_exports.default={registerItemController:function(controller){for(var typeNames=controller.getTypeNames(),i=0,length=typeNames.length;i<length;i++)controllersByType[typeNames[i]]=controller},registerCommandSource:function(commandSource){commandSources.push(commandSource)},getItemController:getItemController,getDisplayName:function(item,options){return getItemController(item.Type).getDisplayName(item,options)},getDefaultIcon:function(item){return getItemController(item.Type).getDefaultIcon(item)},canConvert:function(item,user){return getItemController(item.Type).canConvert(item,user)},canDelete:function(item,user){return getItemController(item.Type).canDelete(item,user)},canEdit:function(item,user){return getItemController(item.Type).canEdit(item,user)},canEditImages:function(item,user){return getItemController(item.Type).canEditImages(item,user)},canEditSubtitles:function(item,user){return getItemController(item.Type).canEditSubtitles(item,user)},canAddToPlaylist:function(item,user){return getItemController(item.Type).canAddToPlaylist(item,user)},canAddToCollection:function(item,user){return getItemController(item.Type).canAddToCollection(item,user)},canDownloadSubtitles:function(item,user){return getItemController(item.Type).canDownloadSubtitles(item,user)},canIdentify:function(item,user){return getItemController(item.Type).canDownloadSubtitles(item,user)},canSync:function(item,user){return getItemController(item.Type).canSync(item,user)},canManageMultiVersionGrouping:function(item,user){return getItemController(item.Type).canManageMultiVersionGrouping(item,user)},canRefreshMetadata:function(item,user){return getItemController(item.Type).canRefreshMetadata(item,user)},getItemTypeName:function(type){return getItemController(type).getItemTypeName(type)},getAvailableFields:function(options){return getItemController(options.itemType).getAvailableFields(options)},getDefaultSorting:function(options){return getItemController(options.itemType).getDefaultSorting(options)},getSortMenuOptions:function(options){return getItemController(options.itemType).getSortMenuOptions(options)},getPluralItemTypeName:function(type){return getItemController(type).getPluralItemTypeName(type)},canRate:function(item){return getItemController(item.Type).canRate(item)},canMarkPlayed:function(item){return getItemController(item.Type).canMarkPlayed(item)},getCommands:function(options){var items=options.items;if(items||(items=[],options.item&&items.push(options.item)),!items.length)return[];for(var commands=getItemController(items[0].Type).getCommands(options),i=0,length=commandSources.length;i<length;i++)var subCommands=commandSources[i].getCommands(options),commands=commands.concat(subCommands);return commands},editItems:function(items,options){return items.length?getItemController(items[0].Type).editItems(items,options):rejectNoItems()},refreshMetadata:function(items,options){return items.length?getItemController(items[0].Type).refreshMetadata(items,options):rejectNoItems()},scanLibraryFiles:function(items,options){return items.length?getItemController(items[0].Type).scanLibraryFiles(items,options):rejectNoItems()},removeFromPlayQueue:function(items,options){return items.length?getItemController(items[0].Type).removeFromPlayQueue(items,options):rejectNoItems()},addToPlaylist:function(items,options){return items.length?getItemController(items[0].Type).addToPlaylist(items,options):rejectNoItems()},addToCollection:function(items,options){return items.length?getItemController(items[0].Type).addToCollection(items,options):rejectNoItems()},deleteItems:function(options){var items=options.items;return items.length?getItemController(items[0].Type).deleteItems(options):rejectNoItems()},getContentTypeName:function(contentType){if(!contentType)return _globalize.default.translate("MixedContent");switch(contentType){case"movies":return _globalize.default.translate("Movies");case"music":return _globalize.default.translate("Music");case"tvshows":return _globalize.default.translate("TVShows");case"books":return _globalize.default.translate("Books");case"games":return _globalize.default.translate("Games");case"musicvideos":return _globalize.default.translate("MusicVideos");case"homevideos":return _globalize.default.translate("HomeVideosAndPhotos");case"audiobooks":return _globalize.default.translate("AudioBooks");case"boxsets":return _globalize.default.translate("Collections");case"playlists":return _globalize.default.translate("Playlists");default:return contentType}},groupVersions:function(items,options){return items.length?getItemController(items[0].Type).groupVersions(items,options):rejectNoItems()},executeCommand:function(command,items,options){var commandSource,commandSourceOptions=Object.assign({},options);commandSourceOptions.items=items;for(var i=0,commandSourcesLength=commandSources.length;i<commandSourcesLength;i++){for(var subCommands=commandSources[i].getCommands(commandSourceOptions),subCommand=void 0,j=0,subCommandsLength=subCommands.length;j<subCommandsLength;j++)if(subCommands[j].id===command){subCommand=subCommands[j];break}if(subCommand){commandSource=commandSources[i];break}}return commandSource?commandSource.executeCommand(command,items,options):Promise.reject("nocommands")}}}); |