Введение

Обычно пользователи находят нужные элементы в стандартном представлении списка или библиотеки документов SharePoint — а затем хотят продолжить работу именно с этими элементами в более богатом представлении: с группировкой, итогами, собственным набором столбцов, экспортом в Excel. Команда Открыть в List Filter соединяет эти два мира. Это команда на панели команд стандартного списка или библиотеки, которая открывает страницу с веб-частью List Filter Online и показывает только элементы, выбранные в стандартном представлении.

Команда поставляется в том же пакете, что и веб-часть. Это набор команд списка SharePoint Framework, поэтому после включения она работает в любом современном списке или библиотеке вашего клиента SharePoint Online. В этой статье описано, как работает команда, как включить её для клиента, как ограничить её отдельными списками или сайтами и что проверить, если она ведёт себя не так, как ожидается.

Команда «Открыть в List Filter» на панели команд стандартной библиотеки

Команда «Открыть в List Filter» на панели команд стандартной библиотеки

Как это работает

При нажатии кнопки Открыть в List Filter команда считывает идентификаторы (ID) выбранных элементов и открывает настроенную страницу в новой вкладке браузера. Идентификаторы передаются в параметре строки запроса lff адреса страницы — том же параметре, который использует команда Копировать ссылку на фильтр в веб-части, — в виде одного условия: ID In (выбранные идентификаторы). Условие адресовано любой веб-части List Filter Online на странице (идентификатор экземпляра *), поэтому знать, какой именно экземпляр веб-части находится на целевой странице, не требуется.

На целевой странице веб-часть считывает параметр, применяет условие как пользовательский фильтр и загружает подходящие элементы. Условие отображается в виде чипа фильтра над результатами — точно так же, как фильтр, выбранный в области фильтра, — и его можно убрать с помощью чипа или ссылки Очистить все фильтры. После применения фильтра параметр удаляется из адресной строки, поэтому последующее обновление этой вкладки не применяет выбор повторно.

Если ничего не выбрано, команда по-прежнему видна и по-прежнему открывает страницу — но без фильтра. Веб-часть в этом случае показывает те элементы, которые показывала бы в любом случае.

📝 Заметка
Команда передаёт идентификаторы элементов, а не сами элементы. Поэтому целевая страница должна показывать тот же список, в котором была нажата команда; см. раздел Важно ниже.

Предварительные требования

Перед включением команды убедитесь, что:

  • пакет List Filter Online развёрнут в каталоге приложений клиента — см. статью KB10251. Как установить List Filter Online и добавить на страницу;
  • существует страница с настроенной веб-частью List Filter Online, источник данных которой указывает на список или библиотеку, где будет использоваться команда;
  • у вас есть права администратора на сайт каталога приложений, поскольку команда включается в списке Tenant Wide Extensions этого сайта.

Пакет развёртывается с включённым параметром Сделать это решение доступным для всех сайтов в организации, поэтому активация на отдельных сайтах не требуется. Однако сама команда скрыта, пока не будет настроена, как описано далее.

Включение команды для всего клиента

Откройте сайт каталога приложений и перейдите в его список Tenant Wide Extensions (Содержимое сайта → Tenant Wide Extensions). При загрузке пакета в этот список добавляется запись для набора команд; она относится к решению Vitextra List Filter и содержит идентификатор компонента 7f0e4b0e-3c85-4c65-a441-9a86f6b2d9c1, по которому её можно найти, если в списке есть несколько расширений Vitextra.

Отредактируйте запись и задайте два поля:

  1. Component Properties — объект JSON со свойством pageUrl, указывающим на страницу, на которой размещена веб-часть List Filter Online. Принимается как абсолютный, так и относительный к серверу URL-адрес:

    {"pageUrl": "/sites/Projects/SitePages/Project-Filter.aspx"}
    

    Относительный к серверу URL-адрес разрешается относительно узла клиента, с которого открыт список.

  2. Disabled — убедитесь, что запись не отключена, иначе SharePoint вообще не загрузит набор команд.

Сохраните запись. Команда считывает своё свойство pageUrl при загрузке представления списка и показывает себя только тогда, когда у свойства есть значение; запись без pageUrl оставляет команду скрытой, даже если расширение включено.

Запись команды в списке Tenant Wide Extensions с заданным свойством pageUrl

Запись команды в списке Tenant Wide Extensions с заданным свойством pageUrl

📝 Заметка
Изменения в списке Tenant Wide Extensions подхватываются SharePoint с задержкой, которая может составлять несколько минут и более. После сохранения записи перезагрузите страницу списка.

Ограничение отдельными списками или сайтами

По умолчанию расширение уровня клиента применяется ко всем спискам и библиотекам всех сайтов. Список Tenant Wide Extensions предлагает стандартные столбцы SharePoint, позволяющие сузить область действия; сам набор команд никаких собственных ограничений не добавляет.

СтолбецНазначение
List TemplateОграничивает команду списками одного шаблона, например 101 для библиотек документов или 100 для настраиваемых списков.
Web TemplateОграничивает команду сайтами, созданными из одного шаблона, например GROUP#0 для сайтов групп или SITEPAGEPUBLISHING#0 для информационных сайтов.
LocationМесто отображения команды; оставьте значение, заданное SharePoint при создании записи.
SequenceПорядок среди нескольких расширений, зарегистрированных для одного места.

Чтобы команда была доступна в нескольких списках, которым нужны разные целевые страницы, создайте в списке несколько записей — по одной на целевую страницу — каждую со своим pageUrl и своей областью действия. Поскольку одна запись открывает одну и ту же страницу для всех списков, к которым она применяется, это единственный способ направить выбор из списка A на страницу A, а выбор из списка B — на страницу B.

❗ Важно
Столбцы списка Tenant Wide Extensions предоставляются и интерпретируются SharePoint, а не List Filter Online. Точные допустимые значения см. в документации Microsoft по развёртыванию расширений SharePoint Framework на уровне клиента.

Использование команды

После включения команды её использование занимает три шага:

  1. Откройте список или библиотеку в стандартном представлении и выберите один или несколько элементов — с помощью флажков строк или щелчком по строкам.
  2. Нажмите Открыть в List Filter на панели команд.
  3. Откроется новая вкладка с настроенной страницей. Веб-часть List Filter Online покажет только выбранные элементы и выведет над результатами чип фильтра с условием по ID.

Далее вы работаете как на любой другой странице List Filter Online: сортируете, группируете, экспортируете элементы в Excel, открываете журнал версий элемента или дополнительно сужаете выбор с помощью области фильтра.

Целевая страница с выбранными элементами и чипом фильтра по ID

Целевая страница с выбранными элементами и чипом фильтра по ID

Важно

❗ Важно
Веб-часть на целевой странице должна быть настроена на тот же список или библиотеку, в которых используется команда. Команда передаёт только идентификаторы элементов, а идентификаторы уникальны в пределах списка, а не клиента. Если веб-часть указывает на другой список, идентификаторы совпадут с посторонними элементами этого списка, и страница покажет неверные записи без какой-либо ошибки.

Из устройства команды следуют ещё два момента:

  • Одна запись в Tenant Wide Extensions открывает одну и ту же страницу для всех списков, к которым применяется. Если область действия записи не ограничена, пользователь любого списка клиента может нажать команду и попасть на вашу страницу; ограничьте запись или создайте по записи на каждый список, как описано выше.
  • Если на целевой странице несколько веб-частей List Filter Online, условие получает каждая из них, поскольку ссылка адресована любому экземпляру. Каждая веб-часть применяет его к своему списку.

Устранение неполадок

Команда не видна на панели команд.

  • Свойство pageUrl в поле Component Properties пусто или отсутствует. Команда скрывает себя всякий раз, когда у свойства нет значения.
  • Запись отключена либо ограничена шаблоном списка или шаблоном сайта, которые не соответствуют текущему списку или сайту.
  • Страница списка не обновлялась после изменения записи. Перезагрузите страницу; дайте время на распространение конфигурации уровня клиента.
  • Пакет не развёрнут или развёрнут без включения доступности для всех сайтов.

Страница открывается, но элементы не отфильтрованы или показаны не те элементы.

  • Веб-часть на целевой странице показывает не тот список, в котором была нажата команда. Сравните источник данных веб-части с исходным списком.
  • Элементы не были выбраны: в этом случае команда открывает страницу без фильтра.
  • pageUrl указывает на страницу без веб-части List Filter Online; тогда страница игнорирует параметр.

Фильтр исчезает после обновления страницы.

  • Так и должно быть. Параметр lff используется один раз и удаляется из адресной строки. Чтобы сохранить ссылку на этот выбор, воспользуйтесь командой Копировать ссылку на фильтр в меню Сохранённые фильтры веб-части.

💡 Совет
Ссылки на фильтр и сохранённые наборы фильтров — механизм, на котором основана команда, — описаны в статье KB10253. Сохранение фильтров и отправка ссылки на отфильтрованное представление в List Filter Online. Настройка веб-части на целевой странице, включая источник данных и область фильтра, рассмотрена в статье KB10201. Настройка веб-части List Filter Online.

Поделиться