Добрый день!
Бизнес-кейс:
Необходимо у контакта делать пометки к средствам связи. Например, "конкретный телефон - телефон бабушки" или "по этому номеру не звонить после 21.00".
Как возможно добавить комментарий к каждому средству связи в детали communication options стандартным функционалом (не отказываясь от этой детали)?
Спасибо!
Нравится
Деталь «Средства связи является» не простой деталью так как она формируется динамически и кардинально отличается от обычных деталей. Мы не рекомендуем вносить исправления в данную деталь, так как Вы можете нарушить логику ее заполнения.
Для внесения изменений в деталь средства связи Вам необходимо будет заместить объект "ContactCommunication" и добавить текстовое поле с произвольным названием. Расширить страницу ContactCommunicationDetailV2, переопределить метод getItemViewConfig.
Ниже, как пример (в случае если новое поле назвать Comment). Изменения выделены комментариями. Можете также попробовать сделать по другому с вызовом родительского метода.
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" }
};
//Начало исправления
var commentConfig = {
id: "comment",
className: "Terrasoft.TextEdit",
value: { bindTo: "Comment" },
};
//Завершение исправления
config.items.push(typeButtonConfig, editConfig, deleteButtonConfig, commentConfig); //добавляем commentConfig
itemConfig.config = config;
this.set("itemViewConfig", config);
},