From c57a366c41537cc5670b59746a0b0b38bfcea728 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 17 Nov 2023 10:18:01 +0000 Subject: [PATCH] Bug 35341: Improve processing hard due date and auto renewal date After quite a struggle, came up with this approach using flatpickr's parseDate and setDate. Seems to be the best. The dateformat variable is set in calendar.inc. Test plan: Test edit, save, clear rules, focus on both dates. Toggle all I18N preference date formats. Signed-off-by: Marcel de Rooy Bug 35341: Do not reinstantiate flatpickr We do not need to reinstantiate flatpickr, we need to retrieve the existing instance. Test plan: See previous patch. Signed-off-by: Marcel de Rooy 12-01-2024 Squashed both patches. Removed the unused hidden inputs for hardduedatecompare and added a data attribute for the duedate. The check with is_valid_date seems no longer needed here. Normally date is empty or valid. A js warning from parseDate should be exceptional. Made code for both dates a bit more consistent. Signed-off-by: Martin Renvoize --- .../prog/en/modules/admin/smart-rules.tt | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt index 00de0896bc4..18182563286 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt @@ -279,17 +279,14 @@ Undefined [% END %] - + [% IF ( hardduedate ) %] [% IF ( hardduedatecompare == '-1' ) %] before [% hardduedate | $KohaDates %] - [% ELSIF ( hardduedatecompare == '0' ) %] on [% hardduedate | $KohaDates %] - [% ELSIF ( hardduedatecompare == '1' ) %] after [% hardduedate | $KohaDates %] - [% END %] [% ELSE %] None defined @@ -475,7 +472,7 @@ - +
[% INCLUDE 'date-format.inc' %]
@@ -508,7 +505,7 @@ - +
[% INCLUDE 'date-format.inc' %]
@@ -1503,16 +1500,22 @@ var note = $(this).find("a[name='viewnote']").data("content"); $(current_column).find("input[type='text']").val(note); } else if ( i == 9 ) { - // specific processing for the Hard due date column - var select_value = $(this).find("input[type='hidden'][name='hardduedatecomparebackup']").val(); - var input_value = ''; - if (typeof select_value === 'undefined'){ - select_value = '-1'; - }else { - input_value = itm_text.split(' ')[1]; + // specific processing for Hard due date + $(current_column).find("select").val(itm_code); + var hardduedate = $(this).data('duedate'); + if (hardduedate) { + var fp = document.querySelector("#hardduedate")._flatpickr; + hardduedate = fp.parseDate( hardduedate, flatpickr_dateformat_string ); + if( hardduedate) fp.setDate( hardduedate, 1 ); + } + } else if ( i == 26 ) { + // specific processing for No automatic renewal after (hard limit) + var renewdate = itm_text; + if (renewdate) { + var fp = document.querySelector("#no_auto_renewal_after_hard_limit")._flatpickr; + renewdate = fp.parseDate( renewdate, flatpickr_dateformat_string ); + if( renewdate) fp.setDate( renewdate, 1 ); } - $(current_column).find("input[type='text']").val(input_value); - $(current_column).find("select").val(select_value); } else if ( i == 16 ) { // specific processing for cap_fine_to_replacement_price var cap_fine_to_replacement_price = $(this).find("input[type='checkbox']"); -- 2.43.0