☎️ Web interface for viewing and processing Asterisk call logs (2020)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.8 KiB

2 years ago
'use strict';
// document.querySelectorAll('.body-wrapper input').forEach( e => e.disabled = true);
// document.querySelectorAll('.body-wrapper a').forEach( e => e.tabIndex = -1);
// TODO: this
(() => {
})();
let stack = [];
let maxZIndex = 100;
const wrapper = document.querySelector('.window-wrapper');
if (!wrapper) {
throw new Error('window wrapper is missing');
}
const getWindowById = id => {
if (typeof id !== 'string') {
throw new Error('className is not a string');
}
const window = document.getElementById(id);
if (!window) {
throw new Error('Window with ID ' + className + ' not found');
}
return window;
};
const openWindow = id => {
const window = getWindowById(id);
window.classList.add('active');
wrapper.classList.add('active');
if (!stack.includes(window)) {
// hide all other windows
if (stack.length) {
stack.forEach( e => e.classList.remove('active'));
}
stack.push(window);
++maxZIndex;
window.style.zIndex = maxZIndex;
}
};
const closeWindow = id => {
const window = getWindowById(id);
window.classList.remove('active');
if (stack.length && stack[stack.length - 1] === window) {
stack.pop();
}
if (!stack.length) {
wrapper.classList.remove('active');
maxZIndex = 100;
} else {
stack.forEach( e => e.classList.add('active'));
}
};
wrapper.style.display = "";
//
// document.querySelector('.window-wrapper .window .close-button').forEach( e => {
// createListener(e, 'click', (ev, el, wrapper) => {
// e
// });
//
// const createListener = function(element, event, callback, ...args) {
// element.addEventListener(event, wrapListener(callback, element, ...args));
// };
// });