Детали задачи
- 
    Задача 
- 
    Решение: Готово
- 
    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
 
        