Show/Hide Toolbars

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

Открытие задачи из виджета в модальном окне

Данная JS-вставка используется для портала с виджетом SmartHtml с ID=123. В виджете выводится список задач с иконками для открытия задачи в модальном окне:

portal_block_radwindow

Пример виджета с иконкой открытия задачи в модальном окне.

Верстка для иконки использует определенный в блоке 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)
   }));
});

!warning Портал должен быть открыт не как внешняя ссылка, а в среде "Первой Формы" – например, можно из интерфейса администратора добавить ссылку на портал в Избранное и открывать портал по этой ссылке. В этом случае будет отображаться верхнее меню "Первой Формы" и будут подгружены необходимые компоненты.

Обновление виджета при закрытии модального окна

Часто задача открывается в модальном окне для того, чтобы изменить отдельные параметры этой задачи. В зависимости от этих параметров может потребоваться обновление исходного списка задач в виджете. Например, в виджете отображается список задач со сроком выполнения "сегодня". По клику на задачу открывается ее карточка, и пользователь меняет срок задачи. После этого задача должна исчезнуть из исходного списка.

В этом случае вместо стандартной процедуры 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>

 

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