Add new DataView in Contact Section (only contacts with B2B type)
define("ContactSectionV2", ["GlbClientConstants"], function(clientConstants) {
return {
entitySchemaName: "Contact",
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
attributes: {},
methods: {
getDefaultDataViews: function() {
var baseDataViews = this.callParent(arguments);
baseDataViews.GridDataViewB2B = {
name: "GridDataViewB2B",
caption: this.get("Resources.Strings.B2BButtonCaption"), // Section header
hint: this.get("Resources.Strings.B2BButtonCaption"), // Hint for button
icon: this.get("Resources.Images.B2BDataViewIcon") // Image for button
};
return baseDataViews;
},
loadActiveViewData: function() {
var activeViewName = this.getActiveViewName();
if (activeViewName === "GridDataViewB2B") {
this.loadGridData();
}
this.callParent(arguments);
},
loadGridDataView: function(loadData) {
var gridData = this.getGridData();
if (gridData && loadData) {
gridData.clear();
}
this.setViewFilter(this.get("ActiveViewName"));
this.reloadGridColumnsConfig(false);
this.reloadSummaryModule();
this.callParent(arguments);
},
loadGridDataViewB2B: function(loadData) { // "load" + DataView.name
this.loadGridDataView(loadData);
},
setActiveView: function(activeViewName) {
this.callParent(arguments);
if (activeViewName === "GridDataViewB2B") {
this.set("IsGridDataViewVisible", true);
}
},
setViewFilter: function(activeViewName) { // Add filter for your "DataView"
var sectionFilters = this.get("SectionFilters");
if (activeViewName === "GridDataViewB2B") {
sectionFilters.add("FilterB2BType", this.Terrasoft.createColumnFilterWithParameter(
this.Terrasoft.ComparisonType.EQUAL, "Type", clientConstants.ContactTypes.B2B));
} else {
sectionFilters.removeByKey("FilterB2BType");
}
}
}
};
});
17:51 Oct 16, 2019
How to create GridDataViewB2B? Is it a schema of the section view model?
Thank you
15:04 Oct 18, 2019
You don't need to create a schema. The GridDataViewB2B is created in the getDefaultDataViews function via native js (https://prnt.sc/pl1tvo).
Show all comments