Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Добавление пользовательского типа виджета в мобильное приложение

Glossary Item Box

Общие сведения

В приложении версии 7.10.3 (версия 7.10.5 мобильного приложения) добавлена поддержка итогов в мобильном приложении. Для получения настроек и данных итогов используется сервис AnalyticsService (см. "Получение настроек и данных раздела [Итоги]"). Поддерживаются следующие типы блоков (виджетов) итогов — график, показатель, список и шкала.

Для добавления пользовательского типа виджета в мобильное приложение необходимо:

  1. Реализовать интерфейс настройки виджета в приложении Creatio.
  2. Добавить экземпляр реализованного пользовательского виджета в приложение.
  3. Реализовать отображение виджета в мобильном приложении.

ВАЖНО

В данной статье описывается только реализация отображения виджета в мобильном приложении.

Чтобы пользовательский тип виджета отображался в мобильном приложении необходимо:

  1. Реализовать получение данных пользовательского типа виджета.
  2. Добавить реализацию отображения виджета в мобильном приложении.

Описание кейса

На страницу итогов мобильного приложения добавить пользовательский виджет, отображающий текущие дату и время.

Алгоритм выполнения кейса

1. Реализация получения данных пользовательского типа виджета

Чтобы осуществить получение данных каждого пользовательского типа виджета необходимо создать класс, который должен реализовать интерфейс IDashboardItemData или наследоваться от базового класса BaseDashboardItemData. Также для этого класс должен быть декорирован атрибутом DashboardItemData. Для реализации класса необходимо в пользовательский пакет добавить схему [Исходный код].

Для пользовательского типа виджета CustomDashboardItem реализация класса получения данных будет следующей:

namespace Terrasoft.Configuration
{
    using System;
    using Newtonsoft.Json.Linq;
    using Terrasoft.Core;
    
    // Атрибут, указывающий пользовательский тип виджета.
    [DashboardItemData("CustomDashboardItem")]
    public class CustomDashboardItemData : BaseDashboardItemData
    {
        // Конструктор класса.
        public CustomDashboardItemData(string name, JObject config, UserConnection userConnection, int timeZoneOffset)
            : base(name, config, userConnection, timeZoneOffset)
        {
            
        }
        // Метод, возвращающий необходимые данные.
        public override JObject GetJson()
        {
            JObject itemObject = base.GetJson();
            itemObject["customValue"] = DateTime.Now.ToString();
            return itemObject;
        }
    }
}

2. Реализация отображения пользовательского типа виджета

2.1. Добавить класс отображения данных

Для этого необходимо в пользовательском пакете создать клиентский модуль (например, UsrMobileCustomDashboardItem). В созданном модуле необходимо реализовать класс, расширяющий базовый класс Terrasoft.configuration.controls.BaseDashboardItem.

Ext.define("Terrasoft.configuration.controls.CustomDashboardItem", {
    extend: "Terrasoft.configuration.controls.BaseDashboardItem",
    // Отображает значение, переданное через свойство customValue
    updateRawConfig: function(config) {
        this.innerHtmlElement.setHtml(config.customValue);
    }

});

2.2. Добавить новый тип и реализующий его класс в перечисление Terrasoft.DashboardItemClassName

Для этого в модуле, созданном на предыдущем шаге, необходимо добавить следующий исходный код:

Terrasoft.DashboardItemClassName.CustomDashboardItem = "Terrasoft.configuration.controls.CustomDashboardItem";

2.3. Добавить название созданной клиентской схемы в манифест мобильного приложения

В файле манифеста мобильного приложения необходимо в массив CustomSchemas добавить название созданной схемы модуля:

{
    "SyncOptions": {
        ...
    },
    "CustomSchemas": ["UsrMobileCustomDashboardItem"],
    "Modules": {...},
    "Models": {...}
}

После сохранения всех изменений виджет будет отображаться в разделе [Итоги] мобильного приложения (рис. 1).

Рис. 1. — Результат выполнения кейса

ВАЖНО

Чтобы виджет итогов отображался в мобильном приложении, он обязательно должен быть добавлен в основное приложение Creatio, с которым синхронизирована мобильная версия приложения.

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?