Описание релизов/0.46.0: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показана 51 промежуточная версия 1 участника)
Строка 1: Строка 1:
 +
=Критичные изменения=
 +
==Формы==
 +
===Восстановление формы после бездействия===
 +
Реализовано восстановление формы после бездействия в течении 5 минут. При бездействии в течении суток, восстановление невозможно. При необходимости выключить данное поведение реализован флаг в конфигурационном файле сервиса:
 +
 +
<syntaxhighlight lang="JSON" line>
 +
  "FeatureFlags": {
 +
    "DisableRenewInstanceLifeTime": false
 +
  }
 +
</syntaxhighlight>
 +
 +
 +
 
=Новая функциональность=
 
=Новая функциональность=
 
== Отчёты ==
 
== Отчёты ==
 
===Возможность в параметре для гиперссылки указывать отметку справочника столбца===
 
===Возможность в параметре для гиперссылки указывать отметку справочника столбца===
Реализована возможность передавать в параметр, для формирования гиперссылки, элемент справочника столбца. Данная возможность позволяет формировать более сложные гиперссылки, которые будут зависеть как от параметра строки, так и столбца. Для формирования такой ссылки необходимо в блоке "parameterSources" задать два параметра.
+
Реализована возможность передавать в параметр элемент справочника столбца для формирования гиперссылки. Данная возможность позволяет формировать более сложные гиперссылки, которые будут зависеть как от элемента строки, так и столбца. Для формирования такой ссылки необходимо в блоке "parameterSources" задать два параметра.
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
Строка 40: Строка 53:
  
 
[[Файл:гиперссылки.gif|слева|800px|border]]<br clear="both" /><br>
 
[[Файл:гиперссылки.gif|слева|800px|border]]<br clear="both" /><br>
 +
 +
<div class="NavFrame collapsed" style="width:700px; overflow:auto;">
 +
  <div class="NavHead">Пример</div>
 +
  <div class="NavContent">
 +
