This commit is contained in:
Yuri Kuznetsov
2025-02-21 17:40:23 +02:00
parent d7460a9e0a
commit f78ca003d2
4 changed files with 29 additions and 45 deletions
+1 -3
View File
@@ -1107,9 +1107,7 @@ class LinkMultipleFieldView extends BaseFieldView {
layoutName: this.panelDefs.selectLayout,
orderBy: orderBy,
orderDirection: orderDirection,
onSelect: (models) => {
view.close();
onSelect: models => {
this.select(models);
},
};
+1 -7
View File
@@ -381,9 +381,6 @@ class LinkParentFieldView extends BaseFieldView {
const createButton = !this.createDisabled && this.isEditMode();
/** @type {import('views/modal').default} */
let view;
/** @type {module:views/modals/select-records~Options} */
const options = {
scope: this.foreignScope,
@@ -395,16 +392,13 @@ class LinkParentFieldView extends BaseFieldView {
mandatorySelectAttributeList: this.getMandatorySelectAttributeList(),
forceSelectAllAttributes: this.isForceSelectAllAttributes(),
onSelect: models => {
view.close();
this.select(models[0]);
},
};
Espo.Ui.notifyWait();
view = view = /** @type {import('views/modal').default} */
await this.createView('modal', viewName, options);
const view = await this.createView('modal', viewName, options);
await view.render();
+1 -7
View File
@@ -1152,9 +1152,6 @@ class LinkFieldView extends BaseFieldView {
const orderBy = filters.orderBy || this.panelDefs.selectOrderBy;
const orderDirection = filters.orderBy ? filters.order : this.panelDefs.selectOrderDirection;
/** @type {import('views/modal').default} */
let view;
/** @type {module:views/modals/select-records~Options} */
const options = {
entityType: this.foreignScope,
@@ -1170,14 +1167,11 @@ class LinkFieldView extends BaseFieldView {
orderBy: orderBy,
orderDirection: orderDirection,
onSelect: models => {
view.close();
this.select(models[0]);
},
};
view = /** @type {import('views/modal').default} */
await this.createView('modal', viewName, options);
const view = await this.createView('modal', viewName, options);
await view.render();
+26 -28
View File
@@ -50,32 +50,7 @@ class UserFieldView extends LinkFieldView {
this.deleteLinkTeams(id);
};
this.addActionHandler('selectLinkTeams', () => {
Espo.Ui.notifyWait();
const viewName = this.getMetadata().get('clientDefs.Team.modalViews.select') ||
'views/modals/select-records';
this.createView('dialog', viewName, {
scope: 'Team',
createButton: false,
multiple: true,
}, view => {
view.render();
Espo.Ui.notify(false);
this.listenToOnce(view, 'select', models => {
if (Object.prototype.toString.call(models) !== '[object Array]') {
models = [models];
}
models.forEach(model => {
this.addLinkTeams(model.id, model.get('name'));
});
});
});
});
this.addActionHandler('selectLinkTeams', () => this.actionSelectLinkTeams());
this.events['click a[data-action="clearLinkTeams"]'] = e => {
const id = $(e.currentTarget).data('id').toString();
@@ -84,13 +59,36 @@ class UserFieldView extends LinkFieldView {
};
}
/**
* @protected
*/
async actionSelectLinkTeams() {
const viewName = this.getMetadata().get('clientDefs.Team.modalViews.select') ||
'views/modals/select-records';
/** @type {module:views/modals/select-records~Options} */
const options = {
entityType: 'Team',
createButton: false,
multiple: true,
onSelect: models => {
models.forEach(model => this.addLinkTeams(model.id, model.attributes.name));
},
};
Espo.Ui.notifyWait();
const view = await this.createView('modal', viewName, options);
await view.render();
}
handleSearchType(type) {
super.handleSearchType(type);
if (type === 'isFromTeams') {
this.$el.find('div.teams-container').removeClass('hidden');
}
else {
} else {
this.$el.find('div.teams-container').addClass('hidden');
}
}