Возникла необходимость редактирования детали "Средства связи" в разделе контакты. Через мастер деталей это невозможно, т.к деталь неизменяема. Остается вариант с изменением исходного кода. Как можно заместить/редактировать необходимый модуль? В частности необходимо изменить код (или заместить на другой модуль) в модуле ContactCommunicationDetailV2.
Нравится
Доброе утро.
Как показывает практика, в таких случаях лучше реализовать свою деталь и подключить её вместо базовой.
Реализовать новую деталь можете через мастер, а вносить уже все необходимые в неё изменения в конфигурации.
Алла Савельева,
Спасибо за ответ! И все таки: каким образом будет грамотнее заменить существующий клиентский модуль на кастомный? С сохранением ключевых зависимостей, но изменением кода.
Тимур Макаев,
Возможны оба варианта: иногда нужно сохранить ключевые зависимости, иногда - нет.
Также возможен вариант, когда лучшим решением будет сделать свою таблицу и на её основании разрабатывать требуемую логику.
А чтобы отобразить уже внесенные данные, их можно перенести в новую таблицу с помощью запросов на уровне базы данных.
Всё зависит от того, насколько сильно будет изменена базовая логика.
Создаем новый модуль, например:
define("UsrBaseCommunicationViewModel", ["ext-base",
"terrasoft", "UsrBaseCommunicationViewModelResources",
"BaseCommunicationViewModel",],
function(Ext, Terrasoft, resources, BaseCommunicationViewModel) {
Ext.define("Terrasoft.configuration.UsrBaseCommunicationViewModel", {
extend: "Terrasoft.BaseCommunicationViewModel",
alternateClassName: "Terrasoft.UsrBaseCommunicationViewModel",
methodName: function(value) { //метод, который нужно заместить в базовой логике
},
});
});Подключаем этот модуль в базовую деталь (создав замещающую страницу):
define("BaseCommunicationDetail", ["UsrBaseCommunicationViewModel"], function(UsrBaseCommunicationViewModel) {
return {
attributes: {
},
methods: {
init: function(callback, scope) {
this.set("BaseCommunicationViewModelClassName", "Terrasoft.UsrBaseCommunicationViewModel");
this.callParent(arguments);
},
},
diff: /**SCHEMA_DIFF*/[
]/**SCHEMA_DIFF*/
};
});Естественно делаем все на свой страх и риск.