Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Добавление диалогов или информационных сообщений при сохранении НР-объекта.
Если в сценарии сохранения объекта требуется добавить диалог(и), то нужно разработать класс-стратегию StrategyRESTUpdate.
В стратегии в result нужно передать ресурс диалога через метод setDialog. В этом случае клиент отобразит диалог и сохранения объекта не произойдет.
Схема диалога должна наследовать со схемы DialogForSave.
При нажатии на кнопку submit диалога клиент повторно отправляет запрос на сохранение объекта. В этом случае в метод стратегии внутри ресурса сохраняемого объекта в элементе $clientContext придет ресурс диалога с клиента с введенными пользователем данными.
В схеме сохраняемого объекта должно быть предусмотрено свойство с фиксированным именем $clientContext (см. пример схема SOEmployee). Схема $clientContext соответствовать структуре ClientContext (см. подробнее Передача параметров операции) в части задания элемента data.resource. Схема диалога задается в data.resource.
Каждый раз по кнопке submit диалога клиент будет возвращать внутри ресурса сохраняемого объекта в элементе $clientContext структуру, в поле data.resource которой будет ресурс диалога с клиента.
Далее при повторных попытках сохранить объект из диалога по кнопке submit, в ресурс диалога можно передавать порядковый номер диалога (если диалогов более одного) для последующей обработки в стратегии.
Если в диалог не передать кнопку submit, то пользователь не сможет вызвать операцию сохранения повторно. По кнопке cancel диалог закрывается.
См. пример в объекте "Справочник должностей". Схема PositionClassifier. В схеме PositionClassifier св. $clientContext. Через св. $clientContext идет обмен ресурсом диалога между клиентом и сервером при сохранении. См. обработчик сохранения UpdateBeforePositionClassifierRESTStrategy.
Правило разработки класса-стратегии получения черновика объекта.
- Для разработки класса-стратегии получения черновика используется интерфейс StrategyCreateDraft .
- Метод класса-стратегия должен вернуть в объект события результат CreateFormActionResult запроса на получение черновика объекта. Это может быть сам черновик или ресурс диалога.
- Схема диалога должна удовлетворять одному из требований:
- Схема диалога должна наследовать со схемы Dialog.
- В ресурсе диалога должен быть реквизит mode со значением «dialog». В схеме диалога должен быть предусмотрен реквизит mode с типом String.
- Данные диалога передаются с клиента на сервер по кнопке submit (см. Термины). Ресурс диалога приходит в параметре params объекта события TunableObjectCreateDraftEvent (см. п.7 Передача клиентского контекста). Таким образом, можно добавить интерактив из нескольких диалогов в клиентский сценарий получения черновика объекта.
- По кнопке cancel диалога сценарий получения черновика прекращается.
Свойства страницы | ||||||||
---|---|---|---|---|---|---|---|---|
|