Вопрос

Добавление дополнительного фильтра на страницу выбора из справочника

Здравствуйте.

Помогите пожалуйста с решением задачи: "При выборе значения для справочного поля контакта, нужно добавить поле «Средства связи». При вводе значения в поле, система будет фильтровать контакты по детали средства связи"



Насколько я понимаю, нужно создать копию окна базового выбора из справочника (если не ошибаюсь это LookupPageV2), добавить туда требуемый функционал.

На странице редактирования перехватывать нажатие на лупу в поле контакт и вместо базового, открывать свое окно.



Есть вопросы:

1. Что бы сделать "копию" LookupPageV2, достаточно повторить LookupPageV2, LookupPageViewGenerator и LookupPageViewModelGenerator?

2. Как перехватить открытие базового окна выбора из справочника и открывать свое "UsrLookupPageV2"?

3. Возможно есть более простое\оптимальное решение данной задачи?

Нравится

1 комментарий

Добрый день.

  1. Нужно сделать override класса LookupPage, и заместить LookupPageViewGenerator, LookupPageViewModelGenerator.
  2. Через BootstrapModulesV

Создаете модуль

define("UsrLookupPage", ["LookupPage"],
 
    function() {
 
        Ext.define("Terrasoft.LookupPageOverrided", {
 
            override: "Terrasoft.LookupPage",
 
 
 
method: function() {
 
                               // code                }
 
        });
 
    }
 
);

Замещаете схему BootstrapModulesV2.

define("BootstrapModulesV2", ["UsrLookupPage"], function() {
 
                return {};
 
});
  1. К сожалению, нет.

 

Добавлю, что LookupPageViewGenerator и LookupPageViewModelGenerator нельзя изменить частично, его нужно полностью переписать, т.е. вы должны будете продублировать весь функционал и внести изменение там, где нужно. Но при обновлении что-то может сломаться, так как базовый модуль (возможно обновленный) не будет загружен.

Показать все комментарии