From cbd466e9462b89f4302e18671d55e725c338c109 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Mon, 18 May 2015 10:31:26 +0200 Subject: [PATCH] [PASSED QA] Bug 14213: Cataloging plugin in cloned field does not work A code change for report 10480 in cataloging.js does not work well in case you clone a field with a plugin on a subfield. The events (click, focus, etc.) do not work on the subfield of the clone. This patch corrects the situation by finding the right html element for adding event binding. NOTE: The test plan uses EXAMPLE.pl since many old plugins do not operate on the correct field value when cloning. This is corrected in bug 13437. Test plan: [1] Attach EXAMPLE.pl to field 007, 246h and 260c. In sql for 007: update marc_subfield_structure set value_builder='EXAMPLE.pl' where tagfield='007' and tagsubfield='@'; [2] Clone field 007. Verify that focus and click operate on both fields. Check also that the plugin works on the value corresponding with the button you clicked. [3] Clone field 246. Do the same checks on both subfields $h. [4] Clone subfield 260c. Do the same checks again. Test Remarks: ============ 1/ Setup a new framework (B213) based off 'Default' and fired off an SQL statement to update value_builder values for 007, 246$h and 269$c (UPDATE `marc_subfield_structure` SET value_builder = 'EXAMPLE.pl' WHERE frameworkcode = 'B213' AND ( (tagfield = '007' AND tagsubfield = '@') OR ( tagfield LIKE '246' AND tagsubfield = 'h') OR (tagfield = '260' AND tagsubfield = 'c')) 2/ Tested step 2, 3 and 4 of the given test plan above. The missing plugin support in the cloned fields were noted. 3/ Applied patch 4/ Re-tested steps 2, 3 and 4 as before. The defined plugins were correctly cloned and found to be functional. Signed-off-by: Indranil Das Gupta (L2C2 Technologies) Signed-off-by: Katrin Fischer --- koha-tmpl/intranet-tmpl/prog/en/js/cataloging.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/cataloging.js b/koha-tmpl/intranet-tmpl/prog/en/js/cataloging.js index 9fa70a5..5712ab0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/cataloging.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/cataloging.js @@ -131,7 +131,8 @@ function CloneField(index, hideMarc, advancedMARCEditor) { } } if( $(inputs[1]).hasClass('framework_plugin') ) { - var oldcontrol= original.getElementsByTagName('input')[1]; + var olddiv= original.getElementsByTagName('div')[i]; + var oldcontrol= olddiv.getElementsByTagName('input')[1]; AddEventHandlers( oldcontrol,inputs[1],id_input ); } @@ -177,7 +178,8 @@ function CloneField(index, hideMarc, advancedMARCEditor) { // 2 possibilities : try{ if( $(buttonDot).hasClass('framework_plugin') ) { - var oldcontrol= original.getElementsByTagName('a')[0]; + var olddiv= original.getElementsByTagName('div')[i]; + var oldcontrol= olddiv.getElementsByTagName('a')[0]; AddEventHandlers(oldcontrol,buttonDot,id_input); } else { if(buttonDotOnClick.match('Dopop')) { // -2- It's a auth value -- 1.9.1