mirror of
https://github.com/wekan/wekan.git
synced 2025-04-24 14:08:31 -04:00
54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
const closedValue = null;
|
|
|
|
window.Modal = new (class {
|
|
constructor() {
|
|
this._currentModal = new ReactiveVar(closedValue);
|
|
this._onCloseGoTo = '';
|
|
this._isWideModal = false;
|
|
}
|
|
|
|
getHeaderName() {
|
|
const currentModal = this._currentModal.get();
|
|
return currentModal && currentModal.header;
|
|
}
|
|
|
|
getTemplateName() {
|
|
const currentModal = this._currentModal.get();
|
|
return currentModal && currentModal.modalName;
|
|
}
|
|
|
|
isOpen() {
|
|
return this.getTemplateName() !== closedValue;
|
|
}
|
|
|
|
isWide() {
|
|
return this._isWideModal;
|
|
}
|
|
|
|
close() {
|
|
this._currentModal.set(closedValue);
|
|
if (this._onCloseGoTo) {
|
|
FlowRouter.go(this._onCloseGoTo);
|
|
}
|
|
}
|
|
|
|
openWide(modalName, { header = '', onCloseGoTo = '' } = {}) {
|
|
this._currentModal.set({ header, modalName });
|
|
this._onCloseGoTo = onCloseGoTo;
|
|
this._isWideModal = true;
|
|
}
|
|
|
|
open(modalName, { header = '', onCloseGoTo = '' } = {}) {
|
|
this._currentModal.set({ header, modalName });
|
|
this._onCloseGoTo = onCloseGoTo;
|
|
}
|
|
})();
|
|
|
|
Blaze.registerHelper('Modal', Modal);
|
|
|
|
EscapeActions.register(
|
|
'modalWindow',
|
|
() => Modal.close(),
|
|
() => Modal.isOpen(),
|
|
{ noClickEscapeOn: '.modal-container' },
|
|
);
|