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) <indradg@gmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
parent
e2b91ae0f6
commit
eb0583d51d
1 changed files with 4 additions and 2 deletions
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue