Прошлое решение состоит из полнотекстового поиска и расширенных фильтров. У пользователей есть трудности с этим решением:
Кроме того, нельзя сохранить часто используемый шаблон поиска. Пользователи это не просят напрямую, но если смотреть на их сценарии, им это очень нужно.
Полнотекстовый поиск, совмещенный с фильтрами.
Кликнули в поле поиска.
После выбора типа фильтра можно начать вводить значение:
Начали вводить название контрагента. Поле работает как автокомплит — выводит список контрагентов:
Выбрали контрагента из списка.
Выбрали все нужные фильтры и нажали кнопку «Найти».
Если у пользователя есть сохраненные шаблоны поиска, то в раскрывающемся списке с типами фильтров первой строкой будет «Шаблон поиска».
Плюсы этой концепции — поиск и фильтры это один инструмент. Пользователю не надо думать, что использовать для решения своей задачи.
Тем не менее, у команды были сомнения, справятся ли пользователи с таким непривычным инструментом поиска. Действительно, решение не такое уж простое. Поэтому я спроектировала более знакомый для пользователей вариант. Позже мы проверили на юзабилити-тестировании, как пользователи справляются с каждым из решений.
В этой концепции быстрые фильтры совмещены с шапкой таблицы. Остальные фильтры спрятаны за кнопкой «Все фильтры».
По клику на заголовок столбца раскрывается список с набором значений. В нем можно поискать нужное — поле поиска над строками с чекбоксами.
После выбора значения, оно появляется над таблицей в виде токена. Цвет токена зависит от типа фильтра. Токен удаляется по крестику и фильтрация сбрасывается. Справа от токенов есть кнопка сброса всех фильтров.
По кнопке «Все фильтры» открывается лайтбокс со всеми возможными фильтрами.
В левой части — кнопки-списки с возможностью поиска и множественным выбором, как в шапке таблицы на списке. Вот некоторые из них:
После выбора значения в каком-то из полей, оно выводится в виде токена в нижней части лайтбокса. Там можно увидеть, какие фильтры уже выбраны и будут применены после нажатия на кнопку «Применить».
Поля, в которых выбрано хотя бы одно значение дополнительно отмечено цветным кружочком — его цвет совпадает с цветом токена этого фильтра. Так пользователю проще находить поля и кнопки, в которых выбраны какие-то значения и редактировать их. Не приходится читать название кнопок или полей, это ускоряет работу.
В лайтбоксе около выбранных токенов есть ссылка для того, чтобы сохранить этот набор фильтров как шаблон:
Когда пользователь выбирает шаблон, в раскрывающемся списке выводится название шаблона, а в нижней части лайтбокса выводятся токены — фильтры из этого шаблона.
Если после выбора шаблона добавить еще какие-то фильтры, они добавятся к уже выбранным фильтрам из шаблона, но в поле «Шаблоны фильтров» уже не будет выводиться название шаблона, потому что новый набор фильтров ему уже не соответствует.
Если выбран какой-то шаблон, рядом появляются кнопки редактирования названия и удаления шаблона.
Шаблон удаляется с подтверждением:
Если нет сохраненных шаблонов, то в раскрывающемся списке пишем подсказку — что нужно сделать, чтобы шаблоны появились.
Из плюсов этой концепции — она привычна пользователям, значения выбираются с помощью стандартных контролов. Из минусов — полнотекстовый поиск и фильтрация остаются разделенными. Потенциально пользователи могут не находить строку поиска, которая значительно удалена от рабочей области с фильтрами.
Дальше мы протестировали обе концепции на пользователях, чтобы понять, какое решение лучше.
Мы давали пользователям задание найти документы по ряду условий. В задании кроме выбора значений в фильтрах нужно было пользоваться полнотекстовым поиском.
Пользователи одинаково хорошо справлялись как с первым концептом поиска, так и со вторым. Затруднений не было. Возможность сохранить фильтры в качестве шаблона замечали. Полнотекстовым поиском пользовались, не теряли.
Первый концепт был им непривычен, они об этом говорили. Но это не мешало выполнять задачу поиска, все было понятно. Один из пользователей назвал первую концепцию прогрессивной и лаконичной.
После того, как мы оценили время разработки, оказалось, что на первую версию поиска уйдет слишком много времени. Поэтому для реализации мы выбрали второе решение.