Детали задачи
-
Задача
-
Решение: Готово
-
Medium
-
Не заполнено
-
Не заполнено
Описание
При использовании настройки для колонки в журнале:
headerFilterEditor: type: "text"
, т.е. когда на колонку, связанную ассоциацией с другой нодой, настроен поиск по текстовому фильтру.
Фильтр работает не корректно, явно проявляется, когда для фильтрации используется короткая строка.
Связанно с тем, что на сервере выполняется подзапрос (innerQuery), для поиска nodRef-s, которые используются для получения нод, отображаемых в журнале.
В innerQuery:
1. нет привязки к типу, т.е. поиск идет по всем нодам в системе;
2. поиск идет по следующим полям (в настройках): cm:name,cm:title,cm:description;
3. в настройках стоит ограничение - результат запроса 20 нод.
Для исправления, предлагается следующая реализация:
Перенести логику формирования innerQuery на клиента (ecos-ui), тем самым в настройках для поля можно будет уточнять необходимый тип ноды и в случае превышения заданного количества нод, после исполнения innerQuery, на клиенте можно будет выдать сообщение, что результат фильтрации является не точным, нужен более точный фильтр.
Для этого добавить в настройки для журнала JournalSearchConfig следующие настройки:
searchConfig: { searchByText: { innerQuery: {"t": "eq", "att":"abc", "val":"$TEXT"}, maxItems: 100 } }
, где $TEXT - тэг, который надо будет заменить на данные из фильтра.
PS: нужно учесть, что при появление окна с фильтром, у нас есть дополнительная настройка, которая содержит в себе настройки: Contains, Equals, Starts with, …
Вложенные файлы
Связи запроса
- mentioned on