.. _spec_work-center_navhub: Навигационный хаб ================= .. versionadded:: 1.29.0-ms3 :term:`Навигационный хаб` (Хаб) позволяет пользователю настраивать пространство навигации в текущем приложении системы. Обзор возможностей Навигационного хаба: .. raw:: html .. role:: raw-html(raw) :format: html .. _spec_work-center_navhub_concepts: Основные понятия ---------------- Тайл Элемент системы в Хабе: пункт :term:`главного меню <Главное меню>` или :term:`выборка <Выборка>`. Тайл визуализируется как прямоугольный элемент с названием и цветом фона. Группа Контейнер тайлов с заголовком, заданным цветом и позицией в компоновке. Группа "по умолчанию" Группа, находящаяся первой в секции "Закрепленное". В неё попадают тайлы, закреплённые без указания группы, и тайлы удалённой группы при варианте удаления "Удалить только группу". Удалить группу "по умолчанию" нельзя. Секция Область режима "Избранное", в которой отображаются тайлы одного источника: закреплённые пользователем, часто используемые или недавно закрытые. Состав секций описан в разделе :ref:`spec_work-center_navhub_favorite`. Вызов и закрытие ---------------- Навигационный хаб можно открыть в любом состоянии интерфейса, кроме случаев, когда открыто :term:`модальная форма <Модальная форма>` или :term:`диалоговое окно <Диалоговое окно>`. Открытие выполняется одним из способов: - Горячей клавишей :kbd:`Ctrl+K` (значение по умолчанию, которое прикладное решение может переопределить). - Горячей клавишей :kbd:`Ctrl+Shift+K` (значение по умолчанию, которое прикладное решение может переопределить) — то же, что :kbd:`Ctrl+K`, но Хаб открывается с областью поиска "Все" (см. :ref:`строку поиска `), без учёта и изменения сохранённого значения области поиска. - Кликом :kbd:`ЛКМ` по элементу вызова "Поиск..." в верхней части интерфейса: .. image:: assets/navhub-open-control.jpg :scale: 50 :alt: Контрол вызова Навигационного хаба Закрытие выполняется одним из способов: - Нажатием :kbd:`Esc`. - Кликом вне окна Хаба (по затемнённой области). - Активацией тайла или элемента результата поиска. - Нажатием :term:`горячей клавиши <Горячие клавиши>` закреплённой за пунктом :term:`главного меню <Главное меню>`. Хаб закрывается и выполняется операция этого пункта. .. seealso:: :ref:`Горячие клавиши ` .. _spec_work-center_navhub_search-bar: Строка поиска ------------- Строка поиска — основной инструмент поиска и фильтрации данных в Навигационном хабе. Элемент зафиксирован в верхней части окна Хаба и включает поле ввода, кнопку очистки запроса и переключатель области поиска. .. image:: assets/navhub-search-control.png :scale: 50 :alt: Строка поиска Навигационного хаба Область поиска ~~~~~~~~~~~~~~ Переключатель имеет два состояния, определяющих поведение при вводе запроса: - **Закрепленные**: выполняется фильтрация тайлов "по месту" во всех трёх секциях Хаба. - **Все**: при непустом запросе Хаб переходит в :ref:`режим "Поиск" `, где выполняется агрегированный поиск по тайлам всех секций Хаба и доступным пунктам :term:`главного меню <Главное меню>`. Выбранная область поиска сохраняется в браузере пользователя и восстанавливается при следующем открытии Хаба. По умолчанию используется область "Закрепленные". Исключение — открытие Хаба горячей клавишей :kbd:`Ctrl+Shift+K`: область поиска принудительно устанавливается в «Все» независимо от сохранённого значения, а само сохранённое значение при этом не изменяется. Область поиска можно переключить с клавиатуры: - :kbd:`Alt+1` — "Закрепленные". - :kbd:`Alt+2` — "Все". При удержании :kbd:`Alt` на кнопках переключателя отображаются подсказки с цифрами клавиш. .. note:: При открытом окне Хаба фокус ввода автоматически устанавливается в строку поиска. Ввод текста с клавиатуры направляется в неё, даже если фокус явно не установлен (при условии отсутствия других активных полей ввода). Режимы ------ Навигационный хаб работает в двух режимах: "Избранное" (открывается по умолчанию) и "Поиск". .. _spec_work-center_navhub_favorite: Режим "Избранное" ~~~~~~~~~~~~~~~~~ .. image:: assets/navhub-favorite-mode.png :scale: 50 :alt: Режим "Избранное" Навигационного хаба Режим отображает настроенное пользователем пространство навигации и содержит три секции, расположенные сверху вниз. .. list-table:: :header-rows: 1 :width: 100% :widths: 26 74 * - Секция - Описание * - "Закрепленное" - Редактируемая пользователем секция с закреплёнными элементами системы (тайлами) для быстрого доступа. Позволяет создавать группы и закреплять в них тайлы. * - "Часто используемое" - Наполняется автоматически, исходя из часто используемых пользовательских действий в текущем приложении системы. * - "Недавно закрытые" - Наполняется автоматически, исходя из недавно закрытых пользовательских действий в текущем приложении системы. Секции состоят из :ref:`тайлов и групп `. Активация тайла доступна в любой секции. Закрепление доступно для тайлов секций "Часто используемое" и "Недавно закрытые". Остальные изменения состава и компоновки: открепление, переименование и перемещение тайлов, а также все операции с группами, доступны только в секции "Закрепленное". .. note:: Сервер передаёт для каждой коллекции тайлов признак ``editable``. При ``editable = false`` (режим "Только чтение") изменение состава и компоновки недоступно: операции закрепления, перетаскивания, создания групп и действия контекстных меню заблокированы. Признак берётся из атрибута прикладной выборки, имя которого задаётся в :xsd:attr:`View.Representation.Layout.Frame.NavigationHub.editableAttr`. Действия с тайлами ^^^^^^^^^^^^^^^^^^ Активация """"""""" Клик :kbd:`ЛКМ` по тайлу или нажатие :kbd:`Enter` при фокусе на нём выполняет связанное с тайлом действие — открытие :term:`выборки <Выборка>` или вызов операции :term:`главного меню <Главное меню>`. После активации окно Хаба закрывается. Закрепление """"""""""" Добавление тайла в секцию "Закрепленное". Доступно для тайлов секций "Часто используемое" и "Недавно закрытые", а также для пунктов меню в результатах :ref:`режима "Поиск" `. Способы: - Через контекстное меню тайла (:kbd:`ПКМ`) — пункт "Закрепить в группу" (с выбором группы). - Через перетаскивание тайла в нужную группу секции "Закрепленное". - Через нажатие :kbd:`ЛКМ` по кнопке "Закрепить элемент" у пункта меню в результатах режима "Поиск". При закреплении через контекстное меню или кнопку в результатах поиска новый тайл добавляется в конец выбранной группы (или группы "по умолчанию", если группа не указана). При перетаскивании тайл встаёт в место броска. Открепление """"""""""" Удаление тайла из секции "Закрепленное". Не затрагивает исходный раздел :term:`главного меню <Главное меню>` или выборку. Способы: - Через контекстное меню тайла (:kbd:`ПКМ`) — пункт "Открепить элемент группы". - Через нажатие :kbd:`ЛКМ` по кнопке "Открепить элемент" у уже закреплённого элемента в результатах :ref:`режима "Поиск" `. Переименование """""""""""""" Изменение названия закреплённого тайла через контекстное меню тайла (:kbd:`ПКМ`) — пункт "Переименовать элемент группы". Ограничения: - Максимальная длина имени ``255`` символов. - Пустое значение (в том числе из одних пробелов) не применяется: диалог закрывается, название остаётся прежним. Перемещение """"""""""" Изменение порядка тайла внутри группы или перенос в другую группу секции "Закрепленное". Способы: - Через перетаскивание тайла внутри группы или между группами. - Через контекстное меню тайла (:kbd:`ПКМ`) — пункт "Перенести в другую группу" (с выбором группы). Действия с группами ^^^^^^^^^^^^^^^^^^^ Все действия с группой (кроме создания) вызываются из её контекстного меню (клик :kbd:`ЛКМ` по кебаб-меню (⋮) в заголовке группы). Создание """""""" Кнопка "Добавить группу", расположенная над секцией "Закрепленное", открывает диалог создания группы. Диалог также вызывается горячей клавишей :kbd:`Alt+3`; при удержании :kbd:`Alt` на кнопке отображается подсказка клавиши. .. image:: assets/create-group.png :scale: 50 :alt: Создание группы В диалоге можно указать необязательное название. После подтверждения группа добавляется в конец списка с указанным названием и цветом по умолчанию (:raw-html:``). Если в момент создания активен поисковый запрос в :ref:`строке поиска `, он сбрасывается, а содержимое прокручивается к новой группе. Переименование """""""""""""" Изменение заголовка группы — пункт "Переименовать группу". Максимальная длина имени ``255`` символов. Смена цвета """"""""""" Изменение цвета группы — пункт "Изменить цвет группы" (выбор из набора). Цвет применяется ко всем тайлам группы, у которых не задан индивидуальный цвет. Перемещение """"""""""" Изменение позиции группы в списке. Способы: - Через перетаскивание группы за заголовок. - Через контекстное меню группы — пункт "Переместить группу" (с выбором целевой позиции). Группа, перемещённая в начало списка, становится группой "по умолчанию". При активном поиске перетаскивание групп недоступно. Удаление """""""" Удаление группы вызывается через пункт контекстного меню "Удалить группу" с выбором одного из вариантов: - "Удалить только группу" — тайлы переносятся в группу "по умолчанию"; - "Удалить группу с содержимым" — группа и все её тайлы удаляются безвозвратно. Если в группе есть тайлы, выбранный вариант удаления необходимо подтвердить. Пустая группа удаляется сразу. Первую группу в списке (группу "по умолчанию") удалить нельзя. .. _spec_work-center_navhub_search: Режим "Поиск" ~~~~~~~~~~~~~ .. image:: assets/navhub-search-mode.png :scale: 50 :alt: Режим "Поиск" Навигационного хаба Режим активируется при выбранной области поиска "Все" и непустом запросе в :ref:`строке поиска `. Поиск выполняется агрегированно по двум источникам: 1. Тайлам всех трёх секций Навигационного хаба. 2. Доступным пунктам :term:`главного меню <Главное меню>`. Результаты отображаются списком. Каждая строка содержит название с подсветкой найденного совпадения, а также при наличии путь до элемента и назначенную горячую клавишу. Для элементов, которые можно добавлять в Хаб, отображается кнопка закрепления или открепления. Особенности поведения: - Активация строки (:kbd:`Enter` или клик :kbd:`ЛКМ`) выполняет действие элемента и закрывает Хаб. - Возврат из режима "Поиск" в режим "Избранное" происходит при очистке строки поиска или при повторном открытии Хаба. - Один и тот же элемент может присутствовать в результатах несколькими строками, если найден в разных секциях, где каждая строка показывает свой источник. Клавиатурная навигация ---------------------- Перемещение фокуса между элементами Хаба и их активация доступны с клавиатуры. Набор клавиш зависит от активного режима. .. list-table:: :header-rows: 1 :width: 100% :widths: 24 30 46 * - Режим - Клавиши - Действие * - "Избранное" - :kbd:`←` :kbd:`↑` :kbd:`↓` :kbd:`→` - Перемещение фокуса по сетке тайлов. * - "Избранное" - :kbd:`Ctrl` / :kbd:`Cmd` + :kbd:`↑` / :kbd:`↓` - Переход между группами (сквозной обход секций). * - "Поиск" - :kbd:`↑` :kbd:`↓` - Перемещение по строкам результатов; :kbd:`↑` с первой строки возвращает фокус в строку поиска. * - "Поиск" - :kbd:`PageUp` :kbd:`PageDown` - Постраничное перемещение по списку результатов. * - "Избранное" / "Поиск" - :kbd:`Enter` - Активация сфокусированного тайла или строки результата поиска. * - "Избранное" / "Поиск" - :kbd:`Tab` / :kbd:`Shift+Tab` - Последовательный перебор элементов внутри окна Хаба. * - "Избранное" / "Поиск" - :kbd:`Alt+1` / :kbd:`Alt+2` - Переключение области поиска: "Закрепленные" / "Все". При удержании :kbd:`Alt` на переключателе отображаются подсказки клавиш. * - "Избранное" - :kbd:`Alt+3` - Создание новой группы в секции "Закрепленное" (когда секция доступна для редактирования). * - "Избранное" / "Поиск" - :kbd:`Esc` - При фокусе в строке поиска очищает её при наличии текста, иначе закрывает Хаб. При фокусе вне строки поиска закрывает Хаб. Для прикладного программиста ---------------------------- Подключение Навигационного хаба к приложению и наполнение секций истории: .. toctree:: :maxdepth: 1 markup history-hooks