diff --git a/proto/extensions/extension.proto b/proto/extensions/extension.proto index ba82ecd66987a97deee3281cd60961e1753c562f..59a43250bc7461959b08b25b0892547a803b0347 100644 --- a/proto/extensions/extension.proto +++ b/proto/extensions/extension.proto @@ -141,6 +141,18 @@ message ActionRequest { content.references.Reference params = 11020; } +// Target - определяет как открывать результат выполнения действия РІ пользовательском интерфейсе +enum Target { + DEFAULT = 0; // РџРѕ умолчанию (если нет РґСЂСѓРіРёС… условий, то MODAL) + MODAL = 1; // Открывать РІ модальном РѕРєРЅРµ + WIDE = 2; // Открывать РІ широком модальном РѕРєРЅРµ + MAIN = 4; // Открывать РІ главной рабочей области (часть без меню) + DRAWER = 5; // Открывать РІ Р±РѕРєРѕРІРѕР№ панели + NOTIFICATION = 6; // Открывать РІРёРґРµ всплывающего уведомлении + BLANK = 7; // Открывать РІ РЅРѕРІРѕР№ вкладке + NONE = 100; // РќРµ отображать результат +} + message ActionResponse { enum State { DONE = 0; // Запрос завершен @@ -150,9 +162,19 @@ message ActionResponse { PARAMETERS_REQUIRED = 4; // Требуются дополнительные данные для выполнения запроса } + enum Format { + PLAIN = 0; + HTML = 1; + MARKDOWN = 2; + } + State state = 10000; // Состояние расширение + Target target = 10010; // Как открывать результат выполнения действия РІ пользовательском интерфейсе (переопределяет значение РІ Action) + Format format = 10050; // Формат полей msg Рё error string msg = 10100; // Сообщение Рѕ выполнении действия - string error = 10200; // Сообщение РІ случае ошибки + string title = 10110; // Текст для отображения РІ интерфейсе + string image = 10140; // Рзображение для отображения РІ интерфейсе (шапке РѕРєРЅР°) + string error = 10200; // Сообщение РІ случае ошибки (дополнительно Рє msg) repeated Action next = 10300; // Следующие возможные действия. Рнтерфейс отображает как варианты дальнейших действий пользователя map<string,string>metadata = 10400; // Метаданные запроса repeated content.references.Reference refs = 10320; // Ссылки РЅР° записи (назначение ссылок зависит РѕС‚ действия Рё расширения) @@ -186,16 +208,47 @@ message Action { ITEMS = 5; // Действие связано СЃ несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается РЅР° экране СЃРїРёСЃРєР° записей. REVISION = 6; // Действие связано СЃ ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). РќР° данный момент РЅРµ используется. CREATE = 7; // Действие создание записи (требуется передача space_id, env_id, collection_id). + MAIN_MENU = 10000; // Действие отображается РІ главном меню (требуется передача space_id, env_id) + MAIN_MENU_BOTTOM = 10010; // Действие отображается РІ главном меню РІРЅРёР·Сѓ (требуется передача space_id, env_id) } + // DEPRECATED: Рспользуйте `action` РІ формате URI string extension = 10000; // Расширение - string action = 10100; // Рдентификатор действия + + // Рдентификатор действия (РІ формате URI) + // Варианты использования: + // - пустой - никаких действий РЅРµ выполняется + // - `action_id` - простое действие (если установлено расширение, то РѕРЅРѕ используется) + // - `grpc:///extension_id/action_id` - полное действие СЃ указанием расширения + // - `https://host/path` - действие РїРѕ HTTP(S) + // - `ui:///path` - действие РІ интерфейсе + // - `/path` - действие РІ интерфейсе + // + // Пример: `https://example.com/api/v1/action` - будет выполнен запрос HTTP РїРѕ указанному URL. + // Сервер может вернуть ответ РІ формате JSON или HTML/MD. Дальнейшие действия определяется РѕРї заголовку ответа + // `Content-Type`: + // - `application/json` - ответ РІ формате JSON. Структура ответа соответствует `ActionResponse` Рё интерпретируется + // тем Р¶Рµ СЃРїРѕСЃРѕР±РѕРј что Рё ответ РѕС‚ GRPC. + // - `text/html` - ответ РІ формате HTML. Рнтерфейс отображает ответ РІ РІРёРґРµ сообщения РІ IFrame + // - `text/markdown` - ответ РІ формате MD. Рнтерфейс отображает ответ РІ РІРёРґРµ сообщения. + // + // Переменные `:var` заменяются РЅР° текуще значение РІ пользовательском интерфейсе + // Перечень переменных для подстановки: + // - :spaceId + // - :envId + // - :colId + // - :itemId + // + // Пример: `ui:///spaces/:spaceId/envs/:envId/cols/:colId` - будет выполнено действие РІ интерфейсе. + string action = 10100; + Target target = 10110; // как должен отображаться результат действия + string parent = 10120; // Рдентификатор родительского действия (для отображения РІ меню) string name = 10200; // Название действия для отображения РІ интерфейсе (РїСѓРЅРєС‚ меню, РєРЅРѕРїРєР°). string description = 10210; // Описание действия для отображения РІ интерфейсе string icon = 10220; // Название РёРєРѕРЅРєРё для отображения действия РІ интерфейсе content.references.Reference image = 10230; // Рзображение для отображения РІ действия РІ интерфейсе repeated string groups = 10240; // Группы отображения действия РІ интерфейсе - Kind kind = 10300; // Указывает РЅР° что направлено действие + Kind kind = 10300; // Указывает область действия (РіРґРµ отображается действие) repeated string classes = 10310; // Классы данных Рє которым применимо действие (название коллекций или специальных РіСЂСѓРїРї РІ рамках которых данное действие применимо) // Для `CREATE` действуют следующие правила: // - Для создание записей РІ коллекции применимы действия которые содержат РІ classes название коллекции @@ -209,6 +262,8 @@ message Action { string params_collection = 10330; ActionRequest request = 10400; // Параметры запроса (используется РІ случае `ActionResponse.next`) + + // DEPRECATED: Рспользуйте `action_url` вместо `navigation_route` bool navigation_action = 10500; // Флаг указывающий что действие переносить пользователя РІ РґСЂСѓРіСѓСЋ часть интерфейса, Р° РЅРµ отправляет запрос РЅР° сервер // navigation_route - Строка шаблон для перехода РІ интерфейсе @@ -222,5 +277,14 @@ message Action { // - :colId // - :itemId // + // DEPRECATED: Рспользуйте `action_type == "NAVIGATION"` string navigation_route = 10510; + + // Параметр указывающий что действие выполняется автоматически + // Если указано, то действие выполняется автоматически каждый раз РїСЂРё загрузке приложения + bool autorun = 10520; + + // Параметр указывающий что действие требует подтверждения пользователя + // Перед выполнением действия пользователю отображается информация Рѕ действии Рё РєРЅРѕРїРєРё подтверждения/отмены + bool confirm = 10530; } \ No newline at end of file