Skip to content
Snippets Groups Projects
Commit 6c26761b authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Actions дополнено описание

parent 062d090c
No related branches found
No related tags found
1 merge request!18Расширение Actions для анонсов
This commit is part of merge request !18. Comments created here will be created in the context of that merge request.
...@@ -151,11 +151,32 @@ message ActionResponse { ...@@ -151,11 +151,32 @@ message ActionResponse {
} }
State state = 10000; // Состояние расширение State state = 10000; // Состояние расширение
string msg = 10100; // Сообщение о выполнении действия string msg = 10100; // Сообщение о выполнении действия
string title = 10110; // Текст для отображения в интерфейсе
string html = 10120; // HTML для отображения в интерфейсе (альтернатива msg)
string md = 10130; // HTML для отображения в интерфейсе (альтернатива msg)
string image = 10140; // Изображение для отображения в интерфейсе (шапке окна)
string error = 10200; // Сообщение в случае ошибки string error = 10200; // Сообщение в случае ошибки
enum Target {
MODAL = 0; // Открыть во всплывающем окне
WIDE_MODAL = 1; // Открыть во всплывающем широком окне (вся страница)
WORKSPACE = 2; // Открыть в рабочей области (без меню)
NOTIFICATION = 3; // Открыть в виде уведомления
DRAWER = 4; // Открыть в виде выдвижной панели
NEW_WINDOW = 100; // Открыть в новом окне
NONE = 1000; // Без отображения результата
}
// Как открывать результат выполнения действия
// В случае ответа в виде HTML/MD, открывать аналогично WIDE_MODAL, или брать значние из заголовка 'X-Action-Target'
Target target = 10210;
repeated Action next = 10300; // Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя repeated Action next = 10300; // Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя
map<string,string>metadata = 10400; // Метаданные запроса map<string,string>metadata = 10400; // Метаданные запроса
repeated content.references.Reference refs = 10320; // Ссылки на записи (назначение ссылок зависит от действия и расширения) repeated content.references.Reference refs = 10320; // Ссылки на записи (назначение ссылок зависит от действия и расширения)
} }
...@@ -186,10 +207,52 @@ message Action { ...@@ -186,10 +207,52 @@ message Action {
ITEMS = 5; // Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей. ITEMS = 5; // Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей.
REVISION = 6; // Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется. REVISION = 6; // Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется.
CREATE = 7; // Действие создание записи (требуется передача space_id, env_id, collection_id). CREATE = 7; // Действие создание записи (требуется передача space_id, env_id, collection_id).
MAIN_MENU = 10000; // Действие отображается в главном меню (требуется передача space_id, env_id)
MAIN_MENU_BOTTOM = 10010; // Действие отображается в главном меню внизу (требуется передача space_id, env_id)
}
enum ActionType {
REQUEST = 0; // Действие выполняет запрос на сервер
NAVIGATION = 1; // Действие переносит пользователя в другую часть интерфейса
} }
ActionType action_type = 9000; // Тип действия
string extension = 10000; // Расширение string extension = 10000; // Расширение
string action = 10100; // Идентификатор действия string action = 10100; // Идентификатор действия
// URL для запроса действия (альтернатива `extension` и `action`). В случае если параметр
// `action_url` указан, то интерфейс не запрашивает расширение и действие, а выполняет запрос по указанному URL используя
// указанный протокол. В случае если указан `action_url` то `extension` и `action` игнорируются.
//
// Для форматов HTML/MD относительные ссылки в тексте преобразуются в абсолютные используя `action_url` в качестве
// базового URL.
//
// Пример: `https://example.com/api/v1/action` - будет выполнен запрос HTTP по указанному URL.
// Сервер может вернуть ответ в формате JSON или HTML/MD. Дальнейшие действия определяется оп заголовку ответа
// `Content-Type`:
// - `application/json` - ответ в формате JSON. Структура ответа соответствует `ActionResponse` и интерпретируется
// тем же способом что и ответ от GRPC.
// - `text/html` - ответ в формате HTML. Интерфейс отображает ответ в виде сообщения.
// - `text/markdown` - ответ в формате MD. Интерфейс отображает ответ в виде сообщения.
//
// Пример: `grpc://example.com/api/v1/action` - будет выполнен запрос GRPC по указанному URL.
// Сервер может вернуть ответ в `ActionResponse`.
//
// action_type == "NAVIGATION" - Строка шаблон для перехода в интерфейсе
// При указании полного адреса (http(s)://xyz), URL открывается в новом окне браузера
// Относительный адрес в пользовательском интерфейсе переносит пользователя в соответствующий раздел без перезагрузки приложения
//
// Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе (Пример: `/spaces/:spaceId/envs/:envId/cols/:colId`)
// Перечень переменных для подстановки:
// - :spaceId
// - :envId
// - :colId
// - :itemId
//
string action_url = 10110;
string name = 10200; // Название действия для отображения в интерфейсе (пункт меню, кнопка). string name = 10200; // Название действия для отображения в интерфейсе (пункт меню, кнопка).
string description = 10210; // Описание действия для отображения в интерфейсе string description = 10210; // Описание действия для отображения в интерфейсе
string icon = 10220; // Название иконки для отображения действия в интерфейсе string icon = 10220; // Название иконки для отображения действия в интерфейсе
...@@ -209,6 +272,8 @@ message Action { ...@@ -209,6 +272,8 @@ message Action {
string params_collection = 10330; string params_collection = 10330;
ActionRequest request = 10400; // Параметры запроса (используется в случае `ActionResponse.next`) ActionRequest request = 10400; // Параметры запроса (используется в случае `ActionResponse.next`)
// DEPRECATED: Используйте `action_url` вместо `navigation_route`
bool navigation_action = 10500; // Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер bool navigation_action = 10500; // Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер
// navigation_route - Строка шаблон для перехода в интерфейсе // navigation_route - Строка шаблон для перехода в интерфейсе
...@@ -222,5 +287,16 @@ message Action { ...@@ -222,5 +287,16 @@ message Action {
// - :colId // - :colId
// - :itemId // - :itemId
// //
// DEPRECATED: Используйте `action_type == "NAVIGATION"`
string navigation_route = 10510; string navigation_route = 10510;
enum Autorun {
NONE = 0; // Действие не выполняется автоматически
ONCE_PER_USER = 1; // Действие выполняется при старте приложения
PER_USER_SESSION = 2; // Действие выполняется при старте приложения и при каждом перезапуске приложения
ONCE_SPACE = 3; // Действие выполняется при старте приложения и при каждом перезапуске приложения
}
Autorun autorun = 10520; // Параметр указывающий что действие выполняется автоматически
bool confirm = 10530; // Параметр указывающий что действие требует подтверждения пользователя
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment