View | Details | Raw Unified | Return to bug 33886
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_33886.pl (-10 / +3 lines)
Lines 3-26 use Koha::Installer::Output qw(say_warning say_success say_info); Link Here
3
3
4
return {
4
return {
5
    bug_number  => "33886",
5
    bug_number  => "33886",
6
    description => "Add DateInputStyle system preference",
6
    description => "Remove DateInputStyle system preference",
7
    up          => sub {
7
    up          => sub {
8
        my ($args) = @_;
8
        my ($args) = @_;
9
        my ( $dbh, $out ) = @$args{qw(dbh out)};
9
        my ( $dbh, $out ) = @$args{qw(dbh out)};
10
10
11
        $dbh->do(
11
        $dbh->do(
12
            q{
12
            q{
13
            INSERT IGNORE INTO systempreferences ( variable, value, options, explanation, type )
13
            DELETE FROM systempreferences WHERE variable = 'DateInputStyle'
14
            VALUES (
15
                'DateInputStyle',
16
                'single',
17
                'single|split',
18
                'Controls how date input fields are displayed. "single" uses the standard flatpickr calendar widget with maskito input masking. "split" shows three separate inputs for day, month, and year (order follows the dateformat preference) with an optional calendar button; does not apply to time, datetime, or booking date range fields.',
19
                'Choice'
20
            )
21
        }
14
        }
22
        );
15
        );
23
16
24
        say_success( $out, "Added new system preference 'DateInputStyle'" );
17
        say_success( $out, "Removed system preference 'DateInputStyle'" );
25
    },
18
    },
26
};
19
};
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc (-2 / +1 lines)
Lines 31-37 Link Here
31
                delimiter = "-";
31
                delimiter = "-";
32
        }
32
        }
33
        var sentmsg = 0;
33
        var sentmsg = 0;
34
        var dateInputStyle = "[% Koha.Preference('DateInputStyle') | html %]";
35
        var bidi = [% IF(bidi) %] true[% ELSE %] false[% END %];
34
        var bidi = [% IF(bidi) %] true[% ELSE %] false[% END %];
36
        var calendarFirstDayOfWeek = '[% Koha.Preference('CalendarFirstDayOfWeek') | html %]';
35
        var calendarFirstDayOfWeek = '[% Koha.Preference('CalendarFirstDayOfWeek') | html %]';
37
        var flatpickr_timeformat_string = [% IF Koha.Preference('TimeFormat') == '12hr' %]"G:i K"[% ELSE %]"H:i"[% END %];
36
        var flatpickr_timeformat_string = [% IF Koha.Preference('TimeFormat') == '12hr' %]"G:i K"[% ELSE %]"H:i"[% END %];
Lines 277-283 Link Here
277
            }
276
            }
278
277
279
            let fp;
278
            let fp;
280
            if ( dateInputStyle === 'split' && !is_time && !is_time_only && !is_period ) {
279
            if ( $(input).data('flatpickr-split') && !is_time && !is_time_only && !is_period ) {
281
                fp = apply_split_date_widget(input, options);
280
                fp = apply_split_date_widget(input, options);
282
            } else {
281
            } else {
283
                fp = $(input).flatpickr(options);
282
                fp = $(input).flatpickr(options);
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/i18n_l10n.pref (-8 lines)
Lines 10-23 I18N/L10N: Link Here
10
              dmydot: dd.mm.yyyy
10
              dmydot: dd.mm.yyyy
11
              iso: yyyy-mm-dd
11
              iso: yyyy-mm-dd
12
        - .
12
        - .
13
    -
14
        - Use
15
        - pref: DateInputStyle
16
          default: single
17
          choices:
18
              single: single input field with calendar picker
19
              split: split inputs (day, month, year) with optional calendar button
20
        - "style for date entry fields. The split option follows the dateformat preference for field order and is recommended for accessibility; it does not apply to time, datetime, or booking date range fields."
21
    -
13
    -
22
        - Format times in
14
        - Format times in
23
        - pref: TimeFormat
15
        - pref: TimeFormat
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt (-2 / +3 lines)
Lines 393-398 Link Here
393
                                                        size="20"
393
                                                        size="20"
394
                                                        value="[% borrower_data.dateofbirth | html UNLESS op == 'duplicate' %]"
394
                                                        value="[% borrower_data.dateofbirth | html UNLESS op == 'duplicate' %]"
395
                                                        class="flatpickr"
395
                                                        class="flatpickr"
396
                                                        data-flatpickr-split="true"
396
                                                        data-flatpickr-pastinclusive="true"
397
                                                        data-flatpickr-pastinclusive="true"
397
                                                    />
398
                                                    />
398
                                                    [% IF ( mandatorydateofbirth ) %]
399
                                                    [% IF ( mandatorydateofbirth ) %]
Lines 1127-1135 Link Here
1127
                                        <li [% IF nodateexpiry %]style="display:none"[% END %]>
1128
                                        <li [% IF nodateexpiry %]style="display:none"[% END %]>
1128
                                            <label for="to" [% IF mandatorydateexpiry %]class="required"[% END %]> Expiry date (leave blank for auto calc): </label>
1129
                                            <label for="to" [% IF mandatorydateexpiry %]class="required"[% END %]> Expiry date (leave blank for auto calc): </label>
1129
                                            [% UNLESS ( op == 'add_form' ) %]
1130
                                            [% UNLESS ( op == 'add_form' ) %]
1130
                                                <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" value="[% borrower_data.dateexpiry | html UNLESS op == 'duplicate' %]" class="flatpickr" />
1131
                                                <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" value="[% borrower_data.dateexpiry | html UNLESS op == 'duplicate' %]" class="flatpickr" data-flatpickr-split="true" />
1131
                                            [% ELSE %]
1132
                                            [% ELSE %]
1132
                                                <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" value="[% borrower_data.dateexpiry | html %]" class="flatpickr" />
1133
                                                <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" value="[% borrower_data.dateexpiry | html %]" class="flatpickr" data-flatpickr-split="true" />
1133
                                            [% END %]
1134
                                            [% END %]
1134
                                            [% IF ( mandatorydateexpiry ) %]
1135
                                            [% IF ( mandatorydateexpiry ) %]
1135
                                                <span class="required">Required</span>
1136
                                                <span class="required">Required</span>
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/includes/calendar.inc (-2 / +1 lines)
Lines 13-19 Link Here
13
    };
13
    };
14
    var debug    = "[% debug | html %]";
14
    var debug    = "[% debug | html %]";
15
    var dateformat_pref = "[% Koha.Preference('dateformat') | html %]";
15
    var dateformat_pref = "[% Koha.Preference('dateformat') | html %]";
16
    var dateInputStyle = "[% Koha.Preference('DateInputStyle') | html %]";
17
    var sentmsg = 0;
16
    var sentmsg = 0;
18
    if (debug > 1) {alert("dateformat: " + dateformat_pref + "\ndebug is on (level " + debug + ")");}
17
    if (debug > 1) {alert("dateformat: " + dateformat_pref + "\ndebug is on (level " + debug + ")");}
19
    var calendarFirstDayOfWeek = '[% Koha.Preference('CalendarFirstDayOfWeek') | html %]';
18
    var calendarFirstDayOfWeek = '[% Koha.Preference('CalendarFirstDayOfWeek') | html %]';
Lines 394-400 Link Here
394
            }
393
            }
395
394
396
            let fp;
395
            let fp;
397
            if (typeof dateInputStyle !== "undefined" && dateInputStyle === "split" && !is_time && !is_period) {
396
            if ($(this).data("flatpickr-split") && !is_time && !is_period) {
398
                fp = apply_split_date_widget(this, options);
397
                fp = apply_split_date_widget(this, options);
399
            } else {
398
            } else {
400
                fp = $(this).flatpickr(options);
399
                fp = $(this).flatpickr(options);
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt (-1 / +1 lines)
Lines 490-495 Link Here
490
                                                        value="[% borrower.dateofbirth | html %]"
490
                                                        value="[% borrower.dateofbirth | html %]"
491
                                                        size="10"
491
                                                        size="10"
492
                                                        class="[% required.dateofbirth | html %] flatpickr pastdate"
492
                                                        class="[% required.dateofbirth | html %] flatpickr pastdate"
493
                                                        data-flatpickr-split="true"
493
                                                        [% IF required.dateofbirth %]required[% END %]
494
                                                        [% IF required.dateofbirth %]required[% END %]
494
                                                    />
495
                                                    />
495
                                                    <div class="required_label [% required.dateofbirth | html %]">Required</div>
496
                                                    <div class="required_label [% required.dateofbirth | html %]">Required</div>
496
- 

Return to bug 33886