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

(-)a/Koha/Illbackends/BLDSS (+1 lines)
Line 0 Link Here
1
/home/koha-koha/illbackends/BLDSS
(-)a/Koha/Illbackends/FreeForm (+1 lines)
Line 0 Link Here
1
/home/koha-koha/illbackends/FreeForm
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/strings.inc (+1 lines)
Lines 42-47 Link Here
42
    var CANCEL = _("Cancel");
42
    var CANCEL = _("Cancel");
43
    var RESUME = _("Resume");
43
    var RESUME = _("Resume");
44
    var SUSPEND = _("Suspend");
44
    var SUSPEND = _("Suspend");
45
    var SAVE = _("Save");
45
    var SUSPEND_UNTIL = _("Suspend until:");
46
    var SUSPEND_UNTIL = _("Suspend until:");
46
    var SUSPEND_HOLD_ON = _("Suspend hold on");
47
    var SUSPEND_HOLD_ON = _("Suspend hold on");
47
    var CLEAR_DATE_TO_SUSPEND_INDEFINITELY = _("Clear date to suspend indefinitely");
48
    var CLEAR_DATE_TO_SUSPEND_INDEFINITELY = _("Clear date to suspend indefinitely");
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt (+4 lines)
Lines 1050-1055 Link Here
1050
        var MSG_CONFIRM_DELETE_MESSAGE = _("Are you sure you want to delete this message? This cannot be undone.");
1050
        var MSG_CONFIRM_DELETE_MESSAGE = _("Are you sure you want to delete this message? This cannot be undone.");
1051
        var SuspendHoldsIntranet = [% ( Koha.Preference('SuspendHoldsIntranet') ) ? 1 : 0 | html %];
1051
        var SuspendHoldsIntranet = [% ( Koha.Preference('SuspendHoldsIntranet') ) ? 1 : 0 | html %];
1052
    </script>
1052
    </script>
1053
    <script>
1054
        /* Set values neededd in checkouts.js */
1055
        var canEditDueDates = [% Koha.Preference('EditDueDates') | html %];
1056
    </script>
1053
    [% Asset.js("js/pages/circulation.js") | $raw %]
1057
    [% Asset.js("js/pages/circulation.js") | $raw %]
1054
    [% Asset.js("js/checkouts.js") | $raw %]
1058
    [% Asset.js("js/checkouts.js") | $raw %]
1055
    [% Asset.js("js/holds.js") | $raw %]
1059
    [% Asset.js("js/holds.js") | $raw %]
(-)a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js (-1 / +57 lines)
Lines 268-274 $(document).ready(function() { Link Here
268
                            due = "<span class='overdue'>" + due + "</span>";
268
                            due = "<span class='overdue'>" + due + "</span>";
269
                        }
269
                        }
270
270
271
                        due = "<span id='date_due_" + oObj.itemnumber + "' class='date_due'>" + due + "</span>";
271
                        due = "<div data-issue_id='"+ oObj.issue_id + "' style='white-space:nowrap'><span id='date_due_" + oObj.itemnumber + "' class='date_due'>" + due + "</span>";
272
273
                        if (canEditDueDates) {
274
                            due += " <a href='#' class='edit_due_date_btn btn btn-default btn-xs'><i class='fa fa-pencil'></i> Edit</a></div>";
275
                        }
272
276
273
                        if ( oObj.lost && oObj.claims_returned ) {
277
                        if ( oObj.lost && oObj.claims_returned ) {
274
                            due += "<span class='lost claims_returned'>" + oObj.lost.escapeHtml() + "</span>";
278
                            due += "<span class='lost claims_returned'>" + oObj.lost.escapeHtml() + "</span>";
Lines 1091-1094 $(document).ready(function() { Link Here
1091
1095
1092
    });
1096
    });
1093
1097
1098
    // Allow due date editing if appropriate
