~ migrate subtitlesettings.js to es6
~ migrate subtitleappearancehelper.js to es6 ~ replace duplicated "populateLanguages" function ( playbacksettings.js:18 ) ~ replace duplicated "onSubmit" function ( playbacksettings.js:266 ) - remove empty function getWindowStyles Signed-off-by: Christoph Potas <christoph286@googlemail.com>
This commit is contained in:
parent
e9151b6ee9
commit
257ce4974e
3 changed files with 276 additions and 298 deletions
|
@ -90,6 +90,8 @@
|
|||
"test": [
|
||||
"src/components/autoFocuser.js",
|
||||
"src/components/cardbuilder/cardBuilder.js",
|
||||
"src/components/subtitlesettings/subtitlesettings.js",
|
||||
"src/components/subtitlesettings/subtitleappearancehelper.js",
|
||||
"src/scripts/dom.js",
|
||||
"src/components/filedownloader.js",
|
||||
"src/scripts/filesystem.js",
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
define([], function () {
|
||||
"use strict";
|
||||
|
||||
function getTextStyles(settings, isCue) {
|
||||
|
||||
var list = [];
|
||||
let list = [];
|
||||
|
||||
if (isCue) {
|
||||
switch (settings.textSize || '') {
|
||||
|
@ -72,12 +69,12 @@ define([], function () {
|
|||
break;
|
||||
}
|
||||
|
||||
var background = settings.textBackground || 'transparent';
|
||||
const background = settings.textBackground || 'transparent';
|
||||
if (background) {
|
||||
list.push({ name: 'background-color', value: background });
|
||||
}
|
||||
|
||||
var textColor = settings.textColor || '#ffffff';
|
||||
const textColor = settings.textColor || '#ffffff';
|
||||
if (textColor) {
|
||||
list.push({ name: 'color', value: textColor });
|
||||
}
|
||||
|
@ -117,32 +114,27 @@ define([], function () {
|
|||
return list;
|
||||
}
|
||||
|
||||
function getWindowStyles(settings) {
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
function getStyles(settings, isCue) {
|
||||
export function getStyles(settings, isCue) {
|
||||
|
||||
return {
|
||||
text: getTextStyles(settings, isCue),
|
||||
window: getWindowStyles(settings)
|
||||
window: []
|
||||
};
|
||||
}
|
||||
|
||||
function applyStyleList(styles, elem) {
|
||||
|
||||
for (var i = 0, length = styles.length; i < length; i++) {
|
||||
for (let i = 0, length = styles.length; i < length; i++) {
|
||||
|
||||
var style = styles[i];
|
||||
let style = styles[i];
|
||||
|
||||
elem.style[style.name] = style.value;
|
||||
}
|
||||
}
|
||||
|
||||
function applyStyles(elements, appearanceSettings) {
|
||||
export function applyStyles(elements, appearanceSettings) {
|
||||
|
||||
var styles = getStyles(appearanceSettings);
|
||||
let styles = getStyles(appearanceSettings);
|
||||
|
||||
if (elements.text) {
|
||||
applyStyleList(styles.text, elements.text);
|
||||
|
@ -151,9 +143,7 @@ define([], function () {
|
|||
applyStyleList(styles.window, elements.window);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
export default {
|
||||
getStyles: getStyles,
|
||||
applyStyles: applyStyles
|
||||
};
|
||||
});
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loading', 'connectionManager', 'subtitleAppearanceHelper', 'dom', 'events', 'listViewStyle', 'emby-select', 'emby-input', 'emby-checkbox', 'flexStyles'], function (require, globalize, appSettings, appHost, focusManager, loading, connectionManager, subtitleAppearanceHelper, dom, events) {
|
||||
"use strict";
|
||||
|
||||
function populateLanguages(select, languages) {
|
||||
var html = "";
|
||||
|
||||
html += "<option value=''>" + globalize.translate('AnyLanguage') + "</option>";
|
||||
for (var i = 0, length = languages.length; i < length; i++) {
|
||||
var culture = languages[i];
|
||||
html += "<option value='" + culture.ThreeLetterISOLanguageName + "'>" + culture.DisplayName + "</option>";
|
||||
}
|
||||
|
||||
select.innerHTML = html;
|
||||
}
|
||||
import require from 'require';
|
||||
import globalize from 'globalize';
|
||||
import appHost from 'apphost';
|
||||
import appSettings from 'appSettings';
|
||||
import focusManager from 'focusManager';
|
||||
import loading from 'loading';
|
||||
import connectionManager from 'connectionmanager';
|
||||
import subtitleAppearanceHelper from 'subtitleappearancehelper';
|
||||
import playbacksettings from 'playbacksettings';
|
||||
import dom from 'dom';
|
||||
import events from 'events';
|
||||
import 'listViewStyle';
|
||||
import 'emby-select';
|
||||
import 'emby-input';
|
||||
import 'emby-checkbox';
|
||||
import 'flexStyles';
|
||||
|
||||
function getSubtitleAppearanceObject(context) {
|
||||
var appearanceSettings = {};
|
||||
let appearanceSettings = {};
|
||||
|
||||
appearanceSettings.textSize = context.querySelector('#selectTextSize').value;
|
||||
appearanceSettings.dropShadow = context.querySelector('#selectDropShadow').value;
|
||||
|
@ -33,9 +35,9 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
context.querySelector('.fldBurnIn').classList.remove('hide');
|
||||
}
|
||||
|
||||
var selectSubtitleLanguage = context.querySelector('#selectSubtitleLanguage');
|
||||
let selectSubtitleLanguage = context.querySelector( '#selectSubtitleLanguage' );
|
||||
|
||||
populateLanguages(selectSubtitleLanguage, allCultures);
|
||||
playbacksettings.populateLanguages(selectSubtitleLanguage, allCultures);
|
||||
|
||||
selectSubtitleLanguage.value = user.Configuration.SubtitleLanguagePreference || "";
|
||||
context.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || "";
|
||||
|
@ -60,7 +62,7 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
|
||||
function saveUser(context, user, userSettingsInstance, appearanceKey, apiClient) {
|
||||
|
||||
var appearanceSettings = userSettingsInstance.getSubtitleAppearanceSettings(appearanceKey);
|
||||
let appearanceSettings = userSettingsInstance.getSubtitleAppearanceSettings( appearanceKey );
|
||||
appearanceSettings = Object.assign(appearanceSettings, getSubtitleAppearanceObject(context));
|
||||
|
||||
userSettingsInstance.setSubtitleAppearanceSettings(appearanceSettings, appearanceKey);
|
||||
|
@ -71,7 +73,7 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
return apiClient.updateUserConfiguration(user.Id, user.Configuration);
|
||||
}
|
||||
|
||||
function save(instance, context, userId, userSettings, apiClient, enableSaveConfirmation) {
|
||||
export function save(instance, context, userId, userSettings, apiClient, enableSaveConfirmation) {
|
||||
|
||||
loading.show();
|
||||
|
||||
|
@ -96,31 +98,12 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
});
|
||||
}
|
||||
|
||||
function onSubmit(e) {
|
||||
var self = this;
|
||||
var apiClient = connectionManager.getApiClient(self.options.serverId);
|
||||
var userId = self.options.userId;
|
||||
var userSettings = self.options.userSettings;
|
||||
|
||||
userSettings.setUserInfo(userId, apiClient).then(function () {
|
||||
var enableSaveConfirmation = self.options.enableSaveConfirmation;
|
||||
save(self, self.options.element, userId, userSettings, apiClient, enableSaveConfirmation);
|
||||
});
|
||||
|
||||
// Disable default form submission
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function onSubtitleModeChange(e) {
|
||||
|
||||
var view = dom.parentWithClass(e.target, 'subtitlesettings');
|
||||
let view = dom.parentWithClass( e.target, 'subtitlesettings' );
|
||||
|
||||
var subtitlesHelp = view.querySelectorAll('.subtitlesHelp');
|
||||
for (var i = 0, length = subtitlesHelp.length; i < length; i++) {
|
||||
let subtitlesHelp = view.querySelectorAll( '.subtitlesHelp' );
|
||||
for (let i = 0, length = subtitlesHelp.length; i < length; i++) {
|
||||
subtitlesHelp[i].classList.add('hide');
|
||||
}
|
||||
view.querySelector('.subtitles' + this.value + 'Help').classList.remove('hide');
|
||||
|
@ -128,11 +111,11 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
|
||||
function onAppearanceFieldChange(e) {
|
||||
|
||||
var view = dom.parentWithClass(e.target, 'subtitlesettings');
|
||||
let view = dom.parentWithClass( e.target, 'subtitlesettings' );
|
||||
|
||||
var appearanceSettings = getSubtitleAppearanceObject(view);
|
||||
let appearanceSettings = getSubtitleAppearanceObject( view );
|
||||
|
||||
var elements = {
|
||||
let elements = {
|
||||
window: view.querySelector( '.subtitleappearance-preview-window' ),
|
||||
text: view.querySelector( '.subtitleappearance-preview-text' )
|
||||
};
|
||||
|
@ -140,14 +123,14 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
subtitleAppearanceHelper.applyStyles(elements, appearanceSettings);
|
||||
}
|
||||
|
||||
function embed(options, self) {
|
||||
export function embed(options, self) {
|
||||
|
||||
require(['text!./subtitlesettings.template.html'], function (template) {
|
||||
|
||||
options.element.classList.add('subtitlesettings');
|
||||
options.element.innerHTML = globalize.translateDocument(template, 'core');
|
||||
|
||||
options.element.querySelector('form').addEventListener('submit', onSubmit.bind(self));
|
||||
options.element.querySelector('form').addEventListener('submit', playbacksettings.OnSubmit.bind(self));
|
||||
|
||||
options.element.querySelector('#selectSubtitlePlaybackMode').addEventListener('change', onSubtitleModeChange);
|
||||
options.element.querySelector('#selectTextSize').addEventListener('change', onAppearanceFieldChange);
|
||||
|
@ -172,7 +155,7 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
});
|
||||
}
|
||||
|
||||
function SubtitleSettings(options) {
|
||||
export function SubtitleSettings(options) {
|
||||
|
||||
this.options = options;
|
||||
|
||||
|
@ -181,20 +164,20 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
|
||||
SubtitleSettings.prototype.loadData = function () {
|
||||
|
||||
var self = this;
|
||||
var context = self.options.element;
|
||||
let self = this;
|
||||
let context = self.options.element;
|
||||
|
||||
loading.show();
|
||||
|
||||
var userId = self.options.userId;
|
||||
var apiClient = connectionManager.getApiClient(self.options.serverId);
|
||||
var userSettings = self.options.userSettings;
|
||||
let userId = self.options.userId;
|
||||
let apiClient = connectionManager.getApiClient( self.options.serverId );
|
||||
let userSettings = self.options.userSettings;
|
||||
|
||||
apiClient.getUser(userId).then(function (user) {
|
||||
userSettings.setUserInfo(userId, apiClient).then(function () {
|
||||
self.dataLoaded = true;
|
||||
|
||||
var appearanceSettings = userSettings.getSubtitleAppearanceSettings(self.options.appearanceKey);
|
||||
let appearanceSettings = userSettings.getSubtitleAppearanceSettings( self.options.appearanceKey );
|
||||
|
||||
loadForm(context, user, userSettings, appearanceSettings, apiClient);
|
||||
});
|
||||
|
@ -202,12 +185,15 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
|
|||
};
|
||||
|
||||
SubtitleSettings.prototype.submit = function () {
|
||||
onSubmit.call(this);
|
||||
playbacksettings.onSubmit.call(this);
|
||||
};
|
||||
|
||||
SubtitleSettings.prototype.destroy = function () {
|
||||
this.options = null;
|
||||
};
|
||||
|
||||
return SubtitleSettings;
|
||||
});
|
||||
export default {
|
||||
save: save,
|
||||
embed: embed,
|
||||
SubtitleSettings: SubtitleSettings
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue