1 line
No EOL
38 KiB
JavaScript
1 line
No EOL
38 KiB
JavaScript
import itemManager from"./../../modules/common/itemmanager/itemmanager.js";import globalize from"./../../modules/common/globalize.js";import{appHost}from"./../../modules/common/servicelocator.js";import ImageOptionsEditor from"./../imageoptionseditor/imageoptionseditor.js";import"./../../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../../modules/emby-elements/emby-input/emby-input.js";import"./../../modules/emby-elements/emby-select/emby-select.js";import"./../../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../../modules/emby-elements/emby-itemscontainer/emby-itemscontainer.js";import listView from"./../../modules/listview/listview.js";import layoutManager from"./../../modules/layoutmanager.js";let currentLibraryOptions,currentAvailableOptions;function getSelectLanguages(query){var apiClient=ApiClient;let select=this;return apiClient.getCultures().then(function(cultures){let selectedValues=select.values,items=(Array.isArray(selectedValues)||(selectedValues=selectedValues?.split?selectedValues.split(","):[]),cultures.map(function(c){return{Name:c.DisplayName,Id:c.TwoLetterISOLanguageName,Type:"GenericListItem"}}));items.sort(function(a,b){let aIndex=selectedValues.indexOf(a.Id),bIndex=selectedValues.indexOf(b.Id);return aIndex<0&&(aIndex=items.length),bIndex<0&&(bIndex=items.length),aIndex===bIndex?0:aIndex<bIndex?-1:1});cultures=items.length;return items=items.slice(query.StartIndex||0),null!=query.Limit&&items.length>query.Limit&&(items.length=Math.min(items.length,query.Limit)),{TotalRecordCount:cultures,Items:items}})}function populateLanguages(parent){return ApiClient.getCultures().then(function(languages){populateLanguagesIntoSelect(parent.querySelector(".selectLanguage"),languages),populateLanguagesIntoSelect(parent.querySelector(".selectImageLanguage"),languages)})}function populateLanguagesIntoSelect(select,languages){let html="";html+="<option value=''></option>";for(let i=0,length=languages.length;i<length;i++){var culture=languages[i];html+="<option value='"+culture.TwoLetterISOLanguageName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}function populateCountries(select){return ApiClient.getCountries().then(function(allCountries){let html="";html+="<option value=''></option>";for(let i=0,length=allCountries.length;i<length;i++){var culture=allCountries[i];html+="<option value='"+culture.TwoLetterISORegionName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html})}function populateRefreshInterval(select,interval){var html="",html=(html+="<option value='0'>"+globalize.translate("Never")+"</option>")+interval.map(function(val){return"<option value='"+val+"'>"+globalize.translate("EveryNDays",val)+"</option>"}).join("");select.innerHTML=html}function populateMaxDownloadAge(select){var html="",html=(html+="<option value='0'>"+globalize.translate("NoAgeLimit")+"</option>")+[14,30,60,90,120,180].map(function(val){return"<option value='"+val+"' "+(180===val?" selected":"")+">"+globalize.translate("NDays",val)+"</option>"}).join("");select.innerHTML=html}function refreshItemsContainer(itemsContainer){return itemsContainer.waitForCustomElementUpgrade().then(function(){itemsContainer.resume({refresh:!0})})}function refreshItemsContainers(page){var promises=[],itemsContainers=page.querySelectorAll(".itemsContainer");for(let i=0,length=itemsContainers.length;i<length;i++)promises.push(refreshItemsContainer(itemsContainers[i]));return Promise.all(promises)}function getOrderedPlugins(plugins,configuredOrder){return(plugins=plugins.slice(0)).sort(function(a,b){return(a=configuredOrder.indexOf(a.Name))<(b=configuredOrder.indexOf(b.Name))?-1:b<a?1:0}),plugins}function getItemsFromSourceItems(query,sourceItems){var items=sourceItems.map(function(i,index){let shortOverviewHtml;if((i.Features||[]).includes("RequiredSetup"))shortOverviewHtml=getRequiredSetupText(i);else if("thetvdb"===(i.Name||"").toLowerCase()){let tvdbText="Metadata provided by {0}TheTVDB{1}. Please consider supporting TheTVDB by adding missing information or subscribing.";tvdbText=appHost.supports("externallinks")&&appHost.supports("targetblank")&&!layoutManager.tv?tvdbText.replace("{0}",'<a is="emby-linkbutton" class="button-link" href="https://u10505776.ct.sendgrid.net/ls/click?upn=xMYYCP13hVd-2BZPpbVcMPHeLXfv-2BPRdIsKm2qSeirIHi7kH9am8IxD-2BavFbeqGqIXhYSX_3vJGkDxT-2BkunZNiBhP0A-2FgnzP8fpop8DS6eHDvUovCjNP0soWQW676fXXT2AIkyRKGna8SCDrkQjnhaj530jQSTa87HTuTDwvGiBqeSwPxTSgVxlxCgw4O-2BSuP8cT8LWN-2BvSLziJev27SJk22WNo8EAmmMxf9PnByhpFrDxhEhHfYN-2BUTgSydVQKwe4mFY53vPm-2Fus5xrLlvgo6e4STB4g-3D-3D" target="_blank">').replace("{1}","</a>"):tvdbText.replace("{0}","").replace("{1}",""),shortOverviewHtml=tvdbText}return{Type:"GenericListItem",Name:i.Name,Icon:"folder",DeleteType:"remove",OriginalItem:i,CanReorder:!0,ShortOverviewHtml:shortOverviewHtml}});for(let i=0,length=items.length;i<length;i++){var item=items[i];item.CanMoveUp=0<i,item.CanMoveDown=i<items.length-1}return Promise.resolve({Items:items,TotalRecordCount:items.length})}function getItems(query,property,orderProperty){return getItemsFromSourceItems(query,getOrderedPlugins(currentAvailableOptions[property]||[],currentLibraryOptions[orderProperty]||[]))}function getMetadataReaderItems(query){return getItems(query,"MetadataReaders","LocalMetadataReaderOrder")}function isLocalMetadataReaderOriginalItemChecked(item){return!currentLibraryOptions?.DisabledLocalMetadataReaders?.includes(item.Name)}function isLocalMetadataReaderChecked(item){return isLocalMetadataReaderOriginalItemChecked(item.OriginalItem)}function removeItemOnce(arr,value){value=arr.indexOf(value);return-1<value&&arr.splice(value,1),arr}function arraymove(arr,fromIndex,toIndex){var element=arr[fromIndex];arr.splice(fromIndex,1),arr.splice(toIndex,0,element)}function onProviderChecked(options,disabledListProperty){var items=options.items,checked=options.checked,options=currentLibraryOptions,disabledProviders=(options[disabledListProperty]||(options[disabledListProperty]=[]),options[disabledListProperty]);for(let i=0,length=items.length;i<length;i++){var key=items[i].OriginalItem.Name;checked?disabledProviders.includes(key)&&removeItemOnce(disabledProviders,key):disabledProviders.includes(key)||disabledProviders.push(key)}return Promise.resolve()}function onLocalMetadataReaderChecked(options){return onProviderChecked(options,"DisabledLocalMetadataReaders")}function onItemsMovedToNewIndex(movedItems,allItems,options,orderProperty,libraryOptionsObject){console.log("onItemsMovedToNewIndex");var fromIndex=options.currentIndex,options=options.newIndex;return console.log("onItemsMovedToNewIndex, fromIndex: "+fromIndex+", newIndex: "+options),fromIndex!==options&&(arraymove(allItems,fromIndex,options),(libraryOptionsObject||currentLibraryOptions)[orderProperty]=allItems.map(function(i){return i.Name})),Promise.resolve()}function onMetadataReadersMoved(items,options){return onItemsMovedToNewIndex(items,currentAvailableOptions.MetadataReaders,options,"LocalMetadataReaderOrder")}function getMetadataReaderListOptions(items){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["ItemCheckbox","Name"],draggable:!0,draggableXActions:!1,dragReorder:!0,roundImage:!0,image:!1,multiSelect:!1,getIsItemChecked:isLocalMetadataReaderChecked,checkboxAction:onLocalMetadataReaderChecked,commandActions:{moveInOrder:onMetadataReadersMoved}}}}function getSubtitleFetcherItems(query){return getItems(query,"SubtitleFetchers","SubtitleFetcherOrder")}function isSubtitleFetcherChecked(item){return!currentLibraryOptions?.DisabledSubtitleFetchers?.includes(item.OriginalItem.Name)}function onSubtitleFetcherChecked(options){return onProviderChecked(options,"DisabledSubtitleFetchers")}function onSubtitleFetchersMoved(items,options){return onItemsMovedToNewIndex(items,currentAvailableOptions.SubtitleFetchers,options,"SubtitleFetcherOrder")}function getSubtitleFetcherListOptions(){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["ItemCheckbox","Name","ShortOverviewHtml"],draggable:!0,draggableXActions:!1,dragReorder:!0,roundImage:!0,image:!1,multiSelect:!1,getIsItemChecked:isSubtitleFetcherChecked,checkboxAction:onSubtitleFetcherChecked,commandActions:{moveInOrder:onSubtitleFetchersMoved}}}}function getLyricsFetcherItems(query){return getItems(query,"LyricsFetchers","LyricsFetcherOrder")}function isLyricsFetcherChecked(item){return!currentLibraryOptions?.DisabledLyricsFetchers?.includes(item.OriginalItem.Name)}function onLyricsFetcherChecked(options){return onProviderChecked(options,"DisabledLyricsFetchers")}function onLyricsFetchersMoved(items,options){return onItemsMovedToNewIndex(items,currentAvailableOptions.LyricsFetchers,options,"LyricsFetcherOrder")}function getLyricsFetcherListOptions(){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["ItemCheckbox","Name","ShortOverviewHtml"],draggable:!0,draggableXActions:!1,dragReorder:!0,roundImage:!0,image:!1,multiSelect:!1,getIsItemChecked:isLyricsFetcherChecked,checkboxAction:onLyricsFetcherChecked,commandActions:{moveInOrder:onLyricsFetchersMoved}}}}function getImageFetcherItems(query){var type=this.getAttribute("data-type");return getItemsFromSourceItems(query,getOrderedPlugins(getTypeOptions(currentAvailableOptions,type).ImageFetchers||[],(getTypeOptions(currentLibraryOptions,type)||{}).ImageFetcherOrder||[]))}function isImageFetcherChecked(item){var type=this.getAttribute("data-type"),type=getTypeOptions(currentLibraryOptions,type)||{};return item=item.OriginalItem,type.ImageFetchers?type.ImageFetchers.includes(item.Name):item.DefaultEnabled}function onImageFetcherChecked(options){var type=this.getAttribute("data-type"),type=getTypeOptions(currentLibraryOptions,type,!0),items=options.items,checked=options.checked,enabledProviders=(type.ImageFetchers||(type.ImageFetchers=[]),type.ImageFetchers);for(let i=0,length=items.length;i<length;i++){var key=items[i].OriginalItem.Name;checked?enabledProviders.includes(key)||enabledProviders.push(key):enabledProviders.includes(key)&&removeItemOnce(enabledProviders,key)}return Promise.resolve()}function onImageFetchersMoved(items,options){var type=this.getAttribute("data-type"),libraryOptionsForType=getTypeOptions(currentLibraryOptions,type,!0);return onItemsMovedToNewIndex(items,getTypeOptions(currentAvailableOptions,type).ImageFetchers||[],options,"ImageFetcherOrder",libraryOptionsForType)}function getImageFetcherListOptions(){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["ItemCheckbox","Name","ShortOverviewHtml"],draggable:!0,draggableXActions:!1,dragReorder:!0,roundImage:!0,image:!1,multiSelect:!1,getIsItemChecked:isImageFetcherChecked.bind(this),checkboxAction:onImageFetcherChecked.bind(this),commandActions:{moveInOrder:onImageFetchersMoved.bind(this)}}}}function getMetadataFetcherItems(query){var type=this.getAttribute("data-type");return getItemsFromSourceItems(query,getOrderedPlugins(getTypeOptions(currentAvailableOptions,type).MetadataFetchers||[],(getTypeOptions(currentLibraryOptions,type)||{}).MetadataFetcherOrder||[]))}function isMetadataFetcherOriginalItemChecked(item,type){type=getTypeOptions(currentLibraryOptions,type)||{};return type.MetadataFetchers?type.MetadataFetchers.includes(item.Name):item.DefaultEnabled}function isMetadataFetcherChecked(item){var type=this.getAttribute("data-type");return isMetadataFetcherOriginalItemChecked(item=item.OriginalItem,type)}function onMetadataFetcherChecked(options){var type=this.getAttribute("data-type"),type=getTypeOptions(currentLibraryOptions,type,!0),items=options.items,checked=options.checked,enabledProviders=(type.MetadataFetchers||(type.MetadataFetchers=[]),type.MetadataFetchers);for(let i=0,length=items.length;i<length;i++){var key=items[i].OriginalItem.Name;checked?enabledProviders.includes(key)||enabledProviders.push(key):enabledProviders.includes(key)&&removeItemOnce(enabledProviders,key)}return Promise.resolve()}function onMetadataFetchersMoved(items,options){var type=this.getAttribute("data-type"),libraryOptionsForType=getTypeOptions(currentLibraryOptions,type,!0);return onItemsMovedToNewIndex(items,getTypeOptions(currentAvailableOptions,type).MetadataFetchers||[],options,"MetadataFetcherOrder",libraryOptionsForType)}function getMetadataFetcherListOptions(){return{renderer:listView,options:{moreButton:!1,defaultBackground:!1,action:layoutManager.tv?"menu":"none",buttonCommands:["delete"],fields:["ItemCheckbox","Name","ShortOverviewHtml"],draggable:!0,draggableXActions:!1,dragReorder:!0,roundImage:!0,image:!1,multiSelect:!1,getIsItemChecked:isMetadataFetcherChecked.bind(this),checkboxAction:onMetadataFetcherChecked.bind(this),commandActions:{moveInOrder:onMetadataFetchersMoved.bind(this)}}}}function renderMetadataSavers(page,metadataSavers){let html="";page=page.querySelector(".metadataSavers");if(!metadataSavers.length)return page.innerHTML="",page.classList.add("hide"),!1;html=html+('<h2 class="checkboxListLabel">'+globalize.translate("HeaderMetadataSavers"))+'</h2><div class="checkboxList">';for(let i=0,length=metadataSavers.length;i<length;i++){var plugin=metadataSavers[i];html+='<label><input type="checkbox" data-defaultenabled="'+plugin.DefaultEnabled+'" is="emby-checkbox" class="chkMetadataSaver" data-pluginname="'+plugin.Name+'" '+!1+"><span>"+plugin.Name+"</span></label>"}return html=(html+="</div>")+('<div class="fieldDescription" style="margin-top:.25em;">'+globalize.translate("LabelMetadataSaversHelp")+"</div>"),page.innerHTML=html,page.classList.remove("hide"),!0}function getMetadataFetchersForTypeHtml(availableTypeOptions,libraryOptionsForType){var html="";return getOrderedPlugins(availableTypeOptions.MetadataFetchers||[],libraryOptionsForType.MetadataFetcherOrder||[]).length?'<div class="metadataFetcher verticalSection verticalSection-extrabottompadding" data-type="'+availableTypeOptions.Type+'"><div class="sectionTitleContainer"><h2 class="sectionTitle">'+globalize.translate("HeaderTypeMetadataDownloaders",itemManager.getItemTypeName(availableTypeOptions.Type))+'</h2></div><p class="secondaryText" style="margin:.5em 0;">'+globalize.translate("LabelMetadataDownloadersHelp")+'</p><div class="itemsContainer" is="emby-itemscontainer" data-type="'+availableTypeOptions.Type+'"></div></div>':""}function getTypeOptions(allOptions,type,createIfNotFound){var allTypeOptions=allOptions.TypeOptions||[];for(let i=0,length=allTypeOptions.length;i<length;i++){var typeOptions=allTypeOptions[i];if(typeOptions.Type===type)return typeOptions}if(createIfNotFound){let typeOptions={Type:type};return allOptions.TypeOptions||(allOptions.TypeOptions=[]),allOptions.TypeOptions.push(typeOptions),typeOptions}return null}function renderMetadataFetchers(page,availableOptions,libraryOptions,contentType){let html="";var elem=page.querySelector(".metadataFetchers");for(let i=0,length=availableOptions.TypeOptions.length;i<length;i++){var availableTypeOptions=availableOptions.TypeOptions[i],libraryOptionsForType=getTypeOptions(libraryOptions,availableTypeOptions.Type)||{};html+=getMetadataFetchersForTypeHtml(availableTypeOptions,libraryOptionsForType)}elem.innerHTML=html;var itemsContainers=elem.querySelectorAll(".itemsContainer");for(let i=0,length=itemsContainers.length;i<length;i++){var itemsContainer=itemsContainers[i];itemsContainer.fetchData=getMetadataFetcherItems.bind(itemsContainer),itemsContainer.getListOptions=getMetadataFetcherListOptions.bind(itemsContainer)}return html?(elem.classList.remove("hide"),page.querySelector(".fldAutoRefreshInterval").classList.remove("hide"),contentType&&"tvshows"!==contentType?page.querySelector(".fldPlaceholderMetadataRefreshInterval").classList.add("hide"):page.querySelector(".fldPlaceholderMetadataRefreshInterval").classList.remove("hide"),page.querySelector(".fldMetadataLanguage").classList.remove("hide"),page.querySelector(".fldMetadataCountry").classList.remove("hide")):(elem.classList.add("hide"),page.querySelector(".fldAutoRefreshInterval").classList.add("hide"),page.querySelector(".fldPlaceholderMetadataRefreshInterval").classList.add("hide"),page.querySelector(".fldMetadataLanguage").classList.add("hide"),page.querySelector(".fldMetadataCountry").classList.add("hide")),html?page.querySelector(".fldImageLanguage").classList.remove("hide"):page.querySelector(".fldImageLanguage").classList.add("hide"),!0}function getRequiredSetupText(plugin){var enableLink=plugin.SetupUrl,linkStart=enableLink?'<a href="'+plugin.SetupUrl+'" is="emby-linkbutton" class="button-link">'+plugin.Name:plugin.Name;return globalize.translate("ProviderNeedsSetupWithUrl",plugin.Name,linkStart,enableLink?"</a>":"")}function getImageFetchersForTypeHtml(availableTypeOptions,libraryOptionsForType){let html="";return getOrderedPlugins(availableTypeOptions.ImageFetchers||[],libraryOptionsForType.ImageFetcherOrder||[]).length&&(html=(html=html+('<div class="imageFetcher verticalSection verticalSection-extrabottompadding" data-type="'+availableTypeOptions.Type)+'"><div class="sectionTitleContainer">')+'<h2 class="sectionTitle">'+globalize.translate("HeaderTypeImageFetchers",itemManager.getItemTypeName(availableTypeOptions.Type))+"</h2>",(1<(libraryOptionsForType=availableTypeOptions.SupportedImageTypes||[]).length||1===libraryOptionsForType.length&&"Primary"!==libraryOptionsForType[0])&&(html+='<button is="emby-button" class="raised raised-mini btnImageOptionsForType" type="button" style="margin:0 1.25em;font-size:90%;"><span>'+globalize.translate("HeaderFetcherSettings")+"</span></button>"),html=(html=(html=(html+="</div>")+'<p class="secondaryText" style="margin:.5em 0;">'+globalize.translate("LabelImageFetchersHelp")+"</p>")+'<div class="itemsContainer" is="emby-itemscontainer" data-type="'+availableTypeOptions.Type+'">')+"</div></div>"),html}function renderImageFetchers(page,availableOptions,libraryOptions){let html="";var elem=page.querySelector(".imageFetchers");for(let i=0,length=availableOptions.TypeOptions.length;i<length;i++){var availableTypeOptions=availableOptions.TypeOptions[i],libraryOptionsForType=getTypeOptions(libraryOptions,availableTypeOptions.Type)||{};html+=getImageFetchersForTypeHtml(availableTypeOptions,libraryOptionsForType)}elem.innerHTML=html;var itemsContainers=elem.querySelectorAll(".itemsContainer");for(let i=0,length=itemsContainers.length;i<length;i++){var itemsContainer=itemsContainers[i];itemsContainer.fetchData=getImageFetcherItems.bind(itemsContainer),itemsContainer.getListOptions=getImageFetcherListOptions.bind(itemsContainer)}return html?(elem.classList.remove("hide"),page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.remove("hide"),page.querySelector(".chkSaveLocalContainer").classList.remove("hide")):(elem.classList.add("hide"),page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.add("hide"),page.querySelector(".chkSaveLocalContainer").classList.add("hide")),!0}function populateMetadataSettings(parent,contentType){var isNewLibrary=parent.classList.contains("newlibrary");return ApiClient.getJSON(ApiClient.getUrl("Libraries/AvailableOptions",{LibraryContentType:contentType,IsNewLibrary:isNewLibrary})).then(function(availableOptions){if(currentAvailableOptions=availableOptions,parent.availableOptions=availableOptions,parent.closest(".newlibrary"))for(let i=0,length=currentAvailableOptions.TypeOptions.length;i<length;i++){var availableTypeOptions=currentAvailableOptions.TypeOptions[i],libraryOptionsForType=getTypeOptions(currentLibraryOptions,availableTypeOptions.Type,!0);libraryOptionsForType.MetadataFetchers=(availableTypeOptions.MetadataFetchers||[]).filter(function(m){return m.DefaultEnabled}).map(function(m){return m.Name}),libraryOptionsForType.ImageFetchers=(availableTypeOptions.ImageFetchers||[]).filter(function(m){return m.DefaultEnabled}).map(function(m){return m.Name})}renderMetadataSavers(parent,availableOptions.MetadataSavers),renderMetadataFetchers(parent,availableOptions,{},contentType),renderImageFetchers(parent,availableOptions,{}),refreshItemsContainers(parent),onMetadataFetchersOrReadersChange.call(parent.querySelector(".metadataFetchers"))}).catch(function(){return Promise.resolve()})}function showImageOptionsForType(type){let typeOptions=getTypeOptions(currentLibraryOptions,type);typeOptions||(typeOptions={Type:type},currentLibraryOptions.TypeOptions.push(typeOptions));var availableOptions=getTypeOptions(currentAvailableOptions||{},type);(new ImageOptionsEditor).show(type,typeOptions,availableOptions)}function onImageFetchersContainerClick(e){e=e.target.closest(".btnImageOptionsForType");e&&showImageOptionsForType(e.closest(".imageFetcher").getAttribute("data-type"))}function onMetadataFetchersOrReadersChange(e){var parent=this.closest(".libraryOptions"),availableOptions=currentAvailableOptions;let allFeatures=[];for(let i=0,length=availableOptions.TypeOptions.length;i<length;i++){var availableTypeOptions=availableOptions.TypeOptions[i],plugins=availableTypeOptions.MetadataFetchers||[];for(let j=0;j<plugins.length;j++){var plugin=plugins[j];isMetadataFetcherOriginalItemChecked(plugin,availableTypeOptions.Type)&&(allFeatures=allFeatures.concat(plugin.Features||[]))}}allFeatures.includes("Collections")?parent.querySelector(".fldImportCollections").classList.remove("hide"):parent.querySelector(".fldImportCollections").classList.add("hide"),allFeatures.includes("Adult")?parent.querySelector(".fldAdult").classList.remove("hide"):parent.querySelector(".fldAdult").classList.add("hide"),onImportCollectionsChange.call(parent.querySelector(".chkImportCollections"))}function onImportCollectionsChange(e){var parent=this.closest(".libraryOptions"),fldMinCollectionSize=parent.querySelector(".fldMinCollectionSize");let allFeatures=[];var readers=currentAvailableOptions.MetadataReaders||[];for(let i=0;i<readers.length;i++){var plugin=readers[i];isLocalMetadataReaderOriginalItemChecked(plugin)&&(allFeatures=allFeatures.concat(plugin.Features||[]))}allFeatures.includes("Collections")||this.checked&&parent.querySelector(".fldImportCollections:not(.hide)")?fldMinCollectionSize.classList.remove("hide"):fldMinCollectionSize.classList.add("hide")}function bindEvents(parent){parent.querySelector(".imageFetchers").addEventListener("click",onImageFetchersContainerClick),parent.querySelector(".selectThumbnailImages").addEventListener("change",onThumbnailScheduleChange),parent.querySelector(".selectThumbnailInterval").addEventListener("change",onThumbnailIntervalChange),parent.querySelector(".chkImportCollections").addEventListener("change",onImportCollectionsChange),parent.querySelector(".metadataFetchers").addEventListener("change",onMetadataFetchersOrReadersChange),parent.querySelector(".metadataReaders").addEventListener("change",onMetadataFetchersOrReadersChange);var selectSubtitleLanguages=parent.querySelector(".selectSubtitleLanguages"),selectSubtitleLanguages=(selectSubtitleLanguages.getItems=getSelectLanguages.bind(selectSubtitleLanguages),parent.querySelector(".selectLyricsLanguages"));selectSubtitleLanguages.getItems=getSelectLanguages.bind(selectSubtitleLanguages)}function onThumbnailScheduleChange(e){var e=e.target.closest(".thumbnailSettingsSection"),fldThumbnailInterval=e.querySelector(".fldThumbnailInterval"),fldThumbnailInterval=(this.value?fldThumbnailInterval.classList.remove("hide"):fldThumbnailInterval.classList.add("hide"),e.querySelector(".selectThumbnailInterval"));onThumbnailIntervalChange.call(fldThumbnailInterval,{target:fldThumbnailInterval})}function onThumbnailIntervalChange(e){var e=e.target.closest(".thumbnailSettingsSection"),fldSaveThumbnailSetsLocally=e.querySelector(".fldSaveThumbnailSetsLocally"),e=e.querySelector(".selectThumbnailImages");"-1"!==this.value&&e.value?fldSaveThumbnailSetsLocally.classList.remove("hide"):fldSaveThumbnailSetsLocally.classList.add("hide")}function populateThumbnailInterval(parent){var options=[{name:globalize.translate("ValueSeconds",10),value:10,selected:' selected="selected"'},{name:globalize.translate("ChapterMarkers"),value:-1}];parent.querySelector(".selectThumbnailInterval").innerHTML=options.map(function(o){return"<option"+(o.selected||"")+' value="'+o.value+'">'+o.name+"</option>"}).join("")}function triggerElementEvents(parent){var selectThumbnailImages=parent.querySelector(".selectThumbnailImages"),selectThumbnailImages=(onThumbnailScheduleChange.call(selectThumbnailImages,{target:selectThumbnailImages}),parent.querySelector(".selectThumbnailInterval")),selectThumbnailImages=(onThumbnailIntervalChange.call(selectThumbnailImages,{target:selectThumbnailImages}),parent.querySelector(".chkImportCollections"));onImportCollectionsChange.call(selectThumbnailImages,{target:selectThumbnailImages})}function embed(parent,contentType,libraryOptions){currentLibraryOptions={TypeOptions:[]};let isNewLibrary=(currentAvailableOptions=null)==libraryOptions;return isNewLibrary&&parent.classList.add("newlibrary"),require(["text!./components/libraryoptionseditor/libraryoptionseditor.template.html"]).then(function(responses){parent.innerHTML=globalize.translateDocument(responses[0]);responses=parent.querySelector(".metadataReaderItemsContainer"),responses.fetchData=getMetadataReaderItems,responses.getListOptions=getMetadataReaderListOptions,responses.parentContainer=responses.closest(".verticalSection"),responses=parent.querySelector(".subtitleFetchersItemsContainer"),responses.fetchData=getSubtitleFetcherItems,responses.getListOptions=getSubtitleFetcherListOptions,responses.parentContainer=responses.closest(".subtitleDownloadSettings"),responses=parent.querySelector(".lyricsFetchersItemsContainer"),responses.fetchData=getLyricsFetcherItems,responses.getListOptions=getLyricsFetcherListOptions,responses.parentContainer=responses.closest(".lyricsDownloadSettings"),populateRefreshInterval(parent.querySelector(".selectAutoRefreshInterval"),[30,60,90]),populateRefreshInterval(parent.querySelector(".selectPlaceholderMetadataRefreshInterval"),[2,3,7,14,30,60,90]),populateMaxDownloadAge(parent.querySelector(".selectSubtitleDownloadMaxAge")),populateMaxDownloadAge(parent.querySelector(".selectLyricsDownloadMaxAge")),responses=[populateLanguages(parent),populateCountries(parent.querySelector(".selectCountry"))];return populateThumbnailInterval(parent),Promise.all(responses).then(function(){return setContentType(parent,contentType,isNewLibrary).then(function(){libraryOptions?setLibraryOptions(parent,libraryOptions):setListDefaults(parent),triggerElementEvents(parent),onMetadataFetchersOrReadersChange.call(parent.querySelector(".metadataFetchers")),bindEvents(parent)})})})}function setAdvancedVisible(parent,visible){var elems=parent.querySelectorAll(".advanced");for(let i=0,length=elems.length;i<length;i++)visible?elems[i].classList.remove("advancedHide"):elems[i].classList.add("advancedHide")}function setContentType(parent,contentType){return"homevideos"===contentType?parent.querySelector(".chkEnablePhotosContainer").classList.remove("hide"):parent.querySelector(".chkEnablePhotosContainer").classList.add("hide"),contentType&&"music"!==contentType&&"audiobooks"!==contentType&&"musicvideos"!==contentType?parent.querySelector(".fldImportPlaylists").classList.add("hide"):parent.querySelector(".fldImportPlaylists").classList.remove("hide"),"tvshows"!==contentType&&"movies"!==contentType&&"homevideos"!==contentType&&"musicvideos"!==contentType&&"mixed"!==contentType&&contentType?(parent.querySelector(".thumbnailSettingsSection").classList.add("hide"),parent.querySelector(".fldIgnoreSample").classList.add("hide"),parent.querySelector(".txtIgnoreSampleFiles").removeAttribute("required")):(parent.querySelector(".thumbnailSettingsSection").classList.remove("hide"),parent.querySelector(".fldIgnoreSample").classList.remove("hide"),parent.querySelector(".txtIgnoreSampleFiles").setAttribute("required","required")),"tvshows"!==contentType&&contentType?parent.querySelector(".introDetectionSection").classList.add("hide"):parent.querySelector(".introDetectionSection").classList.remove("hide"),"tvshows"!==contentType&&"movies"!==contentType&&"homevideos"!==contentType&&"musicvideos"!==contentType&&"mixed"!==contentType&&"audiobooks"!==contentType&&contentType?(parent.querySelector(".playbackSettings").classList.add("hide"),parent.querySelector(".txtMinResumePct").removeAttribute("required"),parent.querySelector(".txtMaxResumePct").removeAttribute("required"),parent.querySelector(".txtMinResumeDuration").removeAttribute("required")):(parent.querySelector(".playbackSettings").classList.remove("hide"),parent.querySelector(".txtMinResumePct").setAttribute("required","required"),parent.querySelector(".txtMaxResumePct").setAttribute("required","required"),parent.querySelector(".txtMinResumeDuration").setAttribute("required","required")),"music"===contentType||"audiobooks"===contentType?parent.querySelector(".musicFolderStructureSection").classList.remove("hide"):parent.querySelector(".musicFolderStructureSection").classList.add("hide"),"tvshows"!==contentType||ApiClient.isMinServerVersion("4.8.0.59")?parent.querySelector(".chkImportMissingEpisodesContainer").classList.add("hide"):parent.querySelector(".chkImportMissingEpisodesContainer").classList.remove("hide"),"playlists"!==contentType&&"boxsets"!==contentType?parent.querySelector(".fldRealtimeMonitor").classList.remove("hide"):parent.querySelector(".fldRealtimeMonitor").classList.add("hide"),ApiClient.isMinServerVersion("4.8.0.67")&&"playlists"!==contentType&&"boxsets"!==contentType?parent.querySelector(".fldCacheImages").classList.remove("hide"):parent.querySelector(".fldCacheImages").classList.add("hide"),"tvshows"===contentType?parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.remove("hide"):parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.add("hide"),"games"===contentType||"books"===contentType||"boxsets"===contentType||"playlists"===contentType||"music"===contentType?parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.add("hide"):parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.remove("hide"),"audiobooks"===contentType?(parent.querySelector(".selectMusicFolderStructure_artist_album_track").innerHTML=globalize.translate("PerfectAuthorAudioBookTrack"),parent.querySelector(".selectMusicFolderStructure_album_track").innerHTML=globalize.translate("PerfectAudioBookTrack")):(parent.querySelector(".selectMusicFolderStructure_artist_album_track").innerHTML=globalize.translate("PerfectArtistAlbumTrack"),parent.querySelector(".selectMusicFolderStructure_album_track").innerHTML=globalize.translate("PerfectAlbumTrack")),ApiClient.getSystemInfo().then(function(info){"Windows"===info.OperatingSystem?parent.querySelector(".fldSaveMetadataHidden").classList.remove("hide"):parent.querySelector(".fldSaveMetadataHidden").classList.add("hide")}),parent.querySelector(".chkEnableAudioResume").checked="audiobooks"===contentType,populateMetadataSettings(parent,contentType)}function getLibraryOptions(parent){var options=Object.assign(currentLibraryOptions,{EnableArchiveMediaFiles:!1,EnablePhotos:parent.querySelector(".chkEnablePhotos").checked,ImportPlaylists:parent.querySelector(".chkImportPlaylists").checked,SampleIgnoreSize:1024*parent.querySelector(".txtIgnoreSampleFiles").value*1024,EnableRealtimeMonitor:parent.querySelector(".chkEnableRealtimeMonitor").checked,ExtractChapterImagesDuringLibraryScan:"scanandtask"===parent.querySelector(".selectThumbnailImages").value,EnableChapterImageExtraction:!!parent.querySelector(".selectThumbnailImages").value,EnableMarkerDetectionDuringLibraryScan:"scanandtask"===parent.querySelector(".selectIntroDetection").value,EnableMarkerDetection:!!parent.querySelector(".selectIntroDetection").value,SaveLocalThumbnailSets:parent.querySelector(".chkLocalThumbnailSets").checked,ThumbnailImagesIntervalSeconds:parent.querySelector(".selectThumbnailInterval").value,DownloadImagesInAdvance:parent.querySelector(".chkDownloadImagesInAdvance").checked,EnableInternetProviders:!0,ImportMissingEpisodes:parent.querySelector(".chkImportMissingEpisodes").checked,SaveLocalMetadata:parent.querySelector(".chkSaveLocal").checked,CacheImages:parent.querySelector(".chkCacheImages").checked,EnableAutomaticSeriesGrouping:parent.querySelector(".chkAutomaticallyGroupSeries").checked,PreferredMetadataLanguage:parent.querySelector(".selectLanguage").value,PreferredImageLanguage:parent.querySelector(".selectImageLanguage").value,MetadataCountryCode:parent.querySelector(".selectCountry").value,AutomaticRefreshIntervalDays:parseInt(parent.querySelector(".selectAutoRefreshInterval").value),PlaceholderMetadataRefreshIntervalDays:parseInt(parent.querySelector(".selectPlaceholderMetadataRefreshInterval").value),EnableEmbeddedTitles:parent.querySelector(".chkEnableEmbeddedTitles").checked,SkipSubtitlesIfEmbeddedSubtitlesPresent:parent.querySelector(".chkSkipIfGraphicalSubsPresent").checked,SkipSubtitlesIfAudioTrackMatches:parent.querySelector(".chkSkipIfAudioTrackPresent").checked,SaveSubtitlesWithMedia:parent.querySelector(".chkSaveSubtitlesLocally").checked,SaveLyricsWithMedia:parent.querySelector(".chkSaveLyricsLocally").checked,SubtitleDownloadMaxAgeDays:parent.querySelector(".selectSubtitleDownloadMaxAge").value,LyricsDownloadMaxAgeDays:parent.querySelector(".selectLyricsDownloadMaxAge").value,RequirePerfectSubtitleMatch:parent.querySelector(".chkRequireHashMatch").checked,ForcedSubtitlesOnly:parent.querySelector(".chkForcedSubtitlesOnly").checked,EnableAudioResume:parent.querySelector(".chkEnableAudioResume").checked,MinResumePct:parent.querySelector(".txtMinResumePct").value,MaxResumePct:parent.querySelector(".txtMaxResumePct").value,MinResumeDurationSeconds:parent.querySelector(".txtMinResumeDuration").value,MusicFolderStructure:parent.querySelector(".selectMusicFolderStructure").value||null,ImportCollections:parent.querySelector(".chkImportCollections").checked,SaveMetadataHidden:parent.querySelector(".chkSaveMetadataHidden").checked,EnableAdultMetadata:parent.querySelector(".chkAdult").checked,MinCollectionItems:parseInt(parent.querySelector(".selectMinCollectionSize").value),MetadataSavers:Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll(".chkMetadataSaver"),function(elem){return elem.checked}),function(elem){return elem.getAttribute("data-pluginname")})});return options.TypeOptions||(options.TypeOptions=[]),options.SubtitleDownloadLanguages=parent.querySelector(".selectSubtitleLanguages").values,options.LyricsDownloadLanguages=parent.querySelector(".selectLyricsLanguages").values,options}function setLibraryOptions(parent,options){currentLibraryOptions=options,currentAvailableOptions=parent.availableOptions,parent.querySelector(".selectLanguage").value=options.PreferredMetadataLanguage||"",parent.querySelector(".selectImageLanguage").value=options.PreferredImageLanguage||"",parent.querySelector(".selectCountry").value=options.MetadataCountryCode||"",parent.querySelector(".selectAutoRefreshInterval").value=options.AutomaticRefreshIntervalDays||"0",parent.querySelector(".selectPlaceholderMetadataRefreshInterval").value=options.PlaceholderMetadataRefreshIntervalDays||"0",parent.querySelector(".chkEnablePhotos").checked=options.EnablePhotos,parent.querySelector(".chkImportPlaylists").checked=!1!==options.ImportPlaylists,parent.querySelector(".chkEnableRealtimeMonitor").checked=options.EnableRealtimeMonitor,parent.querySelector(".selectMusicFolderStructure").value=options.MusicFolderStructure||"",parent.querySelector(".txtIgnoreSampleFiles").value=Math.round((options.SampleIgnoreSize||0)/1024/1024),parent.querySelector(".selectMinCollectionSize").value=options.MinCollectionItems||2,parent.querySelector(".chkImportCollections").checked=options.ImportCollections||!1,parent.querySelector(".chkAdult").checked=options.EnableAdultMetadata||!1,parent.querySelector(".selectThumbnailImages").value=options.EnableChapterImageExtraction&&options.ExtractChapterImagesDuringLibraryScan?"scanandtask":options.EnableChapterImageExtraction?"task":"",parent.querySelector(".chkLocalThumbnailSets").checked=options.SaveLocalThumbnailSets,parent.querySelector(".selectThumbnailInterval").value=options.ThumbnailImagesIntervalSeconds||"10",parent.querySelector(".selectIntroDetection").value=options.EnableMarkerDetection&&options.EnableMarkerDetectionDuringLibraryScan?"scanandtask":options.EnableMarkerDetection?"task":"",parent.querySelector(".chkDownloadImagesInAdvance").checked=options.DownloadImagesInAdvance,parent.querySelector(".chkSaveLocal").checked=options.SaveLocalMetadata,parent.querySelector(".chkCacheImages").checked=options.CacheImages||!1,parent.querySelector(".chkImportMissingEpisodes").checked=options.ImportMissingEpisodes,parent.querySelector(".chkAutomaticallyGroupSeries").checked=options.EnableAutomaticSeriesGrouping,parent.querySelector(".chkEnableEmbeddedTitles").checked=options.EnableEmbeddedTitles,parent.querySelector(".chkSkipIfGraphicalSubsPresent").checked=options.SkipSubtitlesIfEmbeddedSubtitlesPresent,parent.querySelector(".chkSaveSubtitlesLocally").checked=options.SaveSubtitlesWithMedia,parent.querySelector(".chkSaveLyricsLocally").checked=options.SaveLyricsWithMedia,parent.querySelector(".selectSubtitleDownloadMaxAge").value=null==options.SubtitleDownloadMaxAgeDays?180:options.SubtitleDownloadMaxAgeDays,parent.querySelector(".chkSkipIfAudioTrackPresent").checked=options.SkipSubtitlesIfAudioTrackMatches,parent.querySelector(".chkRequireHashMatch").checked=options.RequirePerfectSubtitleMatch,parent.querySelector(".chkForcedSubtitlesOnly").checked=options.ForcedSubtitlesOnly,parent.querySelector(".selectLyricsDownloadMaxAge").value=null==options.LyricsDownloadMaxAgeDays?180:options.LyricsDownloadMaxAgeDays,parent.querySelector(".txtMinResumePct").value=null==options.MinResumePct?"2":options.MinResumePct,parent.querySelector(".txtMaxResumePct").value=null==options.MaxResumePct?"90":options.MaxResumePct,parent.querySelector(".txtMinResumeDuration").value=null==options.MinResumeDurationSeconds?"120":options.MinResumeDurationSeconds,parent.querySelector(".chkSaveMetadataHidden").checked=options.SaveMetadataHidden||!1,Array.prototype.forEach.call(parent.querySelectorAll(".chkMetadataSaver"),function(elem){elem.checked=options.MetadataSavers?-1!==options.MetadataSavers.indexOf(elem.getAttribute("data-pluginname")):"true"===elem.getAttribute("data-defaultenabled")}),parent.querySelector(".selectSubtitleLanguages").values=options.SubtitleDownloadLanguages||[],parent.querySelector(".selectLyricsLanguages").values=options.LyricsDownloadLanguages||[],renderMetadataFetchers(parent,parent.availableOptions,options,options.ContentType),renderImageFetchers(parent,parent.availableOptions,options),refreshItemsContainers(parent),triggerElementEvents(parent)}function setListDefaults(parent){parent.querySelector(".selectSubtitleLanguages").values=[],parent.querySelector(".selectLyricsLanguages").values=[]}export default{embed:embed,setContentType:setContentType,getLibraryOptions:getLibraryOptions,setAdvancedVisible:setAdvancedVisible}; |