[https://study.3v-cloud.com/navigator/#/home?objectId=2952 Пример]
 +
  </div>
 +
</div>
 +
<br>
 +
 +
===Возможность в качестве метода наполнения выбрать отображение только для первого элемента в ветке===
 +
Добавлена возможность с помощью конструктора отчетов  в блоке "строки" в настройке "Метод наполнения" выбрать опцию "Отображать только для первого элемента в ветке", которая позволяет корректно отображать данные для разноразмерных показателей, если в отчете заданы связи атрибутов по измерениям. <br>
 +
Метод ‘отображать для первого элемента’ позволяет отобразить только факт показателя для первого элемента в указанном справочнике, а метод "Отображать только для первого элемента в ветке" позволяет не дублировать, но отобразить данные для каждого элемента.
 +
[[Файл:метож наполнения.png|слева|800px|border]]<br clear="both" /><br>
 +
<gallery mode="packed"; heights=180px style="text-align:left;">
 +
Файл:отчет до (п.э.в).png|<div style="text-align:center">'''Дублировать'''</div>
 +
Файл:отчет после(п.э.в).png|<div style="text-align:center">'''Отображать только для первого элемента в ветке'''</div>
 +
</gallery>
 +
 +
<div class="NavFrame collapsed" style="width:700px; overflow:auto;">
 +
  <div class="NavHead">Пример</div>
 +
  <div class="NavContent">
 +
[https://study.3v-cloud.com/navigator/#/?viewId=2953 Пример]
 +
  </div>
 +
</div>
 +
<br>
  
 
== Формы ==
 
== Формы ==
Строка 50: Строка 88:
  
  
===Компонент карта===
+
===Доработка компонента карта===
 
==== Поддержка точек на карте  ====
 
==== Поддержка точек на карте  ====
 
Для добавления точек на карту необходимо в отчет (источник данных для карты) добавить дочерний элемент точки в формате данных geoJSON  и типом Point.
 
Для добавления точек на карту необходимо в отчет (источник данных для карты) добавить дочерний элемент точки в формате данных geoJSON  и типом Point.
Строка 74: Строка 112:
 
</div></div>
 
</div></div>
 
[[Файл:geoJSON.png|слева|700px|border]]<br clear="both" /><br>
 
[[Файл:geoJSON.png|слева|700px|border]]<br clear="both" /><br>
 
+
[[Файл:карта гиф.gif|слева|900px|border]]<br clear="both" /><br>
 
 
  
 
==== Возможность задания маркеров для точек ====
 
==== Возможность задания маркеров для точек ====
Для задания кастомного маркера для точек необходимо в отчет (источник данных для карты) добавить столбец с картинкой в формате base64.
+
Для задания пользовательского маркера для точек необходимо в отчет (источник данных для карты) добавить столбец с изображением в формате base64.
 
[[Файл:маркер.png|слева|800px|border]]<br clear="both" /><br>
 
[[Файл:маркер.png|слева|800px|border]]<br clear="both" /><br>
В конструкторе формы добавлено новое поле «№ колонки с картинками для маркеров», в которое необходимо записать номер колонки отчета, в которой записаны маркеры, для отображения маркеров на карте.
+
В конструкторе формы добавлено новое поле «№ колонки с картинками для маркеров», в которое необходимо указать номер столбца отчета, в котором располагаются изображения, для отображения маркеров на карте.
[[Файл:форма. колонка с маркерами.png|слева|800px|border]]<br clear="both" /><br>
+
[[Файл:Screenshot карта.png|слева|800px|border]]<br clear="both" /><br>
 
 
  
 
==== Редактор конфигураций ====
 
==== Редактор конфигураций ====
Для более гибкой настройки карты добавлен редактор конфигураций, который работает по аналогии с редактором конфигураций в графиках.<br>
+
Для более гибкой настройки карты добавлен редактор конфигураций, который работает по аналогии с редактором конфигураций в диаграммах.<br>
 
В редактор можно добавлять любые свойства highcharts, найти которые можно по [https://api.highcharts.com/highcharts/ ссылке].
 
В редактор можно добавлять любые свойства highcharts, найти которые можно по [https://api.highcharts.com/highcharts/ ссылке].
 
[[Файл:редактор конфигураций.png|слева|700px|border]]<br clear="both" /><br>
 
[[Файл:редактор конфигураций.png|слева|700px|border]]<br clear="both" /><br>
 
  
 
==== Задание тултипа ====
 
==== Задание тултипа ====
* Появилась возможность задать ячейку с данными для тултипа (всплывающая подсказка, появляющаяся при наведении курсора на элемент).Для этого добавлены отметка «Использовать кастомный тултип» и строка «№ колонки с данными для тултипа».
+
* Появилась возможность задать ячейку с данными для тултипа (всплывающая подсказка, появляющаяся при наведении курсора на элемент). Для этого добавлены флаг «Использовать кастомный тултип» и строка «№ колонки с данными для тултипа».
[[Файл:тултип кастомный.png|слева|500px|border]]<br clear="both" /><br>
 
  
 
* Для вывода дополнительных данных в тултипе в редактор конфигураций выведено свойство 'point.properties.tooltip'.  
 
* Для вывода дополнительных данных в тултипе в редактор конфигураций выведено свойство 'point.properties.tooltip'.  
Строка 106: Строка 140:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
[[Файл:тултип.png|слева|600px|border]]<br clear="both" /><br>
+
[[Файл:Screenshot тултип.png|слева|700px|border]]<br clear="both" /><br>
 +
 
 +
<div class="NavFrame collapsed" style="width:700px; overflow:auto;">
 +
  <div class="NavHead">Пример карты</div>
 +
  <div class="NavContent">
 +
[https://study.3v-cloud.com/navigator/#/home?objectId=1471 Пример]
 +
  </div>
 +
</div>
 +
<br>
 +
 
 +
=== Добавлена вкладка стилей к элементу форма ===
 +
Добавлена вкладка стилей к элементу "форма", настройки на вкладке реализованы аналогично контейнерам.
 +
Свойство "Форма-контейнер" остается JSON-модели, но удалено из конструктора.
 +
Свойство "На весь экран" при создании новых форм автоматически будет отключено. Для задания ограничения высоты формы высотой экрана, возможно указать в поле "высота" 100%
 +
 
 +
[[Файл:форма вкладка стили.gif|слева|800px|border]]<br clear="both" /><br>
 +
 
 +
=== Модальные формы ===
 +
Реализован новый механизм открытия модальных форм.
 +
[[Файл:модальная форма.gif|слева|800px|border]]<br clear="both" /><br>
 +
В конструкторе форм  добавлен новый элемент "Кнопка открытия модального окна". В свойства данного элемента добавлена возможность выбрать форму, которая будет открываться при нажатии на кнопку. Формы выбираются из списка объектов приложения, с фильтром по типу.<br>
 +
Если размер модальной формы не задан, то он устанавливается по умолчанию, и форма занимает столько места, сколько требует контент, но не более 80% экрана.
 +
Задание размера модальной формы происходит в стилях открываемой формы, также как задание размеров контейнера. '''Важно'''! При необходимости задания размеров открываемой формы, они должны указываться в пикселях (px) или в проценте от основной формы (vh). Формы, размер которых задан в процентах (%), не будут работать корректно.
 +
[[Файл:кнопка открытия модалки.gif|слева|1100px|border]]<br clear="both" /><br>
 +
 
 +
Для элемента "Кнопка" в конструкторе добавлено свойство "Действие при открытии в виде модальной формы" с двумя типами:
 +
* Отмена (с проверкой на наличие измененных данных)
 +
* Готово (выполнение дополнительных действий, которые указаны в action и conditionalActions в модальной форме и закрытие модальной формы)
 +
При нажатии на область вне модальной формы, а также при нажатии на клавишу Esc происходит закрытие модальной формы с типом модального действия "Отмена".
 +
[[Файл:действие при открытии мф.png|слева|800px|border]]<br clear="both" /><br>
  
 
== Согласование ==
 
== Согласование ==
Строка 113: Строка 176:
  
 
'''Настройки для состояния:'''
 
'''Настройки для состояния:'''
* Наименование состояния - задается наименование для состояния, которое будет выводиться в таблице в колонке "Состояния/Шаг", в том числе можно задать локализованное значение. В json настройка localizedName.
+
* Наименование состояния - задается наименование для состояния, которое будет выводиться в таблице в столбце "Состояния/Шаг", в том числе можно задать локализованное значение.  
[[Файл:создание состояния.gif|слева|850px|border]]<br clear="both" /><br>
+
[[Файл:создание состония.gif|слева|850px|border]]<br clear="both" /><br>
  
* Срок исполнения - регламент, который задается для состояния. В качестве значения можно выбрать конкретную дату, либо период времени для завершения состояния: год, квартал, месяц, день, час. Если выбрана "Дата", то справа отображается компонент календаря для выбора даты. Если выбрано одно из значений: часы, дни, месяцы, кварталы, годы, то отображается компонент ввода значения выбранного периода. Если после настройки регламента выключить флаг "Срок исполнения", сохранить, то после повторного включения флага предыдущие данные отображаться не будут.
 
[[Файл:срок исполнения.gif|слева|850px|border]]<br clear="both" /><br>
 
  
* Настройка уведомлений. Состоянием (stateId), для которого настраивается уведомление будет текущее редактируемое состояние. При нажатии на + открывается модальное окно настройки уведомления. При добавлении нескольких уведомлений, они выводятся списком, по кнопке с тремя точками выводится меню с пунктами "Удалить" и "Редактировать". При редактировании и нажатии на сам элемент списка открывается модальное окно с настройками.
+
* Срок исполнения - регламентный период, который определяет срок перехода из состояния, на которое он задан. В качестве значения можно выбрать конкретную дату, либо период времени для завершения состояния: год, квартал, месяц, день, час. Если выбрана "Дата", то справа отображается компонент календаря для выбора даты. Если выбрано одно из значений: часы, дни, месяцы, кварталы, годы, то отображается компонент ввода значения выбранного периода. Если после настройки регламента выключить флаг "Срок исполнения", сохранить, то после повторного включения флага предыдущие данные отображаться не будут.
 +
[[Файл:срок исполнения1.gif|слева|850px|border]]<br clear="both" /><br>
 +
 
 +
* Настройка уведомлений. При нажатии на + открывается модальное окно настройки уведомления. При добавлении нескольких уведомлений, они выводятся списком, по кнопке с тремя точками выводится меню с пунктами "Удалить" и "Редактировать". При редактировании и нажатии на сам элемент списка открывается модальное окно с настройками.
 
Настройки в модальном окне:<br>
 
Настройки в модальном окне:<br>
  
Строка 131: Строка 195:
 
в) Настройка шаблона заголовка письма. (template - title)<br>
 
в) Настройка шаблона заголовка письма. (template - title)<br>
  
г) Настройка шаблона тела письма. (template - body)
+
г) Настройка шаблона текста письма. (template - body)
[[Файл:уведомления.gif|слева|900px|border]]<br clear="both" /><br>
+
[[Файл:согласование уведомления.gif|слева|900px|border]]<br clear="both" /><br>
  
* Настройка подпроцессов. При нажатии на + открывается модальное окно настройки подпроцесса.
+
* Настройка подпроцессов. При нажатии на + открывается модальное окно настройки подпроцесса.<br>
Настройки в модальном окне:
+
Настройки в модальном окне:<br>
а) Выбор объекта согласования из репозитория.
+
а) Выбор объекта согласования из приложения.<br>
б) Задание наименование подпроцесса.
+
б) Задание наименование подпроцесса.<br>
 
