Добавление дополнительного фильтра на страницу выбора из справочника
Здравствуйте.
Помогите пожалуйста с решением задачи: "При выборе значения для справочного поля контакта, нужно добавить поле «Средства связи». При вводе значения в поле, система будет фильтровать контакты по детали средства связи"
Насколько я понимаю, нужно создать копию окна базового выбора из справочника (если не ошибаюсь это 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 нельзя изменить частично, его нужно полностью переписать, т.е. вы должны будете продублировать весь функционал и внести изменение там, где нужно. Но при обновлении что-то может сломаться, так как базовый модуль (возможно обновленный) не будет загружен.