selectMandatoryAttributeList
This commit is contained in:
@@ -633,6 +633,7 @@ class DetailView extends MainView {
|
||||
massRelateEnabled: massRelateEnabled,
|
||||
primaryFilterName: primaryFilterName,
|
||||
boolFilterList: boolFilterList,
|
||||
mandatorySelectAttributeList: panelDefs.selectMandatoryAttributeList,
|
||||
}, dialog => {
|
||||
dialog.render();
|
||||
|
||||
|
||||
@@ -383,9 +383,16 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
let url = this.foreignScope + '?&maxSize=' + this.getAutocompleteMaxCount();
|
||||
|
||||
if (!this.forceSelectAllAttributes) {
|
||||
/** @var {Object.<string, *>} */
|
||||
const panelDefs = this.getMetadata()
|
||||
.get(['clientDefs', this.entityType, 'relationshipPanels', this.name]) || {};
|
||||
|
||||
const mandatorySelectAttributeList = this.mandatorySelectAttributeList ||
|
||||
panelDefs.selectMandatoryAttributeList;
|
||||
|
||||
let select = ['id', 'name'];
|
||||
|
||||
if (this.mandatorySelectAttributeList) {
|
||||
if (mandatorySelectAttributeList) {
|
||||
select = select.concat(this.mandatorySelectAttributeList);
|
||||
}
|
||||
|
||||
@@ -393,10 +400,10 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
}
|
||||
|
||||
/** @var {Object.<string, *>} */
|
||||
let panelDefs = this.getMetadata()
|
||||
const panelDefs = this.getMetadata()
|
||||
.get(['clientDefs', this.entityType, 'relationshipPanels', this.name]) || {};
|
||||
|
||||
let boolList = [
|
||||
const boolList = [
|
||||
...(this.getSelectBoolFilterList() || []),
|
||||
...(panelDefs.selectBoolFilterList || []),
|
||||
];
|
||||
@@ -405,7 +412,7 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
url += '&' + $.param({'boolFilterList': boolList});
|
||||
}
|
||||
|
||||
let primary = this.getSelectPrimaryFilterName() || panelDefs.selectPrimaryFilter;
|
||||
const primary = this.getSelectPrimaryFilterName() || panelDefs.selectPrimaryFilter;
|
||||
|
||||
if (primary) {
|
||||
url += '&' + $.param({'primaryFilter': primary});
|
||||
@@ -860,14 +867,17 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
Espo.Ui.notify(' ... ');
|
||||
|
||||
/** @var {Object.<string, *>} */
|
||||
let panelDefs = this.getMetadata()
|
||||
const panelDefs = this.getMetadata()
|
||||
.get(['clientDefs', this.entityType, 'relationshipPanels', this.name]) || {};
|
||||
|
||||
let viewName = panelDefs.selectModalView ||
|
||||
const viewName = panelDefs.selectModalView ||
|
||||
this.getMetadata().get(`clientDefs.${this.foreignScope}.modalViews.select`) ||
|
||||
this.selectRecordsView;
|
||||
|
||||
let handler = panelDefs.selectHandler || null;
|
||||
const mandatorySelectAttributeList = this.mandatorySelectAttributeList ||
|
||||
panelDefs.selectMandatoryAttributeList;
|
||||
|
||||
const handler = panelDefs.selectHandler || null;
|
||||
|
||||
let createButton = this.isEditMode() &&
|
||||
(!this.createDisabled && !panelDefs.createDisabled || this.forceCreateButton);
|
||||
@@ -912,13 +922,13 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
.then(filters => resolve(filters));
|
||||
});
|
||||
}).then(filters => {
|
||||
let advanced = {...(this.getSelectFilters() || {}), ...(filters.advanced || {})};
|
||||
let boolFilterList = [
|
||||
const advanced = {...(this.getSelectFilters() || {}), ...(filters.advanced || {})};
|
||||
const boolFilterList = [
|
||||
...(this.getSelectBoolFilterList() || []),
|
||||
...(filters.bool || []),
|
||||
...(panelDefs.selectBoolFilterList || []),
|
||||
];
|
||||
let primaryFilter = this.getSelectPrimaryFilterName() ||
|
||||
const primaryFilter = this.getSelectPrimaryFilterName() ||
|
||||
filters.primary || panelDefs.selectPrimaryFilter;
|
||||
|
||||
this.createView('dialog', viewName, {
|
||||
@@ -929,7 +939,7 @@ class LinkMultipleFieldView extends BaseFieldView {
|
||||
primaryFilterName: primaryFilter,
|
||||
filterList: this.getSelectFilterList(),
|
||||
multiple: true,
|
||||
mandatorySelectAttributeList: this.mandatorySelectAttributeList,
|
||||
mandatorySelectAttributeList: mandatorySelectAttributeList,
|
||||
forceSelectAllAttributes: this.forceSelectAllAttributes,
|
||||
createAttributesProvider: createAttributesProvider,
|
||||
}, dialog => {
|
||||
|
||||
@@ -416,25 +416,32 @@ class LinkFieldView extends BaseFieldView {
|
||||
* @return {string}
|
||||
*/
|
||||
getAutocompleteUrl() {
|
||||
var url = this.foreignScope + '?maxSize=' + this.getAutocompleteMaxCount();
|
||||
let url = this.foreignScope + '?maxSize=' + this.getAutocompleteMaxCount();
|
||||
|
||||
if (!this.forceSelectAllAttributes) {
|
||||
var select = ['id', 'name'];
|
||||
/** @var {Object.<string, *>} */
|
||||
const panelDefs = this.getMetadata()
|
||||
.get(['clientDefs', this.entityType, 'relationshipPanels', this.name]) || {};
|
||||
|
||||
if (this.mandatorySelectAttributeList) {
|
||||
const mandatorySelectAttributeList = this.mandatorySelectAttributeList ||
|
||||
panelDefs.selectMandatoryAttributeList;
|
||||
|
||||
let select = ['id', 'name'];
|
||||
|
||||
if (mandatorySelectAttributeList) {
|
||||
select = select.concat(this.mandatorySelectAttributeList);
|
||||
}
|
||||
|
||||
url += '&select=' + select.join(',');
|
||||
}
|
||||
|
||||
var boolList = this.getSelectBoolFilterList();
|
||||
const boolList = this.getSelectBoolFilterList();
|
||||
|
||||
if (boolList) {
|
||||
url += '&' + $.param({'boolFilterList': boolList});
|
||||
}
|
||||
|
||||
var primary = this.getSelectPrimaryFilterName();
|
||||
const primary = this.getSelectPrimaryFilterName();
|
||||
|
||||
if (primary) {
|
||||
url += '&' + $.param({'primaryFilter': primary});
|
||||
@@ -919,16 +926,19 @@ class LinkFieldView extends BaseFieldView {
|
||||
Espo.Ui.notify(' ... ');
|
||||
|
||||
/** @var {Object.<string, *>} */
|
||||
let panelDefs = this.getMetadata()
|
||||
const panelDefs = this.getMetadata()
|
||||
.get(['clientDefs', this.entityType, 'relationshipPanels', this.name]) || {};
|
||||
|
||||
let viewName = panelDefs.selectModalView ||
|
||||
const viewName = panelDefs.selectModalView ||
|
||||
this.getMetadata().get(['clientDefs', this.foreignScope, 'modalViews', 'select']) ||
|
||||
this.selectRecordsView;
|
||||
|
||||
let handler = panelDefs.selectHandler || null;
|
||||
const mandatorySelectAttributeList = this.mandatorySelectAttributeList ||
|
||||
panelDefs.selectMandatoryAttributeList;
|
||||
|
||||
let createButton = this.isEditMode() &&
|
||||
const handler = panelDefs.selectHandler || null;
|
||||
|
||||
const createButton = this.isEditMode() &&
|
||||
(!this.createDisabled && !panelDefs.createDisabled || this.forceCreateButton);
|
||||
|
||||
let createAttributesProvider = null;
|
||||
@@ -971,13 +981,13 @@ class LinkFieldView extends BaseFieldView {
|
||||
.then(filters => resolve(filters));
|
||||
});
|
||||
}).then(filters => {
|
||||
let advanced = {...(this.getSelectFilters() || {}), ...(filters.advanced || {})};
|
||||
let boolFilterList = [
|
||||
const advanced = {...(this.getSelectFilters() || {}), ...(filters.advanced || {})};
|
||||
const boolFilterList = [
|
||||
...(this.getSelectBoolFilterList() || []),
|
||||
...(filters.bool || []),
|
||||
...(panelDefs.selectBoolFilterList || []),
|
||||
];
|
||||
let primaryFilter = this.getSelectPrimaryFilterName() ||
|
||||
const primaryFilter = this.getSelectPrimaryFilterName() ||
|
||||
filters.primary || panelDefs.selectPrimaryFilter;
|
||||
|
||||
this.createView('dialog', viewName, {
|
||||
@@ -986,7 +996,7 @@ class LinkFieldView extends BaseFieldView {
|
||||
filters: advanced,
|
||||
boolFilterList: boolFilterList,
|
||||
primaryFilterName: primaryFilter,
|
||||
mandatorySelectAttributeList: this.mandatorySelectAttributeList,
|
||||
mandatorySelectAttributeList: mandatorySelectAttributeList,
|
||||
forceSelectAllAttributes: this.forceSelectAllAttributes,
|
||||
filterList: this.getSelectFilterList(),
|
||||
createAttributesProvider: createAttributesProvider,
|
||||
|
||||
@@ -400,6 +400,13 @@
|
||||
"layout": {
|
||||
"type": "string",
|
||||
"description": "A list layout name."
|
||||
},
|
||||
"selectMandatoryAttributeList": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Attributes to be selected when selecting records."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user