Приклад робочого меню:

{
  "rootname": "Links",
  "rooticon": 196,
  "items": 11,
  "item1": {
    "name": "Sales requests",
    "icon": 173,
    "type": "open-link",
    "data": "https://mycompany.com/kanban/#project=74"
  },
  "item2": {
    "type": "hr"
  },
  "item3": {
    "name": "iOS bugs",
    "icon": 173,
    "type": "open-link",
    "data": "https://mycompany.com/kanban/#project=48"
  },
  "item4": {
    "name": "Android bugs",
    "icon": 173,
    "type": "open-link",
    "data": "https://mycompany.com/kanban/#project=25"
  },
  "item5": {
    "name": "Kanban bugs",
    "icon": 173,
    "type": "open-link",
    "data": "https://mycompany.com/kanban/#project=3"
  },
  "item6": {
    "name": "Blue flag (server script)",
    "icon": 172,
    "type": "server-script",
    "data": "OpenPrivateSupport",
    "params": "%username% :)"
  },
  "item7": {
    "name": "Tree example"
  },
    "item8": {
      "parent": "item7",
      "name": "Red flag (action link)",
      "icon": 177,
      "type": "exec-action",
      "data": "about",
      "params": ""
    },
    "item9": {
      "parent": "item7",
      "name": "Pill icon (Open help topic)",
      "icon": 185,
      "type": "open-help",
      "data": "mychatclientwindows"
    },
  "item10": {
    "name": "Disabled item",
    "enable": false
  },
  "item11": {
    "name": "Open text file",
    "type": "open-link",
    "data": "F:\\Public\\docs\\інструкція для техніків.txt"
  }
}


Важливо! Назви параметрів та їх тип мають бути вказані у нижньому регістрі, точно, як у таблиці, це має значення.


Обов'язкові елементи

Параметр

Тип

Опис

rootname

string

рядок, назва кореневого елемента меню, що буде видно у додатку MyChat Client у головному меню;

rooticon

integer

індекс іконки з готового списку;

items

integer

загальна кількість елементів меню. Всі вони будуть називатися "item1", "item2", "item3" і так далі. Нумерація з одиниці, пропуски не дозволяються.


Вкладені елементи

Усі вкладені пункти меню мають обов'язкову назву "item" та номер елемента, наприклад, "item15". Послідовність не має значення, можна перераховувати елементи по порядку або згідно іншої схеми, як вам зручніше. Головне, щоб кількість елементів була не меншою, ніж зазначено в параметрі "items".

Параметр

Тип

Опис

name

string

назва пункту меню, текстовий рядок;

parent

string

якщо цього параметра немає, то пункт меню буде в кореневому розділі, якщо є — то вказується назва батьківського розділу, наприклад, "item12";

icon

integer

індекс іконки з готового списку;

type

string

тип елемента меню, можливі варіанти:

  • hr — горизонтальна лінія-розділювач у меню;
  • open-link — відкрити посилання у браузері;
  • server-script — виконати скрипт на сервері;
  • exec-action — виконати action із доступного списку action-команд;
  • open-file — відкрити файл, локальний або мережевий;
  • exec-app — запустити локальну програму, можна передати параметри;
  • exec-cmd — виконати клієнтську консольну команду, можна передати параметри;
  • open-help — відкрити довідку на вказаному розділі;

data

string

вміст, з яким треба буде працювати команді:

  • open-link — URL, текст посилання;
  • server-script — назва скрипту на сервері;
  • exec-action — назва action;
  • open-file — повний шлях до файлу, що відкривається;
  • exec-app — повний шлях до програми, яку слід запустити;
  • exec-cmd — назва консольної команди MyChat Client;
  • open-help — назва розділу довідки MyChat, наприклад, "userscustommenutool" (без шляху та точки з розширенням html-файлу, застосунок сам розбереться, звідки його відкрити і якою мовою);

params

string

  • server-script — параметри для скрипту, опціонально;
  • exec-action — параметри для action, опціонально;
  • exec-app — параметри для запуску програми, опціонально;
  • exec-cmd — параметри консольної команди, якщо є;

enable

boolean

якщо вказати false, то пункт меню показуватиметься неактивним (disable) і по ньому не можна буде клікнути мишкою. Це буває зручно, якщо потрібно тимчасово заборонити елемент, але видаляти його з JSON не хочеться.