EmbyCrackedClient/web/settings/display.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
8.8 KiB
JavaScript

import BaseView from"./../modules/viewmanager/basesettingsview.js";import loading from"./../modules/loading/loading.js";import globalize from"./../modules/common/globalize.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-slider/emby-slider.js";import"./../modules/emby-elements/emby-premierecontainer/emby-premierecontainer.js";import currentUserSettings from"./../modules/common/usersettings/usersettings.js";import UserSettingsBuilder from"./../modules/common/usersettings/usersettingsbuilder.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import pluginManager from"./../modules/common/pluginmanager.js";import skinManager from"./../modules/skinmanager.js";import{appHost,iapManager}from"./../modules/common/servicelocator.js";import layoutManager from"./../modules/layoutmanager.js";import events from"./../modules/emby-apiclient/events.js";function fillThemes(select,isSettings){let themes=skinManager.getThemes(),defaultFound=!1;for(let i=0,length=themes.length;i<length;i++){var theme=themes[i];let value=theme.id;(theme.isDefault&&!isSettings||theme.isSettingsDefault&&isSettings)&&(value="",defaultFound=!0),theme.value=value}if(isSettings){themes=themes.filter(e=>!e.skipForSettingsthemes);let mainThemeValue="maintheme";isSettings&&!defaultFound&&(mainThemeValue=""),themes.unshift({name:globalize.translate("SameAsMainTheme"),id:"maintheme",value:mainThemeValue,isSettingsDefault:appHost.supports("multiserver")})}select.innerHTML=themes.map(function(t){return'<option value="'+t.value+'">'+t.name+"</option>"}).join("")}function showHideThemeSettingsButton(btnThemeSettings){var controller=skinManager.getCurrentThemeController();controller?.hasSettings&&controller.hasSettings()?btnThemeSettings.classList.remove("hide"):btnThemeSettings.classList.add("hide")}function showThemeSettings(){var controller=skinManager.getCurrentThemeController();controller?.hasSettings&&controller.hasSettings()&&controller.showSettings()}function onThemeLoaded(){showHideThemeSettingsButton(this.view.querySelector(".btnThemeSettings"))}function fillSlideshowLengths(select){select.innerHTML=[5,10,15,20,25,30].map(function(option){return{name:globalize.translate("ValueSeconds",option),value:1e3*option}}).map(function(o){return'<option value="'+o.value+'">'+o.name+"</option>"}).join("")}function fillScreensavers(context){var context=context.querySelector(".selectScreensaver"),options=pluginManager.ofType("screensaver").map(function(plugin){return{name:plugin.name,value:plugin.id}});options.unshift({name:globalize.translate("None"),value:"none"}),context.innerHTML=options.map(function(o){return'<option value="'+o.value+'">'+o.name+"</option>"}).join("")}function fillSoundEffects(context){var context=context.querySelector(".selectSoundEffects"),options=pluginManager.ofType("soundeffects").map(function(plugin){return{name:plugin.name,value:plugin.id}});options.unshift({name:globalize.translate("None"),value:"none"}),context.innerHTML=options.map(function(o){return'<option value="'+o.value+'">'+o.name+"</option>"}).join("")}function normalizeCardSize(cardSize){switch(cardSize){case"normal":case"default":return"";default:return cardSize}}function onLayoutModeChange(e){e=e.target.closest(".settingsContainer").querySelector(".selectCardSize");this.setFieldValue(e,normalizeCardSize("normal"),!0)}function onThemeSongChange(e){var context=e.target.closest(".settingsContainer");appHost.supports("themesongvolume")&&e.target.checked?context.querySelector(".fldThemeSongVolume").classList.remove("hide"):context.querySelector(".fldThemeSongVolume").classList.add("hide")}function onSubmit(e){return e.preventDefault(),!1}function loadData(options){loading.show();let userId=options.userId,apiClient=connectionManager.getApiClient(options.serverId),userSettings=options.userSettings;return apiClient.getUser(userId).then(function(user){return options.user=user,(userId===apiClient.getCurrentUserId()?Promise.resolve():userSettings.setUserInfo(userId,apiClient)).then(function(){loading.hide()})})}function setPremiereText(elem,key){appHost.supports("externallinks")&&appHost.supports("externalpremium")?elem.innerHTML=globalize.translate(key,'<a is="emby-linkbutton" href="https://emby.media/premiere" data-preset="premiereinfo" target="_blank" class="button-link">',"</a>"):elem.innerHTML=globalize.translate(key,"","")}function setDisplayModePremiereVisibility(view){let displayModePremiere=view.querySelector(".displayModePremiere");setPremiereText(displayModePremiere,"PlaybackTvModeRequiresEmbyPremiere"),iapManager.isUnlockedByDefault("playback").then(function(result){iapManager.isUnlockedByDefault("playback-tv").then(function(result){displayModePremiere.classList.add("hide")},function(result){displayModePremiere.classList.remove("hide")})},function(result){displayModePremiere.classList.add("hide")})}function View(view,params){BaseView.apply(this,arguments);var apiClient=connectionManager.getApiClient(params.serverId),params=params.userId||apiClient.getCurrentUserId(),userSettings=params===apiClient.getCurrentUserId()?currentUserSettings:new UserSettingsBuilder,apiClient={serverId:apiClient.serverId(),userId:params,element:view.querySelector(".settingsContainer"),userSettings:userSettings},featurePremiereInfo=((this.settingsOptions=apiClient).element.querySelector(".selectLayout").addEventListener("change",onLayoutModeChange.bind(this)),apiClient.element.querySelector(".chkThemeSong").addEventListener("change",onThemeSongChange.bind(this)),apiClient.element.querySelector("form").addEventListener("submit",onSubmit.bind(this)),apiClient.element.querySelectorAll(".featurePremiereInfo"));for(let i=0,length=featurePremiereInfo.length;i<length;i++)setPremiereText(featurePremiereInfo[i],"FeatureRequiresEmbyPremiere");setDisplayModePremiereVisibility(view);params=view.querySelector(".selectTheme"),userSettings=view.querySelector(".selectSettingsTheme"),apiClient=view.querySelector(".btnThemeSettings");apiClient.addEventListener("click",showThemeSettings),fillThemes(params),fillThemes(userSettings,!0),showHideThemeSettingsButton(apiClient),fillScreensavers(view),fillSoundEffects(view),fillSlideshowLengths(view.querySelector(".selectSlidehowInterval")),this.boundonThemeLoaded=onThemeLoaded.bind(this),events.on(skinManager,"themeloaded",this.boundonThemeLoaded)}function revertToNoneIfNeeded(elem,value){return value&&elem.querySelector('option[value="'+value+'"]')?value:"none"}function getUserConfiguration(options){return Promise.resolve({key:"userconfiguration",value:options.user.Configuration})}Object.assign(View.prototype,BaseView.prototype),View.prototype.loadSettingsInternal=function(){let instance=this;return loadData(instance.settingsOptions).then(function(){return instance.loadAutoSettings()})},View.prototype.getAutoSettingsObjectsPromises=function(){var list=BaseView.prototype.getAutoSettingsObjectsPromises.apply(this,arguments);return list.push(getUserConfiguration(this.settingsOptions)),list},View.prototype.getSettingValueFromOwner=function(owner,memberInfo){switch(memberInfo.member){case"getEnableLogoAsTitle":return this.settingsOptions.userSettings.getEnableLogoAsTitle(globalize.getCurrentLocale());case"showDetailPoster":return this.settingsOptions.userSettings.showDetailPoster(layoutManager.tv);case"cardSize":return normalizeCardSize(BaseView.prototype.getSettingValueFromOwner.apply(this,arguments));case"soundEffects":return revertToNoneIfNeeded(this.view.querySelector(".selectSoundEffects"),BaseView.prototype.getSettingValueFromOwner.apply(this,arguments));case"screensaver":return revertToNoneIfNeeded(this.view.querySelector(".selectScreensaver"),BaseView.prototype.getSettingValueFromOwner.apply(this,arguments));default:return BaseView.prototype.getSettingValueFromOwner.apply(this,arguments)}},View.prototype.saveAutoSettingIntoOwner=function(elem,owner,memberInfo,value){if("showDetailPoster"!==memberInfo.member)return BaseView.prototype.saveAutoSettingIntoOwner.apply(this,arguments);this.settingsOptions.userSettings.showDetailPoster(layoutManager.tv,value)},View.prototype.getNamedSettingsOwner=function(owner){switch(owner){case"usersettings":return this.settingsOptions.userSettings;case"userconfiguration":return this.settingsOptions.user.Configuration;default:return BaseView.prototype.getNamedSettingsOwner.apply(this,arguments)}},View.prototype.getUserConfigurationUserId=function(){return this.settingsOptions.userId},View.prototype.destroy=function(){BaseView.prototype.destroy.apply(this,arguments),this.settingsOptions=null,this.boundonThemeLoaded&&(events.off(skinManager,"themeloaded",this.boundonThemeLoaded),this.boundonThemeLoaded=null)};export default View;