Skip to content

Commit

Permalink
add chronology filter to sources
Browse files Browse the repository at this point in the history
  • Loading branch information
peterstadler committed Dec 4, 2024
1 parent 36d454f commit 6ea4342
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 7 deletions.
20 changes: 19 additions & 1 deletion modules/core.xqm
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,30 @@ declare %private function core:createColl($collName as xs:string, $cacheKey as x
declare function core:undated($docType as xs:string) as document-node()* {
switch($docType)
case 'letters' case 'writings' case 'documents' return crud:data-collection($docType)/tei:TEI[ft:query(., 'date:undated')][not(tei:ref)]/root()
case 'sources' return
crud:data-collection($docType)/tei:TEI[ft:query(., 'date:undated')][not(tei:ref)]/root() |
crud:data-collection($docType)/mei:manifestation[ft:query(., 'date:undated')]/root()
default return ()
};

(:~
: Return a sequence of unique index values for a given field
: defined in the Lucene index configuration.
:
: @see http://exist-db.org/exist/apps/doc/lucene#facets-and-fields
: @param $coll a collection of documents
: @param $field the index field name, e.g. "date"
: @return a sequence of index entries
:)
declare function core:index-keys-for-field($coll as document-node()*, $field as xs:string) as xs:string* {
distinct-values(
for $i in $coll/tei:TEI[ft:query(., (), map { "fields": $field })] | $coll/tei:ab[ft:query(., (), map { "fields": $field })] | $coll/tei:biblStruct[ft:query(., (), map { "fields": $field })]
for $i in
(
$coll/tei:TEI[ft:query(., (), map { "fields": $field })] |
$coll/tei:ab[ft:query(., (), map { "fields": $field })] |
$coll/tei:biblStruct[ft:query(., (), map { "fields": $field })] |
$coll/mei:manifestation[ft:query(., (), map { "fields": $field })]
)
return
ft:field($i, $field)
)
Expand Down
12 changes: 8 additions & 4 deletions modules/search.xqm
Original file line number Diff line number Diff line change
Expand Up @@ -400,8 +400,10 @@ declare %private function search:facsimile-filter($collection as document-node()
declare %private function search:get-earliest-date($coll as document-node()*, $docType as xs:string) as xs:string? {
if(count($coll) gt 0) then
switch ($docType)
case 'news' case 'biblio' case 'letters' case 'writings' case 'diaries' case 'documents' return
min(core:index-keys-for-field($coll, 'date')[not(.='undated')])
case 'news' case 'biblio' case 'letters' case 'writings'
case 'diaries' case 'documents' case 'sources'
return
min(core:index-keys-for-field($coll, 'date')[not(.='undated')])
case 'persons' case 'orgs' return ()
case 'works' return ()
case 'places' return ()
Expand All @@ -415,8 +417,10 @@ declare %private function search:get-earliest-date($coll as document-node()*, $d
declare %private function search:get-latest-date($coll as document-node()*, $docType as xs:string) as xs:string? {
if(count($coll) gt 0) then
switch ($docType)
case 'news' case 'biblio' case 'letters' case 'writings' case 'diaries' case 'documents' return
max(core:index-keys-for-field($coll, 'date')[not(.='undated')])
case 'news' case 'biblio' case 'letters' case 'writings'
case 'diaries' case 'documents' case 'sources'
return
max(core:index-keys-for-field($coll, 'date')[not(.='undated')])
case 'persons' case 'orgs' return ()
case 'works' return ()
case 'places' return ()
Expand Down
2 changes: 1 addition & 1 deletion modules/wdt.xqm
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ declare function wdt:sources($item as item()*) as map(*) {
else ()
},
'filter-by-date' : function($dateFrom as xs:date?, $dateTo as xs:date?) as document-node()* {
()
$wdt:filter-by-date($item, $dateFrom, $dateTo)[parent::tei:imprint or parent::tei:creation or parent::mei:pubStmt or parent::mei:creation]/root()
},
'sort' : function($params as map(*)?) as document-node()* {
if(sort:has-index('sources')) then ()
Expand Down
3 changes: 2 additions & 1 deletion templates/ajax/sources.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
<h2><a href="#allFilter" class="collapseSingle" aria-expanded="true" data-toggle="collapse"><span data-template="lang:translate">filter</span></a></h2>
<!-- Facetten Filter-->
<div class="allFilter panel-collapse collapse show" id="allFilter">
<!-- <h4 data-template="lang:translate">chronology</h4>-->
<h4 data-template="lang:translate">chronology</h4>
<input type="text" class="rangeSlider" name="chronology-slider" data-template="app:set-slider-range"/>

<h4 data-template="lang:translate">sources-meta-cat</h4>
<select multiple="multiple" data-template="facets:select" name="sources-meta-cat"/>
Expand Down

0 comments on commit 6ea4342

Please sign in to comment.