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

1 line
6.2 KiB
JavaScript

define(["exports","./../modules/viewmanager/basesettingsview.js","./../modules/loading/loading.js","./../modules/common/globalize.js","./../modules/emby-elements/emby-scroller/emby-scroller.js","./../modules/emby-elements/emby-select/emby-select.js","./../modules/emby-elements/emby-button/emby-button.js","./../modules/emby-elements/emby-input/emby-input.js","./../modules/emby-elements/emby-checkbox/emby-checkbox.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/usersettings/usersettings.js","./../modules/common/usersettings/usersettingsbuilder.js","./../modules/common/subtitleappearancehelper.js","./../modules/common/servicelocator.js"],function(_exports,_basesettingsview,_loading,_globalize,_embyScroller,_embySelect,_embyButton,_embyInput,_embyCheckbox,_connectionmanager,_usersettings,_usersettingsbuilder,_subtitleappearancehelper,_servicelocator){function numberToPercentString(value){try{return new Intl.NumberFormat(_globalize.default.getCurrentLocales(),{style:"percent"}).format(value/100)}catch(err){return console.log("Error in NumberFormat: "+err),value+"%"}}function loadForm(context,user,userSettings,appearanceSettings,apiClient){return apiClient.getCultures().then(function(allCultures){var options;!function(select,languages){var html="";html+="<option value=''>"+_globalize.default.translate("AnyLanguage")+"</option>";for(var i=0,length=languages.length;i<length;i++){var culture=languages[i];html+="<option value='"+culture.TwoLetterISOLanguageName+"'>"+culture.DisplayName+"</option>"}select.innerHTML=html}(context.querySelector(".selectSubtitleLanguage"),allCultures),allCultures=context.querySelector(".selectVerticalPosition"),(options=[{name:numberToPercentString(90),value:90},{name:numberToPercentString(80),value:80},{name:numberToPercentString(70),value:70},{name:numberToPercentString(60),value:60},{name:numberToPercentString(50),value:50},{name:numberToPercentString(40),value:40},{name:numberToPercentString(30),value:30},{name:numberToPercentString(20),value:20},{name:numberToPercentString(10),value:10},{name:_globalize.default.translate("Bottom"),value:0}]).reverse(),allCultures.innerHTML=options.map(function(o){return'<option value="'+o.value+'">'+o.name+"</option>"}).join(""),_loading.default.hide()})}function onSubtitleModeChange(e){for(var e=e.target.closest(".subtitlesettings"),subtitlesHelp=e.querySelectorAll(".subtitlesHelp"),i=0,length=subtitlesHelp.length;i<length;i++)subtitlesHelp[i].classList.add("hide");e.querySelector(".subtitles"+this.value+"Help").classList.remove("hide")}function onTrackSelectionsCleared(){_loading.default.hide()}function onClearSavedTrackSelectionsClick(e){var options=this,mode=e.target.closest("button").getAttribute("data-mode");return function(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}({title:_globalize.default.translate("HeaderClearTrackSelections"),text:_globalize.default.translate("QuestionClearSavedTracks"),confirmText:_globalize.default.translate("HeaderClearTrackSelections"),primary:"cancel"}).then(function(){return _loading.default.show(),_connectionmanager.default.getApiClient(options.serverId).clearUserTrackSelections(options.userId,mode).then(onTrackSelectionsCleared,onTrackSelectionsCleared)})}function View(view,params){_basesettingsview.default.apply(this,arguments);var apiClient=_connectionmanager.default.getApiClient(params.serverId),userId=params.userId||apiClient.getCurrentUserId(),userSettings=userId===apiClient.getCurrentUserId()?_usersettings.default:new _usersettingsbuilder.default,apiClient={serverId:apiClient.serverId(),userId:userId,element:view.querySelector(".settingsContainer"),userSettings:userSettings};(this.settingsOptions=apiClient).element.classList.add("subtitlesettings"),apiClient.element.querySelector("form").addEventListener("submit",function(e){return e.preventDefault(),!1}.bind(apiClient)),view.addEventListener("change",function(e){var e={window:(e=e.target.closest(".subtitlesettings")).querySelector(".subtitleappearance-preview-window"),text:e.querySelector(".subtitleappearance-preview-text")},appearanceSettings=this.settingsOptions.userSettings.getSubtitleAppearanceSettings();_subtitleappearancehelper.default.applyStyles(e,appearanceSettings)}.bind(this)),apiClient.element.querySelector(".btnClearTrackSelections").addEventListener("click",onClearSavedTrackSelectionsClick.bind(apiClient)),apiClient.element.querySelector(".selectSubtitlePlaybackMode").addEventListener("change",onSubtitleModeChange),_servicelocator.appHost.supports("subtitleappearancesettings")&&apiClient.element.querySelector(".subtitleAppearanceSection").classList.remove("hide")}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,Object.assign(View.prototype,_basesettingsview.default.prototype),View.prototype.loadSettingsInternal=function(){var options,context,userId,apiClient,userSettings,instance=this;return options=instance.settingsOptions,context=options.element,_loading.default.show(),userId=options.userId,apiClient=_connectionmanager.default.getApiClient(options.serverId),userSettings=options.userSettings,apiClient.getUser(userId).then(function(user){return options.user=user,(userId===apiClient.getCurrentUserId()?Promise.resolve():userSettings.setUserInfo(userId,apiClient)).then(function(){userSettings.getSubtitleAppearanceSettings();return loadForm(context,0,0,0,apiClient)})}).then(function(){return instance.loadAutoSettings()})},View.prototype.getAutoSettingsObjectsPromises=function(){var options,list=_basesettingsview.default.prototype.getAutoSettingsObjectsPromises.apply(this,arguments);return list.push((options=this.settingsOptions,Promise.resolve({key:"userconfiguration",value:options.user.Configuration}))),list},View.prototype.getNamedSettingsOwner=function(owner){switch(owner){case"usersettings":return this.settingsOptions.userSettings;case"userconfiguration":return this.settingsOptions.user.Configuration;default:return _basesettingsview.default.prototype.getNamedSettingsOwner.apply(this,arguments)}},View.prototype.getUserConfigurationUserId=function(){return this.settingsOptions.userId},View.prototype.destroy=function(){_basesettingsview.default.prototype.destroy.apply(this,arguments),this.settingsOptions=null},_exports.default=View});