1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Migrate to ES6

This commit is contained in:
Matt Montgomery 2020-07-26 23:57:28 -05:00
parent e5f0d77c30
commit ae5fa9d304
13 changed files with 220 additions and 227 deletions

View file

@ -27,7 +27,7 @@ export default function (view, params) {
page.querySelector('.lnkHomePreferences').setAttribute('href', 'mypreferenceshome.html?userId=' + userId);
page.querySelector('.lnkPlaybackPreferences').setAttribute('href', 'mypreferencesplayback.html?userId=' + userId);
page.querySelector('.lnkSubtitlePreferences').setAttribute('href', 'mypreferencessubtitles.html?userId=' + userId);
page.querySelector('.lnkQuickConnectPreferences').setAttribute('href', 'myPreferencesQuickConnect.html?userId=' + userId);
page.querySelector('.lnkQuickConnectPreferences').setAttribute('href', 'mypreferencesquickconnect.html');
if (window.NativeShell && window.NativeShell.AppHost.supports('clientsettings')) {
page.querySelector('.clientSettings').classList.remove('hide');

View file

@ -1,53 +0,0 @@
define(["quickConnectSettings", "dom", "globalize", "loading", "userSettings", "autoFocuser", "listViewStyle"], function (QuickConnectSettings, dom, globalize, loading, userSettings, autoFocuser) {
"use strict";
return function (view) {
let quickConnectSettingsInstance = null;
view.addEventListener("viewshow", function () {
quickConnectSettingsInstance = new QuickConnectSettings({
page: view,
interval: 0
});
view.querySelector("#btnQuickConnectActivate").addEventListener("click", () => {
quickConnectSettingsInstance.activate(quickConnectSettingsInstance);
});
quickConnectSettingsInstance.loadData();
ApiClient.getQuickConnect("Status").then((status) => {
let btn = view.querySelector("#btnQuickConnectActivate");
if (status === "Unavailable") {
btn.textContent = globalize.translate("QuickConnectNotAvailable");
btn.disabled = true;
return false;
} else if (status === "Available") {
return false;
}
btn.style.display = "none";
return true;
}).catch((e) => {
throw e;
});
});
view.addEventListener("viewbeforehide", function () {
if (quickConnectSettingsInstance) {
quickConnectSettingsInstance.submit();
}
onDestroy();
});
view.addEventListener("viewdestroy", function () {
onDestroy();
});
function onDestroy() {
if (quickConnectSettingsInstance) {
quickConnectSettingsInstance.destroy();
quickConnectSettingsInstance = null;
}
}
};
});

View file

@ -0,0 +1,17 @@
<div id="quickConnectPreferencesPage" data-role="page" class="page libraryPage userPreferencesPage noSecondaryNavPage" data-title="${HeaderHome}" data-backbutton="true" style="margin: 0 auto; max-width: 54em">
<button is="emby-button" id="btnQuickConnectActivate" type="button" class="raised button-submit block">
<span>${ButtonActivate}</span>
</button>
<form class="quickConnectSettingsContainer">
<div style="margin-bottom: 1em">
${QuickConnectDescription}
</div>
<div class="inputContainer">
<input is="emby-input" type="number" min="0" max="999999" required id="txtQuickConnectCode" label="${LabelQuickConnectCode}" autocomplete="off" />
</div>
<button id="btnQuickConnectAuthorize" is="emby-button" type="submit" class="raised button-submit block">
<span>${Authorize}</span>
</button>
</form>
</div>

View file

@ -0,0 +1,78 @@
import QuickConnectSettings from 'quickConnectSettings';
import globalize from 'globalize';
import toast from 'toast';
export default function (view) {
let quickConnectSettingsInstance = null;
view.addEventListener('viewshow', function () {
let codeElement = view.querySelector('#txtQuickConnectCode');
quickConnectSettingsInstance = new QuickConnectSettings({
page: view,
interval: 0
});
view.querySelector('#btnQuickConnectActivate').addEventListener('click', () => {
quickConnectSettingsInstance.activate(quickConnectSettingsInstance).then(() => {
renderPage();
});
});
view.querySelector('#btnQuickConnectAuthorize').addEventListener('click', () => {
if (!codeElement.validity.valid) {
toast(globalize.translate('QuickConnectInvalidCode'));
return;
}
let code = codeElement.value;
quickConnectSettingsInstance.authorize(code);
});
renderPage();
});
view.addEventListener('viewbeforehide', function () {
if (quickConnectSettingsInstance) {
quickConnectSettingsInstance.submit();
}
onDestroy();
});
view.addEventListener('viewdestroy', function () {
onDestroy();
});
function onDestroy() {
if (quickConnectSettingsInstance) {
quickConnectSettingsInstance.destroy();
quickConnectSettingsInstance = null;
}
}
function renderPage(forceActive = false) {
ApiClient.getQuickConnect('Status').then((status) => {
let btn = view.querySelector('#btnQuickConnectActivate');
let container = view.querySelector('.quickConnectSettingsContainer');
// The activation button should only be visible when quick connect is unavailable (with the text replaced with an error) or when it is available (so it can be activated)
// The authorization container is only usable when quick connect is active, so it should be hidden otherwise
container.style.display = 'none';
if (status === 'Unavailable') {
btn.textContent = globalize.translate('QuickConnectNotAvailable');
btn.disabled = true;
btn.classList.remove('button-submit');
btn.classList.add('button');
} else if (status === 'Active' || forceActive) {
container.style.display = '';
btn.style.display = 'none';
}
return true;
}).catch((e) => {
throw e;
});
}
renderPage();
}