Bug 13600: (follow-up) Add separator between different series fields
authorNick Clemens <nick@bywatersolutions.com>
Mon, 24 Oct 2022 16:23:12 +0000 (16:23 +0000)
committerTomas Cohen Arazi <tomascohen@theke.io>
Thu, 10 Nov 2022 13:28:10 +0000 (10:28 -0300)
This patch checks for an upcoming series tag, and adds a separator if one is found

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl

index 317a3a3..109d1ad 100644 (file)
             </xsl:if>
             <xsl:choose>
                 <xsl:when test="position()=last()">
-                    <xsl:if test="../marc:datafield[@tag=490][@ind1!=1]">
+                    <xsl:if test="../marc:datafield[@tag=490][@ind1!=1] or ../marc:datafield[(@tag=800 or @tag=810 or @tag=811) and @ind1!='z'] or ../marc:datafield[@tag=830 and @ind1!='z']">
                         <span class="separator"> | </span>
                     </xsl:if>
                 </xsl:when>
             </xsl:if>
             <xsl:choose>
                 <xsl:when test="position()=last()">
-                    <xsl:if test="../marc:datafield[@tag=490][@ind1=1]">
+                    <xsl:if test="../marc:datafield[(@tag=800 or @tag=810 or @tag=811) and @ind1!='z'] or ../marc:datafield[@tag=830 and @ind1!='z']">
                         <span class="separator"> | </span>
                     </xsl:if>
                 </xsl:when>
             </xsl:choose>
         </xsl:for-each>
         <!-- 800,810,811,830 always display. -->
+
         <xsl:for-each select="marc:datafield[(@tag=800 or @tag=810 or @tag=811) and @ind1!='z']">
             <xsl:choose>
                 <xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
             <xsl:call-template name="part"/>
             <xsl:text> ; </xsl:text>
             <xsl:value-of  select="marc:subfield[@code='v']" />
-        <xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><span class="separator"> | </span></xsl:otherwise></xsl:choose>
+        <xsl:choose>
+            <xsl:when test="position()=last()">
+                <xsl:if test="../marc:datafield[@tag=830 and @ind1!='z']">
+                    <span class="separator"> | </span>
+                </xsl:if>
+            </xsl:when>
+            <xsl:otherwise>
+                <span class="separator"> | </span>
+            </xsl:otherwise>
+        </xsl:choose>
         </xsl:for-each>
 
         <xsl:for-each select="marc:datafield[@tag=830 and @ind1!='z']">