|
/*!
|
|
* Copyright (C) 2019 Josh Habdas <jhabdas@protonmail.com>
|
|
*
|
|
* This file is part of After Dark.
|
|
*
|
|
* After Dark is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published
|
|
* by the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* After Dark is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
(function (window, document, undefined) {
|
|
'use strict';
|
|
const form = document.forms.generator;
|
|
form.reset();
|
|
const isOnlineHelp = document.URL.includes('localhost:1414');
|
|
if (!isOnlineHelp) return;
|
|
form.querySelector('.js-useonlinehelp').style.display = 'none';
|
|
if (window.navigator.onLine) {
|
|
form.querySelector('.js-disconnect').style.display = 'block';
|
|
}
|
|
const activate = () => {
|
|
form.querySelector('.js-disconnect').style.display = 'block';
|
|
form.generate.disabled = true;
|
|
form.address.disabled = true;
|
|
form.address.value = '';
|
|
form.generate.classList.add('muted');
|
|
};
|
|
const deactivate = () => {
|
|
form.querySelector('.js-disconnect').style.display = 'none';
|
|
form.generate.disabled = false;
|
|
form.address.disabled = false;
|
|
form.generate.classList.remove('muted');
|
|
};
|
|
window.addEventListener('online', activate);
|
|
window.addEventListener('offline', deactivate);
|
|
if (!window.navigator.onLine) deactivate();
|
|
form.addEventListener('submit', evt => {
|
|
evt.preventDefault();
|
|
const isLocal = document.location.host.includes('localhost');
|
|
const hasSameOrigin = form.action.includes(document.location.origin);
|
|
if (isLocal && hasSameOrigin) {
|
|
evt.target.submit();
|
|
} else {
|
|
form.querySelector('.js-usesameorigin').style.display = 'block';
|
|
deactivate();
|
|
}
|
|
})
|
|
})(window, document);
|