в) Настройка связи параметров основного процесса и подпроцесса. В первом столбце таблицы - параметр основного процесса, во втором - параметр подпроцесса.
 
в) Настройка связи параметров основного процесса и подпроцесса. В первом столбце таблицы - параметр основного процесса, во втором - параметр подпроцесса.
 
[[Файл:подпроцесс.gif|слева|850px|border]]<br clear="both" /><br>
 
[[Файл:подпроцесс.gif|слева|850px|border]]<br clear="both" /><br>
Строка 143: Строка 207:
  
 
'''Настройки для шагов:'''
 
'''Настройки для шагов:'''
* Наименование шага - задается наименование для шага, которое будет выводиться в таблице в колонке "Состояния/Шаг", в том числе можно задать локализованное значение. В json настройка localizedName.
+
* Наименование шага - задается наименование для шага, которое будет выводиться в таблице в столбце "Состояния/Шаг", в том числе можно задать локализованное значение.  
 
* Настройка "Перейти в состояние". Выбирается состояние, из текущих добавленных, куда будет совершаться переход. Откуда будет совершаться переход - это то состояние, дочерним элементом которого является шаг.
 
* Настройка "Перейти в состояние". Выбирается состояние, из текущих добавленных, куда будет совершаться переход. Откуда будет совершаться переход - это то состояние, дочерним элементом которого является шаг.
 
