mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
+ added settingshelper to site defines
~ convert subtitles controller to es6 module + added support for class controller Signed-off-by: Christoph Potas <christoph286@googlemail.com>
This commit is contained in:
parent
6f0843cc6d
commit
658710e982
4 changed files with 64 additions and 45 deletions
|
@ -1,49 +1,63 @@
|
|||
define(["subtitleSettings", "userSettings", "autoFocuser"], function (SubtitleSettings, userSettings, autoFocuser) {
|
||||
"use strict";
|
||||
import subtitleSettings from 'subtitleSettings';
|
||||
import * as userSettings from 'userSettings';
|
||||
import autoFocuser from 'autoFocuser';
|
||||
|
||||
return function (view, params) {
|
||||
function onBeforeUnload(e) {
|
||||
if (hasChanges) {
|
||||
e.returnValue = "You currently have unsaved changes. Are you sure you wish to leave?";
|
||||
}
|
||||
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;
|
||||
|
||||
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.default({
|
||||
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