EmbyCrackedClient/web/modules/viewsettings/viewsettings.js

1 line
6.4 KiB
JavaScript
Raw Permalink Normal View History

2025-06-25 11:46:04 +08:00
import dialogHelper from"./../dialoghelper/dialoghelper.js";import layoutManager from"./../layoutmanager.js";import globalize from"./../common/globalize.js";import userSettings from"./../common/usersettings/usersettings.js";import"./../emby-elements/emby-checkbox/emby-checkbox.js";import"./../emby-elements/emby-select/emby-select.js";import"./../emby-elements/emby-button/emby-button.js";import"./../emby-elements/emby-button/paper-icon-button-light.js";import"./../emby-elements/emby-dialogclosebutton/emby-dialogclosebutton.js";let 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 getViewTypes(column){return(column.viewTypes||"cards,datagrid").replace("cards","primary,banner,disc,logo,thumb")}function initEditor(context,options){context.querySelector("form").addEventListener("submit",onSubmit);var visibleSettings=options.visibleSettings||[],fieldsSection=context.querySelector(".showFieldsSection"),availableFields=options.availableFields||[];let html="";for(let 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="'+getViewTypes(column)+'">')+'<input is="emby-checkbox" type="checkbox" class="chkField" />')+("<span>"+column.name+"</span>")+"</label>"}fieldsSection.querySelector(".checkboxList").innerHTML=html;var settingElements=context.querySelectorAll(".viewSetting");for(let 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");var selectImageType=context.querySelector(".selectImageType"),viewOptionsToRemove=[];for(let i=0,length=selectImageType.options.length;i<length;i++)options.viewOptions.includes(selectImageType.options[i].value)||viewOptionsToRemove.push(selectImageType.options[i]);for(let i=0,length=viewOptionsToRemove.length;i<length;i++)viewOptionsToRemove[i].remove()}function selectEnabledFields(context,settings){var elems=context.querySelectorAll(".chkField"),fields=settings.fields||[];for(let i=0,length=elems.length;i<length;i++)elems[i].checked=fields.includes(elems[i].closest(".viewField").getAttribute("data-field"))}function setCardSizeByName(context,cardSize){"default"===cardSize&&(cardSize=""),context.querySelector(".selectCardSize").value=cardSize}function setFieldValues(context,settings){var elems=context.querySelectorAll(".viewSetting-checkboxContainer");for(let 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",setCardSizeByName(context,settings.cardSize||"default"),selectEnabledFields(context,settings)}function saveFields(context,settingsKey){var elems=context.querySelectorAll(".viewField:not(.hide) .chkField:checked"),fields=[];for(let i=0,length=elems.length;i<length;i++)fields.push(elems[i].closest(".viewField").getAttribute("data-field"));fields.length||fields.push("None"),userSettings.set(settingsKey+"-fields",fields.join(","),!1)}function saveValues(context,settingsKey){var elems=context.querySelectorAll(".viewSetting-checkboxContainer");for(let i=0,length=elems.length;i<length;i++)userSettings.set(settingsKey+"-"+elems[i].getAttribute("data-settingname"),elems[i].querySelector("input").checked);userSettings.set(settingsKey+"-imageType",context.querySelector(".selectImageType").value,!1),userSettings.set(settingsKey+"-cardSize",context.querySelector(".selectCardSize").value,!1),saveFields(context,settingsKey)}function mapFieldToId(field){return field.id}function showOrHideFieldsIfAllowed(context,availableFields,currentViewType){var fields=context.querySelectorAll(".viewField");let anyVisible;var availableFieldIds=availableFields.map(mapFieldToId);for(let i=0,length=fields.length;i<