Старый МТФ
Данная JS-вставка используется для портала с виджетом SmartHtml с ID=123. В виджете выводится список задач с иконками для открытия задачи в модальном окне:
Верстка для иконки использует определенный в блоке CSS-класс projects-btn:
<a href="/MainTaskForm.aspx?TaskID={{taskID}}" target="_blank" class="projects-btn"><i class="fa fa-external-link" title="Открыть в новом окне"></i></a>
Для портальной страницы используется JS-вставка, которая проверяет все элементы данного класса и по клику на элемент открывает ссылку (на карточку задачи) в модальном окне:
(window.firstForma.portal.block(123)).onLoaded(function () {
document.querySelectorAll('.projects-btn').forEach(el => el.addEventListener('click', function(event) {
event.preventDefault();
radopen(el.href)
}));
});
Портал должен быть открыт не как внешняя ссылка, а в среде "Первой Формы" – например, можно из интерфейса администратора добавить ссылку на портал в Избранное и открывать портал по этой ссылке. В этом случае будет отображаться верхнее меню "Первой Формы" и будут подгружены необходимые компоненты. |
---|
Обновление виджета при закрытии модального окна
Часто задача открывается в модальном окне для того, чтобы изменить отдельные параметры этой задачи. В зависимости от этих параметров может потребоваться обновление исходного списка задач в виджете. Например, в виджете отображается список задач со сроком выполнения "сегодня". По клику на задачу открывается ее карточка, и пользователь меняет срок задачи. После этого задача должна исчезнуть из исходного списка.
В этом случае вместо стандартной процедуры radopen можно вызывать собственную процедуру, в которой настроен обработчик кнопки закрытия модального окна (эта кнопка имеет класс rwCloseButton). Обработчик выполняет перезагрузку виджета:
function radwin(link) {
radopen(link);
fr = document.getElementsByTagName('iframe')[0];
fr.onload = function() {
document.getElementsByClassName('rwCloseButton')[0].addEventListener("click", function(){
window.location.reload(); // обновляем весь портал
})
}
}
...
// открытие ссылки в модальном окне
radwin(el.href);
Другие действия
По клику на иконку могут быть настроены и другие действия, доступные с помощью настроек адресной строки. Например, чтобы по клику открывалась карточка создания новой задачи, в верстке блока для иконки должна быть ссылка:
<a href="/NewTask.aspx?SubcatID={{subcatID}}" target="_blank" class="projects-btn"><i class="fa fa-external-link" title="Открыть в новом окне"></i></a>
Полезные ссылки