Как создать набор виджетов, который доступен только руководителям
<< Click to Display Table of Contents >> Разработка > Примеры разработки > Виджеты Как создать набор виджетов, который доступен только руководителям |
Предположим, необходимо создать набор виджетов, который в проводнике системы доступен только руководителям подразделений. В набор нужно добавить виджеты:
•«Мои используемые документы», разработан в новом решении. У виджета есть параметр-перечисление Показывать документы. Возможные значения параметра: Все, Измененные, Просмотренные. По умолчанию отображается информация по всем документам. Необходимо, чтобы в новом наборе в виджете отображалась информация только по документам, которые были открыты для изменения;
•«Подразделения с высокой загрузкой» и «Поручения на контроле», которые уже есть в базовом решении;
•для перехода в список сотрудников;
•для открытия папки «Избранное».
Для этого:
1.В редакторе решения перейдите в узел «Наборы виджетов».
2.Нажмите на кнопку Добавить.
3.В списке элементов выделите добавленный элемент и задайте настройки:
*Имя набора виджетов. Должно быть уникальным в рамках одного решения, состоять из букв латинского алфавита и цифр.
*Отображаемое имя набора виджетов, которое будет отображаться в качестве названия набора в проводнике системы.
Для локализации отображаемого имени перейдите по ссылке Локализовать.
4.Добавьте в набор необходимые виджеты. Для этого используйте кнопки:
Добавить виджет. Один из разработанных виджетов. При нажатии на кнопку откроется окно:
В выпадающем списке Виджет для выбора доступны виджеты базового решения и виджеты, разработанные в новом решении. Выберите нужный и нажмите на кнопку ОК.
Добавить виджет типа сущности. Виджет, который представляет собой ссылку на один из список типов сущности. При нажатии на кнопку откроется окно для выбора типа сущности. В выпадающем списке выберите тип сущности «Сотрудники» (Sungero.Company.Employee) и нажмите на кнопку ОК.
Добавить виджет папки. Виджет, который представляет собой ссылку на одну из папок. При нажатии на кнопку откроется окно для выбора вычисляемой папки. В выпадающем списке выберите папку «Избранное» (Favorites) и нажмите на кнопку ОК.
Добавленные виджеты отобразятся в области предпросмотра набора виджетов.
5.Настройте расположение виджетов в наборе. Для этого перемещайте виджеты в области предпросмотра с помощью мыши.
6.По умолчанию в виджете «Мои используемые документы» отображается информация по всем документам. Необходимо, чтобы в нем отображалась информация только по документам, которые были открыты для изменения. Для этого измените значение параметра виджета Показывать документы.
Важно. Состав параметров зависит от виджета и настраивается в редакторе модуля в узле «Виджеты».
Чтобы изменить значение параметра, в области предпросмотра в виджете нажмите на кнопку Параметры. Откроется окно настройки:
В выпадающем списке Показывать документы выберите значение Измененные и нажмите на кнопку ОК.
7.Задайте обработчик события Ограничение доступности, чтобы определить состав пользователей, которым доступен данный набор виджетов. Для этого установите флажок Ограничение доступности и перейдите по ссылке. Откроется редактор программного кода. Задайте ограничение по вхождению в роль «Руководители подразделений».
Важно. Если обработчик события Ограничение доступности не задан, то набор виджетов будет доступен для выбора всем пользователям.
Пример. Обработчик события Ограничение доступности для набора виджетов руководителя:
internal static class DesktopViewHandlers
{
/// <summary>
/// Проверить вхождение текущего пользователя
/// в роль руководителей подразделений.
/// </summary>
/// <returns> True, если входит, иначе False.</returns>
private static bool CanApplyTopManager()
{
return IncludedInRole("Руководители подразделений");
}
/// <summary>
/// Проверить вхождение текущего пользователя в роль.
/// </summary>
/// <param name="roleName"> Имя роли.</param>
/// <returns> True, если входит, иначе False.</returns>
public static bool IncludedInRole(string roleName)
{
var ceoRole = Roles.GetAll(r => r.Name == roleName).FirstOrDefault();
if (ceoRole == null)
return false;
var employee = Users.Current;
return employee.IncludedIn(ceoRole);
}
}
В результате в проводнике системы появится новый набор виджетов, который будет доступен для пользователей, входящих в роль «Руководители подразделений».
© Компания Directum, 2024 |