7.11

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

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

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



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

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