Навигация в заказ по инициативе плагина (продолжение)
[v8
]
В API V8 сделали второй шаг к возможности показывать диалоговые окна и навигироваться в заказ по инициативе плагина с разных экранов.
В одной из предыдущих новостей мы рассказали о способах навигации в заказ по плагинным кнопкам или с экрана редактирования заказа. Теперь такая навигация поддерживается и с других экранов:
IAdditionalOperationsScreen— ДОПIOpenOrdersScreen— Открытые заказыIClosedOrdersScreen— Закрытые заказыIDocumentsScreen— ДокументыIPreliminaryOrdersScreen— ПредзаказыISectionSchemaScreen— Схема залаIOrdersByTablesScreen— Все столыIOrdersByWaiterScreen— По официантамITabsByWaiterScreen— ТабыIDeliveriesScreen— ДоставкиIReservesScreen— Банкеты и резервы
Чтобы понимать, что мы находимся на экране, который поддерживает работу с UI, нужно подписаться на событие
ScreenChanged.
Если экран, пришедший в событие, является одним из перечисленных выше экранов, можно вызвать новый метод
TryExecuteUiOperation,
в который нужно передать ссылку на callback, который iikoFront вызовет, как только появится такая возможность.
При бездействии это произойдёт немедленно, а если в этот момент выполняются другие операции, то callback будет вызван сразу по их завершении.
В любом случае, метод TryExecuteUiOperation вернёт управление после вызова callback’а.
Если callback выбросит исключение, оно вылетит из TryExecuteUiOperation.
В случае, если в момент вызова TryExecuteUiOperation выполнялась другая операция, которая в итоге привела к выходу с текущего экрана,
callback не удастся вызвать ни сразу, ни отложенно, а метод TryExecuteUiOperation сгенерирует исключение OperationCanceledException.
На время выполнения callback’а показывается прогрессбар. В callback будет передан
IViewManager
с возможностью показывать диалоговые окна и
менять текст на прогрессбаре,
а также с возможностью
навигироваться в заказ.
Навигация возможна только в открытый заказ. При вызове метода проверяются соответствующие права текущего залогиненного на фронте сотрудника. Такие же, какие проверяются при навигации путем нажатия кнопок на самом фронте. Навигация в заказ доставки пока невозможна.