Перейти к содержанию

Глобальные виджеты#

Глобальные виджеты (кнопки запуска) отображаются на боковой панели. Используются для быстрого выполнения операций (открытие аналит формы, создание документа, выполнение произвольного скрипта).

Описываются в файле source/widgets.js, который экспортирует массив с описанием виджетов.

import DocsMenu from "./start/docsMenu";
import menu_img from "current-theme/images/light/menu.png";

export default [{
    form: DocsMenu,
  caption: "Меню",
  image: menu_img,
  id: "docsMenu",
  width: "500",
  editorWidth: "12",
  vPosition: 'top',
  hPosition: 'left',
  height: '80%'
}]

Базовые свойства#

Виджет описывается в виде объекта, который состоит из следующих свойств:

  • caption - заголовок
  • image - иконка
  • id - уникальный идентификатор
  • type - тип объекта, обрабатываемого виджетов. Принимает следующие значения:
    • popup - стандартное всплывающее виджет окно. По умолчанию.
    • document - создание документа,
    • script - запуск скрипта.

Всплывающее окно (popup)#

Свойства:

  • form - ссылка на класс формы
  • width - ширина. По умолчанию значение auto
  • height - высота. По умолчанию значение auto
  • resizable - позволяет включить/выключить режим растягивания окна. По умолчанию значение false
  • isModal - если выставлено значение true, то окно блокирует взаимодействие с пользовательским интерфейсом и всегда отображается по центру. По умолчанию значение false
  • vPosition - положение всплывающего окна по вертикали. Принимает следующие значения: top, center, bottom.
  • hPosition - положение всплывающего окна по горизонтали. Принимает следующие значения: top, center, bottom.
  • view - ключ формы из файла описания юнитов в units.json. Отвечает за открытие формы в новой вкладке. Если не указано, открытие формы будет недоступно.

Аналитическая форма меню во всплывающем окне.

import DocsMenu from "./docsMenu"
import menu_img from "current-theme/images/light/menu.png"

export default [
    {
    form: DocsMenu,
    caption: "Меню",
    image: menu_img,
    id: "docsMenu",
    width: "500",
    editorWidth: "12",
    vPosition: 'top',
    hPosition: 'left',
    height: '80%'
    }
]
import { Form } from 'ecosoft-lexema8'
import template from './docsMenu.xml'

export default class docsMenu extends Form {
    static get template() {
        return template;
    }

    itemClicked() {
        if (!this.key) this.close();
    }
}
1
2
3
4
5
<Form writeRoles="user" title="Мои документы">
    <Layout>
        <DocumentsMenu id="documentsMenu" width="100%" editorWidth="12" height="400px" itemClicked="itemClicked"/>
    </Layout>
</Form>

Создание документа (document)#

Свойства:

  • view - ключ формы из файла описания юнитов в units.json. Отвечает за открытие формы в новой вкладке. Обязательное.
1
2
3
4
5
6
7
8
import menu_img from 'current-theme/images/leftNavBar/menu.png'

export default [{
    type: 'document',
    caption: 'Меню',
    image: menu_img,
    view: 'userForm'
}]

Запуск скрипта (script)#

Свойства:

  • script - запускаемая функция со следующими входными параметрами:
    • button - кнопка вызова виджета
    • args - объект со свойствами:
      • form - ссылка на main форму
  • scriptRoles - роли пользователя, необходимые для запуска скрипта
import menu_img from 'current-theme/images/leftNavBar/menu.png'
import myScript from './myScript.js'

export default [{
    type: 'script',
    caption: 'Меню',
    image: menu_img,
    script: myScript,
    scriptRoles: ['role1', 'role2']
}]
1
2
3
export default function (button, mainForm) {
    // область для описания функционала скрипта
}