Created attachment 168314 [details] short screen recording that shows the bug in action With AuthDisplayHierarchy enabled and the following MARC21 authority data: 001 1 151 $a Europe 551 $a Athens $w h $9 3 942 $a GEOGR_NAME 001 2 151 $a Greece 551 $a Athens $w h $9 3 942 $a GEOGR_NAME 001 3 151 $a Athens 551 $a Europe $w g $9 1 551 $a Greece $w g $9 2 942 $a GEOGR_NAME In the authority details page for 'Athens' (authid=3), clicking on the expand/collapse arrows next to the top-level terms in the hierarchy tree ('Europe' and 'Greece') will not work properly, i.e. *only one* broader term will show 'Athens' as its narrower term at any given time. I attach a small screen recording that shows this in action.
This is happening because in the HTML source of the page the individual <li> elements associated with each node do not have unique `id` values, which confuses the JavaScript library (jsTree) responsible for rendering the hierarchy tree. The simple fix is to append a random number to each `id` attribute.
Created attachment 168318 [details] Sample MARC data in ISO2709 format (contains three authority records) I upload an .mrc file containing some sample MARC authority data, this is meant to be used in the test plan.
Created attachment 168319 [details] [review] Bug 37226: append a random number to the `id` attribute of each <li> When you view the authority details page for a term that contains more than one terms with broader relationship, clicking on the expand/collapse arrows next to the top-level terms in the hierarchy tree will not work properly, i.e. *only one* broader term will show the narrower term under it at any given time. This is happening because in the HTML source of the page the individual <li> elements associated with each node do not have unique `id` values, which confuses the JavaScript library (jsTree) responsible for rendering the hierarchy tree. This patch fixes that by appending a random number to each `id` attribute. Test plan: 0) Enable the AuthDisplayHierarchy System Preference (set to 'Show'). 1) Copy the provided MARC21 Authority sample data (sample-data.mrc) to your KTD Koha container (it must have MARC21 marc flavour): docker cp sample-data.mrc koha-koha-1:/kohadevbox/ 2) Import the provided authorities (the sample file contains three Geographic Name records): WARNING! the --delete switch is passed to bulkmarcimport.pl WARNING! this will erase any authority data you have in your instance! (this is done to retain the broader/narrower authid associations) misc/migration_tools/bulkmarcimport.pl --authorities --file=/kohadevbox/sample-data.mrc --verbose -c=MARC21 --delete -m=ISO2709 3) Visit the authority details page for 'Athens': http://localhost:8081/cgi-bin/koha/authorities/detail.pl?authid=3 In the authority hierarchy tree, click the arrows next to 'Europe' and 'Greece' to expand and show the narrower term: notice how only one item works at any given time. 4) Apply the patch. 5) Repeat step 3) (refresh the page) -- this time you should be able to view 'Athens' as a narrower term of both 'Europe' and 'Greece' at the same time.
Created attachment 168320 [details] [review] Bug 37226: append a random number to the `id` attribute of each <li> When you view the authority details page for a term that contains more than one terms with broader relationship, clicking on the expand/collapse arrows next to the top-level terms in the hierarchy tree will not work properly, i.e. *only one* broader term will show the narrower term under it at any given time. This is affecting both the OPAC and the Staff interface. This is happening because in the HTML source of the page the individual <li> elements associated with each node do not have unique `id` values, which confuses the JavaScript library (jsTree) responsible for rendering the hierarchy tree. This patch fixes that by appending a random number to each `id` attribute. Test plan: 0) Enable the AuthDisplayHierarchy System Preference (set to 'Show'). 1) Copy the provided MARC21 Authority sample data (sample-data.mrc) to your KTD Koha container (it must have MARC21 marc flavour): docker cp sample-data.mrc koha-koha-1:/kohadevbox/ 2) Import the provided authorities (the sample file contains three Geographic Name records): WARNING! the --delete switch is passed to bulkmarcimport.pl WARNING! this will erase any authority data you have in your instance! (this is done to retain the broader/narrower authid associations) misc/migration_tools/bulkmarcimport.pl --authorities --file=/kohadevbox/sample-data.mrc --verbose -c=MARC21 --delete -m=ISO2709 3) Visit the authority details page for 'Athens' in OPAC/Staff: http://localhost:8080/cgi-bin/koha/opac-authoritiesdetail.pl?authid=3 http://localhost:8081/cgi-bin/koha/authorities/detail.pl?authid=3 In the authority hierarchy tree, click the arrows next to 'Europe' and 'Greece' to expand and show the narrower term: notice how only one item works at any given time. 4) Apply the patch. 5) Repeat step 3) (refresh the pages) -- this time you should be able to view 'Athens' as a narrower term of both 'Europe' and 'Greece' at the same time.
Created attachment 168335 [details] [review] Bug 37226: append a random number to the `id` attribute of each <li> When you view the authority details page for a term that contains more than one terms with broader relationship, clicking on the expand/collapse arrows next to the top-level terms in the hierarchy tree will not work properly, i.e. *only one* broader term will show the narrower term under it at any given time. This is affecting both the OPAC and the Staff interface. This is happening because in the HTML source of the page the individual <li> elements associated with each node do not have unique `id` values, which confuses the JavaScript library (jsTree) responsible for rendering the hierarchy tree. This patch fixes that by appending a random number to each `id` attribute. Test plan: 0) Enable the AuthDisplayHierarchy System Preference (set to 'Show'). 1) Copy the provided MARC21 Authority sample data (sample-data.mrc) to your KTD Koha container (it must have MARC21 marc flavour): docker cp sample-data.mrc koha-koha-1:/kohadevbox/ 2) Import the provided authorities (the sample file contains three Geographic Name records): WARNING! the --delete switch is passed to bulkmarcimport.pl WARNING! this will erase any authority data you have in your instance! (this is done to retain the broader/narrower authid associations) misc/migration_tools/bulkmarcimport.pl --authorities --file=/kohadevbox/sample-data.mrc --verbose -c=MARC21 --delete -m=ISO2709 3) Visit the authority details page for 'Athens' in OPAC/Staff: http://localhost:8080/cgi-bin/koha/opac-authoritiesdetail.pl?authid=3 http://localhost:8081/cgi-bin/koha/authorities/detail.pl?authid=3 In the authority hierarchy tree, click the arrows next to 'Europe' and 'Greece' to expand and show the narrower term: notice how only one item works at any given time. 4) Apply the patch. 5) Repeat step 3) (refresh the pages) -- this time you should be able to view 'Athens' as a narrower term of both 'Europe' and 'Greece' at the same time. Signed-off-by: David Nind <david@davidnind.com>
I think the commit message title needs amending (to follow the commit message guidelines https://wiki.koha-community.org/wiki/Commit_messages).
(In reply to David Nind from comment #6) > I think the commit message title needs amending (to follow the commit > message guidelines https://wiki.koha-community.org/wiki/Commit_messages). Hi David, and thanks for the speedy Sign Off! The current commit message title is: "Bug 37226: append a random number to the `id` attribute of each <li>" I think it meets the guidelines given in the wiki page you refer to? If not, can you elaborate on what needs changing? Thank you!
(In reply to Andreas Roussos from comment #7) > (In reply to David Nind from comment #6) > > I think the commit message title needs amending (to follow the commit > > message guidelines https://wiki.koha-community.org/wiki/Commit_messages). > Hi David, and thanks for the speedy Sign Off! > > The current commit message title is: > "Bug 37226: append a random number to the `id` attribute of each <li>" > > I think it meets the guidelines given in the wiki page you refer to? > > If not, can you elaborate on what needs changing? Thank you! I cant see the problem either with that title.
Created attachment 169188 [details] [review] Bug 37226: append a random number to the `id` attribute of each <li> When you view the authority details page for a term that contains more than one terms with broader relationship, clicking on the expand/collapse arrows next to the top-level terms in the hierarchy tree will not work properly, i.e. *only one* broader term will show the narrower term under it at any given time. This is affecting both the OPAC and the Staff interface. This is happening because in the HTML source of the page the individual <li> elements associated with each node do not have unique `id` values, which confuses the JavaScript library (jsTree) responsible for rendering the hierarchy tree. This patch fixes that by appending a random number to each `id` attribute. Test plan: 0) Enable the AuthDisplayHierarchy System Preference (set to 'Show'). 1) Copy the provided MARC21 Authority sample data (sample-data.mrc) to your KTD Koha container (it must have MARC21 marc flavour): docker cp sample-data.mrc koha-koha-1:/kohadevbox/ 2) Import the provided authorities (the sample file contains three Geographic Name records): WARNING! the --delete switch is passed to bulkmarcimport.pl WARNING! this will erase any authority data you have in your instance! (this is done to retain the broader/narrower authid associations) misc/migration_tools/bulkmarcimport.pl --authorities --file=/kohadevbox/sample-data.mrc --verbose -c=MARC21 --delete -m=ISO2709 3) Visit the authority details page for 'Athens' in OPAC/Staff: http://localhost:8080/cgi-bin/koha/opac-authoritiesdetail.pl?authid=3 http://localhost:8081/cgi-bin/koha/authorities/detail.pl?authid=3 In the authority hierarchy tree, click the arrows next to 'Europe' and 'Greece' to expand and show the narrower term: notice how only one item works at any given time. 4) Apply the patch. 5) Repeat step 3) (refresh the pages) -- this time you should be able to view 'Athens' as a narrower term of both 'Europe' and 'Greece' at the same time. Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Thanks for all the hard work! Pushed to main for the next 24.11.00 release as RM Assistant
Backported to 24.05.x for upcoming 24.05.04
Pushed to 23.11.x for 23.11.09
Maybe we could create a TT template to generate the random number (without dot)
Not backporting to 23.05.x unless requested