Bug 25428

Summary: Escaped HTML shows in authority detail view when subfield is a link
Product: Koha Reporter: Owen Leonard <oleonard>
Component: MARC Authority data supportAssignee: Bugs List <koha-bugs>
Status: CLOSED FIXED QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: aleisha, victor
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Trivial patch
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
20.05.00, 19.11.07, 19.05.12
Attachments: Screenshot showing the problem
Bug 25428: Correctly encode link if authority subfield is a URL
Bug 25428: Correctly encode link if authority subfield is a URL
Bug 25428: Correctly encode link if authority subfield is a URL

Description Owen Leonard 2020-05-08 16:12:08 UTC
Created attachment 104604 [details]
Screenshot showing the problem

In authority records there is the option to designate a subfield as a URL (like we do for 856$u in the default MARC framework). When you view the details of such a record the URL is output to the screen as HTML markup. This is because the script is sending hard-coded HTML to the template and the template outputs is as escaped.

Rather than use the $raw filter to make the link work, we should remove the script-generated HTML and do it in the template.
Comment 1 Owen Leonard 2020-05-08 16:23:12 UTC
Created attachment 104605 [details] [review]
Bug 25428: Correctly encode link if authority subfield is a URL

This patch modifies the script and template for showing the details of
an authority record so that if the authority subfield is configured to
be a link the link is correctly output in the template.

To test you must have an authority type configured with at least one
subfield designated as a URL:

 - Go to Administration -> Authority types
 - Select "MARC structure" from the actions menu for the authority type
   you want to modify.
 - Select "Subfields" from the actions menu for the tag containing
   the subfield you want to modify (for instance 856).
 - Edit the subfield you want to display as a link (e.g. subfield u).
 - In the subfield configuration form under "Advanced constraints" check
   the "Is a URL" checkbox and save your changes.

 - Apply the patch and go to Authorities in the staff interface.
 - Search for or create an authority record which contains URL
   information in the right subfield (for instance 856$u).
 - View the details for the record. Using the 856 example, the "8" tab
   should contain an active link pointing to the correct URL.
Comment 2 Bernardo Gonzalez Kriegel 2020-05-15 19:53:12 UTC
Created attachment 104967 [details] [review]
Bug 25428: Correctly encode link if authority subfield is a URL

This patch modifies the script and template for showing the details of
an authority record so that if the authority subfield is configured to
be a link the link is correctly output in the template.

To test you must have an authority type configured with at least one
subfield designated as a URL:

 - Go to Administration -> Authority types
 - Select "MARC structure" from the actions menu for the authority type
   you want to modify.
 - Select "Subfields" from the actions menu for the tag containing
   the subfield you want to modify (for instance 856).
 - Edit the subfield you want to display as a link (e.g. subfield u).
 - In the subfield configuration form under "Advanced constraints" check
   the "Is a URL" checkbox and save your changes.

 - Apply the patch and go to Authorities in the staff interface.
 - Search for or create an authority record which contains URL
   information in the right subfield (for instance 856$u).
 - View the details for the record. Using the 856 example, the "8" tab
   should contain an active link pointing to the correct URL.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described, no errors
Comment 3 Katrin Fischer 2020-05-21 14:02:38 UTC
Created attachment 105200 [details] [review]
Bug 25428: Correctly encode link if authority subfield is a URL

This patch modifies the script and template for showing the details of
an authority record so that if the authority subfield is configured to
be a link the link is correctly output in the template.

To test you must have an authority type configured with at least one
subfield designated as a URL:

 - Go to Administration -> Authority types
 - Select "MARC structure" from the actions menu for the authority type
   you want to modify.
 - Select "Subfields" from the actions menu for the tag containing
   the subfield you want to modify (for instance 856).
 - Edit the subfield you want to display as a link (e.g. subfield u).
 - In the subfield configuration form under "Advanced constraints" check
   the "Is a URL" checkbox and save your changes.

 - Apply the patch and go to Authorities in the staff interface.
 - Search for or create an authority record which contains URL
   information in the right subfield (for instance 856$u).
 - View the details for the record. Using the 856 example, the "8" tab
   should contain an active link pointing to the correct URL.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described, no errors

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Comment 4 Martin Renvoize 2020-05-22 08:33:58 UTC
Nice work everyone!

Pushed to master for 20.05
Comment 5 Aleisha Amohia 2020-06-10 03:37:34 UTC
backported to 19.11.x for 19.11.07
Comment 6 Victor Grousset/tuxayo 2020-06-12 01:16:53 UTC
Backported to 19.05.x branch for 19.05.12