Патч 4.0.1 (23.03.2024)¶
Новые возможности¶
- Добавлена функциональность удаления файла в корзину с возможностью его восстановления. Подробнее см. Удаление и восстановление файла.
- В web-клиенте добавлена функциональность аватаров для пользователей системы. Реализованы загрузка аватара пользователем и сброс аватара к значению по умолчанию.
- Реализована поддержка временных ссылок на контент системы, получение контента по такой ссылке не требует авторизации. В рамках проектных решений могут быть реализованы свои обработчики для доступа к необходимому контенту. Подробнее в руководстве разработчика.
- В метаданные колонок представлений добавлено поле
InvisibleByDefault, с помощью которого можно указать, что в пользовательском интерфейсе колонка должна быть скрыта по умолчанию, но её видимостью можно управлять через пользовательские настройки представлений (по умолчанию колонки видны).
Добавление и изменение функциональности¶
- Реализовано расширение на представление и на узел рабочего места
UserAvatarInRowViewExtension, которое позволяет добавить аватар сотрудника в ячейку строки представления. - Для кнопок шаблонов бизнес-процессов добавлены настройки “Алиас”, “Отображать на тулбаре”, “Разрешённые версии бизнес-процесса” и “Скрывать из интерфейса”, подробнее см. раздел документации Кнопки бизнес-процесса.
- Для флагов правил доступа “Редактирование ФРЗ своих заданий” и “Редактирование ФРЗ всех заданий” добавлены всплывающие подсказки.
- В строковые значения ключей, указываемых в конфигурационных файлах
app.json, добавлена возможность подставлять значения символов с помощью конструкции%var%, гдеvar- имя символа, определённого в блоке.define, или имя переменной окружения (без учёта регистра). Если символ или переменная не определены, то подставляется пустая строка. Укажите%%для эскейпинга символа%(%%var%%преобразуется в строку%var%). Пример:"Host=localhost; Database=%DATABASE_NAME%; Integrated Security=false; User ID=postgres; Password=%DATABASE_PASSWORD%; Pooling=true; Timeout=0"заменит%DATABASE_NAME%на имя базы и%DATABASE_PASSWORD%на пароль из переменных среды, которые альтернативно можно задать в блоке".define": [ "DATABASE_NAME=tessa", "DATABASE_PASSWORD=Master1234" ]в том же или в соседнем файлеapp-vars.json(имя указано для примера). - В web-клиенте обновлён внешний вид окна входа в систему.
- Добавлен раздел документации Конфигурационные файлы и переменные окружения, в котором перечислены различные виды конфигурационных файлов, описан их синтаксис и приведены примеры, а также перечислены переменные окружения, которые можно использовать в системе.
- Добавлены переменные окружения, посредством которых можно изменить пути к конфигурационным файлам и папкам для запущенного приложения:
TESSA_EXTENSIONS_ROOT,TESSA_APP_JSON,TESSA_NLOG_CONFIG,TESSA_CID,TESSA_AUTHORIZED_KEYS. Также доработано поведение переменной средыTESSA_CONFIG_ROOT. Описание в разделе Переменные окружения. - В файлах
extensions.xmlдля тега<path/>укажите атрибутsubfolders="false", чтобы в указанной папке не выполнялось сканирование подпапок на наличие в них дополнительных файловextensions.xml. По умолчанию сканирование выполняется. - В web-клиенте реализован валидатор уникальности для проверки значения в поле секции относительно других карточек или других строк в той же карточке.
- В web-клиенте добавлено расширение для выполнения валидаторов карточки при её сохранении. Если при выполнении одного из валидаторов будет получена ошибка, то запрос на сохранение карточки не будет отправлен на сервер.
- В web-клиенте из контекстного меню колонок представлений, находящихся в рабочих местах, был удалены пункты “Отобразить столбец” и “Расположение тегов”, а также пункты, связанные с сохранением и сбросом настроек. Теперь эта функциональность доступна в диалоге настроек представления.
- В мобильной версии web-клиента удалено контекстное меню для колонок представлений. Теперь эти настройки можно изменить через диалог настроек представления.
- В web-клиенте добавлено ограничение на сортировку. Теперь можно сортировать представления максимум по двум колонкам.
- В web-клиенте добавлен диалог настроек представлений в рабочих местах и карточках. С помощью него можно задать порядок и видимость колонок, указать сортировку, группировку и способ отображения тегов. Также с помощью данного диалога можно восстановить настройки по умолчанию.
- В web-клиенте добавлен информационный блок, доступный при клике на кнопку настроек представления, с помощью которого можно узнать о том, что настройки представления были изменены текущим пользователем, но не сохранены. Также с помощью данного блока эти настройки можно сохранить или сбросить к последним сохранённым.
- В web-клиенте добавлена возможность выполнять прокрутку многостраничного тулбара посредством колеса мыши.
- В web-клиенте добавлена возможность циклического переключения между страницами тулбара.
- В web-клиенте в диалоговых окнах выбора представлений теперь не отображаются вкладки с рабочими местами, если для выбора доступно единственное рабочее место.
- В web-клиенте в диалоговых окнах выбора представлений теперь не отображается дерево представлений, содержащее единственный узел без видимых дочерних узлов.
- В плагине
RemoveInactiveSessionsPluginстарые сессии теперь удаляются, независимо от использованного сессией типа лицензии. - В конфигурационных файлах
app.jsonиapp-web.jsonнастройкаEnforceTls12теперь по умолчанию указана какtrue. Это запрещает использование протоколов TLS ниже версии 1.2. Актуально для веб-сервисовwebиjinniдля запуска в режиме Kestrel (без front-сервера в виде IIS/Nginx/Apache), для интеграции с LDAP, а также для синхронизации с Active Directory/LDAP в Chronos. - Добавлено разрешение “Восстановление всех удалённых файлов” в правило доступа, которое позволяет сотруднику восстанавливать любые файлы в карточке - как удалённые им самим, так и удалённые другими сотрудниками.
- Добавлен плагин
RemoveDeletedFilesPluginдля удаления старых файлов из корзины. Срок хранения удалённых файлов в корзине задаётся в карточке “Настройки сервера”. Подробнее см. Настройки сервера. - В типовых задачах добавлен валидатор уникальности для поля “Исполнители”. Теперь, во время обработки задания, повторяющиеся исполнители будут удаляться автоматически.
- В настройки этапа маршрутов “Создать файл по шаблону” и одноимённого действия в конструкторе бизнес-процессов добавлена настройка “Категория файла”. Подробнее о настройках см. в разделах документации Маршруты документов. Создать файл по шаблону и Описание действий бизнес-процессов. Добавить файл по шаблону.
- При выводе строк подключения к Redis и к базе данных (например, в логи и на консоль) из строк удаляются пароли.
- Изменена схема работы уведомлений в форумах и обсуждениях: теперь уведомления о новом сообщении приходят всем подписанным участникам сразу после отправки сообщения вместо периодической отправки группами по несколько сообщений.
- Для форумов и обсуждений добавлено уведомление о добавлении участника в топик.
- При экспорте карточек типа “Раздел справки” html-содержимое теперь выгружается в отдельный файл в отформатированном виде.
- Добавлен новый тип события для истории действий “Неудачное открытие карточки”. Событие данного типа записывается в историю действий при любых возникающих ошибках во время попытки открытия карточек для просмотра, редактирования или экспорта. Подробные данные о возникших ошибках расположены на вкладке “Системная информация” карточки “Запись в истории”.
- В веб-сервис
jinniдобавлена проверка/hcheck, позволяющая установить доступность всех соединений с Redis, указанных при запуске в конфигурационных файлах, параметрах командной строки или переменных окружения. - В веб-сервис
jinniдобавлена поддержка значенийServerCodeдля проверки инициализации данных системы в Redis.ServerCodeможно указать либо в файлеapp.json, либо в переменной окруженияJINNI_SERVER_CODE. - Для контрола “Представление” добавлена настройка “Отключить при создании карточки”, предотвращающая выполнение представления, если текущая карточка только что создана и ещё не сохранена. Подробнее см. в разделе документации Представление.
- В web-клиенте добавлена возможность выбора кодировки текстовых файлов в режиме предпросмотра.
- В шаблоны файлов в формате
.docxдобавлена возможность выделения области строки, группы или таблицы с помощью примечания. Подробнее см. раздел Примеры создания шаблонов файлов в формате docx. - В шаблоны файлов с формате
.docxдобавлена возможность использовать блоки с условиями внутри областей таблиц. Такие блоки с условиями будут обработаны отдельно для каждой строки таблицы. Подробнее см. раздел Блоки с условиями в шаблонах файлов в формате docx. - В интеграции SAML добавлена возможность использовать тип привязки
Redirectв запросеlogout. Также теперь доступна ручная настройка ограничений идентификатора имени пользователя в SAML. См. настройки SAML в конфигурационном файле приложения. - В настройки расширения создания карточки из представления
CreateCardExtensionдобавлен параметр “Заголовок вкладки/окна”, который определяет заголовок для открываемой вкладки или модального окна, в зависимости от варианта открытия созданной карточки. Если значение не указано, то используется стандартный текст заголовка. - При создании нового тега из диалога и представления модальное окно теперь открывается с заголовком “Новый тег”, а не “Новая карточка”.
- Добавлена поддержка умных ролей в составе умных ролей.
- В карточке “Настройки сервера” для форумов и обсуждений увеличено значение настройки “Максимальный размер сообщения” по умолчанию с 1000 до 5000 символов.
- Для типа карточки “Сотрудник” изменён внешний вид и компоновка интерфейса, и скорректированы некоторые строки локализации.
- Добавлена возможность выбора представлений в типе карточек “Шаблон файла” при помощи ручного ввода. Это позволяет выбрать представления, генерируемые перехватчиком на клиенте.
- Добавлено событие истории действий “Получение содержимого файла по ссылке”, связанное с функциональностью временных ссылок на файлы.
Консольная утилита tadmin¶
- Добавлена команда
PrintLocks, с помощью которой можно вывести список идентификаторов заблокированных объектов из Redis для указанных групп. Подробнее см. в разделе Команды для прочих административных функций. - Добавлена команда
DeleteLocks, с помощью которой можно удалить блокировки заблокированных объектов из Redis. Подробнее см. в разделе Команды для прочих административных функций. - Для команды
ManageRolesдобавлены субкомандыRecalcSmartRoleGeneratorsиRecalcAllSmartRoleGeneratorsдля перерасчёта генераторов умных ролей. Подробнее см. Управление ролями в части замещений и пересчёта ролей. - В команду
PrintComponentsдобавлены параметры:-rдля опционального указания строки подключения к Redis,-scдля опционального указания кода сервера, используемого при подключении к Redis (если не указаны, будут использованы настройки из конфигурационного файлаapp.json). Также добавлен стандартный параметр-q. Подробнее см. в разделе Команда просмотра состояния компонентов. - В команду
GenerateCommandKeyдобавлены параметры:-rдля опционального указания строки подключения к Redis,-scдля опционального указания кода сервера, используемого при подключении к Redis (если не указаны, будут использованы настройки из конфигурационного файлаapp.json). Подробнее см. в разделе Команда генерации ключей. - Для команды
DeleteCardsдобавлен параметр-b, при указании которого карточки удаляются с возможностью восстановления администратором. - Добавлена клиентская команда
PrintLocksClient, с помощью которой можно вывести список идентификаторов заблокированных объектов из Redis для указанных групп. Подробнее см. в разделе Консольная административная утилита tadmin. - Добавлена клиентская команда
DeleteLocksClient, с помощью которой можно удалить блокировки из Redis для указанных групп. Подробнее см. в разделе Консольная административная утилита tadmin. - Добавлена клиентская команда
PrintComponentsClient, с помощью которой можно получить актуальную информацию по всем известным компонентам системы из внешнего контура. Подробнее см. в разделе Команда просмотра состояния компонентов. - Переименованы команды:
GenerateCommandKey->GenerateDiscoveryKey,PrintComponents->PrintDiscoveryInfo,ViewKey->ViewDiscoveryKey.
Новые версии библиотек¶
.NET 6.0.28CAdESLib 1.6.2CsvHelper 31.0.2DocumentFormat.OpenXml 3.0.2HtmlAgilityPack 1.11.59HtmlSanitizer 8.0.843iTextSharp.LGPLv2.Core 3.4.18Kerberos.NET 4.6.55linq2db 5.4.0LiteDB 5.0.19MailKit 4.4.0Microsoft.CodeAnalysis.CSharp.Workspaces 4.9.2Microsoft.Data.SqlClient 5.2.0Microsoft.IdentityModel.Tokens 7.4.1NetOfficeFw.Word 1.9.5NTwain 3.7.4NUnit 4.1.0OpenTelemetry.Instrumentation.AspNetCore 1.7.1Quartz 3.8.1SixLabors.ImageSharp.Drawing 2.1.2StackExchange.Redis 2.7.33
Изменения API¶
- При запросе контента с клиента через стандартные контроллеры предпочитаемое имя файла, возвращаемое методом
CardGetFileContentResponse.TryGetSuggestedFileName(), теперь всегда по умолчанию определяется для физических файлов в соответствии с актуальным именем файла в базе данных, т.к. указывается свойствоCardGetFileContentRequest.SuggestFileName = true. Например, это позволяет скачать файл по ссылке, в которой не указано имя файла, а указан только его идентификатор. - В интерфейс
ITwoFactorAuthHandlerдобавлено свойствоAttemptTimeout. Используйте его, чтобы задать время жизни для попытки входа пользователя в систему при использовании определённого типа 2FA. Актуально для типов 2FA, которые используют уведомления для отправки кода подтверждения. - В контекст
TwoFactorAuthContextдобавлено опциональное свойствоExistentAttemptID, которое хранит текущий идентификатор попытки входа пользователя в систему. Используйте его, если необходимо выполнить проверку, что двухфакторная аутентификация для пользователя уже была инициирована. - В интерфейс
ITwoFactorAuthRepositoryдобавлены методы для работы с информацией о попытке входа пользователя в систему для определённого типа 2FA. - Добавлен интерфейс
IWorkFlowEngineTileContext, представляющий контекст компиляции для условий кнопок бизнес-процесса, подробнее см. раздел документации API скриптов в условиях для кнопок бизнес-процессов. - Изменён интерфейс
IWorkflowEngineTileCompiled. В методSetDependenciesдобавлены параметрыprocessTemplateID- идентификатор процесса иcontext- объект контекста компиляции для скриптов условий кнопок бизнес-процесса. Добавлены методыTryGetProcessInstanceAsyncиGetAllProcessInstancesAsyncдля получения экземпляров бизнес-процесса внутри скриптов условий кнопок бизнес-процесса. Подробнее см. раздел документации API скриптов в условиях для кнопок бизнес-процессов. - Изменён интерфейс
IWorkflowTileCommand. Из методаOnClickAsyncудалён неиспользуемый параметрtile. - Изменён интерфейс
ITreeNode, удалён неиспользуемый методClone. - Добавлен объект
ITwoFactorAuthPermissionsManager, отвечающий за проверку доступа к настройкам двухфакторной аутентификации пользователя. - Для объекта
IFileConverterRequestдобавлены методы-расширенияSetPdfFilterиTryGetPdfFilter. Они позволяют установить и получить дополнительные параметры командной строки, которые используются при конвертации документа вpdfпосредствомunoconv. - Добавлены опциональные параметры
selectPdfVersionиuseTaggedPDFв методе контроллераapi/v1/converter/operations/{id}для веб-сервиса Jinni. - В объект с параметрами для генерации контекста проверки прав доступа
KrPermissionsCreateContextParamsдобавлен параметрServiceType, определяющий тип сервиса, от которого был получен текущий объект запроса, для которого выполняется проверка прав доступа. - В токен прав доступа
KrTokenдобавлено свойствоServerOnly, при установке которого токен прав доступа учитывается только при проверке прав доступа для серверных запросов. - Добавлена клиентская регистрация для объекта
IOcrAsyncService. Используйте её, если необходимо работать с операциями OCR из клиентского приложения. - Добавлен класс
Tessa.Platform.ConfigurationHelper, предоставляющий возможности получить и изменить расположение конфигурационных файлов. Используйте его методInvalidateAll()для сброса кэша значений для всех конфигурационных файлов, используемых в платформе (например, при изменении настроек для определения путей или при изменении соответствующих переменных окружения). - Тип свойства
ITessaViewRequest.Valuesизменён наIList<RequestParameter>. - Изменена сигнатура статического метода
CardComponentHelper.GetContentContextsAsync. Теперь, если параметрfileIDsне был передан, то метод будет выполнять получение контекстов для всех файлов карточки. - Добавлена стратегия
ICardFileDeleteExecutionStrategyдля выполнения запросов на удаление и восстановление восстановления карточки файла. - В стратегию
ICardFileVersionStrategyдобавлен новый методGetFilesAsyncдля получения списка идентификаторов файлов, относящихся к карточке. - В класс
CardFileдобавлено свойствоDeletionModeтипа перечисленияCardFileDeletionMode. Свойство содержит способ удаления файла. Используйте его, если необходимо удалить файл с возможностью восстановления или восстановить удалённый файл. Пример использования см. в руководстве разработчика. - В метод расширения
FileExtensions.RemoveWithNotificationAsyncдобавлен опциональный параметрwithBackup(по умолчаниюfalse). Он показывает, что файлы удаляются с возможностью восстановления. - Добавлено новое значение
RemovedWithBackupв перечисленииFileNotificationType. Оно показывает, что файл был удалён с возможностью восстановления. - Изменена сигнатура метода-расширения
CardExtensions.HasContent. Теперь метод принимает объект типаCardFileвместоCardFileState. - После выполнения действия бизнес-процесса “Добавить файл по шаблону” в объекте контекста будет храниться дополнительная информация о создаваемом файле и шаблоне. Подробнее см. в разделе документации Описание действий бизнес-процессов. Добавить файл по шаблону..
- Добавлен объект
IRedisConnectionStringCleanerдля очистки переданной строки подключения к Redis от пароля и другой чувствительной информации. Используйте на сервере перед логированием строки подключения или её выводом на консоль. - Добавлен объект
IDbConnectionStringCleanerдля очистки переданной строки подключения к базе данных от пароля и другой чувствительной информации. Используйте на сервере перед логированием строки подключения или её выводом на консоль. - После выполнения обработчика этапа “Создать файл по шаблону” в объекте контекста будет храниться дополнительная информация о создаваемом файле и шаблоне. Подробнее см. в разделе документации Примечание для обработчика этапа “Создать файл по шаблону”.
- Добавлен интерфейс
ITopicParticipantsProviderдля получения всех участников топика и признака их подписки на топик. - В web-клиенте добавлен новый тип диалога
controlsс фоном, соответствующим фону карточки, но без рамки, используемой в типеcard. - Добавлен интерфейс
IStorageContentConverter, позволяющий реализовать конвертер для выгружаемого содержимого карточек. Подробнее см. в разделе документации Конвертеры содержимого полей карточек. - В web-клиенте изменён способ создания модели представления для компонента окна логина. Теперь модель представления регистрируется в DI-контейнере и возвращается как зависимость.
- Добавлена реализация интерфейса
IRedisInitializer- классRedisInitializerChecker, позволяющий проверить инициализированность данных системы в Redis вместо выполнения их полноценной инициализации. - В web-клиенте добавлена поддержка пользовательских элементов меню для
useDropdownиuseCurtainDropdown. - В контекст проверки прав доступа
IKrPermissionsManagerдобавлено свойствоPreviousTokenValidationResult, которое возвращает результат валидации токенаPreviousToken. СвойствоPreviousTokenтеперь передаётся всегда, когда оно было передано в контекст проверки прав доступа, а не только при его успешной валидации. - В web-клиенте добавлена возможность определять кастомные роуты (route), отличные от стандартных роутов для карточек
/cardи рабочих мест/view. Подробнее в разделе документации Роутинг. - Добавлены новые типы расширений для подсистемы выражений:
IExpressionInterpreterExtensionиIExpresionExtension. Подробнее про данные типы расширений см. раздел Расширения подсистемы выражений. - В интерфейс
IRedisConnectionProviderдобавлена перегрузка методаGetOpenedConnectionAsyncс параметромrequireInitialization, регламентирующим, необходимо ли проверять инициализированость данных системы в Redis. Существующий методGetOpenedConnectionAsyncиспользует введённую перегрузку со значениемrequireInitialization = true. Значениеfalseрекомендуется использовать в тех местах системы, где не требуется гарантии полной инициализации данных, например, в сервисах проверки наличия соединения сRedisили работы с каналами. В остальных случаях используйте значениеrequireInitialization = trueили метод без этого параметра. - В стратегию загрузки состава ролей
IRoleGetStrategyв методGetUsersAsyncдобавлен необязательный параметрignoreDeputies, позволяющий загружать состав ролей без учёта заместителей. - В менеджер управления умными ролями
ISmartRoleManagerдобавлен методRecalcSmartRolesAsync, позволяющий запустить перерасчёт сразу нескольких умных ролей. - Добавлен интерфейс
IUserNamingStrategy, с помощью которого можно получить значения вычисляемых полей с именами пользователей. - В карточку автомобиля была добавлена кнопка “Получить таблицу”. Реализованная логика при нажатии на кнопку является примером того, как можно получить данные, сгенерированные на сервере случайным образом, с помощью запроса
CardRequestили метода контроллера, и вывести их в типе “Диалог” в виртуальной таблице. Реализация примера в серверной части доступна в расширенииTestCarTableRequestExtension.csи в контроллереServiceController.cs. Реализация в коде web-клиента есть в UI-расширенииcarUIExtension.ts(в методеinitializedв месте добавления кнопки тулбараCarTableRequestи в методеexecuteCarTableRequest) и в клиентском сервисе22_serviceClient.ts. - В web-клиенте свойства
border,bottom,column,gap,height(включаяmin,max),left,padding,right,row,size,top,width(включаяmin,max) вместо конкретных единиц измерений (px,em, `rem) теперь используют юниты и проценты. - Добавлен пример создания нового типа запроса к API нумерации со стороны web-клиента и его обработки со стороны сервера. Обратитесь к разделу руководства Запросы к API нумерации с клиента.
Исправления и оптимизации¶
- В web-клиенте исправлена ошибка, из-за которой некорректно применялась настройка
Appearanceиз метаинформации представлений. - В web-клиенте исправлена ошибка, в результате которой отсутствовала возможность подсветить сообщения в обсуждениях из расширений посредством
ForumViewModel.topicEditor.highlightMessage. - В web-клиенте исправлена ошибка в мобильной версии приложения, приводящая к отсутствию прокрутки в контролах таблиц, расположенных в колоночных блоках карточек.
- Исправлена некорректная работа приложения-помощника Deski с буфером обмена в Windows.
- В web-клиенте исправлена ошибка, из-за которой некоторые иконки не были жирными.
- В web-клиенте исправлена ошибка, приводящая к отсутствию диалогового окна с предложением сохранить несохранённые данные карточки при её закрытии через нажатие на среднюю кнопку мыши.
- В методе генерации файла по шаблону
CardExtensions.GenerateFileFromTemplateAsyncисправлена ошибка, из-за которой в запросе на получение контента файла не передавалась дополнительная информация из параметраrequestInfo. - Исправлена локализация заголовка для страницы с ошибкой, которая отображается при открытии ссылок на файлы
/linksи контент/contentв отдельной вкладке браузера, если в cookies уже содержится актуальная сессия. - В web-версии исправлено отображение подсказки горячих клавиш у кнопок вторичных процессов и шаблонов бизнес-процессов с установленным флагом “группировать в “Действия”“.
- Исправлен сброс настроек двухфакторной аутентификации при импорте карточки настроек сервера.
- Исправлено дублирование записей в истории автоматического согласования, если сотрудник относится более чем к одной роли из списка связанных с заданием ролей.
- Исправлено отсутствие переноса строки перед пометкой о скором автоматическом согласовании задания в строке таблицы из рассылки уведомления о заданиях.
- В web-клиенте удалены лишние условия фильтрации данных представлений у параметров с автодополнением и целочисленным типом данных.
- В web-клиенте исправлены мелкие ошибки, приводившие к игнорированию некоторых параметров темы в диалоге фильтрации, обсуждениях, заданиях, контролах “Список файлов”, “Ссылка” и “Список”, а также в некоторых диалогах.
- В web-клиенте исправлена проблема длительного расчёта высоты контрола “Строка” при отрисовке большого количества строк.
- В web-клиенте для контрола “Список файлов” рамка вокруг области “Загрузить файлы” теперь увеличивается в толщине, если над ней с помощью мыши drag&drop расположить файл.
- В web-клиенте исправлено отображение сообщений об ошибках аутентификации Windows.
- В web-клиенте исправлена поддержка тем для контрола “Строка” в режиме “Avalon”.
- В web-клиенте исправлена поддержка тем для диалога “Структура карточки”.
- В web-клиенте исправлена поддержка тем для всплывающей подсказки.
- Исправлена ошибка, из-за которой после изменения или переименования файла в карточке “Шаблон файла” не инвалидировался кэш шаблонов файлов. В результате, при создании файла по шаблону, имя создаваемого файла оставалось прежним до перезапуска сервера.
- Исправлена ошибка, из-за которой плейсхолдеры в именах шаблонов файлов заменялись только один раз, а не динамически при каждом запросе информации о шаблоне.
- В файле типа диалога
TwoFactorAuthTotpSettings.jcardисправлено название параметров сBakgroundнаBackgroundиBorderThiknesнаBorderThickness. - В карточке операции OCR исправлено отображение распознанного файла, если в качестве инструмента предпросмотра файла используется Р7-Офис / OnlyOffice.
- Исправлена ошибка, из-за которой при импорте карточек их слияние с существующими карточками выполнялось неоптимально, что приводило к созданию лишних объектов в памяти.
- В web-клиенте исправлена ошибка, из-за которой колонки в представлении растягивались на всю ширину с тегами в позиции Top или Bottom.
- В web-клиенте в мобильной версии исправлена прокрутка обсуждения вниз при отправке сообщения, а также при заходе на страницу.
- Исправлено изменение функций и процедур в схеме данных для PostgreSQL, если ссылки на них присутствуют в других объектах схемы (индексах, функциях, процедурах). При обновлении схемы, если происходит обновление уже существовавшей функции и её набор параметров не менялся, то вместо двух операций
DROP+CREATE, вызывается однаCREATE OR REPLACE. - Исправлена проверка прав доступа для работы с настройками двухфакторной аутентификации пользователя.
- В web-клиенте исправлено выделение строк для изменённых файлов в контроле “Представление” с расширением “Список файлов в представлении”.
- В web-клиенте исправлено отображение заголовка при открытии диалога добавления/редактирования строки.
- В web-клиенте исправлена ошибка форматирования дат с миллисекундами.
- В web-клиенте исправлено отображение заголовка окна диалога создания нового запроса на распознавание текста. Ранее в нём не отображались кнопки закрытия и разворачивания/сворачивания окна.
- В web-клиенте исправлена ошибка, в результате которой настройка “Автофокус” из TessaAdmin не применялась в контролах обсуждений.
- В web-клиенте исправлена ошибка контрола обсуждений с активной настройкой “Единственное обсуждение”: ранее в мобильной версии при открытии вкладки карточки, содержащей данный контрол, автоматически открывалось диалоговое окно с содержимым топика.
- В web-клиенте исправлена ошибка, приводящая к невозможности закрыть диалоговое окно с открытым обсуждением в мобильной версии приложения, если у пользователя нет прав на добавление новых обсуждений.
- В web-клиенте исправлено ошибка, приводящая к некорректному отображению кнопки “Редактировать” в обсуждениях для мобильной версии приложения.
- В web-клиенте исправлено ошибка, приводящая к возможности отображения всех доступных топиков с активной настройкой “Единственное обсуждение” для пользователей с правом добавления новых обсуждений в компактном режиме.
- В web-клиенте исправлено ошибка, приводящщая к некорректному отображению контрола обсуждений с активной настройкой “Единственное обсуждение” в мобильной версии приложения: ранее контрол отображал все существующие топики.
- В web-клиенте исправлен сброс предпросмотра файла при клике по пустой области в контроле “Список файлов”, если в нём включена группировка.
- В web-клиенте исправлена ошибка, из-за которой в контроле “Строка” мог появляться второй скролл при изменении размеров страницы.
- В web-клиенте исправлено расположение колонок в карточке в блоке с флагом “Заголовки слева”.
- В web-клиенте для некоторых диалогов исправлено отображение заголовка и кнопки разворота на весь экран.
- В web-клиенте для диалога работы с нумератором карточки исправлены отступы между контролами и их заголовками.
- В web-клиенте исправлено отображение рамки валидации контрола в задании при сохранении карточки или завершении задания.
- В web-клиенте исправлена ошибка, из-за которой кнопка переключения режима отображения карточки дублировалась в ситуации, когда предпросмотр был скрыт.
- В web-клиенте исправлена ошибка, из-за которой при первом открытии карточки в диалоге контрол предпросмотра файлов мог отображаться всегда, даже когда размер рабочей области приложения это запрещал.
- В web-клиенте убрана кнопка переключения режима отображения карточки при отображении её в диалоге.
- В скриптах
Setup.bat/setup.shисправлен импорт схемы в случае, если при установке была отключена поддержка полнотекстового поиска. - Исправлена ошибка, которая возникала при сохранении карточек типа “Генератор умных ролей” на этапе проверки условий, что версия генератора умных ролей может быть обновлена.
- В web-клиенте группировка по колонке, содержащей дату и время, теперь выполняется по дате без учёта времени.
- В web-клиенте исправлен размер фильтра представления для строкового параметра. Ранее введённый в фильтре текст мог обрезаться при наличии достаточного места для его отображения.
- В web-клиенте исправлена ошибка в контролах “Строка”, “Нумератор”, и в поле “Номер” в диалоге контрола “Нумератор”, из-за которой последние символы контрола, значение которого достигло максимальной длины, удалялись при попытке редактирования значения.
- В web-клиенте исправлена ошибка для мобильной версии приложения на iOS, приводящая к исчезновению поля ввода при активной клавиатуре в контроле обсуждений.
- Для команд tadmin
OcrSyncиOcrAsyncисправлено взаимодействие с клиентским и серверным API системы. Теперь командаOcrSyncиспользует только те зависимости, которые зарегистрированы в серверной части, а командаOcrAsyncиспользует зависимости, зарегистрированные в клиентской части. Как следствие, для командыOcrSyncбольше не требуется открытие сессии. - В web-клиенте для диалога аннотаций PDF проведены косметические изменения.
- В web-клиенте исправлена ошибка контрола “Текст с форматированием”: ранее при добавлении внешней ссылки пропадала возможность печати вне добавленной ссылки.
- В web-клиенте исправлено расположение контролов в карточке при включённом флаге “С новой строки” у первого контрола.
- В web-клиенте исправлено расположение контролов в карточке в блоке с явно заданной высотой в диалоге “Расположение блоков”.
- Контроллер
/check, проверяющий состояние сервисаweb, теперь выполняет системное представлениеViewsвместоMyTasks(которое может быть существенно изменено или недоступно в проектном решении). - В web-клиенте исправлена ошибка, из-за которой не отображались признаки сортировки в представлениях, если сортировка для этих представлений была настроена.
- Исправлено удаление дубликатов типов уведомлений в настройках сотрудника на вкладке “Уведомления” при сохранении карточки.
- Исправлена ошибка, из-за которой при импорте карточки в ответе содержалось некорректное значение версии карточки после сохранения.
- Перед выполнением представлений из запроса
ITessaViewRequestявно удаляются параметрыRequestParameter, имеющие повторяющиеся имена (без учёта регистра) или пустые имена. - В web-клиенте в обсуждениях удалена кнопка “Войти в режим повышенных привилегий” из меню топика.
- В web-клиенте в объектной модели объекта для предпросмотра html добавлена возможность указывать параметр
sandbox. - Исправлено создание операций в рамках транзакции, например, в сценариях маршрутов или бизнес-процессов. Теперь операция добавляется в очередь операций только при завершении внешней транзакции.
- Для представления “Активные сессии” исправлен вывод при указанном параметре “Используется”.
- В web-клиенте исправлено скачивание приложения Deski для пользователей, не являющихся администраторами.
- Исправлено повторное распознавание файла, а также отображение иконки OCR на файле, для которого могла отсутствовать карточка операции OCR в системе. Такое было возможно, например, при восстановлении карточки из корзины, если при её удалении в карточке присутствовал распознаваемый файл.
- В desktop-клиенте исправлено отображение диалога подтверждения при удалении распознаваемого файла.
- В web-клиенте исправлена ошибка для мобильной версии приложения, приводящая к некорректному отображению поля ввода текста с форматированием в обсуждениях.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению содержимого контрола предпросмотра посредством Р7-Офис / OnlyOffice: ранее контрол отображался по минимально возможной высоте.
- В web-клиенте исправлена ошибка, приводившая к некорректному расположению выпадающего списка относительно контрола “Ссылка”.
- В web-клиенте исправлена ошибка, приводящая к некорректной работе поисковых запросов, созданных посредством клика правой кнопкой мыши на узел дерева представлений: ранее скрытые параметры и параметры, доступные только для чтения, не сохранялись в поисковом запросе.
- В конструкторе процессов исправлена ошибка, возникающая при очистке поля “Иконка” в настройках узла и при попытке импортировать шаблон процесса, в котором в одном из узлов не была задана иконка.
- Исправлен некорректный подсчёт количества заданий в подразделении для отчёта “Текущие задания” в тех случаях, когда задание назначалось на роль из нескольких сотрудников.
- Исправлено закрытие подключения к Redis в
RedisConnectionProvider, если база данных Redis не была инициализирована, и при её инициализации возникли ошибки. - В web-клиенте исправлена ошибка экспорта данных представления в ситуации, когда использовался параметр с настройкой
DateTimeType. - Исправлено представление “Доступные заместители” (
AvailableDeputyUsers) при выполнении на СУБД PostgreSQL. - Исправлена ошибка, из-за которой при нажатии кнопки “Сохранить” в диалоге “Добавить обсуждение” могло создаться несколько одинаковых обсуждений.
- В web-клиенте исправлена ошибка в мобильной версии приложения, приводящая к возможности выполнять прокрутку панели приложения при открытом дереве представлений.
- Для карточки “Сотрудник” исправлено наполнение виртуальных секций “Подразделения” (
PersonalRoleDepartmentsVirtual), “Статические роли” (PersonalRoleStaticRolesVirtual), “Все роли” (PersonalRoleRolesVirtual), если из схемы у типа карточкиPersonalRoleвыключены некоторые из этих секций. - В web-клиенте исправлена ошибка, связанная с пропадающим списком топиков в обсуждениях при обновлении карточки.
- В web-клиенте исправлена ошибка в мобильной версии приложения на Android, приводящая к прокрутке окна приложения при открытом в обсуждениях редакторе текста.
- В web-клиенте исправлена ошибка в мобильной версии приложения на iOS, приводящая к появлению глобальной полосы прокрутки в рабочих местах и карточках.
- В web-клиенте исправлена обработка события нажатия клавиши Enter при входе в систему.
- В web-клиенте исправлена ошибка, где при нажатии на кнопку обновления в карточках не учитывалась информация о тегах.
- В конструкторе бизнес-процессов в действии “Группа заданий” исправлен текст ошибки, возникающей, если тип задания не указан в настройках действия.
- В web-клиенте исправлена ошибка в мобильной версии приложения, связанная с тем, что открытый диалог обсуждения перекрывал меню системы и диалог с заданиями.
- При подписании в случае ошибки проверки подписи, подпись не сохраняется в карточку, кроме определённых случаев, описанных в документации.
- В web-клиенте исправлено сохранение режима отображения/скрытия области предпросмотра.
- В web-клиенте исправлена ошибка в контроле “Текст с форматированием”, приводившая к вставке внешней ссылки или файла в сообщение не в позиции курсора.
- Оптимизировано добавление участников и ролей к обсуждению.
- Для исполнителей заданий “На доработку” скорректирован список выдаваемых по умолчанию прав доступа. Актуальный список прав доступа, выдаваемых заданиями типового решения, можно посмотреть в руководстве администратора в разделе Права, определяемые задачей или этапом маршрута/процесса.
- Для команд tadmin
ImportSchemeиImportSchemeSqlисправлена ошибка импорта схемы данных, возникающая при наличии в импортируемой схеме таблиц с новыми записями, относящимися к библиотеке, отличной от библиотеки самой таблицы. - В конструкторе бизнес-процессов в действии “Таймер” исправлена обработка флага “Блокировать процесс при асинхронном вызове”.
- В web-клиенте исправлена ошибка, приводившая к некорректному вертикальному выравниванию текста в кнопках с типом
small. - В web-клиенте у контролов “Ссылка” и “Список” определение доступных представлений по настройкам
RefSectionиColPrefixтеперь выполняется без учёта регистра. - Для серверных команд утилиты tadmin исправлено поведение, при котором выполнялась попытка инициализировать данные системы в Redis вместо того, чтобы проверять состояние инициализированности данных.
- Исправлено поведение, при котором проверка сервиса
webпо адресу/hcheckпыталась инициализировать данные системы в Redis вместо того, чтобы проверять только наличие подключения к Redis. - В TessaAdmin исправлена ошибка, возникающая при полном удалении JSON-текста представления в редакторе.
- В web-клиенте исправлено обновление списка обсуждений при архивации обсуждения.
- В web-клиенте исправлено закрытие обсуждения при выходе из него.
- В web-клиенте исправлена локализация элементов выпадающего списка ссылочных контролов в диалоге выбора категории файла.
- В web-клиенте для аннотаций pdf исправлено добавление и отображение многострочного текста, также внесены изменения во внешний вид.
- Исправлено заполнение поля “Назначено на роль” в истории заданий в тех случаях, когда длина строки с именами записываемых ролей превышала максимально допустимую.
- Исправлено обновление элементов истории заданий в тех случаях, когда происходило их одновременное обновление из-за изменения в задании или на основании изменений в объекте
Card.TaskHistory. - Исправлена ошибка проверки расширенных настроек доступа на запрет полей или секций карточки при её создании в ситуации, когда токен прав доступа карточки требуется перерассчитать, например, из-за изменения настроек правил доступа.
- При сохранении карточки тега в полях “Общий с”, “Редакторы” и “Читатели” теперь удаляются дублирующие роли.
- В web-клиенте исправлены отступы внутри тулбара в области предпросмотра файлов.
- В TessaAdmin при экспорте локализации в Excel исправлено создание строк, в которых отсутствует перевод для одного из используемых языков.
- В web-клиенте исправлена ошибка, приводившая к тому, что при изменении текущей версии файла в диалоге “Версии файла” имя файла оставалось прежним.
- В web-клиенте исправлено раскрытие первого узла в дереве рабочего места, когда для него свойство “Отображение узла” установленно “Свернутым” в TessaAdmin.
- Исправлено наименование плагина
RemoveCompiledViewsнаRemoveCompiledViewsPlugin. - В web-клиенте в контроле “Список файлов” исправлена ошибка группировки по категории файла в ситуации, когда категория из списка и вручную добавленная категория файла определялись в разные группы.
- При выборе категории файла в списке доступных категорий теперь не отображаются вручную добавленные категории, если они совпадают с категориями из списка.
- Исправлена ошибка, которая приводила к тому, что контрол “Текст с форматированием” не мог отобразить текст после его редактирования, если до этого текст редактировался в web-клиенте.
- В web-клиенте для текстовых полей с форматированием отключена настройка “Автофокус” в мобильной версии приложения.
- В web-клиенте исправлена ошибка, в результате которой кнопки в окне настроек могли заезжать друг на друга при уменьшении ширины экрана.
- В TessaAdmin исправлена ошибка работы с формами и блоками в типах диалогов, которая возникала при наличии циклических зависимостей между таблицами карточек в схеме данных.
- В web-клиенте исправлена ошибка, приводившая к загрузке файла с некорректным именем при создании файла по шаблону.
- В web-клиенте исправлена ошибка, приводящая к некорректному отображению высоты диалогового окна: ранее содержимое диалогового окна могло обрезаться по высоте.
- Исправлена ошибка, из-за которой не заменялись плейсхолдеры в именах шаблонов файлов при запросе от клиента, даже когда имя файла в таком запросе не задавалось, а использовалось имя из базы данных.
- Исправлен сценарий генерации ссылки в контроллере для мобильного приложения TESSA Assistant. В приоритете получение ссылки из поля
WebAddressкарточки настроек сервера, или, если оно не заполнено, то ссылка формируется с помощьюLinkGenerator. - В web-клиенте в мобильной версии исправлена ошибка, в результате которой на вкладке обсуждений кнопки уходили за границу экрана.
- В web-клиенте исправлена ошибка, приводившая к тому, что диалоговое окно об отсутствии лицензии отображалось без стилей.
- Исправлена ошибка компиляции скриптов в карточке “Шаблон файла”, возникающая при использовании API для работы с объектами документа Word или Excel.
- Исправлена локализация подсказок для полей
Время жизни JWT токена TESSA AssistantиИспользовать мобильный ассистент TESSA Assistantв карточке “Настройки сервера”. - В форумах и в контроле “Текст с форматированием” исправлено открытие вложенного изображения по клику.
- Исправлена работа веб-сервиса
webв случае отсутствия прав на создание папкиauthorized_keys. - Исправлено возможное зависание блокировки на глобальные кэши в Redis при сохранении схемы через TessaAdmin.
Обновление на новую сборку¶
- Обновлена документация по поддерживаемым версиям дистрибутивов ОС Linux. Добавлена поддержка дистрибутивов
РЕД ОС 8,Rocky Linux 9.3. Полный список поддерживаемых дистрибутивов (с которыми тестировалась платформа) доступен в разделе документации Системные требования для серверов Linux. - Приложение-помощник web-клиента Deski обновлено до версии 2.2.1. Опубликуйте новые версии приложения при обновлении. При использовании функций, связанных с Deski, пользователю будет предложено обновить его версию на опубликованную. Также обновление может выполнить администратор системы, установив msi-пакет для Windows через доменные политики, а для Linux воспользовавшись инструкцией Установка ассистента web-клиента Deski.
- Изменена схема работы уведомлений в форумах и обсуждениях: теперь уведомления о новом сообщении приходят всем подписанным участникам сразу после отправки сообщения вместо периодической отправки группами по несколько сообщений.
- После обновления платформы выполните компиляцию шаблонов файлов листа согласования. Это можно сделать по кнопке в соответствующих карточках, или вызвав консольную команду
tadmin Compile FileTemplatesс указанием адреса подключения к серверу приложений и параметров входа. - Ссылки на файлы
/linksтеперь по умолчанию отображают страницу с ошибкой в браузере. Укажите параметр&showErrorPage=false, чтобы вместо этого сервер возвращал json-объектValidationResult. - После обновления схемы данных необходимо выполнить запрос из файла
Fixes/Migration-4.0.XX.sqlпосле комментария “Set Alias for business process buttons”, где вместоХХдолжно быть указано значениеmsдля MS SQL Server илиpgдля PostgreSQL. При обновлении с предыдущих релизов 3.6.0.x и ранее он выполняется автоматически в скриптахUpgrade.bat/upgrade.sh. - Если любые используемые вами конфигурационные файлы
app.jsonсодержали символ%в строковых значениях (например, в паролях или в строках подключения к базам данных), то необходимо его задублировать%%для корректной обработки (т.е. выполнить эскейпинг). - Для переопределения пути к файлу
.cid, который используется в подсистеме мониторинга и обнаружения компонентов, вместо переменной окруженияCID_FILE_PATHиспользуйте переменнуюTESSA_CID. - В командах мониторинга переименован набор прав доступа
keysнаmanage-keys. Повторно сгенерируйте ключи, содержащие этот набор прав. - Во всех представлениях изменены метаданные колонок. В них добавлено поле
InvisibleByDefault, с помощью которого можно указать, что в пользовательском интерфейсе колонка должна быть скрыта по умолчанию, но её видимостью можно управлять через пользовательские настройки представлений (по умолчанию колонки видны). Существующие в базе данных представления продолжат работать, а также их можно импортировать без поляInvisibleByDefault, которое считается в этом случае равнымfalse. - Администратор системы по умолчанию больше не видит статистику по заданиям других сотрудников (кроме себя) в отчётах “Текущие задания” и “Завершённые задания”. Однако, он может явно добавить в права на текущие отчёты запись о том, что он может просматривать отчёты сотрудников в роли “Все сотрудники”.
- В опции слияния для карточек был добавлен новый параметр
UpdatedColumns, который позволяет настроить для секций карточки колонки, которые будут задействованы при определении различий между строковыми секциями или между строками в табличных секциях, а также для определения колонок для модификации данных. Подрбнее см. в руководстве администратора. - Перевыгружено большинство карточек
.jcard, в которых актуализирована структура в соответствии с текущей схемой. Такие изменения выполняются при импорте автоматически, поэтому являются необязательными, и не перечислены в списке объектов. - В консольной утилите tadmin переименованы команды:
GenerateCommandKey->GenerateDiscoveryKey,PrintComponents->PrintDiscoveryInfo,ViewKey->ViewDiscoveryKey. - В библиотеке карточек
Platform.jcardlibк карточкамDefaultWeek_TypeиDefaultCalendarдобавлены настройкиmerge-options.json, предотвращающие импорт карточек, если они уже были в системе. Измените этот файл с настройками, если требуется обновлять данные карточки при каждом импорте библиотеки.
Изменения API при обновлении¶
- В
RedisEventSubscriberубрана синхронизация обработки событий при получении сигнала из Redis. Теперь он позволяет обрабатывать сразу несколько событий параллельно. Если при обработке событий требуется синхронизация их выполнения, она должна быть реализована в действии, передаваемом в методеRedisEventSubscriber.SubscribeAsyncпри создании подписки на событие. - Изменён интерфейс
IRoleManagerService. Добавлен методRecalcSmartRoleGeneratorsAsync, который выполняет пересчёт генераторов умных ролей. - Для определения базовой папки с конфигурационными файлами вместо
RuntimeHelper.ConfigRootPathиспользуйтеConfigurationHelper.ConfigRoot.ResolvePath(). - Тип свойства
ITessaViewRequest.Valuesизменён наIList<RequestParameter>. Измените код проектных расширений, который опирался на то, что свойство имело типICollection<RequestParameter>. - В зависимости, используемые при разработке консольного клиента, добавлена библиотека
Microsoft.IdentityModel.Tokens. - Изменена сигнатура статического метода
CardComponentHelper.GetContentContextsAsync. Теперь, если параметрfileIDsне был передан, то метод будет выполнять получение контекстов для всех файлов карточки. - В метод расширения
FileExtensions.RemoveWithNotificationAsyncдобавлен опциональный параметрwithBackup(по умолчаниюfalse). Он показывает, что файлы удаляются с возможностью восстановления. - Изменена сигнатура метода расширения
CardExtensions.HasContent. Теперь метод принимает объект типаCardFileвместоCardFileState. - Изменён интерфейс
IStorageContentMapping, добавлено свойствоContentConverterдля определения имени конвертера для выгружаемого контента. Подробнее см. в разделе документации API для работы с выгружаемым содержимым полей карточек. - В web-клиенте изменён способ создания модели представления для компонента окна логина. Теперь модель представления регистрируется в DI-контейнере и возвращается как зависимость. Замените все места явного создания моделей представления на регистрацию в DI-контейнере.
- В методы
RedisPlatformExtensions.RegisterRedisиPlatformExtensions.RegisterServerдобавлен параметрallowRedisInitialization, управляющий необходимостью либо полной инициализации данных системы в Redis, либо проверки текущего состояния инициализированности данных.
Изменения конфигурации при обновлении¶
-
Рабочие места:
-
Administrator -
User-
Добавлен узел “Удалённые файлы” в режиме отбора.
-
Для узлов “Мои теги” и “Доступные теги” изменены настройки расширения
CreateCardExtension.
-
-
-
Представления:
-
AvailableDeputyUsers -
ButtonToolbarVisibilityModes(добавлено) -
Cars -
DeletedFiles(добавлено) -
MyTasks -
ReportCurrentTasksByDepartment -
ReportCurrentTasksByDepUnpivoted -
ReportCurrentTasksByUser -
ReportPastTasksByDepartment -
ReportPastTasksByUser -
ReportPermissionsMyTasks(добавлено) -
Sessions
-
-
Таблицы:
-
ActionTypes -
BusinessProcessButton -
BusinessProcessButtonToolbarVisibilityModes(добавлена) -
BusinessProcessButtonVirtual -
DeletedFiles(добавлена) -
DeletedFileSignatures(добавлена) -
DeletedFileVersions(добавлена) -
DeletedPdfAnnotations(добавлена) -
FmNotifications(удалена) -
FmNotificationSettingsVirtual(добавлена) -
KrAddFromTemplateSettingsVirtual -
KrPermissions -
PersonalRoleSatellite -
ServerInstances -
SignatureSettings -
Tokens(добавлена) -
UserAvatarCache(добавлена) -
WeAddFileFromTemplateAction
-
-
Функции:
-
GetString -
Localization -
Localize
-
-
Библиотеки схемы:
Default
-
Типы:
-
AvatarUserSettings(добавлен) -
BusinessProcessTemplate -
CarTableRequestDialog(добавлен) -
FileTemplate -
KrAddFileFromTemplateStageTypeSettings -
MetadataEditor -
NotificationUserSettings -
PersonalRole -
PersonalRoleSatellite -
RoleDeputiesManagement -
ServerInstance -
SignatureSettings -
TwoFactorAuthTotpSettings -
ViewExtensions -
WebApplication -
WfResolution -
WorkflowAddFileFromTemplateAction
-
-
Карточки:
-
Default access rules -
ForumNewMessagesNotification -
ForumUserHasBeenAddedNotification(добавлена) -
ForumUserHasBeenAddedNotificationType(добавлена) -
Server settings (settings) -
TasksNotification
-
-
Изменены библиотеки локализации.