dashboard-ui/modules/viewsettings/viewsettings.js
2023-08-31 15:30:17 +02:00

1 line
6.7 KiB
JavaScript

define(["exports","./../dialoghelper/dialoghelper.js","./../layoutmanager.js","./../common/globalize.js","./../common/usersettings/usersettings.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,_embyCheckbox,_embyInput,_embySelect,_embyButton,_paperIconButtonLight){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0;var supportsCssVariables=CSS.supports("color","var(--fake-var)"),supportsCalc=CSS.supports("width","min(45.2%,calc(100% - .65em))"),supportsMin=CSS.supports("width","min(10em, 5vw)");function onSubmit(e){return e.preventDefault(),!1}function setFieldValues(context,settings){for(var elems=context.querySelectorAll(".viewSetting-checkboxContainer"),i=0,length=elems.length;i<length;i++)elems[i].querySelector("input").checked=settings[elems[i].getAttribute("data-settingname")]||!1;context.querySelector(".selectImageType").value=settings.imageType||"primary",function(context,cardSize){"default"===cardSize&&(cardSize=""),context.querySelector(".selectCardSize").value=cardSize}(context,settings.cardSize||"default"),function(context,settings){for(var elems=context.querySelectorAll(".chkField"),fields=settings.fields||[],i=0,length=elems.length;i<length;i++)elems[i].checked=fields.includes(elems[i].closest(".viewField").getAttribute("data-field"))}(context,settings)}function saveValues(context,settingsKey){for(var elems=context.querySelectorAll(".viewSetting-checkboxContainer"),i=0,length=elems.length;i<length;i++)_usersettings.default.set(settingsKey+"-"+elems[i].getAttribute("data-settingname"),elems[i].querySelector("input").checked);_usersettings.default.set(settingsKey+"-imageType",context.querySelector(".selectImageType").value,!1),_usersettings.default.set(settingsKey+"-cardSize",context.querySelector(".selectCardSize").value,!1),function(context,settingsKey){for(var elems=context.querySelectorAll(".viewField:not(.hide) .chkField:checked"),fields=[],i=0,length=elems.length;i<length;i++)fields.push(elems[i].closest(".viewField").getAttribute("data-field"));fields.length||fields.push("None"),_usersettings.default.set(settingsKey+"-fields",fields.join(","),!1)}(context,settingsKey)}function mapFieldToId(field){return field.id}function ViewSettings(){}require(["flexStyles","formDialogStyle","material-icons"]),ViewSettings.prototype.show=function(options){return require(["text!./modules/viewsettings/viewsettings.template.html"]).then(function(responses){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";return _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">&#xE5C4;</i></button>'))+('<h3 class="formDialogHeaderTitle">'+_globalize.default.translate("Settings")+"</h3>"),dlg.innerHTML=_globalize.default.translateDocument(dialogOptions=dialogOptions+"</div>"+responses,"sharedcomponents"),function(context,options){context.querySelector("form").addEventListener("submit",onSubmit);for(var visibleSettings=options.visibleSettings||[],fieldsSection=context.querySelector(".showFieldsSection"),availableFields=options.availableFields||[],html="",i=0,length=availableFields.length;i<length;i++)var column=availableFields[i],html=(html=html+('<label class="hide viewField" data-field="'+column.id+'" data-includeviewtype="'+function(column){return(column.viewTypes||"cards,datagrid").replace("cards","primary,banner,disc,logo,thumb")}(column)+'">')+'<input is="emby-checkbox" type="checkbox" class="chkField" />')+("<span>"+column.name+"</span>")+"</label>";fieldsSection.querySelector(".checkboxList").innerHTML=html;for(var settingElements=context.querySelectorAll(".viewSetting"),_i=0,_length=settingElements.length;_i<_length;_i++)visibleSettings.includes(settingElements[_i].getAttribute("data-settingname"))?settingElements[_i].classList.remove("hide"):settingElements[_i].classList.add("hide");for(var selectImageType=context.querySelector(".selectImageType"),viewOptionsToRemove=[],_i2=0,_length2=selectImageType.options.length;_i2<_length2;_i2++)options.viewOptions.includes(selectImageType.options[_i2].value)||viewOptionsToRemove.push(selectImageType.options[_i2]);for(var _i3=0,_length3=viewOptionsToRemove.length;_i3<_length3;_i3++)viewOptionsToRemove[_i3].remove()}(dlg,options),setFieldValues(dlg,options.settings),dlg.querySelector(".selectImageType").addEventListener("change",function(e){if(supportsCalc&&supportsMin&&supportsCssVariables&&"datagrid"!==this.value&&"list"!==this.value?dlg.querySelector(".fldCardSize").classList.remove("hide"):dlg.querySelector(".fldCardSize").classList.add("hide"),!function(context,availableFields,currentViewType){for(var anyVisible,fields=context.querySelectorAll(".viewField"),availableFieldIds=availableFields.map(mapFieldToId),i=0,length=fields.length;i<length;i++){var field=fields[i],viewTypes=field.getAttribute("data-includeviewtype").split(","),fieldId=field.getAttribute("data-field");viewTypes.includes(currentViewType)&&availableFieldIds.includes(fieldId)?(field.classList.remove("hide"),anyVisible=!0):field.classList.add("hide")}availableFields=context.querySelector(".showFieldsSection"),anyVisible?availableFields.classList.remove("hide"):availableFields.classList.add("hide")}(dlg,options.availableFields,this.value),!1!==(null==(e=e.detail)?void 0:e.resetFields))for(var e=dlg,defaultFields="datagrid"===this.value?options.settings.tableDefaultFields:options.settings.defaultFields,elems=e.querySelectorAll(".viewField:not(.hide) .chkField"),i=0,length=elems.length;i<length;i++)elems[i].checked=defaultFields.includes(elems[i].closest(".viewField").getAttribute("data-field"))}),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)}),dlg.querySelector(".selectImageType").dispatchEvent(new CustomEvent("change",{detail:{resetFields:!1}})),dlg.querySelector("form").addEventListener("change",function(){submitted=!0,options.onChange&&(saveValues(dlg,options.settingsKey),options.onChange())}),_dialoghelper.default.open(dlg).then(function(){return submitted?Promise.resolve():Promise.reject()})})},_exports.default=ViewSettings});