Files
intranet/web/intranet_repo/projects/_central/scripts/contentpanel.js
T

24 lines
1.1 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
const tabs = [...document.querySelectorAll('.content-tab-bar__item[data-tab]')];
const panels = [...document.querySelectorAll('.sb-tab-content')];
function showTab(name) {
if (!tabs.some(tab => tab.dataset.tab === name)) return;
tabs.forEach(tab => tab.classList.toggle('active', tab.dataset.tab === name));
panels.forEach(panel => panel.classList.toggle('active', panel.id === 'tab-' + name));
history.replaceState(null, '', '#' + name);
}
tabs.forEach(tab => tab.addEventListener('click', () => showTab(tab.dataset.tab)));
showTab(location.hash.slice(1));
document.querySelectorAll('[data-confirm]').forEach(button => {
button.addEventListener('click', event => {
if (!confirm(button.dataset.confirm)) event.preventDefault();
});
});
document.querySelectorAll('[data-upload-form]').forEach(form => {
form.addEventListener('submit', () => {
form.classList.add('sb-uploading');
form.querySelector('[type="submit"]').disabled = true;
});
});
});