* Настройка ответственных. При нажатии на + открывается модальное окно настройки ответственного. При нажатии на кнопку с тремя точками выводится меню с пунктами "Исключить" для удаления ответственного из списка, пункт "Разрешить" для настройки разрешающих прав, пункт "Запретить" для настройки запрещающих прав. При создании ответственного по умолчанию задается настройка "Разрешить".
 
* Настройка ответственных. При нажатии на + открывается модальное окно настройки ответственного. При нажатии на кнопку с тремя точками выводится меню с пунктами "Исключить" для удаления ответственного из списка, пункт "Разрешить" для настройки разрешающих прав, пункт "Запретить" для настройки запрещающих прав. При создании ответственного по умолчанию задается настройка "Разрешить".
[[Файл:шаг.png|слева|700px|border]]<br clear="both" /><br>
+
[[Файл:согласование шаги.gif|слева|800px|border]]<br clear="both" /><br>
  
 
== Уведомления ==
 
== Уведомления ==
===Отправка смс-уведомлений на разных языках===
+
===Возможность отправки смс-уведомлений===
Добавлена возможность отправки sms-уведомлений, а также локализации данных уведомлений. Номер телефона для отправки уведомлений заполняется в атрибутах пользователя.<br>
+
Добавлена возможность отправки sms-уведомлений, а также локализации данных уведомлений. Номер телефона для отправки уведомлений заполняется в атрибутах пользователя в Keycloak.<br>
  
 
В шаблонах согласования был добавлен признак, определяющий как отправляется уведомление: email или sms.
 
В шаблонах согласования был добавлен признак, определяющий как отправляется уведомление: email или sms.
Строка 194: Строка 258:
  
 
* В диалоге приглашения пользователя кнопка 'Создать' переименована в 'Пригласить' (англ. 'Invite')
 
* В диалоге приглашения пользователя кнопка 'Создать' переименована в 'Пригласить' (англ. 'Invite')
 +
[[Файл:приглашение пользователя.png|слева|400px|border]]<br clear="both" /><br>
  
 
* В диалоге создания/редактирования пользователя изменен порядок: сначала идет Имя/FirstName, затем Фамилия/LastName.
 
