Справка по системе Платформа ELMA BPM
×
Меню

Портлет "Код"

На данном портлете отображается результат работы программного кода на языке ASP.NET MVC 3 Razor. Программный код записывается в настройках портлета. Данный портлет удобен тем, что, разместив его на главной странице, пользователь всегда сможет видеть актуальные результаты работы кода.
Для работы с портлетом "Код" пользователь должен иметь соответствующие права доступа, назначаемые администратором системы в разделе Администрирование – Пользователи – Настройки доступа – Глобальные настройки доступа – Портал – Работа с разметкой в портлете "Код" . Пользователям с соответствующими правами доступа в окне выбора портлетов данный портлет будет доступен для выбора и дальнейшей работы с ним.
Например, выведем список текущих задач согласования документов с названиями данных документов, в которых текущий пользователь является согласующим.
Для этого в настройках портлета необходимо написать программный код (рис. 3). Результаты работы данного кода отобразятся на портлете (рис. 1).
Каждая строка содержит информацию об одном согласовании. Первая часть строки (на скриншоте – "Согласование документа") содержит название задачи согласования, вторая часть строки – название документа. Сама строка представляет собой ссылку на страницу задачи согласования.
Рис. 1. Портлет "Код" с результатами работы программного кода
Кнопки управления портлетом:
– портлет развернут. Для сворачивания портлета нажмите кнопкой мыши на данную кнопку.
– портлет свернут. Для разворачивания портлета нажмите кнопкой мыши на данную кнопку.

Персональные настройки портлета

Каждый портлет имеет общие настройки, которые по умолчанию устанавливаются администратором системы. Пользователи при настройке главной страницы могут изменять персональные настройки портлета.
Окно установки персональных настроек портлета представлено на рис. 2.
Рис. 2. Персональные настройки портлета "Код"
Персональной настройкой данного портлета является ссылка на редактор программного кода Открыть редактор разметки. Для открытия редактора (рис. 3) в новой вкладке браузера или в новом окне нажмите кнопкой мыши на данную ссылку.
Рис. 3. Редактор разметки портлета "Код" с частью программного кода
Введите текст кода.
Следует отметить, что язык Razor представляет собой смесь языков C# и HTML, и позволяет работать с объектами системы, оформляя данные с помощью HTML. Для оформления одной строчки кода C# используется символ @, а для оформления блока кода – конструкция @{…}. Подробнее см. ASP.NET MVC 3 Razor.
Полный программный код приведенного выше примера (рис. 3) следующий:
@using EleWise.ELMA.Security.Models
@using EleWise.ELMA.Security.Services
@using EleWise.ELMA.Tasks.Models
@using EleWise.ELMA.Model.Managers
@using EleWise.ELMA.Model.Services;
@using EleWise.ELMA.Documents.Models.Tasks
@{   
             //создаем переменные, которые хранят статичные ссылки
                        //Для согласования документов
                        var DocRef = "http://127.0.0.1:8000/Docflow/Approvement/Execute/";
                        //и для задач
                        var TaskRef = "http://127.0.0.1:8000/Tasks/Task/Approve/";
                        //определяем текущего пользователя
                        var CurUser = (User)AuthenticationService.GetCurrentUser<EleWise.ELMA.Security.Models.IUser>();
            //находим все задачи согласования
            var filter = InterfaceActivator.Create<IApprovalTaskFilter>();
            filter.Statuses = TaskBaseExtensions.ActiveTaskStatuses.ToList();
            filter.Executor = CurUser;
            var MyApprove = EntityManager<ApprovalTask>.Instance.Find(filter, null).ToList();
 
            //тоже самое для документов
            var filter2 = InterfaceActivator.Create<DocumentApprovementTaskFilter>();
            filter2.Statuses = TaskBaseExtensions.ActiveTaskStatuses.ToList();
            filter2.Executor = CurUser;
            var MyDocHarm = EntityManager<DocumentApprovementTask>.Instance.Find(filter2, null).ToList(); 
}
@{
foreach(var item in MyDocHarm)
   {
   //формируем ссылку из заранее созданных переменных и id найденных задач
   <a href=@DocRef@item.Id>Согласование документа - @item.Subject</a>
   }
}
@{
   foreach(var item in MyApprove)
   {
   <a href=@TaskRef@item.Id>@item.Subject</a>
   }
}
Для предварительного просмотра получившегося результата нажмите на кнопку Просмотр. Для возврата к редактированию кода нажмите на кнопку Код. Для сохранения текста кода нажмите на кнопку Сохранить. Для отмены сохранения введенного кода нажмите на кнопку Отмена.
Вернитесь в окно персональных настроек портлета.
При необходимости установки дополнительных настроек нажмите кнопкой мыши на кнопку Дополнительно и заполните все необходимые поля. Подробнее см. в разделе Настройки портлетов.
Выполнив все настройки портлета, нажмите одну из кнопок:
Сохранить – настройки сохранятся и окно настроек закроется;
Сохранить и продолжить – настройки сохранятся, но окно настроек не закроется, и можно будет продолжить настройку.
См. также: