define(["exports","./../layoutmanager.js","./../common/globalize.js","./../emby-apiclient/connectionmanager.js","./../loading/loading.js","./../emby-apiclient/events.js","./../imageloader/imageloader.js","./../common/input/api.js","./../listview/listview.js"],function(_exports,_layoutmanager,_globalize,_connectionmanager,_loading,_events,_imageloader,_api,_listview){function cancelJob(listInstance,id){var options,msg=_globalize.default.translate("ConfirmRemoveDownload");options={text:msg,primary:"cancel"},Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)}).then(function(){_loading.default.show(),getApiClient(listInstance).cancelSyncJob(id).then(function(){"download"===listInstance.options.mode&&require(["localsync"],function(localSync){localSync.sync()}),fetchData(listInstance)})})}function refreshJob(listInstance,job){listInstance=listInstance.options.element.querySelector(".listItem[data-id='"+job.Id+"']");listInstance&&(listInstance.querySelector(".jobStatus").innerHTML=getProgressText(job))}function getProgressText(job){var status=job.Status,status=_globalize.default.translate("SyncJobItemStatus"+(status="Completed"===status?"Synced":status));return status="Transferring"!==job.Status&&"Converting"!==job.Status?status:(status+=" ")+(job=0<(job=job.Progress||0)&&job<100?job.toFixed(1):job)+"%"}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var supportsNativeLazyLoading="loading"in HTMLImageElement.prototype;function renderList(listInstance,jobs,apiClient){if(Date.now()-listInstance.lastDataLoad<6e4)!function(listInstance,jobs){for(var i=0,length=jobs.length;i
",hasOpenSection=!1),html=(html+='
')+'

'+(lastTargetName=targetName)+'

',hasOpenSection=!0),html+=function(job,apiClient,mode){var imgUrl,html="",tagName=_layoutmanager.default.tv?"button":"div",listItemClass="listItem listItem-border",textLines=(_layoutmanager.default.tv&&(listItemClass+=" listItem-button listItem-focusscale btnJobMenu"),html+="<"+tagName+("button"==tagName?' type="button"':"")+' class="'+listItemClass+'" data-canedit="'+!0+'" data-id="'+job.Id+'" data-status="'+job.Status+'">',html=(imgUrl=job.PrimaryImageItemId?apiClient.getImageUrl(job.PrimaryImageItemId,{type:"Primary",width:80,tag:job.PrimaryImageTag}):imgUrl)?(html+='
')+(supportsNativeLazyLoading?'':'')+"
":(html+='
')+("convert"===mode?'transform':'download')+"
",[]),listItemClass=job.Name;job.ParentName&&(listItemClass+=" - "+job.ParentName),textLines.push(listItemClass),1===job.ItemCount?textLines.push(_globalize.default.translate("ValueOneItem")):textLines.push(_globalize.default.translate("ItemCount",job.ItemCount)),html+='
';for(var i=0,length=textLines.length;i')+textLines[i]+"
":(html+='
')+textLines[i]+"
";return html=(html=(html+='
')+getProgressText(job))+"
"+"
",_layoutmanager.default.tv||(html+=''),html+=""}(job,apiClient,mode)}hasOpenSection&&(html+="
");listInstance=listInstance.options.element.querySelector(".syncJobListContent"),html=html||("download"===mode?'
'+_globalize.default.translate("MessageNoDownloadsFound")+"
":'
'+_globalize.default.translate("MessageNoSyncJobsFound")+"
");listInstance.innerHTML=html,_imageloader.default.lazyChildren(listInstance)}}function fetchData(listInstance){listInstance.lastDataLoad=0,_loading.default.show();var options={},apiClient=getApiClient(listInstance);listInstance.options.userId&&(options.UserId=listInstance.options.userId),"download"===listInstance.options.mode?options.TargetId=apiClient.deviceId():"convert"===listInstance.options.mode?options.IncludeProviders="ConvertSyncProvider":options.ExcludeProviders="ConvertSyncProvider",apiClient.getJSON(apiClient.getUrl("Sync/Jobs",options)).then(function(response){renderList(listInstance,response.Items,apiClient),_loading.default.hide()})}function getApiClient(listInstance){return _connectionmanager.default.getApiClient(listInstance.options.serverId)}function showJobMenu(listInstance,elem){var options,item=elem.closest(".listItem"),jobId=item.getAttribute("data-id"),menuItems=[],item=("true"===item.getAttribute("data-canedit")&&menuItems.push({name:_globalize.default.translate("Edit"),id:"edit"}),_globalize.default.translate("RemoveDownload"));menuItems.push({name:item,id:"cancel"}),options={items:menuItems,positionTo:elem,callback:function(id){switch(id){case"delete":case"cancel":cancelJob(listInstance,jobId);break;case"edit":showJobEditor(listInstance,elem)}}},Emby.importModule("./modules/actionsheet/actionsheet.js").then(function(ActionSheet){return ActionSheet.show(options)})}function showJobEditor(listInstance,elem){var jobId,elem=elem.closest(".listItem");elem&&"true"===elem.getAttribute("data-canedit")&&(jobId=elem.getAttribute("data-id"),require(["syncJobEditor"],function(syncJobEditor){syncJobEditor.show({serverId:listInstance.options.serverId,jobId:jobId,mode:listInstance.options.mode}).then(function(){fetchData(listInstance)},function(){fetchData(listInstance)})}))}function syncJobList(options){this.options=options;var onSyncJobCreatedHandler=function(e,apiClient,data){fetchData(this)}.bind(this),onSyncJobCreatedHandler=(this.onSyncJobCreatedHandler=onSyncJobCreatedHandler,_events.default.on(_api.default,"SyncJobCreated",onSyncJobCreatedHandler),function(e,apiClient,data){fetchData(this)}.bind(this)),onSyncJobCreatedHandler=(this.onSyncJobCancelledHandler=onSyncJobCreatedHandler,_events.default.on(_api.default,"SyncJobCancelled",onSyncJobCreatedHandler),function(e,apiClient,data){refreshJob(this,data)}.bind(this)),onSyncJobCreatedHandler=(this.onSyncJobUpdatedHandler=onSyncJobCreatedHandler,_events.default.on(_api.default,"SyncJobUpdated",onSyncJobCreatedHandler),function(e){var btnJobMenu=e.target.closest(".btnJobMenu");btnJobMenu?showJobMenu(this,btnJobMenu):(btnJobMenu=e.target.closest(".btnCancelJob"))?(btnJobMenu=btnJobMenu.closest(".listItem"))&&cancelJob(this,btnJobMenu.getAttribute("data-id")):showJobEditor(this,e.target)}.bind(this));options.element.addEventListener("click",onSyncJobCreatedHandler),this.onClickHandler=onSyncJobCreatedHandler,options.element.innerHTML='
',fetchData(this)}syncJobList.prototype.destroy=function(){var onSyncJobCreatedHandler=this.onSyncJobCreatedHandler,onSyncJobCreatedHandler=(this.onSyncJobCreatedHandler=null,_events.default.off(_api.default,"SyncJobCreated",onSyncJobCreatedHandler),this.onSyncJobCancelledHandler),onSyncJobCreatedHandler=(this.onSyncJobCancelledHandler=null,_events.default.off(_api.default,"SyncJobCancelled",onSyncJobCreatedHandler),this.onSyncJobUpdatedHandler),onSyncJobCreatedHandler=(this.onSyncJobUpdatedHandler=null,_events.default.off(_api.default,"SyncJobUpdated",onSyncJobCreatedHandler),this.onClickHandler);this.onClickHandler=null,this.options.element.removeEventListener("click",onSyncJobCreatedHandler),this.options=null},_exports.default=syncJobList});