1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/controllers/user/quickConnect/index.js

58 lines
2.1 KiB
JavaScript
Raw Normal View History

2020-12-01 11:30:21 -05:00
import { activate, authorize } from './helper';
2020-10-18 18:58:09 +01:00
import globalize from '../../../scripts/globalize';
import toast from '../../../components/toast/toast';
2020-07-26 23:57:28 -05:00
export default function (view) {
view.addEventListener('viewshow', function () {
2020-09-16 04:20:00 +09:00
const codeElement = view.querySelector('#txtQuickConnectCode');
2020-07-26 23:57:28 -05:00
view.querySelector('#btnQuickConnectActivate').addEventListener('click', () => {
2020-12-01 11:30:21 -05:00
activate().then(() => {
2020-07-26 23:57:28 -05:00
renderPage();
});
});
view.querySelector('#btnQuickConnectAuthorize').addEventListener('click', () => {
if (!codeElement.validity.valid) {
toast(globalize.translate('QuickConnectInvalidCode'));
return;
}
2020-09-16 04:20:00 +09:00
const code = codeElement.value;
2020-12-01 11:30:21 -05:00
authorize(code);
2020-07-26 23:57:28 -05:00
});
view.querySelector('.quickConnectSettingsContainer').addEventListener('submit', (e) => {
e.preventDefault();
});
2020-07-26 23:57:28 -05:00
renderPage();
});
function renderPage(forceActive = false) {
ApiClient.getQuickConnect('Status').then((status) => {
2020-09-16 04:20:00 +09:00
const btn = view.querySelector('#btnQuickConnectActivate');
const container = view.querySelector('.quickConnectSettingsContainer');
2020-07-26 23:57:28 -05:00
// 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;
});
}
}