* В диалоге создания/редактирования пользователя изменен порядок: сначала идет Имя/FirstName, затем Фамилия/LastName.
 
  
 
===Ограничения на управление ролями и  пользователями ===
 
===Ограничения на управление ролями и  пользователями ===
Для пользователя добавлены свойства AllowCreateInternalUsers - для добавления новых пользователей и AllowManageRoles – для добавления новых ролей.
+
В конфигурационном файле для пользователя добавлены свойства AllowCreateInternalUsers - для добавления новых пользователей и AllowManageRoles – для добавления новых ролей.
 
* Если AllowCreateInternalUsers = false, то кнопки создания пользователя и смены пароля скрыты. Невозможно создавать новых внешних пользователей, а для существующих - нельзя сбрасывать пароль.  
 
* Если AllowCreateInternalUsers = false, то кнопки создания пользователя и смены пароля скрыты. Невозможно создавать новых внешних пользователей, а для существующих - нельзя сбрасывать пароль.  
 
* Если AllowManageRoles = false, то кнопки добавления, редактирования и удаления роли скрыты. Невозможно создавать, изменять и удалять роли.
 
* Если AllowManageRoles = false, то кнопки добавления, редактирования и удаления роли скрыты. Невозможно создавать, изменять и удалять роли.
  
 
+
=== Ограничение возможностей пользователя при отсутствии прав===
=== Ограничения возможностей пользователя при отсутствии прав===
+
Если пользователь не имеет прав на создание объектов (например если роль пользователя - читатель), то ему недоступны кнопки:
Если пользователь не имеет прав на создание объектов, то ему недоступны кнопки:
 
 
* создание объекта
 
* создание объекта
 
* копирование, вставка, вырезание
 
* копирование, вставка, вырезание
 
* удаление
 
* удаление
 
[[Файл:чтецу недоступны кнопки.png|слева|300px|border]]<br clear="both" /><br>
 
[[Файл:чтецу недоступны кнопки.png|слева|300px|border]]<br clear="both" /><br>
 
  
 
===Поиск на панели раздачи прав===
 
===Поиск на панели раздачи прав===
Строка 222: Строка 284:
 
[[Файл:открытие в новом окне.gif|слева|700px|border]]<br clear="both" /><br>
 
[[Файл:открытие в новом окне.gif|слева|700px|border]]<br clear="both" /><br>
  
== Пользовательский навигатор ==
+
 
== Ресурсы ==
 
== Обновление ==
 
== Соединение ==
 
== Аудит ==
 
== Файловое хранилище==
 
 
== Общее ==
 
== Общее ==
 
===Сервис субъектов - Ограничения на количество пользователей===
 
===Сервис субъектов - Ограничения на количество пользователей===
 
В конфигурационный файл сервиса субъектов добавлен параметр UserLimit, определяющий наибольшее количество пользователей приложения. При достижении лимита невозможно создать нового пользователя, а после удаления пользователей сверх лимита - снова возможно.
 
В конфигурационный файл сервиса субъектов добавлен параметр UserLimit, определяющий наибольшее количество пользователей приложения. При достижении лимита невозможно создать нового пользователя, а после удаления пользователей сверх лимита - снова возможно.
 +
 +
 +
=== Личный кабинет ===
 +
 +
