Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Вы можете увеличить количество используемых виджетов, добавив свой собственный виджет с необходимой вам функциональностью. Процедура добавления пользовательского виджета выглядит следующим образом:

  • в диалоге создания виджета вы присваиваете ему имя и добавляете JavaScript код виджета;

  • добавляете необходимые поля;

  • сохраняете виджет.

Ниже подробная инструкция как это сделать.

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

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

  • Откройте Visiology Designer и перейдите в необходимый дашборд (или создайте новый). В нашем примере мы воспользуемся дашбордом Статистика продаж:

    Image Removed

  • На вкладке Виджет нажмите кнопку с тремя точками и кликните Создать виджет:

    Image Removed

  • В открывшемся диалоге укажите название и код виджета (JavaScript), загрузите иконку виджета, чтобы его можно было легко найти среди прочих пользовательских виджетов, а также добавьте поля виджета.

  • Для загрузки иконки виджета выполните следующие шаги:

    • Нажмите на кнопку загрузки иконки:

      icon-button.pngImage Removed
    • В диалоге загрузки нажмите Выбрать файл и выберите требуемое изображение с помощью стандартного окна выбора файлов:

      choose-icon.pngImage Removed

      (warning) Загружаемая иконка должна быть квадратной.

  • Для добавления поля выполните следующие шаги:

  • Нажмите кнопку Добавить поле;

  • Укажите название поля и описание (описание будет отображаться в качестве подсказки при наведении мышки на название поля).

    new1(1).pngImage Removed(информация) Поля служат для настройки визуализации. Они могут принимать числовые и строковые значения, и могут быть использованы, например, для визуализации значений осей X и Y. Система позволяет добавить до двух полей (одно или два), но вы также может не добавлять ни одного поля (в зависимости от того, какого рода виджет вы создаете).
    (информация) Для удаления поля нажмите напротив него кнопку с изображением корзины.
  • Для сохранения введенных данных нажмите кнопку Готово. Виджет появится на вкладке Виджет среди прочих добавленных пользовательских виджетов:

    added-widget.pngImage Removed

    Теперь вы можете работать с ним как с любым другим стандартным виджетом (см. раздел Работа с виджетами).

    brand-new(1)(1).pngImage Removed
  • Пример кода виджета

    Ниже представлен код диаграммы, который мы использовали в нашем примере:

    Блок кода
    var data = w.data.primaryData.items.map(function (item) {
      return item.keys.concat(item.values);
    });
    
    Highcharts.chart(w.general.renderTo, {
        series: [{
            keys: ['from', 'to', 'weight'],
            data: data,
            type: 'sankey',
            name: 'Цены'
        }]
    });

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

    1. Нажмите клавишу F12, чтобы отобразить консоль браузера.

    2. Создайте виджет как описано выше и дайте ему имя.

    3. В поле ввода кода виджета введите команду console.log(w);

    4. Добавьте поля, например, X и Y.

    5. Нажмите Готово, чтобы сохранить виджет:

      correction1.pngImage Removed
    6. Добавьте виджет на дашборд и перетащите данные в поля виджета.

    7. В консоли браузера разверните ветку data: DataFrame, чтобы просмотреть структуру данных:

      data(2).pngImage Removed

    Пример формата данных виджета с одним полем

    Ниже представлен пример формата данных, которые приходят в переменную w.data при добавлении столбца в пользовательский виджет с одним полем:

    { "dataFrame": { "primaryData": { "keys": [
    Блок кода
    Примечание

    После обновления платформы до версии 3.11 все добавленные пользовательские виджеты станут общими и будут недоступны для редактирования обычными пользователями. Чтобы получить возможность редактировать виджет, потребуется скопировать его на панель виджетов рабочей области (см. ниже).

    Если необходимо сохранить связь шаблона виджета с уже созданными виджетами на дашборде, выполните перепривязку виджета вручную, через скрипт, или поменяйте тип виджета.

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

    О создании пользовательских виджетов

    Вы можете расширить стандартный набор доступных виджетов, добавив пользовательские виджеты с необходимой вам функциональностью. Такие виджеты могут быть добавлены как глобальным администратором, так и обычными пользователями платформы (за исключением пользователей с ролью “Зритель”).

    Информация
    • Виджеты, добавленные глобальным администратором, становятся общими и доступны всем пользователям платформы.

    • Виджеты, добавленные пользователями, будут доступны только в рамках текущей рабочей области, и другие пользователи, не имеющие доступа к этой рабочей области, не смогут увидеть их (кроме глобального администратора).

    widgets.pngImage Added

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

    Информация
    • Виджеты, которые доступны в определенной рабочей области, не будут видны в других рабочих областях. При необходимости получить доступ к виджету из другой рабочей области:

      • попросите глобального администратора добавить нужный виджет – в этом случае он станет общим;

      • скачайте виджет и импортируйте его в требуемую рабочую область.

    • Если вы хотите отредактировать общий виджет под свои задачи, но вы не являетесь глобальным администратором, вы можете дублировать виджет на панель виджетов своей рабочей области и внести в него необходимые правки (см. ниже).

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

    1. В диалоге создания виджета вы присваиваете ему имя и добавляете JavaScript код виджета.

    2. Добавляете необходимые поля.

    3. Сохраняете виджет.

    Ниже приведена подробная инструкция по выполнению всех этих шагов.

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

    В нашем примере мы рассмотрим добавление виджета от лица глобального администратора.

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

    1. Откройте Visiology Designer и перейдите в необходимый дашборд (или создайте новый). В нашем примере мы воспользуемся дашбордом Статистика продаж:

      Image Added

    2. На вкладке Виджет нажмите кнопку с тремя точками и выберите Создать виджет:

      create.pngImage Added
    3. В открывшемся диалоге укажите название и код виджета (JavaScript), загрузите иконку виджета, чтобы его можно было легко найти среди прочих пользовательских виджетов, а также добавьте поля виджета.

      • Для загрузки иконки виджета выполните следующие шаги:

        • Нажмите на кнопку загрузки иконки:

          icon-button.pngImage Added
        • В диалоге загрузки нажмите Выбрать файл и выберите требуемое изображение с помощью стандартного окна выбора файлов:

          choose-icon.pngImage Added

          (warning) Загружаемая иконка должна быть квадратной.

      • Для добавления поля выполните следующие шаги:

        • Нажмите кнопку Добавить поле;

        • Укажите название поля и описание (описание будет отображаться в качестве подсказки при наведении мышки на название поля).

          new1(1).pngImage Added


          (информация) Поля служат для настройки визуализации. Они могут принимать числовые и строковые значения, и могут быть использованы, например, для визуализации значений осей X и Y. Система позволяет добавить до двух полей (одно или два), но вы также может не добавлять ни одного поля (в зависимости от того, какого рода виджет вы создаете).
          (информация) Для удаления поля нажмите напротив него кнопку с изображением корзины.

    4. Для сохранения введенных данных нажмите кнопку Готово. Виджет появится на вкладке Виджет в секции Общие:

      created.pngImage Added

      Теперь пользователи платформы смогут работать с ним как с любым другим стандартным виджетом (см. раздел Работа с виджетами).

      final.pngImage Added

    Пример кода виджета

    Ниже представлен код диаграммы, который мы использовали в нашем примере:

    Блок кода
    var data = w.data.primaryData.items.map(function (item) {
      return item.keys.concat(item.values);
    });
    
    Highcharts.chart(w.general.renderTo, {
        series: [{
            keys: ['from', 'to', 'weight'],
        "root"    data: data,
           ], type: 'sankey',
              "values"name: [],'Цены'
                "items": [
                    {
                        "keys": [],
                 }]
    });

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

    1. Нажмите клавишу F12, чтобы отобразить консоль браузера.

    2. Создайте виджет как описано выше и дайте ему имя.

    3. В поле ввода кода виджета введите команду console.log(w);

    4. Добавьте поля, например, X и Y.

    5. Нажмите Готово, чтобы сохранить виджет:

      correction1.pngImage Added
    6. Добавьте виджет на дашборд и перетащите данные в поля виджета.

    7. В консоли браузера разверните ветку data: DataFrame, чтобы просмотреть структуру данных:

      data(2).pngImage Added

    Пример формата данных виджета с одним полем

    Ниже представлен пример формата данных, которые приходят в переменную w.data при добавлении столбца в пользовательский виджет с одним полем:

    Блок кода
    {
        "dataFrame": {
            "valuesprimaryData": {
                "keys": [
                    "root"
               "A. Datum"],
                "values": [],
              13978.43  "items": [
                    {
    ],                     "itemskeys": [],
                        "metadatavalues": [
                             {"A. Datum",
                            13978.43
       "columnName": "brandname",                ],
                "displayName": "brandname",       "items": [],
                        "dataTypemetadata": "String"[
                            },
                            {
                                "columnName": "unitcostbrandname",
                                "displayName": "unitcostbrandname",
                                "dataType": "DecimalString"
                            },
                        ],     {
                   "cols": [            "columnName": "unitcost",
               "brandname",                         "displayName": "unitcost",
                        ]        "dataType": "Decimal"
           },                 {}
                        "keys": [],
                        "valuescols": [
                            "Adventure Worksbrandname",
                            40201.01"unitcost"
                        ],
                    },
                "items": [],    {
                        "metadatakeys": [],
                        "colsvalues": [
                            "brandnameAdventure Works",
                            "unitcost"40201.01
                        ],
                    },           "items": [],
         {                     "keys"metadata": [],
                        "valuescols": [
                            "Contosobrandname",
                            85927.66"unitcost"
                        ],
                    },
                "items": [],    {
                        "metadatakeys": [],
                        "colsvalues": [
                            "brandnameContoso",
                            "unitcost"85927.66
                        ],
                    },                 {"items": [],
                        "keysmetadata": [],
                        "valuescols": [
                            "Fabrikambrandname",
                            66288.43"unitcost"
                        ],
                    },
                  "items": [],  {
                        "metadatakeys": [],
                        "colsvalues": [
                            "brandnameFabrikam",
                            "unitcost"66288.43
                        ],
                    },    "items": [],
               {                     "keys""metadata": [],
                        "valuescols": [
                            "Litwarebrandname",
                            53622.39"unitcost"
                        ],
                    },
                   "items": [], {
                        "metadatakeys": [],
                        "colsvalues": [
                            "brandnameLitware",
                            "unitcost"53622.39
                        ],
                    },    "items": [],
               {         "metadata": [],
              "keys": [],          "cols": [
               "values": [            "brandname",
                "Northwind Traders",           "unitcost"
                 16605.8       ]
                 ],   },
                     "items": [],{
                         "metadatakeys": [],
                        "colsvalues": [
                            "brandnameNorthwind Traders",
                            "unitcost"16605.8
                        ],
                    },    "items": [],
               {         "metadata": [],
              "keys": [],         "cols": [
              "values": [             "brandname",
               "Proseware",             "unitcost"
               31646.86         ]
               ],     },
                   "items": [], {
                        "metadatakeys": [],
                        "colsvalues": [
                            "brandnameProseware",
                            "unitcost"31646.86
                        ],
                    },    "items": [],
               {         "metadata": [],
              "keys": [],          "cols": [
               "values": [            "brandname",
                "Southridge Video",           "unitcost"
                 13429.62       ]
                 ],   },
                     "items": [],{
                         "metadatakeys": [],
                        "colsvalues": [
                            "brandnameSouthridge Video",
                            "unitcost"13429.62
                        ],
                    },    "items": [],
               {         "metadata": [],
              "keys": [],         "cols": [
              "values": [             "brandname",
               "Tailspin Toys",            "unitcost"
                3122.45        ]
                ],    },
                    "items": [],{
                         "metadatakeys": [],
                        "colsvalues": [
                            "brandnameTailspin Toys",
                            "unitcost"3122.45
                        ],
                    },    "items": [],
               {         "metadata": [],
              "keys": [],         "cols": [
              "values": [             "brandname",
               "The Phone Company",           "unitcost"
                 18788.61       ]
                 ],   },
                    {
    "items": [],                     "metadatakeys": [],
                        "colsvalues": [
                            "brandnameThe Phone Company",
                            "unitcost"18788.61
                        ],
                    },    "items": [],
               {
                        "keysmetadata": [],
                        "valuescols": [
                            "Wide World Importersbrandname",
                            28037.79"unitcost"
                        ],
                    },
                   "items": [], {
                        "metadatakeys": [],
                        "colsvalues": [
                            "brandnameWide World Importers",
                            "unitcost"28037.79
                        ],
                    }    "items": [],
           ],             "metadata": [],
                        "cols": []
                            }"brandname",
            "secondaryData": null                "unitcost"
                      }
    }

    (warning) Данный формат используется, начиная с версии 3.6. В новом формате значения из keys перенесены в values, а metadata заполняется в первом item:

    код.pngImage Removed

    Пример кода таблицы в пользовательском виджете

    Ниже представлен пример кода таблицы в пользовательском виджете, у которого одно поле для добавления данных:

    Блок кода
    // Создаем таблицу
    var table = $('<table style="border: 1px solid #ccc; border-collapse: collapse; margin: 0; padding: 0; width: 100%; table-layout: fixed;">');
    
    // Создаем заголовок
    var thead = $('<thead>');
    var headerRow = $('<tr>');
    w.data.primaryData.items[0].metadata.forEach(function (m) {
        headerRow.append($('<th>').text(m.displayName));
    });
    thead.append(headerRow);
    
    // Добавляем заголовок к таблице
    table.append(thead);
    
    // Создаем тело таблицы
    var tbody = $('<tbody>');
    
    // Добавляем строки и ячейки
    w.data.primaryData.items.forEach(function (item) {
        var row = $('<tr>');
        item.values.forEach(function (value) {
            row.append($('<td>').text(value));
        });
        tbody.append(row);
    });
    
    // Добавляем тело к таблице
    table.append(tbody);
    
    // Добавляем таблицу к body документа
    var container = $('<div style="overflow: auto; width: 100%; height: 100%;"></div>')
    container.append(table);
    $('#' + w.general.renderTo).append(container);

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

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

    1. На вкладке Виджет кликните правой кнопкой мыши на виджете, который хотите отредактировать, и выберите Редактировать в выпадающем меню:

      Image Removed

    2. В открывшемся окне произведите необходимые изменения и нажмите кнопку Готово:

      correction2.pngImage Removed
    Примечание

    При изменении кода виджета, код обновится во всех виджетах этого типа, добавленных на дашборды. Исключение составляют виджеты, у которых разрешено редактирование кода. Код, измененный в таких виджетах, не будет затронут.

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

    1. Сохраните дашборд с добавленным пользовательским виджетом, нажав Файл > Сохранить в левом верхнем углу:

      save-dashboard(1)(1).pngImage Removed

    2. Перейдите на вкладку Оформление:

      settings(2)(1).pngImage Removed

    3. Разверните общие настройки и активируйте опцию Разрешить редактирование кода (в диалоге подтверждения нажмите Да):

      allow(1).pngImage Removed

    4. Сохраните изменения, нажав Файл > Сохранить в левом верхнем углу:

      Image Removed

    5. Нажмите кнопку с двойными стрелками в нижней части экрана, чтобы открыть редактор кода:

      open-code-editor(1)(1).pngImage Removed

    6. Внесите необходимые изменения в коде и нажмите Выполнить код:

      Image Removed

    7. Нажмите Файл > Сохранить в левом верхнем углу экрана, чтобы сохранить изменения.

    Удаление пользовательского виджета
      ]
                    }
                ],
                "metadata": [],
                "cols": []
            },
            "secondaryData": null
        }
    }

    (warning) Данный формат используется, начиная с версии 3.6. В новом формате значения из keys перенесены в values, а metadata заполняется в первом item:

    код.pngImage Added

    Пример кода таблицы в пользовательском виджете

    Ниже представлен пример кода таблицы в пользовательском виджете, у которого одно поле для добавления данных:

    Блок кода
    // Создаем таблицу
    var table = $('<table style="border: 1px solid #ccc; border-collapse: collapse; margin: 0; padding: 0; width: 100%; table-layout: fixed;">');
    
    // Создаем заголовок
    var thead = $('<thead>');
    var headerRow = $('<tr>');
    w.data.primaryData.items[0].metadata.forEach(function (m) {
        headerRow.append($('<th>').text(m.displayName));
    });
    thead.append(headerRow);
    
    // Добавляем заголовок к таблице
    table.append(thead);
    
    // Создаем тело таблицы
    var tbody = $('<tbody>');
    
    // Добавляем строки и ячейки
    w.data.primaryData.items.forEach(function (item) {
        var row = $('<tr>');
        item.values.forEach(function (value) {
            row.append($('<td>').text(value));
        });
        tbody.append(row);
    });
    
    // Добавляем тело к таблице
    table.append(tbody);
    
    // Добавляем таблицу к body документа
    var container = $('<div style="overflow: auto; width: 100%; height: 100%;"></div>')
    container.append(table);
    $('#' + w.general.renderTo).append(container);

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

    Примечание
    • Общие виджеты могут быть изменены только глобальным администратором.

    • Виджеты рабочей области могут быть изменены пользователями с любой ролью, за исключением роли «Зритель».

    В нашем примере мы будем редактировать виджет от лица глобального администратора.

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

    1. На вкладке Виджет кликните правой кнопкой мыши на виджете, который хотите отредактировать, и выберите Редактировать в выпадающем меню:

      edit.pngImage Added

    2. В открывшемся окне произведите необходимые изменения и нажмите кнопку Готово:

      correction2.pngImage Added
    Примечание

    При изменении кода виджета, код обновится во всех виджетах этого типа, добавленных на дашборды. Исключение составляют виджеты, у которых разрешено редактирование кода. Код, измененный в таких виджетах, не будет затронут.

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

    1. Сохраните дашборд с добавленным пользовательским виджетом, нажав Файл > Сохранить в левом верхнем углу:

      save.pngImage Added
    2. Перейдите на вкладку Оформление:

      visual-settings.pngImage Added

    3. Разверните общие настройки и активируйте опцию Разрешить редактирование кода (в диалоге подтверждения нажмите Да):

      allow-edit.pngImage Added

    4. Сохраните изменения, нажав Файл > Сохранить в левом верхнем углу:

      save2.pngImage Added

    5. Нажмите кнопку с двойными стрелками в нижней части экрана, чтобы открыть редактор кода:

      editor-button.pngImage Added
    6. Внесите необходимые изменения в коде и нажмите Выполнить код. В нашем примере мы изменили набор цветов:

      updated.pngImage Added

    7. Нажмите Файл > Сохранить в левом верхнем углу экрана, чтобы сохранить изменения.

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

    Пользователи платформы, за исключением тех, кто имеет роль «Зритель», могут скопировать пользовательский виджет из секции «Общие» в секцию «В этой рабочей области», чтобы затем модифицировать его. Для этого необходимо сделать следующее:

    1. Щелкните правой мышью виджет, который вы хотите продублировать, и выберите в выпадающем меню Дублировать:

      copy.pngImage Added

    2. В открывшемся окне нажмите Готово.
      (информация) Вы можете внести изменения на этом шаге, либо сделать это позже.

      settings.pngImage Added

    3. Скопированный виджет появится в секции “В этой рабочей области”:

      copied.pngImage Added

    Удаление пользовательского виджета

    Примечание
    • Общие виджеты могут быть удалены только глобальным администратором.

    • Виджеты рабочей области могут быть удалены пользователями с любой ролью, за исключением роли «Зритель».

    Для удаления пользовательского виджета выполните следующие шаги:

    1. На вкладке Виджет кликните щелкните правой клавишей мыши на виджете, который хотите удалить, и выберите Удалить в выпадающем меню:

      Image Removeddelete.pngImage Added

    2. В диалоге подтверждения нажмите кнопку Удалить:

      Image Removeddelete2.pngImage Added

      Виджет исчезнет из набора виджетов.


    Смотрите также

    📄 Работа с виджетами
    📄 Визуальные настройки виджетов

    На этой странице

    Оглавление

    🕑 Время чтения: 3 мин.


    Видео

    custom-widget.mp4

    Нужна дополнительная помощь?

    Свяжитесь с технической поддержкой.