This commit is contained in:
Yuri Kuznetsov
2025-03-20 18:41:15 +02:00
parent c4303483b7
commit 58e091b45e
2 changed files with 40 additions and 40 deletions
+2 -3
View File
@@ -28,7 +28,7 @@
import View from 'view';
class CollapsedModalBar extends View {
class CollapsedModalBarView extends View {
// language=Handlebars
templateContent = `
@@ -196,5 +196,4 @@ class CollapsedModalBar extends View {
}
}
// noinspection JSUnusedGlobalSymbols
export default CollapsedModalBar;
export default CollapsedModalBarView;
+38 -37
View File
@@ -29,6 +29,7 @@
/** @module views/modal */
import View from 'view';
import CollapsedModalBarView from 'views/collapsed-modal-bar';
/**
* A base modal view. Can be extended or used directly.
@@ -1107,53 +1108,53 @@ class ModalView extends View {
/**
* Collapse.
*/
collapse() {
this.beforeCollapse().then(data => {
if (!this.getParentView()) {
throw new Error("Can't collapse w/o parent view.");
async collapse() {
let data = await this.beforeCollapse();
if (!this.getParentView()) {
throw new Error("Can't collapse w/o parent view.");
}
this.isCollapsed = true;
data = data || {};
let title;
if (data.title) {
title = data.title;
} else {
const titleElement = this.containerElement.querySelector('.modal-header .modal-title .modal-title-text');
if (titleElement) {
title = titleElement.textContent;
}
}
this.isCollapsed = true;
this.dialog.close();
data = data || {};
let masterView = this;
let title;
while (masterView.getParentView()) {
masterView = masterView.getParentView();
}
if (data.title) {
title = data.title;
} else {
const $title = $(this.containerElement).find('.modal-header .modal-title .modal-title-text');
this.unchainFromParent();
title = $title.text();
}
/** @type {CollapsedModalBarView} */
let barView;
this.dialog.close();
const key = 'collapsedModalBar';
let masterView = this;
if (masterView.hasView(key)) {
barView = masterView.getView(key);
} else {
barView = new CollapsedModalBarView({fullSelector: 'body > .collapsed-modal-bar'});
while (masterView.getParentView()) {
masterView = masterView.getParentView();
}
await masterView.assignView(key, barView);
}
this.unchainFromParent();
(new Promise(resolve => {
if (masterView.hasView('collapsedModalBar')) {
resolve(masterView.getView('collapsedModalBar'));
return;
}
masterView
.createView('collapsedModalBar', 'views/collapsed-modal-bar', {
fullSelector: 'body > .collapsed-modal-bar',
})
.then(view => resolve(view));
}))
.then(barView => {
barView.addModalView(this, {title: title});
});
});
barView.addModalView(this, {title: title});
}
unchainFromParent() {