diff --git a/home/src/main/resources/rdf/display/everytime/article_custom_fields.n3 b/home/src/main/resources/rdf/display/everytime/article_custom_fields.n3 index 761863f2..deceee35 100644 --- a/home/src/main/resources/rdf/display/everytime/article_custom_fields.n3 +++ b/home/src/main/resources/rdf/display/everytime/article_custom_fields.n3 @@ -22,8 +22,8 @@ :vivodocumentModifier_rubrics a , ; - rdfs:label "Add rubrics in semantic_marks excerpt field" ; - :hasTargetField "semantic_marks" ; + rdfs:label "Add rubrics in rubrics field" ; + :hasTargetField "rubrics" ; :hasSelectQuery """ PREFIX rdfs: PREFIX ts_: diff --git a/home/src/main/resources/rdf/display/everytime/customSearchDataGetters.n3 b/home/src/main/resources/rdf/display/everytime/customSearchDataGetters.n3 new file mode 100644 index 00000000..b5829a4f --- /dev/null +++ b/home/src/main/resources/rdf/display/everytime/customSearchDataGetters.n3 @@ -0,0 +1,41 @@ +@prefix display: . +@prefix rdf: . +@prefix rdfs: . + + display:hasDataGetter display:customSearchFieldsDataGetter . + display:hasDataGetter display:customSearchFiltersDataGetter . + +display:customSearchFieldsDataGetter + a ; + display:saveToVar "searchFields" ; + display:query """ + PREFIX rdfs: + PREFIX rdf: + PREFIX search: + SELECT ?name ?field ?hasFilters + WHERE { + ?searchField rdf:type search:searchField . + ?searchField rdfs:label ?name . + ?searchField search:indexField ?field . + BIND (exists { ?filters search:filterFiled ?searchField } AS ?hasFilters) + } ORDER BY ?name + """ . + +display:customSearchFiltersDataGetter + a ; + display:saveToVar "searchFilters" ; + display:query """ + PREFIX rdfs: + PREFIX rdf: + PREFIX search: + SELECT ?name ?field ?id + WHERE { + ?searchFilter rdf:type search:filter . + ?searchFilter rdfs:label ?name . + ?searchFilter search:id ?id . + ?searchFilter search:filterFiled ?searchField . + ?searchField search:indexField ?field . + + } ORDER BY ?field ?name + """ . + diff --git a/webapp/src/main/webapp/themes/iph/js/query-builder-config.js b/webapp/src/main/webapp/themes/iph/js/query-builder-config.js deleted file mode 100644 index eb339c66..00000000 --- a/webapp/src/main/webapp/themes/iph/js/query-builder-config.js +++ /dev/null @@ -1,80 +0,0 @@ -var rules_basic = { - condition: 'AND', - - rules: [{ - id: 'text', - operator: 'contains', - value: 2 - }, { - id: 'keywords', - operator: 'contains', - value: 1 - }] - -}; - -$('#builder').queryBuilder({ - filters: [{ - id: 'text', - label: 'Текст', - type: 'string', - operators: ['contains', 'not_contains'] - }, { - id: 'keywords', - label: 'Ключевые слова', - type: 'string', - operators: ['contains', 'not_contains'] - }, { - id: 'title', - label: 'Название', - type: 'string', - operators: ['contains', 'not_contains'] - }, { - id: 'bibliography', - label: 'Библиография', - type: 'string', - operators: ['contains', 'not_contains'] - }, { - id: 'classgroup', - label: 'Тип документа', - type: 'integer', - input: 'select', - values: { - 1: 'Статья', - 2: 'Отрывок' - }, - operators: ['contains'] - }, { - id: 'rubrics', - label: 'Рубрикация', - type: 'integer', - input: 'select', - values: { - 1: 'История философии', - 2: 'Логика', - 3: 'Философия языка', - 4: 'Этика', - 5: 'Эстетика', - 6: 'Философия техники' - }, - operators: ['contains', 'not_contains'] - } ], - lang_code: 'ru', - rules: rules_basic -}); - -$('#btn-reset').on('click', function() { - $('#builder').queryBuilder('reset'); -}); - -$('#btn-set').on('click', function() { - $('#builder').queryBuilder('setRules', rules_basic); -}); - -$('#btn-get').on('click', function() { - var result = $('#builder').queryBuilder('getRules'); - - if (!$.isEmptyObject(result)) { - alert(JSON.stringify(result, null, 2)); - } -}); diff --git a/webapp/src/main/webapp/themes/iph/templates/page-home.ftl b/webapp/src/main/webapp/themes/iph/templates/page-home.ftl index d52c4ec7..0af25af7 100644 --- a/webapp/src/main/webapp/themes/iph/templates/page-home.ftl +++ b/webapp/src/main/webapp/themes/iph/templates/page-home.ftl @@ -59,16 +59,7 @@ -
-
- - - -
- - - - + <#include "queryBuilder.ftl"> diff --git a/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl b/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl new file mode 100644 index 00000000..a4723f0c --- /dev/null +++ b/webapp/src/main/webapp/themes/iph/templates/queryBuilder.ftl @@ -0,0 +1,81 @@ +
+
+ + + +
+ + + + +<#macro freeField field > + { + id: '${field.field}', + label: '${field.name}', + type: 'string', + operators: ['contains', 'not_contains'] + }, + + +<#macro multivalueField field > + { + id: '${field.field}', + label: '${field.name}', + type: 'string', + input: 'select', + values: { + <#list searchFilters as filter> + <#if filter.field == field.field> + '${filter.id}':'${filter.name}', + + + + }, + operators: ['equal', 'not_equal'] + }, +