|
Lines 111-116
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
| 111 |
|
111 |
|
| 112 |
$("#booking_patron_id").on("select2:select", function (e) { |
112 |
$("#booking_patron_id").on("select2:select", function (e) { |
| 113 |
booking_patron = e.params.data; |
113 |
booking_patron = e.params.data; |
|
|
114 |
$("#pickup_library_id").prop("disabled", false); |
| 115 |
}); |
| 116 |
|
| 117 |
// Pickup location select2 |
| 118 |
let pickup_url = "/api/v1/biblios/" + biblionumber + "/pickup_locations"; |
| 119 |
$("#pickup_library_id").kohaSelect({ |
| 120 |
dropdownParent: $(".modal-content", "#placeBookingModal"), |
| 121 |
width: "50%", |
| 122 |
dropdownAutoWidth: true, |
| 123 |
allowClear: false, |
| 124 |
ajax: { |
| 125 |
url: pickup_url, |
| 126 |
delay: 300, // wait 300 milliseconds before triggering the request |
| 127 |
cache: true, |
| 128 |
dataType: "json", |
| 129 |
data: function (params) { |
| 130 |
var search_term = params.term === undefined ? "" : params.term; |
| 131 |
var query = { |
| 132 |
q: JSON.stringify({ |
| 133 |
name: { "-like": "%" + search_term + "%" }, |
| 134 |
}), |
| 135 |
_order_by: "name", |
| 136 |
_page: params.page, |
| 137 |
}; |
| 138 |
query["patron_id"] = booking_patron.patron_id; |
| 139 |
return query; |
| 140 |
}, |
| 141 |
processResults: function (data) { |
| 142 |
var results = []; |
| 143 |
data.results.forEach(function (pickup_location) { |
| 144 |
results.push({ |
| 145 |
id: pickup_location.library_id.escapeHtml(), |
| 146 |
text: pickup_location.name.escapeHtml(), |
| 147 |
needs_override: pickup_location.needs_override, |
| 148 |
pickup_items: pickup_location.pickup_items, |
| 149 |
}); |
| 150 |
}); |
| 151 |
return { |
| 152 |
results: results, |
| 153 |
pagination: { more: data.pagination.more }, |
| 154 |
}; |
| 155 |
}, |
| 156 |
}, |
| 157 |
templateResult: function (state) { |
| 158 |
var $text; |
| 159 |
if (state.needs_override === true) { |
| 160 |
$text = $( |
| 161 |
"<span>" + |
| 162 |
state.text + |
| 163 |
'</span> <span style="float:right;" title="' + |
| 164 |
__( |
| 165 |
"This pickup location is not allowed according to circulation rules" |
| 166 |
) + |
| 167 |
'"><i class="fa fa-exclamation-circle" aria-hidden="true"></i></span>' |
| 168 |
); |
| 169 |
} else { |
| 170 |
$text = $("<span>" + state.text + "</span>"); |
| 171 |
} |
| 172 |
return $text; |
| 173 |
}, |
| 114 |
}); |
174 |
}); |
| 115 |
|
175 |
|
| 116 |
// Adopt periodPicker |
176 |
// Adopt periodPicker |
|
Lines 388-393
$("#placeBookingModal").on("show.bs.modal", function (e) {
Link Here
|
| 388 |
periodPicker.redraw(); |
448 |
periodPicker.redraw(); |
| 389 |
}); |
449 |
}); |
| 390 |
|
450 |
|
|
|
451 |
// Setup listener for pickup location select2 |
| 452 |
$("#pickup_library_id").on("select2:select", function (e) { |
| 453 |
let valid_items = e.params.data.pickup_items; |
| 454 |
|
| 455 |
// Disable items not available at the pickup location |
| 456 |
$("#booking_item_id > option").each(function () { |
| 457 |
let option = $(this); |
| 458 |
let item_id = option.val(); |
| 459 |
if (valid_items.includes(parseInt(item_id))) { |
| 460 |
option.prop("disabled", false); |
| 461 |
} else { |
| 462 |
option.prop("disabled", true); |
| 463 |
} |
| 464 |
}); |
| 465 |
$("#booking_item_id").trigger("change.select2"); |
| 466 |
}); |
| 467 |
|
| 391 |
// Set onChange for flatpickr |
468 |
// Set onChange for flatpickr |
| 392 |
let changeExists = periodPicker.config.onChange.filter( |
469 |
let changeExists = periodPicker.config.onChange.filter( |
| 393 |
f => f.name === "periodChange" |
470 |
f => f.name === "periodChange" |
|
Lines 566-571
$("#placeBookingForm").on("submit", function (e) {
Link Here
|
| 566 |
|
643 |
|
| 567 |
let start_date = $("#booking_start_date").val(); |
644 |
let start_date = $("#booking_start_date").val(); |
| 568 |
let end_date = $("#booking_end_date").val(); |
645 |
let end_date = $("#booking_end_date").val(); |
|
|
646 |
let pickup_library_id = $("#pickup_library_id").val(); |
| 647 |
let biblio_id = $("#booking_biblio_id").val(); |
| 569 |
let item_id = $("#booking_item_id").val(); |
648 |
let item_id = $("#booking_item_id").val(); |
| 570 |
|
649 |
|
| 571 |
if (!booking_id) { |
650 |
if (!booking_id) { |
|
Lines 574-580
$("#placeBookingForm").on("submit", function (e) {
Link Here
|
| 574 |
JSON.stringify({ |
653 |
JSON.stringify({ |
| 575 |
start_date: start_date, |
654 |
start_date: start_date, |
| 576 |
end_date: end_date, |
655 |
end_date: end_date, |
| 577 |
biblio_id: $("#booking_biblio_id").val(), |
656 |
pickup_library_id: pickup_library_id, |
|
|
657 |
biblio_id: biblio_id, |
| 578 |
item_id: item_id != 0 ? item_id : null, |
658 |
item_id: item_id != 0 ? item_id : null, |
| 579 |
patron_id: $("#booking_patron_id").find(":selected").val(), |
659 |
patron_id: $("#booking_patron_id").find(":selected").val(), |
| 580 |
}) |
660 |
}) |
|
Lines 634-640
$("#placeBookingForm").on("submit", function (e) {
Link Here
|
| 634 |
booking_id: booking_id, |
714 |
booking_id: booking_id, |
| 635 |
start_date: start_date, |
715 |
start_date: start_date, |
| 636 |
end_date: end_date, |
716 |
end_date: end_date, |
| 637 |
biblio_id: $("#booking_biblio_id").val(), |
717 |
pickup_library_id: pickup_library_id, |
|
|
718 |
biblio_id: biblio_id, |
| 638 |
item_id: item_id != 0 ? item_id : null, |
719 |
item_id: item_id != 0 ? item_id : null, |
| 639 |
patron_id: $("#booking_patron_id").find(":selected").val(), |
720 |
patron_id: $("#booking_patron_id").find(":selected").val(), |
| 640 |
}), |
721 |
}), |
|
Lines 692-697
$("#placeBookingModal").on("hidden.bs.modal", function (e) {
Link Here
|
| 692 |
$("#booking_patron_id").val(null).trigger("change"); |
773 |
$("#booking_patron_id").val(null).trigger("change"); |
| 693 |
$("#booking_patron_id").empty(); |
774 |
$("#booking_patron_id").empty(); |
| 694 |
$("#booking_item_id").val(0).trigger("change"); |
775 |
$("#booking_item_id").val(0).trigger("change"); |
|
|
776 |
$("#pickup_library_id").val(null).trigger("change"); |
| 777 |
$("#pickup_library_id").empty(); |
| 695 |
$("#period").get(0)._flatpickr.clear(); |
778 |
$("#period").get(0)._flatpickr.clear(); |
| 696 |
$("#booking_start_date").val(""); |
779 |
$("#booking_start_date").val(""); |
| 697 |
$("#booking_end_date").val(""); |
780 |
$("#booking_end_date").val(""); |
| 698 |
- |
|
|