Добавление дополнительного фильтра на страницу выбора из справочника
Здравствуйте.
Помогите пожалуйста с решением задачи: "При выборе значения для справочного поля контакта, нужно добавить поле «Средства связи». При вводе значения в поле, система будет фильтровать контакты по детали средства связи"
Насколько я понимаю, нужно создать копию окна базового выбора из справочника (если не ошибаюсь это LookupPageV2), добавить туда требуемый функционал.
На странице редактирования перехватывать нажатие на лупу в поле контакт и вместо базового, открывать свое окно.
Есть вопросы:
1. Что бы сделать "копию" LookupPageV2, достаточно повторить LookupPageV2, LookupPageViewGenerator и LookupPageViewModelGenerator?
2. Как перехватить открытие базового окна выбора из справочника и открывать свое "UsrLookupPageV2"?
3. Возможно есть более простое\оптимальное решение данной задачи?
Нравится
Добрый день.
- Нужно сделать override класса LookupPage, и заместить LookupPageViewGenerator, LookupPageViewModelGenerator.
- Через BootstrapModulesV
Создаете модуль
define("UsrLookupPage", ["LookupPage"],
function() {
Ext.define("Terrasoft.LookupPageOverrided", {
override: "Terrasoft.LookupPage",
method: function() {
// code }
});
}
);Замещаете схему BootstrapModulesV2.
define("BootstrapModulesV2", ["UsrLookupPage"], function() {
return {};
});- К сожалению, нет.
Добавлю, что LookupPageViewGenerator и LookupPageViewModelGenerator нельзя изменить частично, его нужно полностью переписать, т.е. вы должны будете продублировать весь функционал и внести изменение там, где нужно. Но при обновлении что-то может сломаться, так как базовый модуль (возможно обновленный) не будет загружен.