You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Реализовать пример на тестовом стенде, который позволит валидировать данные, проверяя их на уникальность по сочетанию нескольких полей (например, фио и дата рождения) на стороне сервера.
Функциональные требования
На странице стенда "Примеры интеграции -> Формы редактирования -> Валидация" добавить кастомный валидатор, который будет вызывать на сервере проверку уникальности по сочетанию полей "Текст" и "Дата".
В случае ошибки поля должны подсвечиваться, текст ошибки должен отображаться рядом с каждым из полей и в validation summary в верху страницы (стандартное поведение для валидаторов).
Требования к реализации
На сервере проверки должны быть реализованы в бизнес-сервере и вынесены в отдельный метод. В случае наличия ошибки валидации должно выбрасываться соответствующее исключение.
Для вызова метода с проверками из бизнес-сервера должна быть также создана отдельная OData-функция, которую можно будет вызывать из кастомного валидатора на клиенте (придется сделать таким образом, так как ODataService на данный момент ошибки отдает не в формате JSON API и применить стандартный валидатор для обработки ошибок из эмберной модели, например, ds-error, пока не представляется возможным).
На клиенте в ember-flexberry@2.х валидация реализуется средствами аддона ember-validations, а в версии ember-flexberry@3.х - средствами аддона ember-cp-validations.
Исходный код
Валидация по собственным полям модели для соответствующего примера на стенде описывается в этой модели. Доработку валидаторов следует вести в ней.
Проект на GitHub:https://github.com/Flexberry/ember-flexberry Ветка:develop (для версии ember-flexberry@2.x) и feature-ember-update (для версии ember-flexberry@3.x) Проект c бэкендом и скриптами на GitHub:https://github.com/Flexberry/FlexberryEmberTestStand.ODataBackend
Документация
Необходимо добавить соответствующие описания в следующие статьи:
Тут можно посмотреть пример реализации кастомного валидатора, который проверяет на сервере уникальность значения поля с использованием серверного вызова.
Цель
Реализовать пример на тестовом стенде, который позволит валидировать данные, проверяя их на уникальность по сочетанию нескольких полей (например, фио и дата рождения) на стороне сервера.
Функциональные требования
Требования к реализации
На сервере проверки должны быть реализованы в бизнес-сервере и вынесены в отдельный метод. В случае наличия ошибки валидации должно выбрасываться соответствующее исключение.
Для вызова метода с проверками из бизнес-сервера должна быть также создана отдельная OData-функция, которую можно будет вызывать из кастомного валидатора на клиенте (придется сделать таким образом, так как ODataService на данный момент ошибки отдает не в формате JSON API и применить стандартный валидатор для обработки ошибок из эмберной модели, например, ds-error, пока не представляется возможным).
На клиенте в ember-flexberry@2.х валидация реализуется средствами аддона ember-validations, а в версии ember-flexberry@3.х - средствами аддона ember-cp-validations.
Исходный код
Валидация по собственным полям модели для соответствующего примера на стенде описывается в этой модели. Доработку валидаторов следует вести в ней.
Проект на GitHub:
https://github.com/Flexberry/ember-flexberry
Ветка:
develop
(для версии ember-flexberry@2.x) иfeature-ember-update
(для версии ember-flexberry@3.x)Проект c бэкендом и скриптами на GitHub:
https://github.com/Flexberry/FlexberryEmberTestStand.ODataBackend
Документация
Необходимо добавить соответствующие описания в следующие статьи:
Тесты
Необходимо дополнить этот тестовый случай.
Аналоги, примеры реализации
Тут можно посмотреть пример реализации кастомного валидатора, который проверяет на сервере уникальность значения поля с использованием серверного вызова.
Полезные ссылки, скриншоты
Соответствующий пример на тестовом стенде:
The text was updated successfully, but these errors were encountered: