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

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

Ключ

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

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

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

Подсказка
iconfalse

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

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

Статус
colourGreen
title

ВЫПОЛНЕН

ГОТОВО

Автор
Раздел
Васильев Антон 
Поиск
Комментарий
панель

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

Оглавление

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

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

Инструмент

Палитра 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}- название поля