Koha-clms/koha-tmpl/intranet-tmpl/prog/js/tables/bookings.js

100 lines
4.2 KiB
JavaScript

/* keep tidy */
// Bookings
var bookings_table;
$(document).ready(function () {
// Load bookings table on tab selection
$("#bookings-tab").on("click", function () {
if (!bookings_table) {
var today = new Date();
var bookings_table_url = "/api/v1/bookings";
bookings_table = $("#bookings_table").kohaTable(
{
ajax: {
url: bookings_table_url,
},
embed: ["biblio", "item", "patron"],
columns: [
{
data: "booking_id",
title: __("Booking ID"),
},
{
data: "biblio.title",
title: __("Title"),
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return $biblio_to_html(row.biblio, {
link: "bookings",
});
},
},
{
data: "item.external_id",
title: __("Item"),
searchable: true,
orderable: true,
defaultContent: __("Any item"),
render: function (data, type, row, meta) {
if (row.item) {
return (
row.item.external_id +
" (" +
row.booking_id +
")"
);
} else {
return null;
}
},
},
{
data: "start_date",
title: __("Start date"),
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return $date(row.start_date);
},
},
{
data: "end_date",
title: __("End date"),
searchable: true,
orderable: true,
render: function (data, type, row, meta) {
return $date(row.end_date);
},
},
{
data: "",
title: __("Actions"),
class: "actions",
searchable: false,
orderable: false,
render: function (data, type, row, meta) {
let result = "";
if (CAN_user_circulate_manage_bookings) {
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>";
}
return result;
},
},
],
},
table_settings_bookings_table,
0,
{
patron_id: patron_borrowernumber,
end_date: { ">=": today.toISOString() },
}
);
}
});
});