- Создатель Васильев Антон, отредактировано 15.01.2024
Постановка задачи
Добавить вывод результатов поиска для нового модуля
Инструмент: Палитра XML, Плагин, Настройка системы
Статус | ГОТОВО |
---|---|
Раздел | Поиск |
Комментарий | Информация по настройкам параметра поиска находится здесь Описание конфигурации поиска |
Реализация
Последовательность действий по отображению поиска:
- Редактирование конфигурации поиска applicationContext-config-search<Project>.xml
- Создание представления типа объекта
- Загрузить конфигурацию поиска и перезагрузить сервер
- Загрузить Палитру XML
Редактирование конфигурации поиска
Конфигурация отображения результатов поиска
<!-- Конфигурация отображения результатов поиска ({Module}) --> <bean id="moduleExtractorConfig{Module}" parent="moduleExtractorConfigSuper"> <!-- Настройка соответствий «id бандла – представление типа объекта» --> <property name="rootTypesByBundleID"> <map merge="true"> <entry key="rkk" value="{Cell-View}" /> <entry key="mainDoc" value="{Cell-View}" /> </map> </property> <!-- Настройка соответствий «Форма – id бандла» --> <property name="bundleIDsByForm"> <map merge="true"> <entry key="{Module}" value="rkk" /> </map> </property> <!--Настройка соответствий «колонки- системного поля»--> <property name="nsFieldsByClTypeByBundleID"> <map merge="true"> <entry key="rkk#{Column}" value="{Field}" /> <entry key="mainDoc#{Column}" value="{Field}" /> </map> </property> <!--Настройка соответствий «колонки - кастомного поля»--> <property name="formulasByClTypeByBundleID"> <map merge="true"> <entry key="rkk#{Column}" value="doc.getItemValueString('{Field}')" /> <entry key="mainDoc#{Column}" value="doc.getItemValueInteger('{Field}') == 0 ? doc.getItemValueString('<Field 1>'):doc.getItemValueString('<Field 2>')"/> </map> </property> <!--Сортировка--> <property name="sortingsByFields"> <set> <ref bean="sortingParams{Field}"/> </set> </property> </bean>
Параметры сортировки результатов поиска
<!--Список параметров, которые используются при создании бинов SortingParams: -columnName - имя колонки, при клике на которую будет происходить сортировка -sortingFieldName - имя поля в Notes, по значению которого будет идти сортировка nodes из ресурса. Если sortingFieldName = null, то сортировка будет идти по значению поля columnName в ресурсе. -sortingFieldType - тип значения в сравниваемом поле Если sortingFieldType = Integer, то при сортировке значения сравниваются как числа, иначе - как строки. Предполагается, что тип DateTime не нужен, т.к. маловероятно, что при клике на колонку, в которой отображается дата/время, будет идти сортировка по какому-то значению, отличному непосредственно от дата/время, а в JSON дата/время всегда будут в формате yyyy-mm-ddThh:mm:ssZ (такие значения можно сортировать, сравнивая как строки). -default - указывает будет ли совершена эта сортировка по умолчанию (может быть только одна сортировка по умолчанию для бандла, для добавления другой необходимо разнести по бандлам сортировки) -defaultSortingDirection - Указывает направление сортировки по умолчанию (descendant/ascendant) -bundleId - указывает id бандла для которого применяется сортировка, для каждого бандла надо делать свою, так как поля у объектов и имена колонок могут отличаться id бандлов: rkk-search-result, mainDoc-search-result и др. По умолчанию rkk-search-result -sortingDirections - выбранное направление сортировки (по убыванию/по возрастанию) - принимает <set> --> <bean id="sortingParams{Field}" class="ru.intertrust.cmj.af.search.dp.docinfo.SortingParams"> <property name="columnName" value="{Column}" /> <property name="sortingFieldName" value="{Field}" /> <property name="sortingFieldType" value="String" /> <property name="default" value="true" /> <property name="defaultSortingDirection" value="descendant" /> <property name="bundleId" value="{Cell-View}" /> <property name="sortingDirections"> <set> <value>descendant</value> <value>ascendant</value> </set> </property> </bean>
Создание представление типа объекта
Представление типа объекта
<!-- Колонка --> <column name="{Column}" subject="${column.Name:Название колонки}" extends="string"/> <!--Представление типа объекта --> <cell-view name="{Cell-View}"> <column-ref ref="{Column}"/> </cell-view>
<Название видео>
Легенда
- {Project} - название проекта
- {Module} - название модуля
- {Cell-View} - название представление типа объекта
- {Column} - название колонки
- {Field}- название поля