59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
class UIUtils {
|
|
|
|
static show(element) {
|
|
element.style.display = "block";
|
|
}
|
|
|
|
static hide(element) {
|
|
element.style.display = "none";
|
|
}
|
|
|
|
static disableButton(button) {
|
|
button.disabled = true;
|
|
}
|
|
|
|
static enableButton(button) {
|
|
button.disabled = false;
|
|
}
|
|
|
|
static instantiateTemplate(templateId) {
|
|
return document.getElementById(templateId).content.firstElementChild.cloneNode(true);
|
|
}
|
|
|
|
static clear(container) {
|
|
container.replaceChildren();
|
|
}
|
|
|
|
static getSelectedOption(selectElement) {
|
|
return selectElement.options[selectElement.selectedIndex];
|
|
}
|
|
|
|
static getSearchParam(urlParams, searchParam, defaultValue) {
|
|
return urlParams.has(searchParam) ?
|
|
urlParams.get(searchParam) :
|
|
defaultValue;
|
|
}
|
|
|
|
static isSearchParamYES(urlParams, searchParam) {
|
|
return UIUtils.getSearchParam(urlParams, searchParam, 'NO').toUpperCase() == 'YES';
|
|
}
|
|
|
|
static getSearchParamOfCurrentUrl(searchParam) {
|
|
const urlSearchParams = new URLSearchParams(window.location.search);
|
|
return UIUtils.getSearchParam(urlSearchParams, searchParam, null)
|
|
}
|
|
|
|
static setSearchParamOfCurrentUrl(nameOfSearchParam, valueOfSearchParam) {
|
|
const url = new URL(window.location.href);
|
|
url.searchParams.set(nameOfSearchParam, valueOfSearchParam);
|
|
window.history.replaceState(null, "", url);
|
|
}
|
|
|
|
static downloadUrlAsFilename(url, filename) {
|
|
const a = document.createElement('a');
|
|
a.setAttribute('href', url);
|
|
a.setAttribute('download', filename);
|
|
a.click();
|
|
}
|
|
}
|