Bug 31497: Prevent ID clash on quick add fields
The quick add clones the original fields, including ids. This can cause some clash when
other JS is running on the page.
This patch updates the ids of the fields before adding to the form, which prevents bad
copying/clearing of fields
To test:
* Go to patrons module
* Click on Quick add new patron (I chose Patron as category)
* On sample database these fields are marked as mandatory:
* Surname
* Cardnumber
* Library
* Category
* Fill in Surname, leave cardnumber empty
* Save - mandatory message is shown
* Fill in cardnumber - save
* The patron is saved
* BUT: cardnumber is empty!
APPLY PATCH
* Repeat plan above
* Cardnumber is correctly saved
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 0f599e2a2a
)
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
79bc7a8de5
commit
c8793b1cd3
1 changed files with 18 additions and 4 deletions
|
@ -1798,10 +1798,24 @@ legend:hover {
|
|||
input_label='title';
|
||||
}
|
||||
if( qaddfields.indexOf( input_label ) != -1 || $(this).attr('class') == 'required' ){
|
||||
$(this).parent().clone().appendTo("#quick_add_list");
|
||||
[% UNLESS mandatorypassword %]
|
||||
if( input_label == 'password' ) $("#entryform label[for='password2']").parent().clone().appendTo("#quick_add_list");
|
||||
[% END %]
|
||||
let orig_li = $(this).parent();
|
||||
if( orig_li.attr('class') == 'radio' ){
|
||||
let new_field = orig_li.clone();
|
||||
new_field.children('label').each(function(){
|
||||
let child_input = $(this).children('input');
|
||||
child_input.attr("id",child_input.attr("id") + "_qa");
|
||||
});
|
||||
new_field.appendTo("#quick_add_list");
|
||||
} else {
|
||||
let orig_input_id = orig_li.children("input,textarea,select").attr("id");
|
||||
console.log( orig_input_id);
|
||||
let new_field = orig_li.clone();
|
||||
new_field.children("#"+orig_input_id).attr("id",orig_input_id + "_qa");
|
||||
new_field.appendTo("#quick_add_list");
|
||||
[% UNLESS mandatorypassword %]
|
||||
if( input_label == 'password' ) $("#entryform label[for='password2']").parent().clone().appendTo("#quick_add_list");
|
||||
[% END %]
|
||||
}
|
||||
}
|
||||
});
|
||||
if ( $("#memberentry_guarantor").length ) {
|
||||
|
|
Loading…
Reference in a new issue