From 6d415993906a359023f280b9e85a3b49a897d427 Mon Sep 17 00:00:00 2001 From: Hammat Wele <hammat.wele@inlibro.com> Date: Mon, 19 Aug 2024 16:14:37 +0000 Subject: [PATCH] Bug 36111: 856$h should not appear as a link in detailed record Test plan: 1. Add 856$h to MARC editor 1.1. Go to Administration > MARC bibliographic frameworks 1.2. Next to Default framework, click Actions > MARC structure 1.3. Search for field 856 1.4. Click Actions > Edit subfields 1.5. Click h 1.6. Check the Editor box 1.7. Click Save changes 2. Catalog a new record with a random URL in 856$h 2.1. Go to Cataloging 2.2. Click New record 2.3. Fill out the mandatory fields (000, 003, 005, 008, 040$c, 245$a, 942$c) 2.4. Go to tab 8 and enter a value in 856$h 2.5. Click Save (No need to add an item) 3. Search for the title in the staff interface (a large enough search to have more than one result) --> Notice it says "Online resources: Click here to access online" 3.1. Try to click the link --> Blank page 4. Access the detailed record in the staff interface --> Notice it says "Online resources: Click here to access online" 4.1. Try to click the link --> Blank page 5. Search for the title in the opac (a large enough search to have more than one result) --> Notice it says "Online resources: Click here to access online" 5.1. Try to click the link --> Blank page 6. Access the detailed record in the opac --> Notice it says "Online resources: Click here to access online" 6.1. Try to click the link --> Blank page 7. Edit the item and add a text in field 856$y 8. Access the detailed record in the staff interface --> Notice it says what you put in 856$y field 9. Apply the patch 10. Replay steps 3 through 6, but this time, the "Online resources" field should not be present. 11. Replay steps 7 through 8, but this time, what you put in 856$y field should not be present. 12. Edit the item and add a url in field 856$u 13. Replay steps 3 through 6, but this time, clicking on the link should take you to the URL specified in the 856$u field. 14. Replay steps 7 through 8, but this time, what you put in 856$y field should be present and clicking on the link should take you to the URL specified in the 856$u field. Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl> Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: David Nind <david@davidnind.com> Bug 36111: fixed extra space Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: David Nind <david@davidnind.com> Bug 36111: online resource link should be based on the presence of 856 Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> --- .../en/xslt/MARC21slim2intranetDetail.xsl | 8 ++++--- .../en/xslt/MARC21slim2intranetResults.xsl | 6 +++-- .../en/xslt/MARC21slim2OPACDetail.xsl | 20 ++++++++++------ .../en/xslt/MARC21slim2OPACResults.xsl | 24 ++++++++++++------- 4 files changed, 38 insertions(+), 20 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl index 36b01059b0..d6f5fb1964 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl @@ -921,8 +921,10 @@ </xsl:if> <xsl:if test="marc:datafield[@tag=856]"> - <span class="results_summary online_resources"><span class="label">Online resources: </span> - <xsl:for-each select="marc:datafield[@tag=856]"> + <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> + <span class="results_summary online_resources"> + <span class="label">Online resources: </span> + <xsl:for-each select="marc:datafield[@tag=856 and marc:subfield[@code='u']]"> <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> <a> <xsl:attribute name="href"> @@ -958,9 +960,9 @@ <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when> <xsl:otherwise> | </xsl:otherwise> </xsl:choose> - </xsl:for-each> </span> + </xsl:if> </xsl:if> <!-- 505 - Formatted contents note --> diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl index 16a423e421..5dbecdd6bc 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl @@ -978,9 +978,10 @@ </xsl:call-template> <xsl:if test="marc:datafield[@tag=856]"> + <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> <span class="results_summary online_resources"> - <span class="label">Online resources: </span> - <xsl:for-each select="marc:datafield[@tag=856]"> + <span class="label">Online resources: </span> + <xsl:for-each select="marc:datafield[@tag=856 and marc:subfield[@code='u']]"> <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> <a> <xsl:attribute name="href"> @@ -1018,6 +1019,7 @@ </xsl:choose> </xsl:for-each> </span> + </xsl:if> </xsl:if> <!-- Content Warning --> diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl index 515f954345..a6527ec2ad 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl +++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl @@ -1038,10 +1038,11 @@ <!-- Image processing code added here, takes precedence over text links including y3z text --> <xsl:if test="marc:datafield[@tag=856]"> + <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> <span class="results_summary online_resources"> - <span class="label">Online resources: </span> + <span class="label">Online resources: </span> <ul class="resource_list"> - <xsl:for-each select="marc:datafield[@tag=856]"> + <xsl:for-each select="marc:datafield[@tag=856 and marc:subfield[@code='u']]"> <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> <li> <a property="url"> @@ -1075,18 +1076,23 @@ <xsl:with-param name="codes">y3z</xsl:with-param> </xsl:call-template> </xsl:when> - <xsl:when test="$URLLinkText!=''"> - <xsl:value-of select="$URLLinkText"/> + <xsl:when test="not(marc:subfield[@code='y']) and not(marc:subfield[@code='3']) and not(marc:subfield[@code='z'])"> + <xsl:choose> + <xsl:when test="$URLLinkText!=''"> + <xsl:value-of select="$URLLinkText"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>Click here to access online</xsl:text> + </xsl:otherwise> + </xsl:choose> </xsl:when> - <xsl:otherwise> - <xsl:text>Click here to access online</xsl:text> - </xsl:otherwise> </xsl:choose> </a> </li> </xsl:for-each> </ul> </span> + </xsl:if> </xsl:if> <!-- 787 Other Relationship Entry --> diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl index c2ebe9c7d9..d0a21bdc55 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl +++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl @@ -1,3 +1,4 @@ +opacresult <?xml version="1.0" encoding="UTF-8"?> <!-- $Id: MARC21slim2DC.xsl,v 1.1 2003/01/06 08:20:27 adam Exp $ --> <!DOCTYPE stylesheet> @@ -1216,10 +1217,11 @@ </xsl:if> <xsl:if test="marc:datafield[@tag=856]"> + <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> <div class="results_summary online_resources"> <span class="label">Online resources: </span> <ul class="resource_list"> - <xsl:for-each select="marc:datafield[@tag=856]"> + <xsl:for-each select="marc:datafield[@tag=856 and marc:subfield[@code='u']]"> <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> <xsl:if test="$OPACURLOpenInNewWindow='0'"> <li><a> @@ -1255,9 +1257,9 @@ <xsl:when test="$URLLinkText!=''"> <xsl:value-of select="$URLLinkText"/> </xsl:when> - <xsl:otherwise> - <xsl:text>Click here to access online</xsl:text> - </xsl:otherwise> + <xsl:otherwise> + <xsl:text>Click here to access online</xsl:text> + </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> @@ -1274,7 +1276,10 @@ </xsl:when> <xsl:otherwise> <xsl:attribute name="href"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute> - </xsl:otherwise> + <xsl:if test="not(marc:subfield[@code='u'])"> + <xsl:attribute name="style">pointer-events: none; color: #202020;</xsl:attribute> + </xsl:if> + </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="($Show856uAsImage='Results' or $Show856uAsImage='Both') and ($SubqText='img' or $SubqText='bmp' or $SubqText='cod' or $SubqText='gif' or $SubqText='ief' or $SubqText='jpe' or $SubqText='jpeg' or $SubqText='jpg' or $SubqText='jfif' or $SubqText='png' or $SubqText='svg' or $SubqText='tif' or $SubqText='tiff' or $SubqText='ras' or $SubqText='cmx' or $SubqText='ico' or $SubqText='pnm' or $SubqText='pbm' or $SubqText='pgm' or $SubqText='ppm' or $SubqText='rgb' or $SubqText='xbm' or $SubqText='xpm' or $SubqText='xwd')"> @@ -1290,9 +1295,9 @@ <xsl:when test="$URLLinkText!=''"> <xsl:value-of select="$URLLinkText"/> </xsl:when> - <xsl:otherwise> - <xsl:text>Click here to access online</xsl:text> - </xsl:otherwise> + <xsl:otherwise> + <xsl:text>Click here to access online</xsl:text> + </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> @@ -1302,6 +1307,7 @@ </ul> </div> </xsl:if> + </xsl:if> <!-- Availability line --> <div class="results_summary availability"> @@ -1610,3 +1616,5 @@ </xsl:stylesheet> + +</xsl:stylesheet> -- 2.34.1