* Для пользователей в [https://admin.3v-cloud.com/cabinet/ личном кабинете] появилась возможность создавать свои приложения под учетной записью google.
 +
[[Файл:создание приложения.gif|800px|слева|border]]<br clear="both" /><br>
 +
* Созданные приложения можно открывать на редактирование и просмотр, то есть в системном и пользовательском навигаторе.
 +
[[Файл:просмотр и редактирование.png|500px|слева|border]]<br clear="both" /><br>
 +
* По умолчанию в приложении для пользователей есть несколько ролей: администратор, редактор и читатель.

Текущая версия на 06:08, 1 июня 2022

Содержание

Критичные изменения

Формы

Восстановление формы после бездействия

Реализовано восстановление формы после бездействия в течении 5 минут. При бездействии в течении суток, восстановление невозможно. При необходимости выключить данное поведение реализован флаг в конфигурационном файле сервиса:

1   "FeatureFlags": {
2     "DisableRenewInstanceLifeTime": false
3   }


Новая функциональность

Отчёты

Возможность в параметре для гиперссылки указывать отметку справочника столбца

Реализована возможность передавать в параметр элемент справочника столбца для формирования гиперссылки. Данная возможность позволяет формировать более сложные гиперссылки, которые будут зависеть как от элемента строки, так и столбца. Для формирования такой ссылки необходимо в блоке "parameterSources" задать два параметра.

Пример задания параметров
 1             "parameterSources": [
 2               {
 3                 "parameterId": 1,
 4                 "valueSource": {
 5                   "dictionaryAttribute": {
 6                     "dictionaryId": 1,
 7                     "attribute": {
 8                       "discriminator": "OwnAttributeDefinitionDto",
 9                       "id": 1
10                     }
11                   },
12                   "discriminator": "AttributeValueSourceDto"
13                 }
14               },
15               {
16                 "parameterId": 2,
17                 "valueSource": {
18                   "dictionaryAttribute": {
19                     "dictionaryId": 2,
20                     "attribute": {
21                       "discriminator": "OwnAttributeDefinitionDto",
22                       "id": 1
23                     }
24                   },
25                   "discriminator": "AttributeValueSourceDto"
26                 }
27               }
28             ],
гиперссылки.gif




Возможность в качестве метода наполнения выбрать отображение только для первого элемента в ветке

Добавлена возможность с помощью конструктора отчетов в блоке "строки" в настройке "Метод наполнения" выбрать опцию "Отображать только для первого элемента в ветке", которая позволяет корректно отображать данные для разноразмерных показателей, если в отчете заданы связи атрибутов по измерениям.
Метод ‘отображать для первого элемента’ позволяет отобразить только факт показателя для первого элемента в указанном справочнике, а метод "Отображать только для первого элемента в ветке" позволяет не дублировать, но отобразить данные для каждого элемента.

метож наполнения.png




Формы

Объединение модели клиента и сервера формы

Теперь при создании формы создается 1 объект - форма, вместо двух отдельных - клиентской и серверной. Создаваемая форма объединяет в себе клиентскую и серверную часть: серверная часть располагается в блоке "serverModel", клиентская часть в блоке "data".

форма клиент сервер.png



Так как серверная и клиентская часть формы объединены, теперь нельзя создать серверную карточку. Данного элемента нет в списке создаваемых объектов.

нет серверной карточки.png




Доработка компонента карта

Поддержка точек на карте

Для добавления точек на карту необходимо в отчет (источник данных для карты) добавить дочерний элемент точки в формате данных geoJSON и типом Point.

Пример geoJSON:
 1 {
 2   "type": "Feature",
 3   "geometry": {
 4     "type": "Point",
 5     "coordinates": [
 6       30.19,
 7       59.56
 8     ]
 9   },
10   "properties": {
11     "name": "Санкт-Петербург"
12   }
13 }
geoJSON.png



карта гиф.gif



Возможность задания маркеров для точек

Для задания пользовательского маркера для точек необходимо в отчет (источник данных для карты) добавить столбец с изображением в формате base64.

маркер.png



В конструкторе формы добавлено новое поле «№ колонки с картинками для маркеров», в которое необходимо указать номер столбца отчета, в котором располагаются изображения, для отображения маркеров на карте.

Screenshot карта.png



Редактор конфигураций

Для более гибкой настройки карты добавлен редактор конфигураций, который работает по аналогии с редактором конфигураций в диаграммах.
В редактор можно добавлять любые свойства highcharts, найти которые можно по ссылке.

редактор конфигураций.png



Задание тултипа

  • Появилась возможность задать ячейку с данными для тултипа (всплывающая подсказка, появляющаяся при наведении курсора на элемент). Для этого добавлены флаг «Использовать кастомный тултип» и строка «№ колонки с данными для тултипа».
  • Для вывода дополнительных данных в тултипе в редактор конфигураций выведено свойство 'point.properties.tooltip'.
Пример настройки тултипа:
1   "tooltip": {
2     "headerFormat": "<span style='font-size:15px'>{series.name}</span><br/>",
3     "pointFormat": "<span>{point.properties.tooltip}</span>{point.name}: <b>{point.properties.tooltip} individuals/km²</b><br/>",
4     "footerFormat": "<span style='font-size:10px'>Source: Wikipedia</span><br/>"
5   }
Screenshot тултип.png




Добавлена вкладка стилей к элементу форма

Добавлена вкладка стилей к элементу "форма", настройки на вкладке реализованы аналогично контейнерам. Свойство "Форма-контейнер" остается JSON-модели, но удалено из конструктора. Свойство "На весь экран" при создании новых форм автоматически будет отключено. Для задания ограничения высоты формы высотой экрана, возможно указать в поле "высота" 100%

форма вкладка стили.gif



Модальные формы

Реализован новый механизм открытия модальных форм.

модальная форма.gif



В конструкторе форм добавлен новый элемент "Кнопка открытия модального окна". В свойства данного элемента добавлена возможность выбрать форму, которая будет открываться при нажатии на кнопку. Формы выбираются из списка объектов приложения, с фильтром по типу.
Если размер модальной формы не задан, то он устанавливается по умолчанию, и форма занимает столько места, сколько требует контент, но не более 80% экрана. Задание размера модальной формы происходит в стилях открываемой формы, также как задание размеров контейнера. Важно! При необходимости задания размеров открываемой формы, они должны указываться в пикселях (px) или в проценте от основной формы (vh). Формы, размер которых задан в процентах (%), не будут работать корректно.

кнопка открытия модалки.gif



Для элемента "Кнопка" в конструкторе добавлено свойство "Действие при открытии в виде модальной формы" с двумя типами:

  • Отмена (с проверкой на наличие измененных данных)
  • Готово (выполнение дополнительных действий, которые указаны в action и conditionalActions в модальной форме и закрытие модальной формы)

При нажатии на область вне модальной формы, а также при нажатии на клавишу Esc происходит закрытие модальной формы с типом модального действия "Отмена".

действие при открытии мф.png



Согласование

Конструктор согласований

Реализован конструктор процессов для настройки объекта согласования "с нуля" и редактирования запущенных экземпляров процесса.

Настройки для состояния:

  • Наименование состояния - задается наименование для состояния, которое будет выводиться в таблице в столбце "Состояния/Шаг", в том числе можно задать локализованное значение.
создание состония.gif




  • Срок исполнения - регламентный период, который определяет срок перехода из состояния, на которое он задан. В качестве значения можно выбрать конкретную дату, либо период времени для завершения состояния: год, квартал, месяц, день, час. Если выбрана "Дата", то справа отображается компонент календаря для выбора даты. Если выбрано одно из значений: часы, дни, месяцы, кварталы, годы, то отображается компонент ввода значения выбранного периода. Если после настройки регламента выключить флаг "Срок исполнения", сохранить, то после повторного включения флага предыдущие данные отображаться не будут.
срок исполнения1.gif



  • Настройка уведомлений. При нажатии на + открывается модальное окно настройки уведомления. При добавлении нескольких уведомлений, они выводятся списком, по кнопке с тремя точками выводится меню с пунктами "Удалить" и "Редактировать". При редактировании и нажатии на сам элемент списка открывается модальное окно с настройками.

Настройки в модальном окне:

а) Тип уведомления - выбор одного из вариантов: "При переходе в состояние" (в json notifications primary), "Дополнительное уведомление" (в json notifications additional), "При просроке/приближении срока по регламенту" (в json notifications regulation), "При изменении настроек" (в json notifications changes).

