|
|
|
const stammTVBaseUrl = document.getElementById('stammtv-base-url');
|
|
|
|
const stammTVWSSUrl = document.getElementById('stammtv-wss-url');
|
|
|
|
const saveButton = document.getElementById('save');
|
|
|
|
|
|
|
|
function validateAndSave() {
|
|
|
|
let valid = true;
|
|
|
|
//check stammTVBaseUrl
|
|
|
|
if (stammTVBaseUrl.value.startsWith('http://') || stammTVBaseUrl.value.startsWith('https://')) {
|
|
|
|
stammTVBaseUrl.classList.remove('is-invalid');
|
|
|
|
stammTVBaseUrl.classList.add('is-valid');
|
|
|
|
valid = valid && true;
|
|
|
|
} else {
|
|
|
|
stammTVBaseUrl.classList.remove('is-valid');
|
|
|
|
stammTVBaseUrl.classList.add('is-invalid');
|
|
|
|
valid = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//check stammTVWSSUrl
|
|
|
|
if (stammTVWSSUrl.value.startsWith('wss://')) {
|
|
|
|
stammTVWSSUrl.classList.remove('is-invalid');
|
|
|
|
stammTVWSSUrl.classList.add('is-valid');
|
|
|
|
valid = valid && true;
|
|
|
|
} else {
|
|
|
|
stammTVWSSUrl.classList.remove('is-valid');
|
|
|
|
stammTVWSSUrl.classList.add('is-invalid');
|
|
|
|
valid = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (valid) {
|
|
|
|
save();
|
|
|
|
} else {
|
|
|
|
console.log('Failed to save settings - form validation was not successful.')
|
|
|
|
saveButton.classList.replace('btn-primary', 'btn-danger');
|
|
|
|
saveButton.classList.replace('btn-success', 'btn-danger');
|
|
|
|
saveButton.textContent = getMessage('settingsSaveButtonCaptionFailure');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Saves options to chrome.storage
|
|
|
|
function save() {
|
|
|
|
if (chrome && chrome.storage && chrome.storage.local) {
|
|
|
|
chrome.storage.local.set({
|
|
|
|
baseURL: stammTVBaseUrl.value,
|
|
|
|
wssURL: stammTVWSSUrl.value
|
|
|
|
}, function () {
|
|
|
|
// Update form controls to let user know options were saved.
|
|
|
|
saveButton.classList.replace('btn-primary', 'btn-success');
|
|
|
|
saveButton.classList.replace('btn-danger', 'btn-success');
|
|
|
|
saveButton.textContent = getMessage('settingsSaveButtonCaptionSuccess');
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
console.error('Unsupported browser or no access to localStorage')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Restores select box and checkbox state using the preferences
|
|
|
|
// stored in chrome.storage.
|
|
|
|
function load(){
|
|
|
|
if (chrome && chrome.storage && chrome.storage.local) {
|
|
|
|
chrome.storage.local.get({
|
|
|
|
baseURL: getMessage("settingsFormInputRequired"),
|
|
|
|
wssURL: getMessage("settingsFormInputRequired")
|
|
|
|
}, function (items) {
|
|
|
|
stammTVBaseUrl.value = items.baseURL;
|
|
|
|
stammTVWSSUrl.value = items.wssURL;
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
console.error('Unsupported browser or no access to localStorage')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function autofillWSSURL() {
|
|
|
|
console.log('here am i');
|
|
|
|
if (stammTVBaseUrl.value.startsWith('http')) {
|
|
|
|
let predictedWSSURL = stammTVBaseUrl.value.replace('https', 'wss').replace('http', 'wss');
|
|
|
|
if (predictedWSSURL.endsWith('/')) {
|
|
|
|
predictedWSSURL += 'wss'
|
|
|
|
} else {
|
|
|
|
predictedWSSURL += '/wss'
|
|
|
|
}
|
|
|
|
stammTVWSSUrl.value = predictedWSSURL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', init);
|
|
|
|
|
|
|
|
function init() {
|
|
|
|
stammTVBaseUrl.onchange = autofillWSSURL;
|
|
|
|
saveButton.addEventListener('click', validateAndSave);
|
|
|
|
load();
|
|
|
|
}
|