Расширенные возможности

Как добавить дашборд во внешний портал через iframe:

  1. Копируем ссылку на дашборд: в Dashboard Designer на вкладке Главная выбираем Ссылка – Дашборд.
  2. В HTML внешнего портала вставляем код

    <iframe src="XXX" style="position: absolute; height: 100%; width: 100%; border: none;"></iframe>

,где XXX это ссылка на дашборд.


Как скрыть панель верхнюю:

  1. Копируем ссылку на дашборд: в Dashboard Designer на вкладке Главная выбираем Ссылка – Дашборд.
  2. В ссылке вместо showNav=true пишем showNav=false.


Как выбрать конкретный лист (по умолчанию):

  • Копируем ссылку на лист: в Dashboard Designer на вкладке Главная выбираем Ссылка – Текущий лист.
  • В скопированной ссылке в конце добавляем &showNav=true.


Как выбрать конкретный лист (из внешнего портала):

  • С помощью JavaScript найти нужный элемент iframe и в нем клик по листу с помощью: getElementById("IFRAME_ID").contentWindow.document.getElementById("va-sheet-tabs").children[LIST_INDEX].click(), где IFRAME_ID – это id элемента iframe, а LIST_INDEX – это номер листа, который нужно выбрать (0 – это первый лист, 1 – это второй, 2 – третий и т.д.)


Как из внешнего портала установить фильтр:

  • С помощью JavaScript найти нужный элемент iframe и в нем вызывать функцию через VisApi: getElementById("IFRAME_ID").contentWindow.visApi().setFilterSelectedValues(“WIDGET_ID”, [[“VALUE”]]);, где IFRAME_ID – это id элемента iframe, WIDGET_ID – это id виджета, в котором нужно установить фильтр, VALUE – это значение.


Как подписаться на событие изменение фильтра и передать во внешний портал

  • Подписаться на изменение фильтра можно с помощью функции-подписки:

visApi().onSelectedValuesChangedListener({guid: "XXX", widgetGuid: "YYY" }, function (event) {

    // посылаем сообщение во внешний портал, об изменения выбранного значения в фильтре

    window.parent.postMessage({ message: "filter_changed", event: event }, "*");

});

, где XXX – это случайный уникальный guid события, а YYY – это ID виджета, на который хотим подписаться.

  • Во внешнем портале с помощью JavaScript подписываемся на получение сообщения об изменении фильтра: addEventListener("message", function(event) {
    if (event.data != null && event.data.message === "filter_changed") {
            var selectedValues = event.data.event.selectedValues; // выбранные значения
       
    }
    });