44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
var Drawer = {
|
|
open: function (key) {
|
|
document.querySelector('#drawer').dataset.type = key;
|
|
MovimTpl.pushAnchorState(key, function () { Drawer.clear(key) });
|
|
},
|
|
filled: function () {
|
|
return (document.querySelector('#drawer').innerHTML != '');
|
|
},
|
|
hasTabs: function () {
|
|
return Drawer.filled()
|
|
&& document.querySelector('#drawer').contains(document.querySelector('#navtabs'));
|
|
},
|
|
clear: function (key) {
|
|
if (key && document.querySelector('#drawer').dataset.type == key) {
|
|
Drawer_ajaxClear();
|
|
return;
|
|
}
|
|
|
|
if (key == undefined) {
|
|
MovimTpl.clearAnchorState();
|
|
Drawer_ajaxClear();
|
|
}
|
|
}
|
|
}
|
|
|
|
if (typeof MovimWebsocket != 'undefined') {
|
|
MovimWebsocket.initiate(() => document.querySelector('#drawer').innerHTML = '');
|
|
}
|
|
|
|
MovimEvents.registerBody('click', 'drawer', (e) => {
|
|
if (Drawer.filled()
|
|
&& document.querySelector('body') == e.target) {
|
|
e.stopPropagation();
|
|
history.back();
|
|
}
|
|
});
|
|
|
|
MovimEvents.registerBody('keydown', 'drawer', (e) => {
|
|
if (Drawer.filled()
|
|
&& e.key == 'Escape') {
|
|
history.back();
|
|
}
|
|
});
|