1 line
8.2 KiB
JavaScript
1 line
8.2 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","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-scroller/emby-scroller.js","./../emby-elements/emby-toggle/emby-toggle.js","./../emby-elements/emby-itemscontainer/emby-itemscontainer.js","./../emby-elements/emby-button/paper-icon-button-light.js"],function(_exports,_connectionmanager,_dom,_globalize,_layoutmanager,_loading,_dialoghelper,_cardbuilder,_focusmanager,_embyButton,_embyInput,_embySelect,_embyScroller,_embyToggle,_embyItemscontainer,_paperIconButtonLight){function ImageDownloader(){}function getDisplayUrl(url,apiClient){return apiClient.getUrl("Images/Remote",{api_key:apiClient.accessToken(),imageUrl:url})}function normalizeResult(result){var providersHtml=result.Providers.map(function(p){return'<option value="'+p+'">'+p+"</option>"}),selectImageProvider=this.dlg.querySelector(".selectImageProvider");return selectImageProvider.innerHTML='<option value="">'+_globalize.default.translate("All")+"</option>"+providersHtml,selectImageProvider.value=this.options.imageProvider||"",result.Items=result.Images,result.Images=null,result.Items.forEach(function(image){var options=this.options,options=_connectionmanager.default.getApiClient(options.item);return image.Name=image.ProviderName,image.ImageUrl=getDisplayUrl(image.ThumbnailUrl||image.Url,options),image.OriginalImageUrl=getDisplayUrl(image.Url,options),image}.bind(this)),result}function onItemsContainerUpgraded(){_loading.default.show(),this.itemsContainer.resume({refresh:!0}).then(function(){var dlg=this.dlg;_loading.default.hide(),_focusmanager.default.autoFocus(dlg,{skipIfNotEnabled:!0})}.bind(this))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle","material-icons"]),ImageDownloader.prototype.getItems=function(query){var options=this.options,item=options.item;return _connectionmanager.default.getApiClient(item).getAvailableRemoteImages(Object.assign({Type:options.imageType||"Primary",IncludeAllLanguages:options.allLanguages,ProviderName:options.imageProvider,itemId:item.Id},query)).then(normalizeResult.bind(this))},ImageDownloader.prototype.getCardOptions=function(items){var options=this.options,imageType=options.imageType,currentItemType=options.item.Type,options=options.item.MediaType;return{shape:"Backdrop"===imageType||"Thumb"===imageType||"Art"===imageType||"Logo"===imageType||"LogoLight"===imageType||"LogoLightColor"===imageType?"backdrop":"Banner"===imageType?"banner":"Disc"===imageType?"square":"Episode"===currentItemType?"backdrop":"MusicAlbum"===currentItemType||"MusicArtist"===currentItemType||"Audio"===options?"square":"portrait",fields:["Name","DownloadableImageInfo"],coverImage:"Logo"!==imageType,overlayPlayButton:!1,multiSelect:!1,contextMenu:!1,hoverDownloadButton:!0,action:"custom",textLinks:!1,lazy:2,previewImageButton:!0,draggable:!1}},ImageDownloader.prototype.getListOptions=function(items){return{renderer:_cardbuilder.default,options:this.getCardOptions(items),virtualScrollLayout:"vertical-grid"}},ImageDownloader.prototype.show=function(options){var dialogOptions={removeOnClose:!0,scrollY:!1,autoFocus:!1},dialogOptions=(_layoutmanager.default.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border",_dialoghelper.default.createDialog(dialogOptions)),html=(dialogOptions.classList.add("formDialog"),""),html=(html=(html=(html=(html=(html+='<div class="formDialogHeader formDialogHeader-clear">')+'<button is="paper-icon-button-light" class="btnCancel hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl"></i></button>'+'<h2 class="formDialogHeaderTitle">')+_globalize.default.translate("HeaderSearchForImages"))+"</h2>"+"</div>")+function(){var html="";return(html+='<div class="formDialogContent flex flex-direction-column" style="overflow:hidden;">')+'<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="flex flex-grow virtualScrollerScrollContainer">'+'<div class="scrollSlider padded-left padded-right flex-grow">'+'<div class=" padded-bottom flex align-items-center justify-content-center flex-wrap-wrap focuscontainer-x">'+'<div class="selectContainer selectContainer-inline">'+('<select is="emby-select" label="'+_globalize.default.translate("LabelSource")+'" class="selectImageProvider emby-select-inline">')+('<option value="">'+_globalize.default.translate("All")+"</option>")+"</select>"+"</div>"+'<div class="selectContainer selectContainer-inline fldSelectImageType hide" style="margin-left:1em;">'+('<select is="emby-select" label="'+_globalize.default.translate("LabelType")+'" class="selectBrowsableImageType emby-select-inline">')+('<option value="Primary">'+_globalize.default.translate("Primary")+"</option>")+('<option value="Art">'+_globalize.default.translate("Art")+"</option>")+('<option value="Backdrop">'+_globalize.default.translate("Backdrop")+"</option>")+('<option value="Banner">'+_globalize.default.translate("Banner")+"</option>")+('<option value="Disc">'+_globalize.default.translate("Disc")+"</option>")+('<option value="Logo">'+_globalize.default.translate("Logo")+"</option>")+('<option value="Thumb">'+_globalize.default.translate("Thumb")+"</option>")+"</select>"+"</div>"+'<label class="selectContainer" style="margin: 0 0 0 1em;width:auto;">'+'<input class="chkAllLanguages" type="checkbox" is="emby-toggle" />'+("<span>"+_globalize.default.translate("HeaderAllLanguages")+"</span>")+"</label>"+"</div>"+'<div is="emby-itemscontainer" data-virtualscrolllayout="vertical-grid" class="itemsContainer vertical-wrap padded-bottom-page">'+"</div>"+"</div>"+"</div>"+"</div>"}(),dialogOptions.innerHTML=html,options.imageType||dialogOptions.querySelector(".fldSelectImageType").classList.remove("hide"),this.dlg=dialogOptions,this.options=options,dialogOptions.querySelector(".selectBrowsableImageType")),options=(html.value=options.imageType||"Primary",dialogOptions.querySelector(".btnCancel").addEventListener("click",function(){this.closeDialog()}.bind(this)),html.addEventListener("change",function(e){this.options.imageType=e.target.value,this.options.imageProvider=null,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".selectImageProvider").addEventListener("change",function(e){this.options.imageProvider=e.target.value,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".chkAllLanguages").addEventListener("change",function(e){this.options.allLanguages=e.target.checked,_loading.default.show(),this.itemsContainer.refreshItems().then(_loading.default.hide.bind(_loading.default))}.bind(this)),dialogOptions.querySelector(".itemsContainer")),html=(options.addEventListener("action-null",function(e){var options=this.options,e=e.detail.item,downloadOptions={itemId:(options=options.item).Id},e=(downloadOptions.Type=e.Type,downloadOptions.ImageUrl=e.Url,downloadOptions.ProviderName=e.ProviderName,_loading.default.show(),_connectionmanager.default.getApiClient(options)),instance=this;e.downloadRemoteImage(downloadOptions).then(function(){instance.result=!0,instance.closeDialog()})}.bind(this)),options.fetchData=this.getItems.bind(this),options.getListOptions=this.getListOptions.bind(this),this.itemsContainer=options,dialogOptions.addEventListener("opened",function(){var itemsContainer=this.itemsContainer;itemsContainer.resume?onItemsContainerUpgraded.call(this):_dom.default.addEventListener(itemsContainer,"upgraded",onItemsContainerUpgraded.bind(this),{once:!0})}.bind(this)),function(){var result=this.result;return this.cleanup(),_loading.default.hide(),result?Promise.resolve():Promise.reject()}.bind(this));return _dialoghelper.default.open(dialogOptions).then(html,html)},ImageDownloader.prototype.closeDialog=function(){var dlg=this.dlg;dlg&&_dialoghelper.default.close(dlg)},ImageDownloader.prototype.cleanup=function(){this.options=null,this.dlg=null,this.itemsContainer=null},_exports.default=ImageDownloader}); |