1 line
3.1 KiB
JavaScript
1 line
3.1 KiB
JavaScript
|
|
import globalize from"./../../modules/common/globalize.js";import dialogHelper from"./../../modules/dialoghelper/dialoghelper.js";import"./../../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../../modules/emby-elements/emby-button/emby-button.js";import"./../../modules/emby-elements/emby-button/paper-icon-button-light.js";import"./../../modules/emby-elements/emby-select/emby-select.js";import"./../../modules/emby-elements/emby-input/emby-input.js";import"./../../modules/emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";function getDefaultImageConfig(itemType,type){return{Type:type,MinWidth:0,Limit:"Primary"===type?1:0}}function findImageOptions(imageOptions,type){return imageOptions.filter(function(i){return i.Type===type})[0]}function getImageConfig(options,availableOptions,imageType,itemType){return findImageOptions(options.ImageOptions||[],imageType)||findImageOptions(availableOptions.DefaultImageOptions||[],imageType)||getDefaultImageConfig(itemType,imageType)}function setVisibilityOfBackdrops(elem,visible){visible?(elem.classList.remove("hide"),elem.querySelector("input").setAttribute("required","required")):(elem.classList.add("hide"),elem.querySelector("input").setAttribute("required",""),elem.querySelector("input").removeAttribute("required"))}function loadValues(context,itemType,options,availableOptions){let supportedImageTypes=availableOptions.SupportedImageTypes||[];setVisibilityOfBackdrops(context.querySelector(".backdropFields"),-1!==supportedImageTypes.indexOf("Backdrop")),Array.prototype.forEach.call(context.querySelectorAll(".imageType"),function(i){var imageType=i.getAttribute("data-imagetype"),container=i.closest("LABEL");-1===supportedImageTypes.indexOf(imageType)?container.classList.add("hide"):container.classList.remove("hide"),getImageConfig(options,availableOptions,imageType,itemType).Limit?i.checked=!0:i.checked=!1});var backdropConfig=getImageConfig(options,availableOptions,"Backdrop",itemType);context.querySelector(".txtMaxBackdrops").value=backdropConfig.Limit,context.querySelector(".txtMinBackdropDownloadWidth").value=backdropConfig.MinWidth}function saveValues(context,options){options.ImageOptions=Array.prototype.map.call(context.querySelectorAll(".imageType:not(.hide)"),function(c){return{Type:c.getAttribute("data-imagetype"),Limit:c.checked?1:0,MinWidth:0}}),options.ImageOptions.push({Type:"Backdrop",Limit:context.querySelector(".txtMaxBackdrops").value,MinWidth:context.querySelector(".txtMinBackdropDownloadWidth").value})}function editor(){this.show=function(itemType,options,availableOptions){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.open("GET","components/imageoptionseditor/imageoptionseditor.template.html",!0),xhr.onload=function(e){var template=this.response;let dlg=dialogHelper.createDialog({size:"medium-tall",removeOnClose:!0,scrollY:!1});dlg.classList.add("formDialog"),dlg.innerHTML=globalize.translateDocument(template),dlg.addEventListener("close",function(){saveValues(dlg,options)}),loadValues(dlg,itemType,options,availableOptions),dialogHelper.open(dlg).then(resolve,resolve)},xhr.send()})}}export default editor;
|