1 line
No EOL
4.1 KiB
JavaScript
1 line
No EOL
4.1 KiB
JavaScript
import TypeManager from"./../../modules/common/itemmanager/itemmanager.js";import BaseItemController from"./../../modules/common/itemmanager/baseitemcontroller.js";import connectionManager from"./../../modules/emby-apiclient/connectionmanager.js";import globalize from"./../../modules/common/globalize.js";function SyncJobItemController(){BaseItemController.apply(this,arguments)}function getDeleteMessages(item){let title,text,confirmText=globalize.translate("Remove");return"Convert"===item.SyncJobType?"Completed"!==item.Status&&"Synced"!==item.Status?(title=globalize.translate("CancelConversion"),text="ConfirmCancelConversion",confirmText=globalize.translate("CancelConversion")):(title=globalize.translate("RemoveFromHistory"),text="ConfirmRemoveFromHistory"):(title=globalize.translate("RemoveDownload"),text="ConfirmRemoveDownload"),{single:{text:text,title:title,confirmText:confirmText},plural:{text:text,title:title,confirmText:confirmText}}}function syncNow(){require(["localsync"],function(localSync){localSync.sync()})}function getStatusText(jobItem){let status=jobItem.Status;switch(status){case"Completed":case"Synced":status="Convert"===jobItem.SyncJobType?globalize.translate("Converted"):globalize.translate("Downloaded");break;case"Failed":case"Cancelled":status=globalize.translate(status);break;default:status=globalize.translate("SyncJobItemStatus"+status)}let html=status;if(("Transferring"===jobItem.Status||"Converting"===jobItem.Status)&&jobItem.Progress){html+=" ";let progress=jobItem.Progress||0;0<progress&&progress<100&&(progress=progress.toFixed(1)),html+=progress+"%"}return html}Object.assign(SyncJobItemController.prototype,BaseItemController.prototype),SyncJobItemController.prototype.getTypeNames=function(){return["SyncJobItem"]},SyncJobItemController.prototype.getDisplayName=function(item,options){return item.ItemName},SyncJobItemController.prototype.isSingleItemFetchRequired=function(typeName){return!1},SyncJobItemController.prototype.getDefaultIcon=function(item){return""},SyncJobItemController.prototype.canDelete=function(item,user){return!0},SyncJobItemController.prototype.enableLibraryItemDeleteConfirmation=function(){return!1},SyncJobItemController.prototype.canRate=function(item){return!1},SyncJobItemController.prototype.canMarkPlayed=function(item){return!1},SyncJobItemController.prototype.canAddToPlaylist=function(item){return!1},SyncJobItemController.prototype.canAddToCollection=function(item,user){return!1},SyncJobItemController.prototype.canConvert=function(item,user){return!1},SyncJobItemController.prototype.canEdit=function(items,user){return!1},SyncJobItemController.prototype.canEditImages=function(item,user){return!1},SyncJobItemController.prototype.canEditSubtitles=function(item,user){return!1},SyncJobItemController.prototype.isDeletePrimaryCommand=function(itemType){return!0},SyncJobItemController.prototype.getDeleteCommand=function(items){var item=items[0],itemType=item.Type,item=getDeleteMessages(item);return{name:(1<items.length?item.plural:item.single).title,id:"delete",icon:"remove_circle_outline",primaryCommand:this.isDeletePrimaryCommand(itemType)}},SyncJobItemController.prototype.getDeleteMessages=getDeleteMessages,SyncJobItemController.prototype.canRefreshMetadata=function(item,user){return!1},SyncJobItemController.prototype.deleteItemsInternal=function(options){var apiClient=connectionManager.getApiClient(options.items[0]),localTargetId=connectionManager.deviceId(),ids=[];let isLocalTarget;for(let i=0,length=options.items.length;i<length;i++){var item=options.items[i];ids.push(item.Id),item.TargetId===localTargetId&&(isLocalTarget=!0)}return apiClient.cancelSyncJobItems(ids).then(function(result){return isLocalTarget&&syncNow(),Promise.resolve(result)})},SyncJobItemController.prototype.getNameSortOption=function(itemType){return null},SyncJobItemController.prototype.editItems=function(items,options){return Promise.reject()},SyncJobItemController.prototype.resolveField=function(item,field){return"SyncJobItemStatus"!==field?BaseItemController.prototype.resolveField.apply(this,arguments):getStatusText(item)};let instance=new SyncJobItemController;TypeManager.registerItemController(instance);export default instance; |