From 4218905d1b88cb982a1ea24e2da2ae0af4b3be0b Mon Sep 17 00:00:00 2001 From: Hammat Wele Date: Tue, 13 Dec 2022 22:27:29 +0000 Subject: [PATCH 2/5] 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 --- .../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 88813f4e79..8e359efec1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt @@ -1932,6 +1932,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 92d0e79388..29dc52054c 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 6ec1cd8d50..a68daea52f 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -597,7 +597,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'){ if ($guarantor_id) { -- 2.34.1