Значок "Загрузка" в BPMonline 7.3

Приветствую!

В BPMonline 7.3 реализовали по действию из раздела запуск импорта данных из сторонней системы. Все отлично и прекрасно, но есть небольшое неудобство - при импорте большого количества данных система "подвисает". Каким образом можно вызвать иконоку "Загрузка" на подобие той, которая отображается при загрузке раздела, чтобы пользователь знал, что происходит обработка данных, и не клацал лихорадочно на F5?

Заранее благодарен

Нравится

7 комментариев

Для этого специально реализован модуль MaskHelper.
В начале процесса вызовите на странице раздела

this.showBodyMask();

А по завершению

this.hideBodyMask();

Премного благодарен

Есть ли способ реализовать данный функционал в 5.4?

В этой статье описан способ включения прогресс бара через обработчик события контролла, можно ли сделать то же самое в коде скрипта (как в 7.3 с помощью модуля MaskHelper)?

Александр, попробуйте использовать следующее выражение:

SearchButton.AjaxEvents.Click.ShowLoadMask = true;

Также можно использовать второй вариант:

Для добавления маски загрузки необходим следующий код:

Page.AddScript(string.Format("PageContainer.el.mask('{0}', 'x-mask-loading blue', true, false, true);", Loading));

Где Loading - локализируемая строка с текстом Загрузка.
Для того чтобы в дальнейшем, после выполнения процесса, скрыть маску загрузки, необходимо добавить такой скрипт:

Page.AddScript(@"PageContainer.el.unmask();");

Подскажите как вывести значок загрузки для версии CRM 5.2?
Есть кнопка в реестре документов которая отменяет документ - переводит с определенный статус.
При нажатии на кнопку выдается диалоговое окно (Открыть окно сообщения) где спрашивается подтверждение, если "Ок" то процес идет по сообщениею на удаление\отмену. Этот процесс достаточно долгий -- пользователь часто не понимает что происходит, и происходит ли что.

Пробовал:

Page.AddScript(string.Format("PageContainer.el.mask('{0}', 'x-mask-loading blue', true, false, true);", "Отмена или удаление документа"));

Поставить в таске перед действием (уведомить по email, и отменить документ)

И в конце при заврешении данных действий:

Page.AddScript(@"PageContainer.el.unmask();");

Не отображается. Если убрать unmask то значок "Загрузка" показывается и висит пока не обновишь страницу.

Штатная галочка отображать загрузку в св-вах действий на кнопке - не подходит, в виду того, что выдает диалоговое окно "Отменить документ?", и они перекрывают друг друга.

Картина процесса в атаче.

Как вариант, можно вообще не ждать, а запустить длительное действие в отдельном потоке:

			System.Web.HttpContext httpContext = System.Web.HttpContext.Current;
CultureInfo currentCulture = GeneralResourceStorage.CurrentCulture;
System.Threading.Tasks.Task.Factory.StartNew(() => {
                if (httpContext != null) {
                                System.Web.HttpContext.Current = httpContext;
                }
                GeneralResourceStorage.CurrentCulture = currentCulture;
                try  {
                Method1(UserConnection, Page);
				}	 catch { }
 
 
});

В примере запускается функция Method1.

Показать все комментарии