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