1 line
8.7 KiB
JavaScript
1 line
8.7 KiB
JavaScript
define(["exports","./../emby-apiclient/connectionmanager.js","./../dom.js","./../common/globalize.js","./../layoutmanager.js","./../loading/loading.js","./../dialoghelper/dialoghelper.js","./../cardbuilder/cardbuilder.js","./../focusmanager.js","./../common/servicelocator.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-button/paper-icon-button-light.js"],function(_exports,_connectionmanager,_dom,_globalize,_layoutmanager,_loading,_dialoghelper,_cardbuilder,_focusmanager,_servicelocator,_embyButton,_embyScroller,_paperIconButtonLight){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","css!modules/imageeditor/imageeditor.css"]);var currentItemInfo,currentItemId,currentServerId,hasChanges=!1;function getItemInfo(){if(currentItemInfo)return Promise.resolve(currentItemInfo);_loading.default.show();var apiClient=_connectionmanager.default.getApiClient(currentServerId);return apiClient.getItem(apiClient.getCurrentUserId(),currentItemId).then(function(item){return apiClient.getItemImageInfos(currentItemId).then(function(imageInfos){return apiClient.getRemoteImageProviders({itemId:currentItemId}).then(function(providers){providers={item:item,imageInfos:imageInfos,providers:providers};return _loading.default.hide(),providers})})})}function addListeners(container,className,eventName,fn){container.addEventListener(eventName,function(e){var elem=e.target.closest("."+className);elem&&fn.call(elem,e)})}function getImageUrl(item,apiClient,type,index,options){return(options=options||{}).type=type,options.index=index,options.tag="Backdrop"===type?item.BackdropImageTags[index]:"Primary"===type&&item.PrimaryImageTag||item.ImageTags[type],options.tag?apiClient.getImageUrl(item.Id||item.ItemId,options):null}function setImageProperties(image,itemInfo,apiClient){var item=itemInfo.item;image.Type="ItemImage",image.ServerId=item.ServerId,image.Id=item.Id,image.OwnerItem=item,image.Providers=itemInfo.providers,image.Name=_globalize.default.translate(image.ImageType),"Backdrop"===image.ImageType?image.ImageUrl=getImageUrl(item,apiClient,image.ImageType,image.ImageIndex):(image.ImageTags={},image.ImageTags[image.ImageType]=item.ImageTags?item.ImageTags[image.ImageType]:null,"Primary"!==image.ImageType||image.ImageTags[image.ImageType]?image.ImageTags[image.ImageType]&&(image.ImageUrl=getImageUrl(item,apiClient,image.ImageType)):image.ImageTags[image.ImageType]=item.PrimaryImageTag,image.ImageTag=image.ImageTags[image.ImageType],"Primary"===image.ImageType&&"TvChannel"===itemInfo.item.Type&&(image.Name=_globalize.default.translate("LogoDark")))}function getStandardImages(){return getItemInfo().then(function(itemInfo){for(var item=itemInfo.item,imageInfos=itemInfo.imageInfos,types=["Primary"],apiClient=(("TvChannel"!==item.Type||item.ImageTags&&item.ImageTags.Logo)&&types.push("Logo"),_connectionmanager.default.getApiClient(item)),result=("TvChannel"===item.Type&&(types.push("LogoLight"),types.push("LogoLightColor")),types.push("Thumb"),types.push("Banner"),types.push("Disc"),types.push("Art"),"Game"===item.Type&&types.push("Box"),[]),i=0,length=types.length;i<length;i++){var imageInfo=function(images,type){for(var i=0,length=images.length;i<length;i++){var image=images[i];if(image.ImageType===type)return image}return null}(imageInfos,types[i])||{ImageType:types[i]};setImageProperties(imageInfo,itemInfo,apiClient),result.push(imageInfo)}return{Items:result,TotalRecordCount:result.length}})}function getBackdropImages(){return getItemInfo().then(function(itemInfo){for(var item=itemInfo.item,imageInfos=itemInfo.imageInfos.filter(function(t){return"Backdrop"===t.ImageType}),result=[],backdropImageTags=item.BackdropImageTags||[],apiClient=_connectionmanager.default.getApiClient(item),i=0,length=imageInfos.length;i<length;i++){var imageInfo=imageInfos[i];imageInfo.ImageTag=backdropImageTags[i],imageInfo.ImageIndex=i,imageInfo.TotalImages=imageInfos.length,setImageProperties(imageInfo,itemInfo,apiClient),result.push(imageInfo)}return{Items:result,TotalRecordCount:result.length}})}function getStandardImagesListOptions(){var fields=["ItemImageName"];return fields.push("Resolution"),_layoutmanager.default.tv||fields.push("ImageEditorStandardButtons"),{renderer:_cardbuilder.default,options:{fields:fields,shape:"backdrop",multiSelect:!1,defaultBackground:!0,cardLayout:!0,cardClass:"imageEditorCard",cardDefaultTextClass:"imageEditorCardDefaultText",action:_layoutmanager.default.tv?"menu":"none",addImageSizeToUrl:!0,textLinks:!1,cardFooterAside:!1,draggable:!1},virtualScrollLayout:"vertical-grid"}}function getBackdropImagesListOptions(items){var fields=[],items=(fields.push("FilenameOrName"),fields.push("Resolution"),_layoutmanager.default.tv||fields.push("ImageEditorBackdropButtons"),1<items.length);return{renderer:_cardbuilder.default,options:{fields:fields,shape:"backdrop",multiSelect:!1,cardClass:"imageEditorCard",cardDefaultTextClass:"imageEditorCardDefaultText",defaultBackground:!0,cardLayout:!0,imageFallback:!1,action:_layoutmanager.default.tv?"menu":"none",addImageSizeToUrl:!0,textLinks:!1,cardFooterAside:!1,dragReorder:items,draggable:items},virtualScrollLayout:"vertical-grid"}}function refreshItemContainers(context){var standardImagesItemsContainer=context.querySelector(".images"),backdropImagesItemsContainer=context.querySelector(".backdrops"),promises=[];promises.push(standardImagesItemsContainer.resume({refresh:!0})),promises.push(backdropImagesItemsContainer.resume({refresh:!0})),Promise.all(promises).then(function(){_focusmanager.default.autoFocus(context,{skipIfNotEnabled:!0})})}function onItemChanged(context){currentItemInfo=null,refreshItemContainers(context)}function onAddButtonClick(e){var imageType=this.getAttribute("data-imagetype");require(["imageUploader"],function(imageUploader){getItemInfo().then(function(itemInfo){imageUploader.show({imageType:imageType,item:itemInfo.item}).then(function(hasChanged){hasChanged&&(hasChanges=!0,onItemChanged(e.target.closest(".formDialog")))})})})}function initEditor(context,options,itemInfo){addListeners(context,"btnBrowseAllImages","click",function(){!function(context,imageType){require(["imageDownloader"],function(ImageDownloader){getItemInfo().then(function(itemInfo){(new ImageDownloader).show({item:itemInfo.item,imageType:imageType}).then(function(){hasChanges=!0,onItemChanged(context)})})})}(context,this.getAttribute("data-imagetype"))}),addListeners(context,"btnAddImage","click",onAddButtonClick);var standardImagesItemsContainer=context.querySelector(".images"),standardImagesItemsContainer=(standardImagesItemsContainer.fetchData=getStandardImages,standardImagesItemsContainer.getListOptions=getStandardImagesListOptions,standardImagesItemsContainer.monitorItems=[itemInfo.item.Id],standardImagesItemsContainer.setAttribute("data-monitorids",itemInfo.item.Id),context.querySelector(".backdrops"));standardImagesItemsContainer.fetchData=getBackdropImages,standardImagesItemsContainer.getListOptions=getBackdropImagesListOptions,standardImagesItemsContainer.setAttribute("data-monitorids",itemInfo.item.Id),_servicelocator.appHost.supports("fileinput")?context.querySelector(".btnAddImage").classList.remove("hide"):context.querySelector(".btnAddImage").classList.add("hide"),itemInfo.providers.length?context.querySelector(".btnBrowseAllImages").classList.remove("hide"):context.querySelector(".btnBrowseAllImages").classList.add("hide")}function onItemsContainerUpgraded(){refreshItemContainers(this)}function onOpened(){var standardImagesItemsContainer=this.querySelector(".images");standardImagesItemsContainer.resume?refreshItemContainers(this):_dom.default.addEventListener(standardImagesItemsContainer,"upgraded",onItemsContainerUpgraded,{once:!0})}_exports.default={show:function(options){return hasChanges=!1,function(options){return currentItemId=options.itemId,currentServerId=options.serverId,_loading.default.show(),Promise.all([require(["text!modules/imageeditor/imageeditor.template.html"]),getItemInfo()]).then(function(responses){var template=responses[0][0],responses=responses[1],dialogOptions={removeOnClose:!0,scrollY:!1},dlg=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border",_dialoghelper.default.createDialog(dialogOptions));return dlg.classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateDocument(template,"sharedcomponents"),initEditor(dlg,0,responses),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),dlg.addEventListener("opened",onOpened),_dialoghelper.default.open(dlg).then(function(){return currentServerId=currentItemId=currentItemInfo=null,_loading.default.hide(),hasChanges?Promise.resolve():Promise.reject()})})}(options)}}}); |