EmbyCrackedClient/web/settings/subtitles.js

1 line
7.6 KiB
JavaScript
Raw Normal View History

2025-06-25 11:46:04 +08:00
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-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-select/emby-select.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-input/emby-input.js";import"./../modules/emby-elements/emby-checkbox/emby-checkbox.js";import connectionManager from"./../modules/emby-apiclient/connectionmanager.js";import currentUserSettings from"./../modules/common/usersettings/usersettings.js";import userSettingsBuilder from"./../modules/common/usersettings/usersettingsbuilder.js";import subtitleAppearanceHelper from"./../modules/common/subtitleappearancehelper.js";function showConfirm(options){return Emby.importModule("./modules/common/dialogs/confirm.js").then(function(confirm){return confirm(options)})}function numberToPercentString(value){try{return new Intl.NumberFormat(globalize.getCurrentLocales(),{style:"percent"}).format(value/100)}catch(err){return console.log("Error in NumberFormat: "+err),value+"%"}}function populateVerticalPosition(select){var 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.translate("Bottom"),value:0}];options.reverse(),select.innerHTML=options.map(function(o){return'<option value="'+o.value+'">'+o.name+"</option>"}).join("")}function loadForm(context,user,userSettings,appearanceSettings,apiClient){populateVerticalPosition(context.querySelector(".selectVerticalPosition")),loading.hide()}function onSubmit(e){return e.preventDefault(),!1}function onAppearanceFieldChange(e){var view=e.target.closest(".subtitlesettings"),elements={window:view.querySelector(".subtitleappearance-preview-window"),text:view.querySelector(".subtitleappearance-preview-text")},appearanceSettings=this.settingsOptions.userSettings.getSubtitleAppearanceSettings(),elements=(subtitleAppearanceHelper.applyStyles(elements,appearanceSettings),e.target.closest(".selectBackgroundColor"));elements&&("transparent"===elements.value?view.querySelector(".fldBackgroundOpacity").classList.add("hide"):view.querySelector(".fldBackgroundOpacity").classList.remove("hide"))}function loadData(options){let context=options.element,userId=(loading.show(),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(){var appearanceSettings=userSettings.getSubtitleAppearanceSettings();return loadForm(context,user,userSettings,appearanceSettings,apiClient)})})}function onTrackSelectionsCleared(){loading.hide()}function onClearSavedTrackSelectionsClick(e){let options=this;let mode=e.target.closest("button").getAttribute("data-mode");return showConfirm({title:globalize.translate("HeaderClearTrackSelections"),text:globalize.translate("QuestionClearSavedTracks"),confirmText:globalize.translate("HeaderClearTrackSelections"),primary:"cancel"}).then(function(){return loading.show(),connectionManager.getApiClient(options.serverId).clearUserTrackSelections(options.userId,mode).then(onTrackSelectionsCleared,onTrackSelectionsCleared)})}function getSubtitleLanguages(query){var apiClient=connectionManager.getApiClient(this.settingsOptions.serverId);let instance=this;return apiClient.getCultures().then(function(cultures){let selectedValues=instance.settingsOptions.element.querySelector(".selectSubtitleLanguage").values,items=(Array.isArray(selectedValues)||(selectedValues=selectedValues?.split?selectedValues.split(","):[])