1099
    if (canEditDueDates) {
1100
        $(document).on('click', '.edit_due_date_btn', function(e) {
1101
            e.preventDefault();
1102
            var date_display = $(this).siblings('.date_due');
1103
            $('#issues-table .edit_due_date_btn').attr('disabled', '1');
1104
            var current = date_display.text();
1105
            date_display.hide();
1106
            $(this).closest('div').append('<input style="max-width:10em" type="text" id="due_date_select" value="' + current + '"></input>' +
1107
                '<a style="margin-left:1.5em" href="#" class="save_due_date_btn btn btn-default btn-xs"><i class="fa fa-save"></i> ' + SAVE + '</a>');
1108
            $(this).hide();
1109
            $("#due_date_select").datetimepicker({
1110
                onClose: function(dateText, inst) {
1111
                    validate_date(dateText, inst);
1112
                },
1113
                minDate: Date_from_syspref(date_display.text()),
1114
                hour: 23,
1115
                minute: 59
1116
            }).on("change", function(e) {
1117
                if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
1118
            });
1119
        });
1120
        $(document).on('click', '.save_due_date_btn', function(e) {
1121
            e.preventDefault();
1122
            var saveBtn = $(this);
1123
            var p = saveBtn.closest('div');
1124
            var checkoutId = p.data('issue_id');
1125
            var due_date = saveBtn.siblings('#due_date_select')[0].value;
1126
            p.append("<img style='margin-left:1.5em' id='due_date_spinner' src='" + interface + "/" + theme + "/img/spinner-small.gif' />");
1127
            saveBtn.hide();
1128
            if (due_date && due_date.length > 0) {
1129
                var dt = DateTime_from_syspref(due_date);
1130
                $.ajax({
1131
                    url: `/api/v1/checkouts/${checkoutId}`,
1132
                    type: 'PUT',
1133
                    data: JSON.stringify({ date_due: dt.toISOString() }),
1134
                    success: function( data ) {
1135
                        var dateFormatted = ISO_to_syspref(data.due_date);
1136
                        saveBtn.siblings('.date_due').text(dateFormatted).show();
1137
                        $('#issues-table .edit_due_date_btn').removeAttr('disabled');
1138
                        p.find('#due_date_select').remove()
1139
                        p.find('.ui-datepicker-trigger').remove()
1140
                        p.find('#due_date_spinner').remove();
1141
                        p.find('.edit_due_date_btn').show();
1142
                        saveBtn.remove();
1143
                    },
1144
                    contentType: "json"
1145
                });
1146
            }
1147
        });
1148
    }
1149
1094
 });
1150
 });
(-)a/svc/checkouts (-1 / +2 lines)
Lines 64-69 print $input->header( -type => 'text/plain', -charset => 'UTF-8' ); Link Here
64
my @parameters;
64
my @parameters;
65
my $sql = '
65
my $sql = '
66
    SELECT
66
    SELECT
67
        issue_id,
67
        issues.issuedate,
68
        issues.issuedate,
68
        issues.date_due,
69
        issues.date_due,
69
        issues.date_due < now() as date_due_overdue,
70
        issues.date_due < now() as date_due_overdue,
Lines 189-194 while ( my $c = $sth->fetchrow_hashref() ) { Link Here
189
    my @subtitles = split(/ \| /, $c->{'subtitle'} // '' );
190
    my @subtitles = split(/ \| /, $c->{'subtitle'} // '' );
190
    my $checkout = {
191
    my $checkout = {
191
        DT_RowId             => $c->{itemnumber} . '-' . $c->{borrowernumber},
192
        DT_RowId             => $c->{itemnumber} . '-' . $c->{borrowernumber},
193
        issue_id             => $c->{issue_id},
192
        title                => $c->{title},
194
        title                => $c->{title},
193
        subtitle             => \@subtitles,
195
        subtitle             => \@subtitles,
194
        medium               => $c->{medium} // '',
196
        medium               => $c->{medium} // '',
195
- 

Return to bug 24608