Bugzilla – Attachment 165355 Details for
Bug 36111
Online resource link should be based on the presence of 856$u (MARC21)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 36111: 856$h should not appear as a link in detailed record
Bug-36111-856h-should-not-appear-as-a-link-in-deta.patch (text/plain), 22.56 KB, created by
Martin Renvoize
on 2024-04-23 08:52:08 UTC
(
hide
)
Description:
Bug 36111: 856$h should not appear as a link in detailed record
Filename:
MIME Type:
Creator:
Martin Renvoize
Created:
2024-04-23 08:52:08 UTC
Size:
22.56 KB
patch
obsolete
>From 3eedc7153a9e4dea0e51b777cb581b23ba25600f Mon Sep 17 00:00:00 2001 >From: Matthias Le Gac <matthias.le-gac@inlibro.com> >Date: Fri, 5 Apr 2024 09:17:16 -0400 >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> >--- > .../en/xslt/MARC21slim2intranetDetail.xsl | 17 +++++--- > .../en/xslt/MARC21slim2intranetResults.xsl | 15 ++++--- > .../en/xslt/MARC21slim2OPACDetail.xsl | 31 +++++++++----- > .../en/xslt/MARC21slim2OPACResults.xsl | 40 ++++++++++++------- > 4 files changed, 66 insertions(+), 37 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >index 48439f3a241..2795e84b53c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >@@ -921,7 +921,10 @@ > </xsl:if> > > <xsl:if test="marc:datafield[@tag=856]"> >- <span class="results_summary online_resources"><span class="label">Online resources: </span> >+ <span class="results_summary online_resources"> >+ <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> >+ <span class="label">Online resources: </span> >+ </xsl:if> > <xsl:for-each select="marc:datafield[@tag=856]"> > <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> > <a> >@@ -933,11 +936,14 @@ > </xsl:call-template> > <xsl:value-of select="marc:subfield[@code='u']"/> > </xsl:attribute> >+ <xsl:if test="not(marc:subfield[@code='u'])"> >+ <xsl:attribute name="style">pointer-events: none; color: #202020;</xsl:attribute> >+ </xsl:if> > <xsl:choose> > <xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $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')"> > <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text> > </xsl:when> >- <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> >+ <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z'] and marc:subfield[@code='u']"> > <xsl:call-template name="subfieldSelect"> > <xsl:with-param name="codes">y3z</xsl:with-param> > </xsl:call-template> >@@ -947,18 +953,17 @@ > <xsl:when test="$URLLinkText!=''"> > <xsl:value-of select="$URLLinkText"/> > </xsl:when> >- <xsl:otherwise> >+ <xsl:when test="marc:subfield[@code='u']"> > <xsl:text>Click here to access online</xsl:text> >- </xsl:otherwise> >+ </xsl:when> > </xsl:choose> > </xsl:when> > </xsl:choose> > </a> > <xsl:choose> > <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when> >- <xsl:otherwise> | </xsl:otherwise> >+ <xsl:when test="(marc:subfield[@code='y'] or marc:subfield[@code='3'] or marc:subfield[@code='z'] or marc:subfield[@code='u']) and marc:subfield[@code='u']"><xsl:text> | </xsl:text></xsl:when> > </xsl:choose> >- > </xsl:for-each> > </span> > </xsl:if> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl >index 16a423e4215..b3820bd0c6c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl >@@ -979,7 +979,9 @@ > > <xsl:if test="marc:datafield[@tag=856]"> > <span class="results_summary online_resources"> >- <span class="label">Online resources: </span> >+ <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> >+ <span class="label">Online resources: </span> >+ </xsl:if> > <xsl:for-each select="marc:datafield[@tag=856]"> > <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> > <a> >@@ -991,11 +993,14 @@ > </xsl:call-template> > <xsl:value-of select="marc:subfield[@code='u']"/> > </xsl:attribute> >+ <xsl:if test="not(marc:subfield[@code='u'])"> >+ <xsl:attribute name="style">pointer-events: none; color: #202020;</xsl:attribute> >+ </xsl:if> > <xsl:choose> > <xsl:when test="($Show856uAsImage='Results' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $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')"> > <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="height">100</xsl:attribute></xsl:element><xsl:text></xsl:text> > </xsl:when> >- <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> >+ <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z'] and marc:subfield[@code='u']"> > <xsl:call-template name="subfieldSelect"> > <xsl:with-param name="codes">y3z</xsl:with-param> > </xsl:call-template> >@@ -1005,16 +1010,16 @@ > <xsl:when test="$URLLinkText!=''"> > <xsl:value-of select="$URLLinkText"/> > </xsl:when> >- <xsl:otherwise> >+ <xsl:when test="marc:subfield[@code='u']"> > <xsl:text>Click here to access online</xsl:text> >- </xsl:otherwise> >+ </xsl:when> > </xsl:choose> > </xsl:when> > </xsl:choose> > </a> > <xsl:choose> > <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when> >- <xsl:otherwise> | </xsl:otherwise> >+ <xsl:when test="(marc:subfield[@code='y'] or marc:subfield[@code='3'] or marc:subfield[@code='z'] or marc:subfield[@code='u']) and marc:subfield[@code='u']"><xsl:text> | </xsl:text></xsl:when> > </xsl:choose> > </xsl:for-each> > </span> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >index 3fe783b6152..836ba6ef75f 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >@@ -1039,11 +1039,11 @@ > <!-- Image processing code added here, takes precedence over text links including y3z text --> > <xsl:if test="marc:datafield[@tag=856]"> > <span class="results_summary online_resources"> >- <span class="label">Online resources: </span> >- <ul class="resource_list"> >+ <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> >+ <span class="label">Online resources: </span> >+ </xsl:if> > <xsl:for-each select="marc:datafield[@tag=856]"> > <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> >- <li> > <a property="url"> > <xsl:choose> > <xsl:when test="$OPACTrackClicks='track'"> >@@ -1061,6 +1061,9 @@ > </xsl:call-template> > <xsl:value-of select="marc:subfield[@code='u']"/> > </xsl:attribute> >+ <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:if test="$OPACURLOpenInNewWindow='1'"> >@@ -1070,22 +1073,28 @@ > <xsl:when test="($Show856uAsImage='Details' or $Show856uAsImage='Both') and (substring($SubqText,1,6)='image/' or $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')"> > <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="style">height:100px</xsl:attribute></xsl:element><xsl:text></xsl:text> > </xsl:when> >- <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> >+ <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z'] and marc:subfield[@code='u']"> > <xsl:call-template name="subfieldSelect"> > <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:when test="marc:subfield[@code='u']"> >+ <xsl:text>Click here to access online</xsl:text> >+ </xsl:when> >+ </xsl:choose> > </xsl:when> >- <xsl:otherwise> >- <xsl:text>Click here to access online</xsl:text> >- </xsl:otherwise> > </xsl:choose> > </a> >- </li> >+ <xsl:choose> >+ <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when> >+ <xsl:when test="(marc:subfield[@code='y'] or marc:subfield[@code='3'] or marc:subfield[@code='z'] or marc:subfield[@code='u']) and marc:subfield[@code='u']"><xsl:text> | </xsl:text></xsl:when> >+ </xsl:choose> > </xsl:for-each> >- </ul> > </span> > </xsl:if> > >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >index c2ebe9c7d91..2bf0aeb6a46 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >@@ -1217,12 +1217,13 @@ > > <xsl:if test="marc:datafield[@tag=856]"> > <div class="results_summary online_resources"> >+ <xsl:if test="marc:datafield[@tag=856]/marc:subfield[@code='u']"> > <span class="label">Online resources: </span> >- <ul class="resource_list"> >+ </xsl:if> > <xsl:for-each select="marc:datafield[@tag=856]"> > <xsl:variable name="SubqText"><xsl:value-of select="marc:subfield[@code='q']"/></xsl:variable> > <xsl:if test="$OPACURLOpenInNewWindow='0'"> >- <li><a> >+ <a> > <xsl:choose> > <xsl:when test="$OPACTrackClicks='track'"> > <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="str:encode-uri(marc:subfield[@code='u'], true())"/>&biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute> >@@ -1239,13 +1240,16 @@ > </xsl:call-template> > <xsl:value-of select="marc:subfield[@code='u']"/> > </xsl:attribute> >+ <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 (substring($SubqText,1,6)='image/' or $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')"> > <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="style">height:100px;</xsl:attribute></xsl:element><xsl:text></xsl:text> > </xsl:when> >- <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> >+ <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z'] and marc:subfield[@code='u']"> > <xsl:call-template name="subfieldSelect"> > <xsl:with-param name="codes">y3z</xsl:with-param> > </xsl:call-template> >@@ -1255,16 +1259,16 @@ > <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:when test="marc:subfield[@code='u']"> >+ <xsl:text>Click here to access online</xsl:text> >+ </xsl:when> > </xsl:choose> > </xsl:when> > </xsl:choose> >- </a></li> >+ </a> > </xsl:if> > <xsl:if test="$OPACURLOpenInNewWindow='1'"> >- <li><a target='_blank'> >+ <a target='_blank'> > <xsl:choose> > <xsl:when test="$OPACTrackClicks='track'"> > <xsl:attribute name="href">/cgi-bin/koha/tracklinks.pl?uri=<xsl:value-of select="str:encode-uri(marc:subfield[@code='u'], true())"/>&biblionumber=<xsl:value-of select="$biblionumber"/></xsl:attribute> >@@ -1274,13 +1278,16 @@ > </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')"> > <xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="marc:subfield[@code='u']"/></xsl:attribute><xsl:attribute name="alt"><xsl:value-of select="marc:subfield[@code='y']"/></xsl:attribute><xsl:attribute name="style">height:100px</xsl:attribute></xsl:element><xsl:text></xsl:text> > </xsl:when> >- <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z']"> >+ <xsl:when test="marc:subfield[@code='y' or @code='3' or @code='z'] and marc:subfield[@code='u']"> > <xsl:call-template name="subfieldSelect"> > <xsl:with-param name="codes">y3z</xsl:with-param> > </xsl:call-template> >@@ -1290,16 +1297,19 @@ > <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:when test="marc:subfield[@code='u']"> >+ <xsl:text>Click here to access online</xsl:text> >+ </xsl:when> > </xsl:choose> > </xsl:when> > </xsl:choose> >- </a></li> >+ </a> > </xsl:if> >+ <xsl:choose> >+ <xsl:when test="position()=last()"><xsl:text> </xsl:text></xsl:when> >+ <xsl:when test="(marc:subfield[@code='y'] or marc:subfield[@code='3'] or marc:subfield[@code='z'] or marc:subfield[@code='u']) and marc:subfield[@code='u']"><xsl:text> | </xsl:text></xsl:when> >+ </xsl:choose> > </xsl:for-each> >- </ul> > </div> > </xsl:if> > >-- >2.44.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 36111
:
162322
|
162405
|
162406
|
163876
|
164029
|
164151
|
164275
|
164276
|
164429
|
164430
|
164476
|
165236
|
165335
|
165346
|
165347
|
165355
|
165356
|
165688
|
165709
|
165710
|
165711
|
170437
|
170471
|
170474
|
170576