From 3676f15abccd49881cf4fcced08b8842737a7db4 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 --- .../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 59337ea988..e95ab46b65 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 9195d91ffd..fdd9c728c2 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 61b46ba12c..4c8821ee42 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -612,7 +612,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.30.2