1 line
18 KiB
JavaScript
1 line
18 KiB
JavaScript
define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../common/usersettings/usersettings.js","./../emby-apiclient/connectionmanager.js","./../emby-elements/emby-checkbox/emby-checkbox.js","./../emby-elements/emby-input/emby-input.js","./../emby-elements/emby-select/emby-select.js","./../emby-elements/emby-button/emby-button.js","./../emby-elements/emby-button/paper-icon-button-light.js"],function(_exports,_dialoghelper,_layoutmanager,_globalize,_usersettings,_connectionmanager,_embyCheckbox,_embyInput,_embySelect,_embyButton,_paperIconButtonLight){function onSubmit(e){return e.preventDefault(),!1}function renderMultiSelectList(container,getItemsFn,options,property,delimeter){var select=container.querySelector("select");select.getItems=getItemsFn,select.parentContainer=container;getItemsFn=(getItemsFn=options.settings[property])?getItemsFn.split(delimeter):[];select.values=getItemsFn,afterSelectValueSet(select,getItemsFn[0])}function getBaseFilterMenuOptions(options){return Object.assign({},options.filterMenuOptions)}function loadGenres(context,options){renderMultiSelectList(context.querySelector(".genreFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,OuterIds:outerItemIds,IncludeItemTypes:this.itemTypes.join(",")},query),apiClient.getGenres(apiClient.getCurrentUserId(),query)}.bind(options),options,"GenreIds",",")}function loadStudios(context,options){renderMultiSelectList(context.querySelector(".studioFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getStudios(apiClient.getCurrentUserId(),query)}.bind(options),options,"StudioIds",",")}function loadOfficialRatings(context,options){renderMultiSelectList(context.querySelector(".officialRatingFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getOfficialRatings(apiClient.getCurrentUserId(),query)}.bind(options),options,"OfficialRatings","|")}function loadTags(context,options){renderMultiSelectList(context.querySelector(".tagFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getTags(apiClient.getCurrentUserId(),query)}.bind(options),options,"TagIds",",")}function loadYears(context,options){renderMultiSelectList(context.querySelector(".yearFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Descending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getYears(apiClient.getCurrentUserId(),query)}.bind(options),options,"Years",",")}function loadContainers(context,options){renderMultiSelectList(context.querySelector(".containerFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getContainers(apiClient.getCurrentUserId(),query)}.bind(options),options,"Containers",",")}function loadAudioCodecs(context,options){renderMultiSelectList(context.querySelector(".audioCodecFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getAudioCodecs(apiClient.getCurrentUserId(),query)}.bind(options),options,"AudioCodecs",",")}function loadAudioLayouts(context,options){renderMultiSelectList(context.querySelector(".audioLayoutFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getAudioLayouts(apiClient.getCurrentUserId(),query)}.bind(options),options,"AudioLayouts",",")}function loadAudioLanguages(context,options){renderMultiSelectList(context.querySelector(".audioLanguageFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),StreamType:"Audio",OuterIds:outerItemIds},query),apiClient.getStreamLanguages(apiClient.getCurrentUserId(),query)}.bind(options),options,"AudioLanguages",",")}function loadSubtitleLanguages(context,options){renderMultiSelectList(context.querySelector(".subtitleLanguageFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),StreamType:"Subtitle",OuterIds:outerItemIds},query),apiClient.getStreamLanguages(apiClient.getCurrentUserId(),query)}.bind(options),options,"SubtitleLanguages",",")}function loadVideoCodecs(context,options){renderMultiSelectList(context.querySelector(".videoCodecFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getVideoCodecs(apiClient.getCurrentUserId(),query)}.bind(options),options,"VideoCodecs",",")}function loadSubtitleCodecs(context,options){renderMultiSelectList(context.querySelector(".subtitleCodecFilters"),function(query){var apiClient=_connectionmanager.default.getApiClient(this.serverId),outerItemIds=query.Ids;return query.Ids=null,query=Object.assign(getBaseFilterMenuOptions(this),{SortBy:"SortName",SortOrder:"Ascending",Recursive:null==this.Recursive||this.Recursive,EnableImages:!1,EnableUserData:!1,GenreIds:this.GenreIds,PersonIds:this.PersonIds,StudioIds:this.StudioIds,ParentId:this.parentId,IncludeItemTypes:this.itemTypes.join(","),OuterIds:outerItemIds},query),apiClient.getSubtitleCodecs(apiClient.getCurrentUserId(),query)}.bind(options),options,"SubtitleCodecs",",")}function afterSelectValueSet(elem,value){var filterIndicator,elem=elem.closest(".selectContainer");elem&&(filterIndicator=elem.querySelector(".filterMenu-indicator"),value?filterIndicator||elem.insertAdjacentHTML("afterbegin",'<div class="filterMenu-indicator filter-active"></div>'):filterIndicator&&filterIndicator.remove())}function onSelectValueChange(){afterSelectValueSet(this,this.singleValue)}function saveValues(context,settings,settingsKey){for(var elems=context.querySelectorAll(".simpleFilter"),i=0,length=elems.length;i<length;i++)"INPUT"===elems[i].tagName?setBasicFilter(0,settingsKey+"-filter-"+elems[i].getAttribute("data-settingname"),elems[i]):elems[i].classList.contains("selectContainer")?setBasicFilter(0,settingsKey+"-filter-"+elems[i].getAttribute("data-settingname"),elems[i].querySelector("select")):setBasicFilter(0,settingsKey+"-filter-"+elems[i].getAttribute("data-settingname"),elems[i].querySelector("input"));var seriesStatuses=[],elem=context.querySelector(".selectSeriesStatus");elem.value&&seriesStatuses.push(elem.value),_usersettings.default.setFilter(settingsKey+"-filter-SeriesStatus",seriesStatuses.join(",")),_usersettings.default.setFilter(settingsKey+"-filter-GenreIds",context.querySelector(".selectGenre").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-StudioIds",context.querySelector(".selectStudio").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-TagIds",context.querySelector(".selectTags").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-Containers",context.querySelector(".selectContainers").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-AudioCodecs",context.querySelector(".selectAudioCodecs").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-AudioLayouts",context.querySelector(".selectAudioLayouts").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-AudioLanguages",context.querySelector(".selectAudioLanguages").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-SubtitleLanguages",context.querySelector(".selectSubtitleLanguages").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-VideoCodecs",context.querySelector(".selectVideoCodecs").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-SubtitleCodecs",context.querySelector(".selectSubtitleCodecs").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-Years",context.querySelector(".selectYears").getValues().join(",")),_usersettings.default.setFilter(settingsKey+"-filter-OfficialRatings",context.querySelector(".selectOfficialRating").getValues().join("|")),function(context,settingsKey){for(var context=context.querySelector(".selectPlaystate"),options=context.options,value=context.singleValue,i=0,length=options.length;i<length;i++){var optionValue=options[i].value;optionValue===value?optionValue&&_usersettings.default.setFilter(settingsKey+"-filter-"+optionValue,!0):optionValue&&_usersettings.default.setFilter(settingsKey+"-filter-"+optionValue,null)}}(context,settingsKey)}function setBasicFilter(context,key,elem){var value="SELECT"===elem.tagName?elem.singleValue||null:"true"===elem.getAttribute("data-invert")?!elem.checked&&null:(value=elem.checked)||null;_usersettings.default.setFilter(key,value)}function FilterMenu(){}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["flexStyles","formDialogStyle","material-icons","css!modules/filtermenu/filtermenu.css"]),FilterMenu.prototype.show=function(options){return require(["text!./modules/filtermenu/filtermenu.template.html"]).then(function(responses){for(var submitted,responses=responses[0],dialogOptions={removeOnClose:!0,scrollY:!1,offsetTop:2,positionTo:options.positionTo,positionY:options.positionY},dlg=(_layoutmanager.default.tv&&(dialogOptions.size="fullscreen"),_dialoghelper.default.createDialog(dialogOptions)),dialogOptions=(_layoutmanager.default.tv||dlg.classList.add("dialog-fullscreen-lowres"),dlg.classList.add("formDialog"),""),btnCancelClass="btnCancel hide-mouse-idle-tv",settingElements=(_layoutmanager.default.tv||(btnCancelClass+=" dialogbutton-hidenotfullscreen"),dialogOptions=(dialogOptions=dialogOptions+'<div class="formDialogHeader">'+('<button is="paper-icon-button-light" class="'+btnCancelClass+'" tabindex="-1"><i class="md-icon autortl"></i></button>'))+('<h3 class="formDialogHeaderTitle">'+_globalize.default.translate("Filters")+"</h3>"),dlg.innerHTML=_globalize.default.translateDocument(dialogOptions=dialogOptions+"</div>"+responses,"sharedcomponents"),dlg.querySelectorAll(".viewSetting")),i=0,length=settingElements.length;i<length;i++)-1===options.visibleSettings.indexOf(settingElements[i].getAttribute("data-settingname"))?settingElements[i].classList.add("hide"):settingElements[i].classList.remove("hide");return function(context,settings){context.querySelector("form").addEventListener("submit",onSubmit);for(var elems=context.querySelectorAll(".simpleFilter"),i=0,length=elems.length;i<length;i++){var selectElem,val=settings[elems[i].getAttribute("data-settingname")];"INPUT"===elems[i].tagName?"true"===elems[i].getAttribute("data-invert")?elems[i].checked="false"===val:elems[i].checked=val||!1:elems[i].classList.contains("selectContainer")?(selectElem=elems[i].querySelector("select"),null==val?(selectElem.singleValue="",afterSelectValueSet(selectElem,"")):(selectElem.singleValue=val.toString(),afterSelectValueSet(selectElem,val.toString()))):elems[i].querySelector("input").checked=val||!1}var selectSeriesStatus=context.querySelector(".selectSeriesStatus");selectSeriesStatus.value=settings.SeriesStatus||"",afterSelectValueSet(selectSeriesStatus,settings.SeriesStatus||"");for(var _i=0,_length=(elems=context.querySelectorAll(".multiSettingsSection")).length;_i<_length;_i++)elems[_i].querySelector(".viewSetting:not(.hide)")||elems[_i].querySelector(".selectContainer:not(.hide)")?elems[_i].classList.remove("hide"):elems[_i].classList.add("hide");for(var _i2=0,_length2=(elems=context.querySelectorAll("select")).length;_i2<_length2;_i2++)elems[_i2].addEventListener("change",onSelectValueChange)}(dlg,options.settings),function(context,options){var anySelected=!1,menuItems=[],html=(-1!==options.visibleSettings.indexOf("IsPlayed")&&menuItems.push({name:_globalize.default.translate("Played"),value:"IsPlayed"}),-1!==options.visibleSettings.indexOf("IsUnplayed")&&menuItems.push({name:_globalize.default.translate("Unplayed"),value:"IsUnplayed"}),-1!==options.visibleSettings.indexOf("IsResumable")&&menuItems.push({name:_globalize.default.translate("ContinuePlaying"),value:"IsResumable"}),menuItems.map(function(m){var selectedHtml="";return!anySelected&&(options.settings[m.value]||!1)&&(anySelected=!0,selectedHtml=" selected"),'<option value="'+m.value+'" '+selectedHtml+">"+m.name+"</option>"}).join("")),allText=_globalize.default.translate("Any"),allText=anySelected?'<option value="">'+allText+"</option>":'<option value="" selected>'+allText+"</option>",selectPlaystate=context.querySelector(".selectPlaystate");selectPlaystate.innerHTML=allText+html,afterSelectValueSet(selectPlaystate,selectPlaystate.singleValue),menuItems.length?context.querySelector(".playstateFilters").classList.remove("hide"):context.querySelector(".playstateFilters").classList.add("hide")}(dlg,options),-1!==options.visibleSettings.indexOf("Genres")&&loadGenres(dlg,options),-1!==options.visibleSettings.indexOf("Studios")&&loadStudios(dlg,options),-1!==options.visibleSettings.indexOf("Tags")&&loadTags(dlg,options),-1!==options.visibleSettings.indexOf("OfficialRatings")&&loadOfficialRatings(dlg,options),-1!==options.visibleSettings.indexOf("Containers")&&loadContainers(dlg,options),-1!==options.visibleSettings.indexOf("Years")&&loadYears(dlg,options),-1!==options.visibleSettings.indexOf("AudioCodecs")&&(loadAudioCodecs(dlg,options),loadAudioLanguages(dlg,options)),-1!==options.visibleSettings.indexOf("AudioLayouts")&&loadAudioLayouts(dlg,options),-1!==options.visibleSettings.indexOf("VideoCodecs")&&loadVideoCodecs(dlg,options),-1!==options.visibleSettings.indexOf("SubtitleCodecs")&&(loadSubtitleCodecs(dlg,options),loadSubtitleLanguages(dlg,options)),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),dlg.querySelector("form").addEventListener("change",function(){submitted=!0,options.onChange&&!_layoutmanager.default.tv&&(saveValues(dlg,options.settings,options.settingsKey,_connectionmanager.default.getApiClient(options.serverId)),options.onChange())},!0),_dialoghelper.default.open(dlg).then(function(){return submitted?(saveValues(dlg,options.settings,options.settingsKey,_connectionmanager.default.getApiClient(options.serverId)),Promise.resolve()):Promise.reject()})})},_exports.default=FilterMenu}); |