Перейти к основному содержимому

Разработка плагинов

АвтоГРАФ.WEB позволяет писать frontend-плагины для автоматизации или расширения возможностей.

Что требуется для разработки

Для разработки плагинов потребуется знание Javascript, HTML и CSS.

Вы можете посмотреть пример плагина на GitHub.

Для использования примеров из данной статьи потребуется знание TypeScript. Для использования примера из репозитория, указанного выше, нужен установленный Node.JS (при разработке примера использовалась версия 12.22.7).

Взаимодействие с сервером

Для взаимодействия с сервером используется публичный API-сервис (описание методов есть по относительному пути /serviceapi/index.html). Также можно получить параметры текущего сеанса с помощью метода External Settings.

External Settings

Вы можете подключить в проект настройки с сервера. Для этого требуется выполнить скрипт:

<script src="external-settings.js"></script>

Либо получить сериализованный JSON-объект IExternalSettings по следующей ссылке с последующей десериализацией.:

external-settings.json

В случае исполнение скрипта, значение настроек будет записано в window['external-settings']. В этом случае после его выполнения можно использовать объект, реализующий интерфейс IExternalSettings:

export const ExternalSettings: IExternalSettings = (window as any)['external-settings'];

Описание модели IExternalSettings:

export interface IExternalSettings
{
Name: string; // название приложения
Version: string; // версия АвтоГРАФ WEB
Urls: IExternalSettingsUrls; // объект с ссылками
Token: string; // токен для доступа к API
User: IUser; // объект пользователя, под которым выполняется приложение
Organization: IOrganization; // объект организации, под которой запущено приложение
Settings: { [key:string]: string }; // словарь с настройками приложения
LocaleDefault: string; // локализация по умолчанию
LocaleCurrent: string; // текущая локализация
}

export interface IExternalSettingsUrls
{
Service: string; // ссылка к сервису API
Relative: string; // ссылка на приложение
Content: string; // ссылка на приложение
App: string; // ссылка на АвтоГРАФ WEB
ImageCar: string; // ссылка на изображения автомобилей
ImageGF: string; // ссылка на изображения геозон
ImageImplements: string; // ссылка на изображения инструментов
ImageDrivers: string; // ссылка на изображения водителей
}

export interface IUser
{
ID: number; // ID пользователя
UID: any; // уникальный идентификатор пользователя (используется в API)
Name: string; // имя пользователя
Login: string; // логин пользователя
Mail: string; // почта пользователя
Theme: any; // объект темы пользователя
Props: { [key:string]: string }; // свойства пользователя
}

export interface IOrganization
{
ID: number; // номер организации
UID: any; // уникальный идентификатор организации (используется в API)
Name: string; // название организации
Props: { [key:string]: string }; // свойства организации
}

Была ли статья полезна?

Помогите нам улучшить статью, оставив обратную связь.