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

(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/bookings/list.tt (-2 / +3 lines)
Lines 106-111 Link Here
106
                        id: booking.booking_id,
106
                        id: booking.booking_id,
107
                        booking: booking.booking_id,
107
                        booking: booking.booking_id,
108
                        patron: booking.patron_id,
108
                        patron: booking.patron_id,
109
                        pickup_library: booking.pickup_library_id,
109
                        start: dayjs(booking.start_date).toDate(),
110
                        start: dayjs(booking.start_date).toDate(),
110
                        end: dayjs(booking.end_date).toDate(),
111
                        end: dayjs(booking.end_date).toDate(),
111
                        content: $patron_to_html(booking.patron, {
112
                        content: $patron_to_html(booking.patron, {
Lines 167-173 Link Here
167
                        // set end datetime hours and minutes to the end of the day
168
                        // set end datetime hours and minutes to the end of the day
168
                        let endDate = dayjs(data.end).endOf('day');
169
                        let endDate = dayjs(data.end).endOf('day');
169
170
170
                        $('#placeBookingModal').modal('show', $('<button data-booking="'+data.id+'"  data-biblionumber="[% biblionumber | uri %]"  data-itemnumber="'+data.group+'" data-patron="'+data.patron+'" data-start_date="'+startDate.toISOString()+'" data-end_date="'+endDate.toISOString()+'">'));
171
                        $('#placeBookingModal').modal('show', $('<button data-booking="'+data.id+'"  data-biblionumber="[% biblionumber | uri %]"  data-itemnumber="'+data.group+'" data-patron="'+data.patron+'" data-pickup_library="'+data.pickup_library+'" data-start_date="'+startDate.toISOString()+'" data-end_date="'+endDate.toISOString()+'">'));
171
                        $('#placeBookingModal').on('hide.bs.modal', function(e) {
172
                        $('#placeBookingModal').on('hide.bs.modal', function(e) {
172
                            if (update_success) {
173
                            if (update_success) {
173
                                update_success = 0;
174
                                update_success = 0;
Lines 273-279 Link Here
273
                "render": function(data, type, row, meta) {
274
                "render": function(data, type, row, meta) {
274
                    let result = "";
275
                    let result = "";
275
                    [% IF CAN_user_circulate_manage_bookings %]
276
                    [% IF CAN_user_circulate_manage_bookings %]
276
                    result += '<button type="button" class="btn btn-default btn-xs edit-action" data-toggle="modal" data-target="#placeBookingModal" data-booking="'+row.booking_id+'" data-biblionumber="[% biblionumber | uri %]" data-itemnumber="'+row.item_id+'" data-patron="'+row.patron_id+'" data-start_date="'+row.start_date+'" data-end_date="'+row.end_date+'"><i class="fa fa-pencil" aria-hidden="true"></i> '+_("Edit")+'</button>';
277
                    result += '<button type="button" class="btn btn-default btn-xs edit-action" data-toggle="modal" data-target="#placeBookingModal" data-booking="'+row.booking_id+'" data-biblionumber="[% biblionumber | uri %]" data-itemnumber="'+row.item_id+'" data-patron="'+row.patron_id+'" data-pickup_library="'+row.pickup_library_id+'" data-start_date="'+row.start_date+'" data-end_date="'+row.end_date+'"><i class="fa fa-pencil" aria-hidden="true"></i> '+_("Edit")+'</button>';
277
                    result += '<button type="button" class="btn btn-default btn-xs cancel-action" data-toggle="modal" data-target="#cancelBookingModal" data-booking="'+row.booking_id+'"><i class="fa fa-trash" aria-hidden="true"></i> '+_("Cancel")+'</button>';
278
                    result += '<button type="button" class="btn btn-default btn-xs cancel-action" data-toggle="modal" data-target="#cancelBookingModal" data-booking="'+row.booking_id+'"><i class="fa fa-trash" aria-hidden="true"></i> '+_("Cancel")+'</button>';
278
                    [% END %]
279
                    [% END %]
279
                    return result;
280
                    return result;
(-)a/koha-tmpl/intranet-tmpl/prog/js/modals/place_booking.js (-13 / +21 lines)
Lines 31-36 $("#placeBookingModal").on("show.bs.modal", function (e) { Link Here
31
    $("#booking_biblio_id").val(biblionumber);
31
    $("#booking_biblio_id").val(biblionumber);
32
32
33
    let patron_id = button.data("patron") || 0;
33
    let patron_id = button.data("patron") || 0;
34
    let pickup_library_id = button.data("pickup_library");
34
    booking_item_id = button.data("itemnumber");
35
    booking_item_id = button.data("itemnumber");
35
    let start_date = button.data("start_date");
36
    let start_date = button.data("start_date");
36
    let end_date = button.data("end_date");
37
    let end_date = button.data("end_date");
Lines 139-155 $("#placeBookingModal").on("show.bs.modal", function (e) { Link Here
139
    });
140
    });
140
    function setLocationsPicker(response) {
141
    function setLocationsPicker(response) {
141
        let $pickupSelect = $("#pickup_library_id");
142
        let $pickupSelect = $("#pickup_library_id");
142
        let bookableItemnumbers = bookable_items.map(function(object) { return object.item_id; });
143
        let bookableItemnumbers = bookable_items.map(function (object) {
144
            return object.item_id;
145
        });
143
        $pickupSelect.empty();
146
        $pickupSelect.empty();
144
147
145
        $.each(response, function(index, pickup_location) {
148
        $.each(response, function (index, pickup_location) {
146
            if (containsAny(pickup_location.pickup_items, bookableItemnumbers)) {
149
            if (
150
                containsAny(pickup_location.pickup_items, bookableItemnumbers)
151
            ) {
147
                let option = $(
152
                let option = $(
148
                    '<option value="' +
153
                    '<option value="' +
149
                    pickup_location.library_id +
154
                        pickup_location.library_id +
150
                    '">' +
155
                        '">' +
151
                    pickup_location.name +
156
                        pickup_location.name +
152
                    "</option>"
157
                        "</option>"
153
                );
158
                );
154
159
155
                option.attr(
160
                option.attr(
Lines 166-172 $("#placeBookingModal").on("show.bs.modal", function (e) { Link Here
166
        });
171
        });
167
172
168
        $pickupSelect.prop("disabled", false);
173
        $pickupSelect.prop("disabled", false);
169
        $pickupSelect.val(null).trigger("change");
174
175
        // If pickup_library alread exists, pre-select
176
        if (pickup_library_id) {
177
            $pickupSelect.val(pickup_library_id).trigger("change");
178
        } else {
179
            $pickupSelect.val(null).trigger("change");
180
        }
170
    }
181
    }
171
182
172
    // Item select2
183
    // Item select2
Lines 195-210 $("#placeBookingModal").on("show.bs.modal", function (e) { Link Here
195
            success: function (response) {
206
            success: function (response) {
196
                if (dataFetched === true) {
207
                if (dataFetched === true) {
197
                    setLocationsPicker(response);
208
                    setLocationsPicker(response);
198
199
                } else {
209
                } else {
200
                    var interval = setInterval(function() {
210
                    var interval = setInterval(function () {
201
                        if (dataFetched === true) {
211
                        if (dataFetched === true) {
202
                            // Data is fetched, execute the callback and stop the interval
212
                            // Data is fetched, execute the callback and stop the interval
203
                            setLocationsPicker(response);
213
                            setLocationsPicker(response);
204
                            clearInterval(interval);
214
                            clearInterval(interval);
205
                        }
215
                        }
206
                    }, 100);
216
                    }, 100);
207
                };
217
                }
208
            },
218
            },
209
            error: function (xhr, status, error) {
219
            error: function (xhr, status, error) {
210
                console.log("Pickup location fetch failed: ", error);
220
                console.log("Pickup location fetch failed: ", error);
Lines 854-860 $("#placeBookingForm").on("submit", function (e) { Link Here
854
});
864
});
855
865
856
$("#placeBookingModal").on("hidden.bs.modal", function (e) {
866
$("#placeBookingModal").on("hidden.bs.modal", function (e) {
857
858
    // Reset patron select
867
    // Reset patron select
859
    $("#booking_patron_id").val(null).trigger("change");
868
    $("#booking_patron_id").val(null).trigger("change");
860
    $("#booking_patron_id").empty();
869
    $("#booking_patron_id").empty();
861
- 

Return to bug 36120