From 4cad9794f99f8d53c4f73ec7be42e78fe1adf70c Mon Sep 17 00:00:00 2001 From: Fabian Steeg Date: Tue, 28 Jan 2025 13:57:41 +0100 Subject: [PATCH] Group volumes linking via RPB and lobid URIs (RPB-239) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To show single "x zugehörige Bände" link in superordinate details --- app/views/tags/result_doc.scala.html | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/views/tags/result_doc.scala.html b/app/views/tags/result_doc.scala.html index f456da3..b5d4b25 100644 --- a/app/views/tags/result_doc.scala.html +++ b/app/views/tags/result_doc.scala.html @@ -96,10 +96,10 @@ } } -@subordinate(field:String, id:String, label:String, values:(String,String)) = { - @defining(Lobid.getTotalHits(field, id, CONFIG.getString("nwbib.filter")).get(Lobid.API_TIMEOUT)){ hits => @if(hits > 0) { +@subordinate(field:String, ids:Seq[String], label:String, values:(String,String)) = { + @defining(ids.map((id) => Lobid.getTotalHits(field, id, CONFIG.getString("nwbib.filter")).get(Lobid.API_TIMEOUT)).reduce((a, b) => a + b)){ hits => @if(hits > 0) { @defining(if(hits==1){values._1} else {values._2}){ value => - @label@hits @value + @label@hits @value }}} } @@ -237,9 +237,9 @@ } } -@subordinateSearchFor(id: String) = { - @subordinate("isPartOf.hasSuperordinate.id", id, "Bände", ("zugehöriger Band", "zugehörige Bände")) - @subordinate("containedIn.id", id, "Enthält", ("Beitrag", "Beiträge")) +@subordinateSearchFor(ids: Seq[String]) = { + @subordinate("isPartOf.hasSuperordinate.id", ids, "Bände", ("zugehöriger Band", "zugehörige Bände")) + @subordinate("containedIn.id", ids, "Enthält", ("Beitrag", "Beiträge")) } @table(){ @@ -267,10 +267,9 @@ @labelled("In", "containedIn") @part_of("isPartOf", "hasSuperordinate") - @subordinateSearchFor(String.format("http://rpb.lobid.org/%s", (doc \ "rpbId").asOpt[String].getOrElse(""))) - @subordinateSearchFor(String.format("http://lobid.org/resources/%s#!", (doc \ "hbzId").asOpt[String].getOrElse(""))) - @subordinateSearchFor(String.format("https://lobid.org/resources/%s", (doc \ "rpbId").asOpt[String].getOrElse(""))) - @subordinateSearchFor(String.format("http://lobid.org/resources/"+ZDB_PREFIX+"%s#!", (doc \ "zdbId").asOpt[String].getOrElse(""))) + @subordinateSearchFor(Seq(String.format("http://rpb.lobid.org/%s", (doc \ "rpbId").asOpt[String].getOrElse("")), String.format("https://lobid.org/resources/%s", (doc \ "rpbId").asOpt[String].getOrElse("")))) + @subordinateSearchFor(Seq(String.format("http://lobid.org/resources/%s#!", (doc \ "hbzId").asOpt[String].getOrElse("")))) + @subordinateSearchFor(Seq(String.format("http://lobid.org/resources/"+ZDB_PREFIX+"%s#!", (doc \ "zdbId").asOpt[String].getOrElse("")))) @parallelausgabe() @raumsystematik("https://rpb.lobid.org/spatial") @sachsystematik("http://purl.org/lobid/rpb")