Show/Hide Toolbars

Руководство администратора

Методы для работы с порталами и виджетами

Для порталов 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.
В параметре data передается JSON с данными, необходимыми для выполнения команды.

Возможные команды:

openInContentArea - открыть модальное окно

В data передаются значения для content и context. content должен быть html-элементом. Если content это 'iframe', то в context должен передаваться объект с полем url.
Пример:

const ref = spaCommand('openInContentArea', { content: 'iframe', context: { url: 'spa/user/profile/99' } });
...
ref.close();

openNewsInContentArea - открыть карточку просмотра новости

В data передается taskid.

Пример:

const ref = spaCommand('openNewsInContentArea', { taskId: 123456 });

...
ref.close();

Для виджетов "Таблица" и "Поиск задач"

reload()

Перезагружает виджет

freeze()

Делает виджет недоступным для работы (нельзя нажать на кнопку или кликнуть по ссылке)

unfreeze()

Делает виджет доступным для работы (можно нажать на кнопку или кликнуть по ссылке)

Методы для фильтров

Метод

Что делает

setFilters()

Устанавливает значение параметров фильтра.

Пример:

let widget = firstForma.portal.block(123);
widget.setFilters({param:999});

widget.refresh();

filters()

Возвращает параметры фильтра в виде массива.

Каждый параметр фильтра имеет методы get и set.

Пример:

let widget = firstForma.portal.block(123);
let param = widget.filters[0];
param.set(999);
widget.refresh();

 

Обращение к параметрам фильтра

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

Полезные ссылки