openLookup (отключение кнопки закрытия "крестика" окна выбора)

В типовом окне выбора как и положено у модальных окон - присутствует элемент управления модальным окном "закрыть".
:smile: в простонародии: "крестик"

Вопрос: Существует ли какая либо конфигурационная настройка на этот счет для вызова окна через openLookup(config)
Т.к. в нашем случае бизнес-логика в идеале предусматривает безусловную реакцию пользователя на предложенный выбор, хотелось бы вместо обработки результатов, просто исключить у пользователя "далее-далее-крестик-крестик-готовщика" возможность закрыть это окно.

PS: Отключение кнопки закрытия окна, тоже не silver bullet т.к. пользователь просто может нажать "выбрать" - ничего на самом деле не выделив. И как сопутствующий вопрос - можно ли регулировать это поведение в типовом окне выбора, таким образом чтобы кнопка "Выбрать" например была не активной пока пользователь не произведет выбор, или например генерировала уведомление об обязательности выбора значения ?

Нравится

3 комментария

Здравствуйте,
Вы конечно можете написать глобальный css стиль который скроет крестик, или переписать LookupPageViewGenerator для блокировки кнопки выбор. Но логичнее наверно прописать обязательность заполнения лукапного поля, на странице, на которой данный лукап и выбирается. Безусловно или по условию: https://academy.terrasoft.ru/documents/technic-sdk/7-8/pravilo-bindpara…

Обязательность поля для заполнения в данном случае не очень подходит, вернее базовая логика обработки "не заполненности" обязательных полей- т.к. в случае обязательности поля - пользователю выводится сообщение о том, что не заполнено одно или несколько обязательных полей, перечисляются их наименования, и сохранение карточки прерывается, после чего карточка остается в режиме ввода данных т.е. подразумевается что пользователь найдет указанные в сообщении поля, заполнит их и нажмет "Сохранить".
Во-первых работать с карточкой невозможно пока не закроешь оповещение в котором указаны поля для заполнения. (А стало быть пользователю надо их запомнить или записать :cry: в идеале такие уведомления надо делать интегрированными в UI а не модальной нотификацией, так как сделаны предупреждения и ошибки в конфигураторе например, текст которых остается видимым и с интерфейсом можно продолжить работу)
Во-вторых в некоторых карточках очень перегруженный интерфейс и поиск самого поля которое необходимо заполнить во множестве вкладок и т.д. - отнимает время у сотрудника (если это горячая линия, то эти 10-20 секунд в конечном итоге превращаются в минуты которые никому из клиентов ждать не хочется)
В третьих, если у Вас бизнес-логика подразумевает фиксацию совершения какого либо действия во времени, то в данном случае Вам потребуется вводить дополнительную проверку в логику сохранения карточки (т.к. фактически заполнение произойдет когда-то потом а не по нажаию кнопки) а не совершения какого либо действия чтобы отметить время совершения.
Ну и в конце концов - это просто удобно для пользователя, чтобы система предлагала ему выбор автоматически, если он что-то забыл.

Добрый день.

Магической системной настройки, убирающей отображение кнопки "закрыть" нету, необходимо переписывать логику самого модального окна. Вам стоит обратить внимание на 3 схемы: LookupPage, LookupPageViewGenerator и LookupPageViewModelGenerator. Для удаления кнопки закрыть - Вам стоит смотреть в сторону удаления кода генерации closeIconContainer в LookupPageViewGenerator. Для изменения логики кнопки "Выбрать" - переопределить конфиг для SelectButton в LookupPageViewGenerator, а также добавить логику в LookupPageViewModelGenerator.

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