Summary: | Textarea in biblio record editor breaks authority plugin | ||
---|---|---|---|
Product: | Koha | Reporter: | Fridolin Somers <fridolin.somers> |
Component: | Cataloging | Assignee: | Fridolin Somers <fridolin.somers> |
Status: | CLOSED FIXED | QA Contact: | Testopia <testopia> |
Severity: | normal | ||
Priority: | P5 - low | CC: | andrewfh, david, florian.bontemps, kyle, m.de.rooy, victor |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=28812 | ||
Change sponsored?: | --- | Patch complexity: | Trivial patch |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: |
This fixes an issue when adding or editing record subfields using the authority plugin and it has a value with more than 100 characters. (When a subfield has more than 100 characters it changes to a text area rather than a standard input field, this caused JavaScript issues when using authority terms over 100 characters.)
|
Version(s) released in: |
22.05.00,21.11.01,21.05.08
|
Attachments: |
Bug 28853: Fix authority plugin when textarea in biblio record editor
Bug 28853: Fix authority plugin when textarea in biblio record editor Bug 28853: Fix authority plugin when textarea in biblio record editor |
BTW :
This JavaScript code is a mix of JQuery and old style.
It seams it is not very solid and several parts are repeated, like :
> var re = new RegExp('^subfield' + subfield_name,'g');
> var subfields = $(field_start).children('ul').children('li').filter( function() {
> return this.id.match(re);
> });
This would need a big revamping.
Created attachment 123819 [details] [review] Bug 28853: Fix authority plugin when textarea in biblio record editor In biblio record editor, when subfield value contains more than 100 characters the editor uses a textarea instead of an input. On a field using authority plugin, this breaks the JavaScript because it only searches for input tags : In /koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt : > this.getElementsByTagName('input')[1].value = values[i]; Test plan : 1) Prepare : 1.1) Create a new biblio record this a field using authority plugin, for example 606 1.2) Do not use authority plugin but enter in 606$x more than 100 chars 1.3) Save record 1.4) Create a new autority for 606 biblio field with $a and a $x containing more than 100 chars 2) Test 1 : 2.1) Edit again the biblio record, you see a text area for 606$x 2.2) Use authority plugin on field 606 2.3) Search and choose the new autority 2.4) Check $a,$x and $9 are well filled 3) Test 2 : 3.1) Empty field 606 3.2) Create a second $x subfield and fill it with a random value 3.3) Use authority plugin again on field 606 3.4) Search and choose the new autority 3.5) Check $a and $9 are well filled 3.6) Check first $x contains the value from autority and second $x is empty Created attachment 127348 [details] [review] Bug 28853: Fix authority plugin when textarea in biblio record editor In biblio record editor, when subfield value contains more than 100 characters the editor uses a textarea instead of an input. On a field using authority plugin, this breaks the JavaScript because it only searches for input tags : In /koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt : > this.getElementsByTagName('input')[1].value = values[i]; Test plan : 1) Prepare : 1.1) Create a new biblio record with a field using authority plugin, for example 606 1.2) Do not use authority plugin but enter in 606$x more than 100 chars 1.3) Save record 1.4) Create a new autority for 606 biblio field with $a and a $x containing more than 100 chars 2) Test 1 : 2.1) Edit again the biblio record, you see a text area for 606$x 2.2) Use authority plugin on field 606 2.3) Search and choose the new autority 2.4) Check $a,$x and $9 are well filled 3) Test 2 : 3.1) Empty field 606 3.2) Create a second $x subfield and fill it with a random value 3.3) Use authority plugin again on field 606 3.4) Search and choose the new autority 3.5) Check $a and $9 are well filled 3.6) Check first $x contains the value from autority and second $x is empty Signed-off-by: Florian Bontemps <florian.bontemps@biblibre.com> I know Fridolin and i work in the same company but this patch has gone unattended for a couple months now. Feel free to ask for another signoff if needed. Created attachment 128161 [details] [review] Bug 28853: Fix authority plugin when textarea in biblio record editor In biblio record editor, when subfield value contains more than 100 characters the editor uses a textarea instead of an input. On a field using authority plugin, this breaks the JavaScript because it only searches for input tags : In /koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt : > this.getElementsByTagName('input')[1].value = values[i]; Test plan : 1) Prepare : 1.1) Create a new biblio record with a field using authority plugin, for example 606 1.2) Do not use authority plugin but enter in 606$x more than 100 chars 1.3) Save record 1.4) Create a new autority for 606 biblio field with $a and a $x containing more than 100 chars 2) Test 1 : 2.1) Edit again the biblio record, you see a text area for 606$x 2.2) Use authority plugin on field 606 2.3) Search and choose the new autority 2.4) Check $a,$x and $9 are well filled 3) Test 2 : 3.1) Empty field 606 3.2) Create a second $x subfield and fill it with a random value 3.3) Use authority plugin again on field 606 3.4) Search and choose the new autority 3.5) Check $a and $9 are well filled 3.6) Check first $x contains the value from autority and second $x is empty Signed-off-by: Florian Bontemps <florian.bontemps@biblibre.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Pushed to master for 22.05, thanks to everybody involved! Pushed to 21.11.x for 21.11.01 Pushed to 21.05.x for 21.05.08 Not backported to oldoldstable (20.11.x). Feel free to ask if it's needed. |
In biblio record editor, when subfield value contains more than 100 characters the editor uses a textarea instead of an input. On a field using authority plugin, this breaks the JavaScript because it only searches for input tags : In /koha-tmpl/intranet-tmpl/prog/en/modules/authorities/blinddetail-biblio-search.tt : > this.getElementsByTagName('input')[1].value = values[i];