From b9e4b88d32fd99447a4b03e899701836a5fbfbab Mon Sep 17 00:00:00 2001 From: Hammat Wele Date: Tue, 13 Dec 2022 22:27:29 +0000 Subject: [PATCH] Bug 26597: Fixing the populate of fields when using the REST API route This attachment correct the populate of fields by using the api mapping. Now All fields are populated following the selected PrefillGuaranteeField options Signed-off-by: Sally Signed-off-by: Emmi Takkinen Signed-off-by: Kyle M Hall Signed-off-by: Katrin Fischer --- .../prog/en/modules/members/memberentrygen.tt | 3 +++ koha-tmpl/intranet-tmpl/prog/js/members.js | 11 ++++++----- members/memberentry.pl | 5 ++++- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt index 5453bc0294..feecd017e1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -1971,6 +1971,9 @@ legend:hover { [% IF guarantor_attributes %] guarantor_attributes = [% To.json(guarantor_attributes) %]; [% END %] + [% IF to_api_mapping %] + to_api_mapping = [% To.json(to_api_mapping) %]; + [% END %] var TalkingTechItivaPhoneNotification = [% Koha.Preference('TalkingTechItivaPhoneNotification') || 0 | html %]; var PhoneNotification = [% Koha.Preference('PhoneNotification') || 0 | html %]; diff --git a/koha-tmpl/intranet-tmpl/prog/js/members.js b/koha-tmpl/intranet-tmpl/prog/js/members.js index 08e130fee9..131c1b514d 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/members.js +++ b/koha-tmpl/intranet-tmpl/prog/js/members.js @@ -122,16 +122,17 @@ function select_user(borrowernumber, borrower, relationship) { fieldset.find('.new_guarantor_relationship').val(relationship); } - if(typeof guarantor_attributes !== 'undefined') { + if(typeof guarantor_attributes !== 'undefined' && to_api_mapping) { $.ajax({ url: '/api/v1/patrons/'+borrowernumber, method: "GET", dataType: 'json', success: function(data){ - for (var i = 0; i < parseInt(guarantor_attributes.length, 10); i++) { - var attribute = guarantor_attributes[i]; - if ( data[attribute] != null && document.forms.entryform[attribute].value == "" ) { - document.forms.entryform[attribute].value = data[attribute]; + for (let i = 0; i < parseInt(guarantor_attributes.length, 10); i++) { + let attribute = guarantor_attributes[i]; + let key_data = to_api_mapping[attribute] || attribute; + if(data[key_data] != null && attribute in document.forms.entryform && document.forms.entryform[attribute].value == ""){ + document.forms.entryform[attribute].value = data[key_data]; } } } diff --git a/members/memberentry.pl b/members/memberentry.pl index 29955a4694..dbdb651150 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -618,7 +618,10 @@ if (C4::Context->preference("IndependentBranches")) { # Define the fields to be pre-filled in guarantee records my $prefillguarantorfields=C4::Context->preference("PrefillGuaranteeField"); my @prefill_fields=split(/\,/,$prefillguarantorfields); -$template->param( guarantor_attributes => \@prefill_fields ); +$template->param( + guarantor_attributes => \@prefill_fields, + to_api_mapping => Koha::Patron->new->to_api_mapping +); if ($op eq 'add_form'){ if ($guarantor_id) { -- 2.20.1