б) Настройка получателей (recipients - subjects). Для добавления получателя необходимо нажать на кнопку "Выбрать", по которой открывается модальное окно, где можно задать получателя:

  • Выбором пользователя. Отображается список пользователей из Keycloak. Через поле поиска можно найти необходимого пользователя.
  • Выбором роли. Отображается список ролей из Keycloak. Через поле поиска можно найти необходимую роль.
  • Выбором атрибута параметра согласования, в атрибуте должно быть значение пользователя или роли. Выбирается один из параметров объекта согласования, который является справочником (DictionaryParameterModel) и атрибут этого справочника из списка всех его атрибутов.

в) Настройка шаблона заголовка письма. (template - title)

г) Настройка шаблона текста письма. (template - body)

согласование уведомления.gif



  • Настройка подпроцессов. При нажатии на + открывается модальное окно настройки подпроцесса.

Настройки в модальном окне:
а) Выбор объекта согласования из приложения.
б) Задание наименование подпроцесса.
в) Настройка связи параметров основного процесса и подпроцесса. В первом столбце таблицы - параметр основного процесса, во втором - параметр подпроцесса.

подпроцесс.gif




Настройки для шагов:

  • Наименование шага - задается наименование для шага, которое будет выводиться в таблице в столбце "Состояния/Шаг", в том числе можно задать локализованное значение.
  • Настройка "Перейти в состояние". Выбирается состояние, из текущих добавленных, куда будет совершаться переход. Откуда будет совершаться переход - это то состояние, дочерним элементом которого является шаг.
  • Настройка ответственных. При нажатии на + открывается модальное окно настройки ответственного. При нажатии на кнопку с тремя точками выводится меню с пунктами "Исключить" для удаления ответственного из списка, пункт "Разрешить" для настройки разрешающих прав, пункт "Запретить" для настройки запрещающих прав. При создании ответственного по умолчанию задается настройка "Разрешить".
согласование шаги.gif



Уведомления

Возможность отправки смс-уведомлений

Добавлена возможность отправки sms-уведомлений, а также локализации данных уведомлений. Номер телефона для отправки уведомлений заполняется в атрибутах пользователя в Keycloak.

В шаблонах согласования был добавлен признак, определяющий как отправляется уведомление: email или sms.

1   "messageTypes": [
2     "Email",
3      "Sms"
4    ]

Для sms была добавлена настройка "localizedShortMessage", которая позволяет локализовать sms-уведомления.

Пример настройки локализации sms-уведомлений
 1           "localizedShortMessage": {
 2             "defaultValue": "Default short message",
 3             "items": [
 4               {
 5                 "language": "ru",
 6                 "value": "Ru short message"
 7               },
 8               {
 9                 "language": "en",
10                 "value": "En short message"
11               }
12             ]
13           },

Навигатор

Роли и пользователи

  • При первом открытии вкладки и во всех случаях, когда не выбрана роль в центральном дереве отображаются все пользователи.
все пользователи.gif



  • Название вкладки в системном навигаторе изменено на 'Роли и Пользователи' (англ. 'Roles and Users').
роли и пользователи.png



  • В центральном дереве меняется название роли после смены выделения роли в левом дереве.
изменение роли в центр дереве.gif



  • В диалоге приглашения пользователя кнопка 'Создать' переименована в 'Пригласить' (англ. 'Invite')
приглашение пользователя.png



  • В диалоге создания/редактирования пользователя изменен порядок: сначала идет Имя/FirstName, затем Фамилия/LastName.

Ограничения на управление ролями и пользователями

В конфигурационном файле для пользователя добавлены свойства AllowCreateInternalUsers - для добавления новых пользователей и AllowManageRoles – для добавления новых ролей.

  • Если AllowCreateInternalUsers = false, то кнопки создания пользователя и смены пароля скрыты. Невозможно создавать новых внешних пользователей, а для существующих - нельзя сбрасывать пароль.
  • Если AllowManageRoles = false, то кнопки добавления, редактирования и удаления роли скрыты. Невозможно создавать, изменять и удалять роли.

Ограничение возможностей пользователя при отсутствии прав

Если пользователь не имеет прав на создание объектов (например если роль пользователя - читатель), то ему недоступны кнопки:

  • создание объекта
  • копирование, вставка, вырезание
  • удаление
чтецу недоступны кнопки.png



Поиск на панели раздачи прав

Добавлена кнопка поиска на панели раздачи прав, аналогично, как для поиска пользователей на форме Роли и Пользователи.

поиск пользователя.png




Открытие ссылок на объект репозитория в новой вкладке браузера

В системном и пользовательском навигаторе реализована возможность открывать объекты навигатора в новой вкладке.

открытие в новом окне.gif




Общее

Сервис субъектов - Ограничения на количество пользователей

В конфигурационный файл сервиса субъектов добавлен параметр UserLimit, определяющий наибольшее количество пользователей приложения. При достижении лимита невозможно создать нового пользователя, а после удаления пользователей сверх лимита - снова возможно.


Личный кабинет

  • Для пользователей в личном кабинете появилась возможность создавать свои приложения под учетной записью google.
создание приложения.gif



  • Созданные приложения можно открывать на редактирование и просмотр, то есть в системном и пользовательском навигаторе.
просмотр и редактирование.png



  • По умолчанию в приложении для пользователей есть несколько ролей: администратор, редактор и читатель.