mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'es6' into es6-migration-5
This commit is contained in:
commit
c17dfafbd9
150 changed files with 6551 additions and 3268 deletions
|
@ -21,7 +21,7 @@ define(['displaySettings', 'userSettings', 'autoFocuser'], function (DisplaySett
|
|||
if (settingsInstance) {
|
||||
settingsInstance.loadData();
|
||||
} else {
|
||||
settingsInstance = new DisplaySettings({
|
||||
settingsInstance = new DisplaySettings.default({
|
||||
serverId: ApiClient.serverId(),
|
||||
userId: userId,
|
||||
element: view.querySelector('.settingsContainer'),
|
||||
|
|
|
@ -21,7 +21,7 @@ define(['homescreenSettings', 'dom', 'globalize', 'loading', 'userSettings', 'au
|
|||
if (homescreenSettingsInstance) {
|
||||
homescreenSettingsInstance.loadData();
|
||||
} else {
|
||||
homescreenSettingsInstance = new HomescreenSettings({
|
||||
homescreenSettingsInstance = new HomescreenSettings.default({
|
||||
serverId: ApiClient.serverId(),
|
||||
userId: userId,
|
||||
element: view.querySelector('.homeScreenSettingsContainer'),
|
||||
|
|
|
@ -21,7 +21,7 @@ define(['playbackSettings', 'dom', 'globalize', 'loading', 'userSettings', 'auto
|
|||
if (settingsInstance) {
|
||||
settingsInstance.loadData();
|
||||
} else {
|
||||
settingsInstance = new PlaybackSettings({
|
||||
settingsInstance = new PlaybackSettings.default({
|
||||
serverId: ApiClient.serverId(),
|
||||
userId: userId,
|
||||
element: view.querySelector('.settingsContainer'),
|
||||
|
|
|
@ -1,52 +1,63 @@
|
|||
define(['subtitleSettings', 'userSettings', 'autoFocuser'], function (SubtitleSettings, userSettings, autoFocuser) {
|
||||
'use strict';
|
||||
import subtitleSettings from 'subtitleSettings';
|
||||
import {UserSettings, currentSettings as userSettings} from 'userSettings';
|
||||
import autoFocuser from 'autoFocuser';
|
||||
|
||||
// Shortcuts
|
||||
const UserSettings = userSettings.UserSettings;
|
||||
export class SubtitleController {
|
||||
constructor(view, params) {
|
||||
this.userId = params.userId || ApiClient.getCurrentUserId();
|
||||
this.currentSettings = this.userId === ApiClient.getCurrentUserId() ? userSettings : new UserSettings();
|
||||
this.hasChanges = false;
|
||||
this.subtitleSettingsInstance = null;
|
||||
this.view = view;
|
||||
|
||||
return function (view, params) {
|
||||
function onBeforeUnload(e) {
|
||||
if (hasChanges) {
|
||||
e.returnValue = 'You currently have unsaved changes. Are you sure you wish to leave?';
|
||||
}
|
||||
view.addEventListener('viewshow', this.viewShow.bind(this));
|
||||
view.addEventListener('change', this.change.bind(this));
|
||||
view.addEventListener('viewbeforehide', this.viewBeforeHide.bind(this));
|
||||
view.addEventListener('viewdestroy', this.viewDestroy.bind(this));
|
||||
}
|
||||
|
||||
viewShow() {
|
||||
window.addEventListener('beforeunload', this.beforeUnload.bind(this));
|
||||
|
||||
if (this.subtitleSettingsInstance) {
|
||||
this.subtitleSettingsInstance.loadData();
|
||||
} else {
|
||||
this.subtitleSettingsInstance = new subtitleSettings({
|
||||
serverId: ApiClient.serverId(),
|
||||
userId: this.userId,
|
||||
element: this.view.querySelector('.settingsContainer'),
|
||||
userSettings: this.currentSettings,
|
||||
enableSaveButton: false,
|
||||
enableSaveConfirmation: false,
|
||||
autoFocus: autoFocuser.isEnabled()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var subtitleSettingsInstance;
|
||||
var hasChanges;
|
||||
var userId = params.userId || ApiClient.getCurrentUserId();
|
||||
var currentSettings = userId === ApiClient.getCurrentUserId() ? userSettings : new UserSettings();
|
||||
view.addEventListener('viewshow', function () {
|
||||
window.addEventListener('beforeunload', onBeforeUnload);
|
||||
viewDestroy() {
|
||||
if (this.subtitleSettingsInstance) {
|
||||
this.subtitleSettingsInstance.destroy();
|
||||
this.subtitleSettingsInstance = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (subtitleSettingsInstance) {
|
||||
subtitleSettingsInstance.loadData();
|
||||
} else {
|
||||
subtitleSettingsInstance = new SubtitleSettings({
|
||||
serverId: ApiClient.serverId(),
|
||||
userId: userId,
|
||||
element: view.querySelector('.settingsContainer'),
|
||||
userSettings: currentSettings,
|
||||
enableSaveButton: false,
|
||||
enableSaveConfirmation: false,
|
||||
autoFocus: autoFocuser.isEnabled()
|
||||
});
|
||||
}
|
||||
});
|
||||
view.addEventListener('change', function () {
|
||||
hasChanges = true;
|
||||
});
|
||||
view.addEventListener('viewbeforehide', function () {
|
||||
hasChanges = false;
|
||||
viewBeforeHide() {
|
||||
this.hasChanges = false;
|
||||
|
||||
if (subtitleSettingsInstance) {
|
||||
subtitleSettingsInstance.submit();
|
||||
}
|
||||
});
|
||||
view.addEventListener('viewdestroy', function () {
|
||||
if (subtitleSettingsInstance) {
|
||||
subtitleSettingsInstance.destroy();
|
||||
subtitleSettingsInstance = null;
|
||||
}
|
||||
});
|
||||
};
|
||||
});
|
||||
if (this.subtitleSettingsInstance) {
|
||||
this.subtitleSettingsInstance.submit();
|
||||
}
|
||||
}
|
||||
|
||||
change() {
|
||||
this.hasChanges = true;
|
||||
}
|
||||
|
||||
beforeUnload(e) {
|
||||
if (this.hasChanges) {
|
||||
e.returnValue = 'You currently have unsaved changes. Are you sure you wish to leave?';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default SubtitleController;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue