Формулировка проблемы: при большом количестве реестров чтобы найти необходимый реестр среди всего списка, пользователь тратит достаточно много времени.
Используется:
Основное приложение -> Хранилище -> Реестры
Конфигуратор -> Процессы
Решение: необходимо реализовать возможность группировать реестры по разным группам. Для удобства данную задачу разделим на две подзадачи:
Группы реестров используются для группирования реестров, которые есть в системе. Могут содержать внутри себя группы и реестры. Один реестр может находится в нескольких группах.
Необходимо добавить новый подраздел "Группы реестров" в раздел "Процессы" в конфигураторе после подраздела "Реестры".
Примечание
В связи с добавлением нового подраздела в раздел "Процессы" необходимо поменять местами разделы "Хранилище" и "Процессы" в основной рабочей области конфигуратора.
По нажатию на подраздел "Группы реестров" открывается экран с заголовком "Группы реестров", который состоит из навигатора и основной рабочей области.
Навигатор содержит корневой элемент "Все группы реестров", в котором находятся настроенные группы. Корневой элемент можно развернуть и свернуть. Если в группе имеются дочерние группы, то ветку данной группы также можно развернуть и свернуть, и при разворачивании в навигаторе будут отображаться дочерние группы. Группы в навигаторе сортируются по названию в алфавитном порядке.
Если название группы не помещается в навигаторе, то появляется горизонтальный скролл. Если содержимое навигатора не помещается на экран, появляется вертикальный скролл.
Основная рабочая область состоит из следующих элементов:
поле ввода "Название группы реестров" - содержит название выделенной группы (обяз.). Отсутствует для корневого элемента;
кнопка "Добавить", по нажатию на которую открывается подменю с вариантами:
Группа;
Реестр;
таблица "Группы реестров и реестры", которая содержит группы и реестры, входящие в выделенную группу. Таблица состоит из следующих столбцов:
"Название" - содержит название группы или реестра. Название группы выделяется жирным шрифтом;
столбец без названия, который содержит иконки удаления для каждой группы и реестра;
Примечание
Для корневого элемента "Все группы реестров" данная таблица содержит только группы реестров, входящие в данный узел. Реестры, не входящие ни в одну группу, относятся к корневому элементу, но в этой таблице не отображаются.
кнопка "Сохранить".
При выборе пункта "Группа" кнопки "Добавить" открывается экран с пустым полем ввода "Название" и кнопкой "Сохранить", кнопка "Добавить" и таблица не отображаются. После ввода названия и нажатия кнопки "Сохранить" в навигатор добавляется данная группа, в основной рабочей области добавляется кнопка "Добавить" и пустая таблица. В навигаторе выдедена созданная группа.
Пункт "Реестр" кнопки "Добавить" неактивен для корневого узла "Все группы реестров". Для веток групп он активен, и при выборе данного пункта открывается окно с заголовком "Выбор реестров". Окно состоит из следующих элементов:
строка поиска, которая используется для поиска по названию
реестра. После ввода необходимого текста и нажатия клавишы
Enter
либо иконки "Лупа" в
таблице отображаются реестры, соответствующие введенному
тексту. Отмеченные до поиска реестры остаются выбранными;
пагинатор, который используется для перехода по страницам. При
наличии только одной страницы пагинатор неактивен для
перехода, при этом в нем указывается 1/1
.
На одной странице помещается только 15 записей. Страница,
которая содержит менее 15 строк, не должна дополняться
значениями из предыдущей страницы.
Например. Всего записей 25. Первая страница отображает записи 1-15, вторая (последняя) страница отображает записи 16-25 (а не 11-25).
Примечание. В рамках текущей реализации пагинатор будет старого образца только с форматом отображения A/B, где А - это номер текущей страницы, В - общее количество страниц. Описанный в данной постановке пагинатор будет реализован позднее.
таблица, в которой отображаются все реестры, настроенные в системе (в том числе и скрытые). Она состоит из столбцов:
столбец без названия, в котором находятся флажки для выбора реестра. Флажок имеет два состояния:
включен - обозначает, что данный реестр выбран;
выключен - обозначает, что данный реестр не выбран.
столбец "Реестр", который содержит название реестра;
Примечание
В таблице доступен множественный выбор реестров, в том числе и на разных страницах, реестры отсортированы по названию в алфавитном порядке.
Если название реестра не помещается в таблицу, то название обрезается, и при наведении курсора мыши на
ячейку отображается тултип с полным названием реестра.
кнопка "Выбрать", по нажатию на которую выбранные реестры добавляются в выделенную группу. После выбора реестров они добавляются в конец таблицы "Группы реестров и реестры" в основной рабочей области выделенной группы, и только после нажатия кнопки "Сохранить" сортируются по названию. Кнопка "Выбрать" неактивна, если не выбран ни один реестр.
При открытии данного диалога у реестров, уже принадлежащих выделенной группе, флажки будут выключены. Если методолог выберет уже присутствующий в группе реестр, то после нажатия кнопки "Выбрать" данный реестр не будет дублироваться в таблице "Группы реестров и реестры", и не будет выводится ошибка.
Если название группы или реестра не помещается в таблицу "Группы реестров и реестры", то название обрезается. При наведении курсора мыши на ячейку с названием отображается тултип с полным названием группы либо реестра. Если содержимое таблицы не помещается на экран, то добавляется вертикальный скролл.
Группы и реестры в данной таблице сортируются по названию в алфавитном порядке по отдельности: сначала группы, после реестры.
По нажатию на иконку удаления группы система выдает диалоговое окно подтверждения действия с текстом:
Вы действительно хотите удалить группу %название группы% со всем ее содержимым?
При подтверждении действия группа со всем ее содержимым (группами и реестрами) удаляется из группы или из корневого узла, при отмене группа остается.
По нажатию на иконку удаления реестра данный реестр удаляется из выделенной группы.
Для сохранения введенных изменений на экране выделенной группы необходимо нажать на кнопку "Сохранить". После чего выходит сообщение "Данные сохранены". Данная кнопка активна только тогда, когда есть несохраненные изменения.
Если кнопка "Сохранить" активна, и пользователь пытается перейти к другому элементу навигатора либо добавить новую группу, то система выдает диалоговое окно подтверждения действия с текстом:
Все несохраненные изменения будут потеряны. Продолжить?
при подтверждении действия изменения не сохраняются, при отмене в основной рабочей области отображается содержимое группы, изменения которой не сохранены.
Если кнопка "Сохранить" активна, и пользователь нажимает на кнопку "На главную", производится переход на основную рабочую область конфигуратора, введенные изменения не сохраняются.
Примечание
При открытии подраздела "Группа реестров" по умолчанию в навигаторе выделен корневой узел, дерево свернуто. В основной рабочей области отображаются кнопка "Добавить", таблица с настроенными группами и неактивная кнопка "Сохранить". Пункт подменю "Реестр" кнопки "Добавить" неактивен для выбора. Если не настроены группы для корневого узла, то таблица пустая.
Альтернативные потоки событий
Альтернативный поток 1. Поле ввода "Название группы реестров" не заполнено. По нажатию на кнопку "Сохранить", поле подсвечивается красным цветом, система выдает сообщение:
Заполните обязательное поле
В навигаторе раздела "Реестры" отображаются группы и реестры без корневого элемента "Все группы реестров". Группы отображаются в виде дерева с иконкой группы . Ветку группы можно разворачивать и сворачивать. По умолчанию все ветки свернуты. При разворачивании ветки группы в навигаторе отображаются дочерние группы (при наличии) и реестры, входящие в данную группу. Если реестр, не входит ни в одну из групп, то он отображается после всех групп. Если у реестра присутствуют настроенные фильтры пользователя, то данные фильтры также отображаются в навигаторе.
Группы и реестры в навигаторе идут в следующем порядке: сначала группы, после реестры. Сортируются они по названию в алфавитном порядке.
Примечание
Иконку группы изменять невозможно.
У пользователя в навигаторе присутствует группа, если у него есть права на просмотр хотя бы одного реестра, находящегося в группе. Если у пользователя нет прав на просмотр ни на один из реестров, находящихся в группе, то данная группа не отображается у пользователя.
Примечание
Если у пользователя есть права на просмотр скрытого реестра, который находится в группе, и у него нет прав на другие реестры этой группы, то данная группа также не отображается у пользователя.
При выделении группы в навигаторе в основной рабочей области отображается:
таблица, состоящая из столбцов:
столбец без названия, который содержит иконки группы для группы реестров. Для реестров в ячейке данного столбца ничего не отображается;
столбец "Группы реестров и реестры", который содержит названия дочерних групп и реестров, которые входят в данную группу
В таблице сначала отображаются группы, отсортированные по названию, и далее реестры, также отсортированные по названию.
Если название группы либо реестра не помещается в ячейку, то название обрезается с добавлением многоточия. При наведении курсора мыши на ячейку отображается тултип с полным названием группы либо реестра;
пагинатор, который используется для перехода по страницам, а
также для перехода к определенной странице. При наличии одной
страницы пагинатор неактивен, при этом в нем указывается
1/1
. На одной странице помещается 30
записей.
Примечание
При выделенной в навигаторе группе кнопка "Создать" не отображается.
При выделении реестра в навигаторе в основной рабочей области отображается таблица с записями реестра, пагинатор, кнопка "Печати", как и было ранее.
По двойному нажатию на группу в таблице в основной рабочей области: в навигаторе выделяется ветка выбранной группы, а в основной рабочей области отображается содержимое выделенной группы. По двойному нажатию на реестр в таблице в основной рабочей области: в навигаторе выделяется выбранный реестр и в основной рабочей области отображается список записей реестра. В обоих случаях дерево в навигаторе прокручивается к месту выбранной группы или выбранного реестра.
Поиск при выделенной в навигаторе группе не осуществляется, при выделенном в навигаторе реестре поиск производится как раньше.
Примечание
При открытии раздела "Реестры" по умолчанию в навигаторе
выделен первый элемент. В основной рабочей области отображается соответствующее содержимое.
Действия при обновлении системы
При обновлении системы в конфигураторе:
появится новый подраздел "Группы реестров" в разделе "Процессы". В разделе в навигаторе будет присутствовать только корневой узел "Все группы реестров". Таблица "Группы реестров и реестры" в основной рабочей области будет пустой, методологу доступен пункт "Группа" кнопки "Добавить";
разделы "Хранилище" и "Процессы" в основной рабочей области поменяются местами.
В пользовательском приложении видимых изменений не будет.