Приветствую!
В BPMonline 7.3 реализовали по действию из раздела запуск импорта данных из сторонней системы. Все отлично и прекрасно, но есть небольшое неудобство - при импорте большого количества данных система "подвисает". Каким образом можно вызвать иконоку "Загрузка" на подобие той, которая отображается при загрузке раздела, чтобы пользователь знал, что происходит обработка данных, и не клацал лихорадочно на F5?
Заранее благодарен
Нравится
Для этого специально реализован модуль MaskHelper.
В начале процесса вызовите на странице раздела
this.showBodyMask();
А по завершению
this.hideBodyMask();
Есть ли способ реализовать данный функционал в 5.4?
В этой статье описан способ включения прогресс бара через обработчик события контролла, можно ли сделать то же самое в коде скрипта (как в 7.3 с помощью модуля MaskHelper)?
Также можно использовать второй вариант:
Для добавления маски загрузки необходим следующий код:
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.