Для порталов flex
Подписка на событие загрузки виджета с ID = 123 оформляется следующим образом:
(window.firstForma.portal.block(123)).onLoaded(function(event){ });
В функцию подписки будет передан объект event, который содержит поля portal и block.
Объект portal относится к порталу в целом и имеет два свойства:
•id (число) — идентификатор портала,
•title (строка) — название портала.
Методы для портала не реализованы.
Объект block относится к виджетам на портале и имеет два свойства:
•id (число) — идентификатор виджета,
•title (строка) — название виджета.
Для порталов dashboard
Подписка на событие загрузки виджета с ID = 123 оформляется следующим образом:
(window.firstForma.portal.block(123)).onLoaded(function(event){ });
В функцию подписки будет передан объект event, который содержит объект data.
Получить идентификатор блока можно через event.data.blockId.
Информация о пользователе
Данные о пользователе могут потребоваться для контроля прав доступа и персонализации информации, выводимой в виджетах.
Получить данные пользователя, который просматривает портал, можно с помощью функции getSessionUserInfo(). Функция возвращает ответ вызова метода /api/auth/info (Valhalla API версии 2.0).
В JS-вставках можно использовать переменную UserID, которая содержит ID пользователя.
Методы для виджетов
Метод |
Что делает |
|
---|---|---|
refresh() |
Обновляет виджет. Пример: let widget = firstForma.portal.block(123); ... widget.refresh(); |
|
Для виджетов Smart Html |
||
spaCommand(command, data) |
Выполняет команду, переданную в параметре command. Возможные команды: |
|
openInContentArea — открыть модальное окно |
В data передаются значения для content и context. content должен быть html-элементом. Если content это 'iframe', то в context должен передаваться объект с полем url. const ref = spaCommand('openInContentArea', { content: 'iframe', context: { url: 'spa/user/profile/99' } }); |
|
openNewsInContentArea — открыть карточку просмотра новости |
В data передается taskid. Пример: const ref = spaCommand('openNewsInContentArea', { taskId: 123456 }); ... |
|
Для виджетов "Таблица" и "Поиск задач" |
||
reload() |
Перезагружает виджет |
|
freeze() |
Делает виджет недоступным для работы (нельзя нажать на кнопку или кликнуть по ссылке) |
|
unfreeze() |
Делает виджет доступным для работы (можно нажать на кнопку или кликнуть по ссылке) |
Методы для фильтров
Метод |
Что делает |
---|---|
setFilters() |
Устанавливает значение параметров фильтра. Пример: let widget = firstForma.portal.block(123); widget.refresh(); |
filters() |
Возвращает параметры фильтра в виде массива. Каждый параметр фильтра имеет методы get и set. Пример: let widget = firstForma.portal.block(123); |
Обращение к параметрам фильтра
Если для виджета настроен фильтр, а для наполнения виджета используется хранимая процедура, то из нее можно обращаться к параметрам фильтра через входящий параметр @XmlParam (см. пример).
Полезные ссылки
Хранимые процедуры для виджетов
Пример — открытие задачи из портального блока во всплывающем окне