Hai, How to make a field visible in Contact Communication Option Detail in Contact section.
For contact communication detail in Contact section, we are trying to make a field visible when we select any one of the social options or phone options. We have created a replacing object of contact communication option and added the text column. and i was created replacing schema with ContactCommunicationDetailV2 with title Contact communication options.Here i need text filed will be 15 characters only.
Here the code : I was Added note in attributes. inside methods i was written this.show() previously but its not applying can you please crack this code how to get the text field.
define("ContactCommunicationDetailV2", ["ContactCommunicationDetailV2Resources", "terrasoft", "ViewUtilities",
"ConfigurationConstants", "ModalBox",
"LookupUtilities", "BaseCommunicationViewModel", "ConfigurationItemGenerator", "BaseDetailV2"],
function(resources, Terrasoft, ViewUtilities, ConfigurationConstants, ModalBox) {
return {
entitySchemaName: "ContactCommunication",
attributes: {
"UsrNote": {
dataValueType: Terrasoft.DataValueType.TEXT,
/**
* ######### ######### #### ###### "########"
*/
ToolsMenuItems: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ######### ######### #### ###### "########"
*/
PhonesMenuItems: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ######### ###. ##### #### ###### "########"
*/
SocialNetworksMenuItems: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ######### ##### ####### #####
*/
MenuItems: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ####### "###### #########"
*/
IsDataLoaded: {dataValueType: Terrasoft.DataValueType.BOOLEAN},
/**
* ######### ####### ##### ## ########
*/
DeletedItems: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ######### ######### #### "###### ## #############"
*/
RestrictionsMenuItems: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ######### ######## ## #############
*/
RestrictionsCollection: {dataValueType: Terrasoft.DataValueType.COLLECTION},
/**
* ######## ##### ####### #####
*/
"CommunicationTypes" : {
type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
dataValueType: Terrasoft.DataValueType.COLLECTION
}
},
messages: {
/**
* @message ResultSelectedRows
* ### ###### LookupUtilities
*/
"ResultSelectedRows": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
},
/**
*
*/
"UpdateCardProperty": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
},
"ValidateDetail": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
},
"DetailValidated": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
},
"SaveDetail": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.SUBSCRIBE
},
"DetailSaved": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
}
},
methods: {
//TODO delete
getDataGridName: function() {
return "";
},
/**
* #########, ######## ## ### ######## ##### ##### ## ##### ###. #####.
* @private
* @param {String} communicationType ######## #### ########.
* @return {Boolean} ######## ## ### ######## ##### ##### ## ##### ###. #####.
*/
isSocialNetworkType: function(communicationType) {
communicationType = communicationType.value || communicationType;
return ConfigurationConstants.SocialNetworksCommunicationTypes.indexOf(communicationType) !== -1;
},
isPhoneType: function(communicationType) {
communicationType = communicationType.value || communicationType;
return ConfigurationConstants.PhonesCommunicationTypes.indexOf(communicationType) !== -1;
},
/**
* ######### ######### ####.
* @param {String} moduleName ######## ######.
* @private
*/
closeModalBox: function(moduleName) {
var modalBoxContainer = this.get("ModalBoxContainer");
if (modalBoxContainer) {
ModalBox.close();
}
this.sandbox.unloadModule(this.sandbox.id + "_" + moduleName);
},
/**
* ############ ######## ###### ###### # ########## #####.
* @private
*/
onLookUpClick: function() {
var modalBoxSize = {
minHeight : "1",
minWidth : "1",
maxHeight : "100",
maxWidth : "100"
};
var modalBoxContainer = ModalBox.show(modalBoxSize);
this.set("ModalBoxContainer", modalBoxContainer);
ModalBox.setSize(820, 600);
this.sandbox.loadModule("FindContactsInSocialNetworksModule", {
renderTo: modalBoxContainer
});
this.sandbox.subscribe("ResultSelectedRows", function() {
this.closeModalBox("FindContactsInSocialNetworksModule");
}, this, [this.sandbox.id + "_FindContactsInSocialNetworksModule"]);
},
/**
* ############## ######### ######### ####.
* @private
*/
getToolsMenuItems: function() {
var menuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");
var communicationTypes = this.get("CommunicationTypes");
var phonesMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");
var socialNetworksMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");
var phonesMenuItem = Ext.create("Terrasoft.BaseViewModel", {
values: {
Caption: this.get("Resources.Strings.PhoneMenuItem"),
Id: Terrasoft.utils.generateGUID(),
Items: phonesMenuItems
}
});
var socialNetworksMenuItem = Ext.create("Terrasoft.BaseViewModel", {
values: {
Caption: this.get("Resources.Strings.SocialNetworksMenuItem"),
Id: Terrasoft.utils.generateGUID(),
Items: socialNetworksMenuItems
}
});
communicationTypes.each(function(item) {
var menuItem = this.getButtonMenuItem(item);
var typeId = item.get("Id");
if (this.isPhoneType(typeId)) {
phonesMenuItems.addItem(menuItem);
return;
}
if (this.isSocialNetworkType(typeId)) {
socialNetworksMenuItems.addItem(menuItem);
return;
}
menuItems.addItem(menuItem);
}, this);
menuItems.addItem(phonesMenuItem);
menuItems.addItem(socialNetworksMenuItem);
var restrictionsItem = this.getRestrictionsMenuItem();
menuItems.addItem(restrictionsItem);
return menuItems;
},
/**
* ########## ##### #### #### "###### ## #########".
* @protected
* @return {Terrasoft.BaseViewModel} ###### ############# ###### ####.
*/
getRestrictionsMenuItem: function() {
var restrictionsMenuItems = Ext.create("Terrasoft.BaseViewModelCollection");
var restrictionsItem = Ext.create("Terrasoft.BaseViewModel", {
values: {
Caption: this.get("Resources.Strings.DoNotUseCommunicationCaption"),
Id: Terrasoft.utils.generateGUID(),
Items: restrictionsMenuItems
}
});
var restrictions = this.getRestrictions();
Terrasoft.each(restrictions, function(restrictionConfig, restrictionName) {
var restrictionMenuItem = this.Ext.create("Terrasoft.BaseViewModel", {
values: {
Id: Terrasoft.utils.generateGUID(),
Caption: restrictionConfig.Caption,
Tag: restrictionName,
Click: { bindTo: "doNotUseCommunication" }
}
});
restrictionsMenuItems.addItem(restrictionMenuItem);
}, this);
return restrictionsItem;
},
/**
* ########## ####### ## #############.
* @protected
* @return {Object} ######, ####### ######## ######## ######## ## #############.
*/
getRestrictions: function() {
return {
"DoNotUseEmail": {
"RestrictCaption": this.get("Resources.Strings.DoNotUseEmail"),
"Caption": this.get("Resources.Strings.DoNotUseEmailCaption")
},
"DoNotUseCall": {
"RestrictCaption": this.get("Resources.Strings.DoNotUseCall"),
"Caption": this.get("Resources.Strings.DoNotUseCallCaption")
},
"DoNotUseSms": {
"RestrictCaption": this.get("Resources.Strings.DoNotUseSms"),
"Caption": this.get("Resources.Strings.DoNotUseSmsCaption")
},
"DoNotUseFax": {
"RestrictCaption": this.get("Resources.Strings.DoNotUseFax"),
"Caption": this.get("Resources.Strings.DoNotUseFaxCaption")
},
"DoNotUseMail": {
"RestrictCaption": this.get("Resources.Strings.DoNotUseMail"),
"Caption": this.get("Resources.Strings.DoNotUseMailCaption")
}
};
},
getButtonMenuItem: function(item) {
var name = item.get("Name");
var value = item.get("Id");
return Ext.create("Terrasoft.BaseViewModel", {
values: {
Id: value,
Caption: name,
Tag: value,
Click: { bindTo: "addItem" }
}
});
},
/**
* ########## ####### ####### #### ######## ## ############# ####### #####.
* @param {String} tag ##### ###### ####.
*/
doNotUseCommunication: function(tag) {
if (this.get("IsDetailCollapsed")) {
return;
}
var restrictions = this.getRestrictions();
var collection = this.get("RestrictionsCollection");
if (!collection.contains(tag)) {
collection.add(tag, this.getRestrictionsCollectionItem(tag, restrictions[tag].RestrictCaption));
this.changeCardPageButtonsVisibility(true);
}
},
/**
* ########## ##### ######### CheckBox-#.
*/
onCheckChange: function() {
this.setSaveDiscardButtonsVisible(true);
},
/**
* ########## ############ ######## "###### ## #############".
* @param {Object} itemConfig ###### ## ############ ######## # ContainerList.
* @param {Terrasoft.BaseViewModel} item #######, ### ######## ###### ########## ########## view.
*/
getRestrictionsItemConfig: function(itemConfig, item) {
//todo: lazy init
var config = ViewUtilities.getContainerConfig(
"restrictions-container", ["restrictions-container-class", "control-width-15"]);
itemConfig.config = config;
var checkBoxLabelConfig = {
className: "Terrasoft.Label",
caption: {bindTo: "Name"},
classes: {labelClass: ["detail-label-user-class"]},
inputId: item.get("Id") + "-el"
};
var checkBoxEditConfig = {
className: "Terrasoft.CheckBoxEdit",
id: item.get("Id"),
checked: {bindTo: "Value"},
checkedchanged: {bindTo: "onCheckChange"}
};
config.items.push(checkBoxLabelConfig, checkBoxEditConfig);
},
/**
* ########## ############ ######## ######## #####.
* @param {Object} itemConfig ###### ## ############ ######## # ContainerList.
* @private
*/
getItemViewConfig: function(itemConfig) {
var itemViewConfig = this.get("itemViewConfig");
if (itemViewConfig) {
itemConfig.config = itemViewConfig;
return;
}
var config = ViewUtilities.getContainerConfig("item-view",
["detail-edit-container-user-class", "control-width-15"]);
var typeMenuItems = [];
var communicationTypes = this.get("CommunicationTypes");
communicationTypes.each(function(item) {
var name = item.get("Name");
var value = item.get("Id");
typeMenuItems.push({
id: value,
caption: name,
tag: value,
click: { bindTo: "typeChanged" }
});
}, this);
var typeButtonConfig = {
id: "type",
className: "Terrasoft.Button",
classes: {
wrapperClass: ["label-wrap", "detail-type-btn-user-class"],
textClass: ["detail-type-btn-inner-user-class"]
},
style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
selectors: {wrapEl: "#type"},
caption: {
bindTo: "CommunicationType",
bindConfig: { converter: "typedStringValueConverter" }
},
menu: { items: typeMenuItems }
};
var deleteButtonConfig = {
id: "delete",
className: "Terrasoft.Button",
classes: {
wrapperClass: "detail-delete-btn-user-class",
imageClass: ["detail-delete-btn-image-user-class", "close-button-background-no-repeat"]
},
imageConfig: resources.localizableImages.DeleteIcon,
style: Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
selectors: {wrapEl: "#delete"},
click: {bindTo: "deleteItem"}
};
var editConfig = {
id: "edit",
className: "Terrasoft.TextEdit",
classes: {wrapClass: ["communication-lookup-img-user-class", "detail-edit-user-class"]},
rightIconClasses: ["lookup-edit-right-icon"],
value: { bindTo: "Number" },
readonly: {
bindTo: "CommunicationType",
bindConfig: { converter: "isSocialNetworkType" }
},
enableRightIcon: {
bindTo: "CommunicationType",
bindConfig: { converter: "isSocialNetworkType" }
},
rightIconClick: { bindTo: "onLookUpClick" }
};
config.items.push(typeButtonConfig, editConfig, deleteButtonConfig);
itemConfig.config = config;
this.set("itemViewConfig", config);
},
/**
* ####### ####### ######### "###### ## #############".
* @param {String} id ############# ####### ## #############.
* @param {String} name ### ####### ## #############.
* @return {Terrasoft.BaseViewModel} ###### ############# ########## ########.
*/
getRestrictionsCollectionItem: function(id, name) {
var collectionItem = Ext.create("Terrasoft.BaseViewModel", {
values: {
Name: name,
Id: id,
Value: true
}
});
collectionItem.sandbox = this.sandbox;
collectionItem.onCheckChange = this.onCheckChange;
collectionItem.setSaveDiscardButtonsVisible = this.setSaveDiscardButtonsVisible;
return collectionItem;
},
/**
* ######### ######### "###### ## #############".
*/
getEntityRestrictions: function() {
var restrictions = ["DoNotUseEmail", "DoNotUseCall", "DoNotUseSms", "DoNotUseFax", "DoNotUseMail"];
var select = this.Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "Contact"});
Terrasoft.each(restrictions, function(item) {
select.addColumn(item);
}, this);
select.getEntity(this.get("MasterRecordId"), function(response) {
if (!response.success) {
return;
}
var entity = response.entity;
var collection = this.get("RestrictionsCollection");
collection.clear();
Terrasoft.each(restrictions, function(restrictionName) {
if (entity.get(restrictionName)) {
var restrictionCaption = this.get("Resources.Strings." + restrictionName);
var restrictionsCollectionItem =
this.getRestrictionsCollectionItem(restrictionName, restrictionCaption);
collection.add(restrictionName, restrictionsCollectionItem);
}
}, this);
}, this);
},
/**
* ######### ######## #####.
* @private
* @param {Function} callback ####### ######### ######.
* @param {Terrasoft.BaseSchemaViewModel} scope ######## ########## ####### ######### ######.
*/
loadContainerListData: function(callback, scope) {
if (this.get("IsDetailCollapsed")) {
callback.call(scope);
return;
}
var collection = this.get("Collection");
collection.clear();
var select = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchema: this.entitySchema,
rowViewModelClassName: "Terrasoft.BaseCommunicationViewModel"
});
select.addColumn(this.primaryDisplayColumnName);
var createdOnColumn = select.addColumn("CreatedOn");
createdOnColumn.orderDirection = Terrasoft.OrderDirection.ASC;
select.addColumn("Id");
select.addColumn("CommunicationType");
select.addColumn("Position");
select.addColumn("SocialMediaId");
select.addColumn("SearchNumber");
select.addColumn("Contact");
select.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
"[CommunicationType:Id:CommunicationType].UseforContacts", true));
select.filters.addItem(this.get("Filter"));
select.getEntityCollection(function(response) {
if (response.success) {
var entityCollection = response.collection;
var communicationTypes = this.get("CommunicationTypes");
entityCollection.each(function(item) {
item.columns = this.columns;
item.sandbox = this.sandbox; // todo: ### ### ContainerList
item.set("CommunicationTypes", communicationTypes);
}, this);
collection.loadAll(entityCollection);
this.set("IsDataLoaded", true);
}
callback.call(scope);
}, this);
this.getEntityRestrictions();
},
/**
* ########## ###### "#########" # "######" ########, ## ####### ######### ######.
* @param {Boolean} isVisible #### ######, ## ###### "#########" # "######" ######## ############.
*/
setSaveDiscardButtonsVisible: function(isVisible) {
var options = ["ShowSaveButton", "ShowDiscardButton"];
Terrasoft.each(options, function(option) {
this.sandbox.publish("UpdateCardProperty", {
key: option,
value: isVisible
}, [this.sandbox.id]);
}, this);
},
/**
* ########## ###### "#########" # "######" ########, ## ####### ######### ######.
* @param {Boolean} isVisible #### ######, ## ###### "#########" # "######" ######## ############.
*/
changeCardPageButtonsVisibility: function(isVisible) {
this.setSaveDiscardButtonsVisible(isVisible);
},
/**
* ########## ######### ######## #####.
* @param {Terrasoft.BaseViewModel} item ########## #######.
* @param {Object} config ######## ######## ######### ########.
*/
onItemChanged: function(item, config) {
if (config && config.OperationType === "Delete") {
this.deleteItem(item);
}
this.changeCardPageButtonsVisibility(true);
},
/**
* ####### ######## ##### # ######.
* @param {Terrasoft.BaseViewModel} item ######## #####.
*/
deleteItem: function(item) {
var deletedItems = this.get("DeletedItems");
var collection = this.get("Collection");
collection.removeByKey(item.get("Id"));
deletedItems.addItem(item);
},
/**
* ######### ######## ##### ## ######.
* @private
* @param {String} tag ############# ######## #####.
* return {Terrasoft.BaseCommunicationViewModel} ######## #####.
*/
addItem: function(tag) {
if (this.get("IsDetailCollapsed")) {
return;
}
var communicationTypes = this.get("CommunicationTypes");
var communicationType = communicationTypes.get(tag);
var newItem = this.Ext.create("Terrasoft.BaseCommunicationViewModel", {
entitySchema: this.entitySchema,
columns: this.columns
});
newItem.set("CommunicationTypes", communicationTypes);
newItem.sandbox = this.sandbox;
newItem.setDefaultValues(function() {
newItem.set("CommunicationType", {
value: communicationType.get("Id"),
displayValue: communicationType.get("Name")
});
newItem.set("Contact", {
value: this.get("MasterRecordId")
});
var itemKey = newItem.get("Id");
var collection = this.get("Collection");
collection.add(itemKey, newItem);
this.changeCardPageButtonsVisibility(true);
}, this);
return newItem;
},
/**
* ######### ######## ###### ######.
* @private
*/
loadData: function(callback, scope) {
this.initCommunicationTypes(function() {
var toolsMenuItems = this.getToolsMenuItems();
var menuItems = this.get("ToolsMenuItems");
menuItems.clear();
menuItems.loadAll(toolsMenuItems);
this.loadContainerListData(callback, scope);
}, this);
},
/**
* ############## #########.
*/
initCollections: function() {
var collection = this.get("Collection");
collection.on("itemChanged", this.onItemChanged, this);
this.set("ToolsMenuItems", this.Ext.create("Terrasoft.BaseViewModelCollection"));
this.set("RestrictionsCollection", Ext.create("Terrasoft.BaseViewModelCollection"));
this.set("DeletedItems",
this.Ext.create("Terrasoft.BaseViewModelCollection", { entitySchema: this.entitySchema }));
},
initCommunicationTypes: function(callback, scope) {
var select = this.Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "CommunicationType"});
select.addColumn("Id");
select.addColumn("Name");
select.filters.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
"UseforContacts", true));
select.getEntityCollection(function(response) {
if (response.success) {
var entityCollection = response.collection;
this.set("CommunicationTypes", entityCollection);
}
callback.call(scope);
}, this);
},
subscribeSandboxEvents: function() {
this.callParent(arguments);
this.sandbox.subscribe("ResultSelectedRows", this.save, this, [this.sandbox.id]);
this.sandbox.subscribe("ValidateDetail", this.validateDetail, this, [this.sandbox.id]);
this.sandbox.subscribe("SaveDetail", this.save, this, [this.sandbox.id]);
},
validateDetail: function() {
var resultObject = {
success: this.validateItems()
};
if (!resultObject.success) {
resultObject.message = this.getValidationMessage();
}
this.sandbox.publish("DetailValidated", resultObject, [this.sandbox.id]);
return true;
},
getValidationMessage: function(message) {
var messageTemplate = this.get("Resources.Strings.ValidationErrorTemplate");
return this.Ext.String.format(messageTemplate,
this.get("Resources.Strings.DetailCaption") + (message ? ":" + message : ""));
},
/**
* ############## ######.
* @private
*/
init: function(callback, scope) {
this.callParent([function() {
this.initCollections();
this.loadData(callback, scope);
}, this]);
},
/**
* ########## ############# # ########### ######.
* @param {Boolean} isCollapsed ######### ## ######.
* @private
*/
onDetailCollapsedChanged: function(isCollapsed) {
this.callParent(arguments);
this.set("IsDetailCollapsed", isCollapsed);
if (!isCollapsed && !this.get("IsDataLoaded")) {
this.loadContainerListData(Terrasoft.emptyFn);
}
},
/**
* ######### ######.
* @private
*/
updateDetail: function() {
this.callParent(arguments);
var detailInfo = this.sandbox.publish("GetDetailInfo", null, [this.sandbox.id]) || {};
this.set("MasterRecordId", detailInfo.masterRecordId);
this.set("DetailColumnName", detailInfo.detailColumnName);
this.set("Filter", detailInfo.filter);
this.set("CardPageName", detailInfo.cardPageName);
this.set("SchemaName", detailInfo.schemaName);
this.set("DefaultValues", detailInfo.defaultValues);
this.set("IsDataLoaded", false);
this.loadContainerListData(Terrasoft.emptyFn);
var deletedItems = this.get("DeletedItems");
deletedItems.clear();
},
/**
* ######### ######### ### ######## ## ############# ####### #####.
*/
getSaveRestrictionsQuery: function() {
var collection = this.get("RestrictionsCollection");
if (collection.isEmpty()) {
return null;
}
var update = Ext.create("Terrasoft.UpdateQuery", { rootSchemaName: "Contact" });
update.enablePrimaryColumnFilter(this.get("MasterRecordId"));
collection.each(function(item) {
update.setParameterValue(item.get("Id"), item.get("Value"), Terrasoft.DataValueType.BOOLEAN);
}, this);
return update;
},
/**
* ####### ######## #####.
*/
getDeleteItemsQueries: function() {
var deletedItems = this.get("DeletedItems");
var deleteQueries = [];
deletedItems.each(function(item) {
var primaryColumnValue = item.get(item.primaryColumnName);
var deleteQuery = item.getDeleteQuery();
deleteQuery.enablePrimaryColumnFilter(primaryColumnValue);
deleteQueries.push(deleteQuery);
}, this);
return deleteQueries;
},
/**
* ######### ########## # ##### ######## #####.
*/
getSaveItemsQueries: function() {
var collection = this.get("Collection");
var saveQueries = [];
collection.each(function(item) {
if (item.isChanged() && item.validate()) {
saveQueries.push(item.getSaveQuery());
}
}, this);
return saveQueries;
},
validateItems: function() {
var collection = this.get("Collection");
var result = true;
collection.each(function(item) {
return (result = !item.isChanged() || item.validate());
}, this);
return result;
},
/**
* ######### ######### ######. ########### ### ####### ## ###### ######### ########, ####### ########
* ######.
*/
save: function() {
var restrictionsQuery = this.getSaveRestrictionsQuery();
var queries = restrictionsQuery ? [restrictionsQuery] : [];
var saveQueries = this.getSaveItemsQueries();
queries = queries.concat(saveQueries);
var deleteQueries = this.getDeleteItemsQueries();
queries = queries.concat(deleteQueries);
if (Ext.isEmpty(queries)) {
this.publishSaveResponse({
success: true
});
return true;
}
var batchQuery = Ext.create("Terrasoft.BatchQuery");
Terrasoft.each(queries, function(query) {
batchQuery.add(query);
}, this);
batchQuery.execute(this.onSaved, this);
return true;
},
onSaved: function(response) {
var message = response.ResponseStatus && response.ResponseStatus.Message;
if (response.success && !message) {
var deletedItems = this.get("DeletedItems");
var collection = this.get("Collection");
collection.each(function(item) {
item.isNew = false;
item.changedValues = null;
}, this);
deletedItems.clear();
this.publishSaveResponse(response);
} else {
this.publishSaveResponse({
success: false,
message: this.getValidationMessage(message)
});
}
},
publishSaveResponse: function(config) {
this.sandbox.publish("DetailSaved", config, [this.sandbox.id]);
}
},
diff: /**SCHEMA_DIFF*/[
{
"operation": "merge",
"name": "Detail",
"values": {
caption: {bindTo: "Resources.Strings.DetailCaption"}
}
},
{
"operation": "insert",
"name": "CommunicationsContainer",
"parentName": "Detail",
"propertyName": "items",
"values":
{
generator: "ConfigurationItemGenerator.generateContainerList",
idProperty: "Id",
collection: "Collection",
observableRowNumber: 10,
onGetItemConfig: "getItemViewConfig"
}
},
{
"operation": "insert",
"name": "RestrictionsContainer",
"parentName": "Detail",
"propertyName": "items",
"values":
{
generator: "ConfigurationItemGenerator.generateContainerList",
idProperty: "Id",
collection: "RestrictionsCollection",
observableRowNumber: 10,
onGetItemConfig: "getRestrictionsItemConfig"
}
},
{
"operation": "insert",
"name": "AddButton",
"parentName": "Detail",
"propertyName": "tools",
"values": {
visible: {bindTo: "getToolsVisible"},
itemType: Terrasoft.ViewItemType.BUTTON,
"caption": {"bindTo": "Resources.Strings.AddButtonCaption"},
controlConfig: {
menu: {
items: {bindTo: "ToolsMenuItems"}
}
}
}
}
]/**SCHEMA_DIFF*/
};
});
Kindly help us resolve this as early as possible.
Thanks in advance
Like
Hello pravveen!
Unfortunately it`s hard to tell why exactly your code is not applying. Basically, to add some custom fields you should check how other field, base fields, are added to the page and do it in the similar way.
Also, if you will have any further questions specify more accurately what exactly you are trying to achieve.
Best regards,
Alex