From 60ebd7fe9b5e624b164b237e54fe2cb1f7942b44 Mon Sep 17 00:00:00 2001 From: Omar Siam Date: Tue, 24 Sep 2013 14:47:05 +0200 Subject: [PATCH 1/5] Use separate cs-xsl subproject. --- src/modules/cs-xsl/README.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 src/modules/cs-xsl/README.md diff --git a/src/modules/cs-xsl/README.md b/src/modules/cs-xsl/README.md deleted file mode 100644 index 07926f0..0000000 --- a/src/modules/cs-xsl/README.md +++ /dev/null @@ -1,6 +0,0 @@ - -retrieve the xsl-suite from: -https://github.com/vronk/corpus_shell/ - -module xsl: -https://github.com/vronk/corpus_shell/tree/master/xsl \ No newline at end of file From 5b8d43898709f6f40db3d4c01dbdee4454b9a900 Mon Sep 17 00:00:00 2001 From: Omar Siam Date: Tue, 24 Sep 2013 14:48:41 +0200 Subject: [PATCH 2/5] Add submodule cs-xsl. --- .gitmodules | 3 +++ src/modules/cs-xsl | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 src/modules/cs-xsl diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c0e4e56 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/modules/cs-xsl"] + path = src/modules/cs-xsl + url = git@github.com:simar0at/cs-xsl.git diff --git a/src/modules/cs-xsl b/src/modules/cs-xsl new file mode 160000 index 0000000..be7adb9 --- /dev/null +++ b/src/modules/cs-xsl @@ -0,0 +1 @@ +Subproject commit be7adb9dcfe6f1a09c087533eb1e9815642d8dce From c7108fd1f70713c916d9118dec3087e88f934728 Mon Sep 17 00:00:00 2001 From: Omar Siam Date: Mon, 14 Oct 2013 12:03:57 +0200 Subject: [PATCH 3/5] Removed second instance of sru:query -> generates doubled search string in search input form. --- src/modules/fcs/fcs.xqm | 1 - 1 file changed, 1 deletion(-) diff --git a/src/modules/fcs/fcs.xqm b/src/modules/fcs/fcs.xqm index 221446a..c25e054 100644 --- a/src/modules/fcs/fcs.xqm +++ b/src/modules/fcs/fcs.xqm @@ -515,7 +515,6 @@ declare function fcs:search-retrieve($query as xs:string, $x-context as xs:strin {$result-count} 1.2 - {$query} {$x-context} {$x-dataview} {$startRecord} From db540cbd6a1f786ff273d15c25ea910e4f100b56 Mon Sep 17 00:00:00 2001 From: Omar Siam Date: Thu, 17 Oct 2013 17:04:19 +0200 Subject: [PATCH 4/5] Enable mix and match of multiple dataviews using the x-dataview parameter and ,\s etc. as delimiter. --- src/modules/fcs/fcs.xqm | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/modules/fcs/fcs.xqm b/src/modules/fcs/fcs.xqm index c25e054..9e315ec 100644 --- a/src/modules/fcs/fcs.xqm +++ b/src/modules/fcs/fcs.xqm @@ -117,7 +117,7 @@ declare function fcs:repo($config) as item()* { let $cql-query := $query, $start-item := request:get-parameter("startRecord", 1), $max-items := request:get-parameter("maximumRecords", 50), - $x-dataview := request:get-parameter("x-dataview", repo-utils:config-value($config, 'default.dataview')) + $x-dataview := string-join(request:get-parameter("x-dataview", repo-utils:config-value($config, 'default.dataview')),',') (: return cr:search-retrieve($cql-query, $query-collections, $format, xs:integer($start-item), xs:integer($max-items)) :) return if (not($recordPacking = ('string','xml'))) then @@ -515,11 +515,11 @@ declare function fcs:search-retrieve($query as xs:string, $x-context as xs:strin {$result-count} 1.2 + {$query} {$x-context} {$x-dataview} {$startRecord} - {$maximumRecords} - {$query} + {$maximumRecords} {repo-utils:config-value($config, "base.url")} @@ -552,6 +552,7 @@ all based on mappings and parameters (data-view) declare function fcs:format-record-data($orig-sequence-record-data as node(), $record-data-input as node(), $query-matches as element(exist:match)*, $data-view as xs:string*, $x-context as xs:string*, $config) as item()* { (: let $record-data := util:expand($record, ""):) (: cmdcoll:get-md-collection-name($raw-record-data):) + let $dataviews := tokenize($data-view,',\s*') let $title := fcs:apply-index ($orig-sequence-record-data, "title",$x-context, $config) let $resource-pid := fcs:apply-index ($orig-sequence-record-data, "resource-pid",$x-context, $config) let $resourcefragment-pid := fcs:apply-index($orig-sequence-record-data, "resourcefragment-pid",$x-context, $config) @@ -626,9 +627,13 @@ declare function fcs:format-record-data($orig-sequence-record-data as node(), $r else if (not($prev-next-scan//sru:terms/sru:term[2]/sru:value = $title)) then $prev-next-scan//sru:terms/sru:term[2]/sru:value else "" - - let $rf-prev-ref := if (not($rf-prev='')) then concat('?operation=searchRetrieve&query=resourcefragment-pid="', xmldb:encode-uri($rf-prev), '"&x-dataview=full&x-dataview=navigation&x-context=', $x-context) else "" - let $rf-next-ref:= if (not($rf-next='')) then concat('?operation=searchRetrieve&query=resourcefragment-pid="', xmldb:encode-uri($rf-next), '"&x-dataview=full&x-dataview=navigation&x-context=', $x-context) else "" + + let $nav-data-view := if (contains($data-view, 'navigation')) then $data-view else concat($data-view, '&x-dataview=navigation') + (:let $rf-prev-ref := if (not($rf-prev='')) then concat('?operation=searchRetrieve&query=resourcefragment-pid="', xmldb:encode-uri($rf-prev), '"&x-dataview=full&x-dataview=navigation&x-context=', $x-context) else "" + let $rf-next-ref:= if (not($rf-next='')) then concat('?operation=searchRetrieve&query=resourcefragment-pid="', xmldb:encode-uri($rf-next), '"&x-dataview=full&x-dataview=navigation&x-context=', $x-context) else "":) + let $rf-prev-ref := if (not($rf-prev='')) then concat('?operation=searchRetrieve&query=', $sort-index, '="', xmldb:encode-uri($rf-prev), '"&x-dataview=', $data-view,'&x-context=', $x-context) else "" + let $rf-next-ref:= if (not($rf-next='')) then concat('?operation=searchRetrieve&query=', $sort-index, '="', xmldb:encode-uri($rf-next), '"&x-dataview=', $data-view, '&x-context=', $x-context) else "" + return (, ) @@ -643,9 +648,9 @@ declare function fcs:format-record-data($orig-sequence-record-data as node(), $r let $dv-title := {$title[1]} let $dv-xmlescaped := if (contains($data-view,'xmlescaped')) - then {util:serialize($record-data,'method=xml, indent=yes')} + then util:serialize($record-data,'method=xml, indent=yes') else () - + (:return if ($data-view = 'raw') then $record-data else { @@ -660,18 +665,19 @@ declare function fcs:format-record-data($orig-sequence-record-data as node(), $r then $record-data else { - for $d in tokenize($data-view,',\s*') + for $d in $dataviews return let $data:= switch ($d) case "full" return util:expand($record-data) case "facs" return $dv-facs case "title" return $dv-title case "kwic" return $kwic - case "navigation" return $dv-navigation + case "navigation" return () case "xmlescaped" return $dv-xmlescaped default return $kwic - return {$data} + return if (exists($data)) then {$data} else () } + { if ('navigation' = $dataviews) then $dv-navigation else () } }; @@ -950,7 +956,12 @@ it still strips the inner elements (descendants) and only leaves the .//text() . :) declare function fcs:process-result($result as node()*, $matching as node()*) as item()* { - for $node in $result + (: if the match is on the top-level base-elem itself, don't highlight. + it makes no sense to highlight the whole entry (page or so) :) + if ($result = $matching) then + $result + else +for $node in $result return typeswitch ($node) case text() return $node case comment() return $node From b6fad20309ba4177f434f708fda2c8dc68b46450 Mon Sep 17 00:00:00 2001 From: Omar Siam Date: Fri, 27 Mar 2015 10:03:35 +0100 Subject: [PATCH 5/5] Update linked revision. --- src/modules/cs-xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/cs-xsl b/src/modules/cs-xsl index be7adb9..d4296cf 160000 --- a/src/modules/cs-xsl +++ b/src/modules/cs-xsl @@ -1 +1 @@ -Subproject commit be7adb9dcfe6f1a09c087533eb1e9815642d8dce +Subproject commit d4296cfc68b90f7d2990ec603bdd198828644b31