Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Постановка задачи

Добавить вывод результатов поиска для нового модуля

Подсказка
iconfalse

Инструмент: Палитра XML, Плагин, Настройка системы

Свойства страницы
Статус

Статус
colourGreen
title

ВЫПОЛНЕН

ГОТОВО

Автор
Раздел
Васильев Антон 
Поиск
КомментарийИнформация по настройкам параметра поиска находится здесь Описание конфигурации поиска
panel

На этой странице:

Оглавление

Постановка задачи

Добавить вывод результатов поиска

Инструмент

Палитра XML


Реализация

note
Информация
iconfalse

Последовательность действий по отображению поиска:

  1. Редактирование конфигурации поиска applicationContext-config-search<Project>.xml
  2. Создание представления типа объекта
  3. Загрузить конфигурацию поиска и перезагрузить сервер
  4. Загрузить Палитру XML

Легенда: 

  • <Project> - название проекта
  • <Module> - название модуля
  • <Cell-View> - название представление типа объекта
  • <Column> - название колонки
  • <Field> - название поля
  • Редактирование конфигурации поиска

    Блок кода
    languagexml
    titleКонфигурация отображения результатов поиска
    <!-- Конфигурация отображения результатов поиска (
    <Module>
    {Module}) -->
        <bean id="
    moduleExtractorConfig<Module>
    moduleExtractorConfig{Module}" parent="moduleExtractorConfigSuper">
            <!-- Настройка соответствий «id бандла – представление типа объекта» -->
            <property name="rootTypesByBundleID">
                <map merge="true">
                    <entry key="rkk" value="
    <Cell
    {Cell-
    View>
    View}" />
                    <entry key="mainDoc" value="
    <Cell
    {Cell-
    View>
    View}" />
                </map>
            </property>
            <!-- Настройка соответствий «Форма – id бандла» -->
            <property name="bundleIDsByForm">
                <map merge="true">
                    <entry key="
    <Module>
    {Module}" value="rkk" />
                </map>
            </property>
    		<!--Настройка соответствий «колонки- системного поля»-->
            <property name="nsFieldsByClTypeByBundleID">
                <map merge="true">
                    <entry key="
    rkk#<Column>
    rkk#{Column}" value="
    <Field>
    {Field}" />
                    <entry key="
    mainDoc#<Column>
    mainDoc#{Column}" value="
    <Field>
    {Field}" />
                </map>
            </property>
    		<!--Настройка соответствий «колонки - кастомного поля»-->
            <property name="formulasByClTypeByBundleID">
                <map merge="true">
                    <entry key="
    rkk#<Column>
    rkk#{Column}" value="doc.getItemValueString('
    <Field>
    {Field}')" />
                    <entry key="
    mainDoc#<Column>
    mainDoc#{Column}" value="doc.getItemValueInteger('
    <Field>
    {Field}') == 0 ? doc.getItemValueString('<Field 1>'):doc.getItemValueString('<Field 2>')"/>
                </map>
            </property>
    		<!--Сортировка-->
    	   	<property name="sortingsByFields">
                <set>
                    <ref bean="sortingParams{Field}"/>
                </set>
            </property>
        </bean>
    Блок кода
    languagexml
    titleПараметры сортировки результатов поиска
        <!--Список параметров, которые используются при создании бинов 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>


    Создание представление типа объекта

    Блок кода
    languagexml
    titleПредставление типа объекта
    <!-- Колонка -->
    <column name="
    <Column>
    {Column}" subject="${column.Name:Название колонки}" extends="string"/>
    
    <!--Представление типа объекта -->
    <cell-view name="
    <Cell
    {Cell-
    View>
    View}">
       <column-ref ref="
    <Column>
    {Column}"/>
    </cell-view>



    панель
    title<Название видео>

    Примечание
    iconfalse
    titleЛегенда
    • {Project} - название проекта
    • {Module} - название модуля
    • {Cell-View} - название представление типа объекта
    • {Column} - название колонки
    • {Field}- название поля