Задача [0164]: Редактор ресурсов

Формулировка проблемы. В связи с расширением рынков сбыта платформы необходимо реализовать возможность перевода системы на другие языки. Также необходима возможность добавления языковой панели во всех настраиваемых сущностях системы. Например: при создании типа документа вводить название не только на фиксированном количестве языков (казахский, русский, английский), но и на настроенных других.

Связанные задачи: 0300.

Решение. Новый подраздел Конфигуратора «Настройки системы» - «Региональные настройки» - «Переводы» должен содержать:

Рисунок 141. Редактор ресурсов

Редактор ресурсов

Рисунок 142. Редактор ресурсов, размеры

Редактор ресурсов, размеры

Фильтр к таблице является многосложным, возможно задать одно или несколько условий:

Выпадающий список "Фильтр по объектам" содержит список реализованных объектов:

Примечание.

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

Пометка "удаляется" означает, что удаленная сущность удаляет за собой и все переводы, в редакторе ресурсов они отображаться более не будут.

Пометка "не удаляется", в свою очередь, показывает, что сущность фактически не удаляется (как правило, это действие скрытия), ее переводы будут продолжать отображаться в редакторе ресурсов.

Данный фильтр позволяет отобразить все переводы конкретного объекта. Первый пункт "Все типы" является группирующим элементом. Последний пункт "Сообщение" соответствует статичным переводам системы.

Включенный флажок "Только непереведенные" соответствует атрибуту измененности = false, иначе отображаются все переводы, независимо от значения атрибута измененности.

Выпадающий список "Поиск по языку" содержит локаль по умолчанию (выбрано по умолчанию) и список кодов показываемых локалей. Справа от него отображается поле ввода. Поиск осуществляется по всем страницам таблицы по нажатию на клавишу «Enter» либо на иконку лупы и работает по принципу "Содержит". Placeholder поля:

Поиск

Пустая строка поиска отключает "Поиск по языку", фильтр по объектам и атрибуту измененности осуществляется по всем локалям.

В свою очередь, наличие поисковой строки включает "Поиск по языку", фильтр по объектам и атрибуту измененности осуществляется только в выбранной в выпадающем списке локали.

Примеры использования фильтров.

Объект: дела, только непереведенные: да, язык: по умолчанию, поиск: пустой запрос. Результат - отображаются все дела, имеющие хотя бы один перевод с атрибутом измененности = false в любой из локалей.

Объект: все типы, только непереведенные: нет, язык: по умолчанию, поиск: "внутренний журнал". Результат - отображаются только полные вхождения поисковой строки "внутренний журнал" во всех объектах в локали по умолчанию.

Если в запрос выше включить флажок "Только непереведенные", то результатом такой фильтрации будет пустая таблица, т.к. в локали по умолчанию отсутствуют переводы с атрибутом измененности = false.

Если в таблице строк больше, чем высота экрана, тогда в таблице должен появиться вертикальный скролл. Ширина всех столбцов изменяемая, но не сохраняемая. Действие «drag-and-drop» отсутствует. Сортировка отсутствует, при этом таблица всегда отсортирована: сначала в порядке следования сущностей, между собой - в алфавитном порядке переводов по умолчанию.

На одной странице отображается максимум 30 записей. Переход к конкретной / последующим / предыдущим страницам осуществляется с помощью пагинатора.

Страница, которая содержит менее 30 строк, не должна дополняться значениями из предыдущей страницы.

Например. Всего записей 35. Первая страница отображает записи 1-30, вторая (последняя) страница отображает записи 31-35 (а не 5-35).

Формат отображения текущей страницы: A / B, где А - это номер текущей страницы, В - общее количество страниц.

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

В случае, если номер введенной страницы выходит за рамки общего количества страниц (от 1 до В), активной должна остаться текущая страница.

Примечание.

В рамках текущей реализации пагинатор будет старого образца. Описанный и нарисованный в текущих макетах пагинатор будет реализован позднее.

Содержимое таблицы "Редактор ресурсов" - собранные в одном месте все переводы системы. Отсюда же доступно их редактирование. Переводы в редакторе ресурсов и непосредственно в настройках объекта (за исключением "сообщений") отображают и применяют одинаковые значения (т.е. изменение перевода в редакторе ресурсов автоматически отобразится и в настройках объекта, и наоборот).

Отображение значения перевода в таблице зависит от его атрибута измененности:

Все ячейки, кроме столбца "Тип", могут находиться в двух состояних: в режиме просмотра (по умолчанию) и в режиме редактирования. В режиме редактирования одновременно не может находиться более одной ячейки. Если ячейка находится в режиме редактирования, то это означает, что она в данный момент является и выделенной. При наведении мышкой на любую ячейку таблицы в режиме просмотра должен отображаться тултип, отображающий полное значение ячейки.

Для объектов "Сообщение" переводы в локали по умолчанию недоступны для редактирования.

Валидация перевода при сохранении (на нажатие клавиши «Enter»): если поле содержит пустое значение либо одни пробелы, ячейка переходит в режим просмотра, в котором отображается плейсхолдер с переводом из локали по умолчанию.

Кроме того, на поле ввода присутствует ограничение по количеству сохраняемых символов (кроме справочников): 255. Если ввести больше - при сохранении текст обрежется до 255-го символа включительно и сохранится именно такое значение.

Контекстное меню и удаление строк отсутствует.

Сохранение всех изменений на сервере происходит каждый раз по нажатию на кнопку «Enter».

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