function load_holds_table() {
var holds = new Array();
if ( ! holdsTable ) {
- holdsTable = $("#holds-table").dataTable({
+ holdsTable = $("#holds-table").dataTable($.extend(true, {}, dataTablesDefaults, {
"bAutoWidth": false,
"sDom": "rt",
"columns": [
{
- "mDataProp": "reservedate_formatted"
+ "data": { _: "reservedate_formatted", "sort": "reservedate" }
},
{
"mDataProp": function ( oObj ) {
title = "<a href='/cgi-bin/koha/reserve/request.pl?biblionumber="
+ oObj.biblionumber
+ "'>"
- + oObj.title;
+ + oObj.title.escapeHtml();
$.each(oObj.subtitle, function( index, value ) {
- title += " " + value.subfield;
+ title += " " + value.escapeHtml();
});
+ title += " " + oObj.part_number + " " + oObj.part_name;
+
+ if ( oObj.enumchron ) {
+ title += " (" + oObj.enumchron.escapeHtml() + ")";
+ }
+
title += "</a>";
if ( oObj.author ) {
- title += " " + BY.replace( "_AUTHOR_", oObj.author );
+ title += " " + BY.replace( "_AUTHOR_", oObj.author.escapeHtml() );
}
if ( oObj.itemnotes ) {
if ( $.datepicker.formatDate('yy-mm-dd', new Date(oObj.issuedate) ) == ymd ) {
span_class = "circ-hlt";
}
- title += " - <span class='" + span_class + "'>" + oObj.itemnotes + "</span>"
+ title += " - <span class='" + span_class + "'>" + oObj.itemnotes.escapeHtml() + "</span>"
}
return title;
},
{
"mDataProp": function( oObj ) {
- return oObj.itemcallnumber || "";
+ return oObj.itemcallnumber && oObj.itemcallnumber.escapeHtml() || "";
}
},
{
"mDataProp": function( oObj ) {
var data = "";
-
- if ( oObj.suspend == 1 ) {
- data += "<p>" + HOLD_IS_SUSPENDED;
- if ( oObj.suspend_until ) {
- data += " " + UNTIL.format( oObj.suspend_until_formatted );
- }
- data += "</p>";
- }
-
- if ( oObj.itemtype_limit ) {
- data += NEXT_AVAILABLE_ITYPE.format( oObj.itemtype_limit );
- }
-
if ( oObj.barcode ) {
- data += "<em>";
- if ( oObj.found == "W" ) {
-
- if ( oObj.waiting_here ) {
- data += ITEM_IS_WAITING_HERE;
- } else {
- data += ITEM_IS_WAITING;
- data += " " + AT.format( oObj.waiting_at );
- }
-
- } else if ( oObj.transferred ) {
- data += ITEM_IS_IN_TRANSIT.format( oObj.from_branch, oObj.date_sent );
- } else if ( oObj.not_transferred ) {
- data += NOT_TRANSFERRED_YET.format( oObj.not_transferred_by );
- }
- data += "</em>";
-
- data += " <a href='/cgi-bin/koha/catalogue/detail.pl?biblionumber="
+ data += " <a href='/cgi-bin/koha/catalogue/moredetail.pl?biblionumber="
+ oObj.biblionumber
+ "&itemnumber="
+ oObj.itemnumber
- + "#"
+ + "#item"
+ oObj.itemnumber
+ "'>"
- + oObj.barcode
+ + oObj.barcode.escapeHtml()
+ "</a>";
}
-
return data;
}
},
var selectedbranch;
var setbranch;
if( oObj.branches[i].selected ){
+
selectedbranch = " selected='selected' ";
- setbranch = " (set) ";
- }
- else{
+ setbranch = CURRENT;
+ } else if ( oObj.branches[i].pickup_location == 0 ) {
+ continue;
+ } else{
selectedbranch = '';
setbranch = '';
}
- branchSelect += '<option value="'+ oObj.branches[i].value +'"'+selectedbranch+'>'+oObj.branches[i].branchname+setbranch+'</option>';
+ branchSelect += '<option value="'+ oObj.branches[i].branchcode.escapeHtml() +'"'+selectedbranch+'>'+oObj.branches[i].branchname.escapeHtml()+setbranch+'</option>';
}
branchSelect +='</select>';
return branchSelect;
}
- else { return oObj.branchcode || ""; }
+ else { return oObj.branchcode.escapeHtml() || ""; }
}
},
- { "mDataProp": "expirationdate_formatted" },
+ { "data": { _: "expirationdate_formatted", "sort": "expirationdate" } },
{
"mDataProp": function( oObj ) {
if ( oObj.priority && parseInt( oObj.priority ) && parseInt( oObj.priority ) > 0 ) {
},
{
"bSortable": false,
+ "visible": SuspendHoldsIntranet,
"mDataProp": function( oObj ) {
holds[oObj.reserve_id] = oObj; //Store holds for later use
if ( oObj.found ) {
return "";
} else if ( oObj.suspend == 1 ) {
- return "<a class='hold-resume btn btn-mini' id='resume" + oObj.reserve_id + "'>"
+ return "<a class='hold-resume btn btn-default btn-xs' id='resume" + oObj.reserve_id + "'>"
+ "<i class='fa fa-play'></i> " + RESUME + "</a>";
} else {
- return "<a class='hold-suspend btn btn-mini' id='suspend" + oObj.reserve_id + "'>"
+ return "<a class='hold-suspend btn btn-default btn-xs' id='suspend" + oObj.reserve_id + "'>"
+ "<i class='fa fa-pause'></i> " + SUSPEND + "</a>";
}
}
- }
+ },
+ {
+ "mDataProp": function( oObj ) {
+ var data = "";
+
+ if ( oObj.suspend == 1 ) {
+ data += "<p>" + HOLD_IS_SUSPENDED;
+ if ( oObj.suspend_until ) {
+ data += " " + UNTIL.format( oObj.suspend_until_formatted );
+ }
+ data += "</p>";
+ }
+
+ if ( oObj.itemtype_limit ) {
+ data += NEXT_AVAILABLE_ITYPE.format( oObj.itemtype_limit );
+ }
+
+ if ( oObj.barcode ) {
+ data += "<em>";
+ if ( oObj.found == "W" ) {
+
+ if ( oObj.waiting_here ) {
+ data += ITEM_IS_WAITING_HERE;
+ } else {
+ data += ITEM_IS_WAITING;
+ data += " " + AT.format( oObj.waiting_at );
+ }
+
+ } else if ( oObj.transferred ) {
+ data += ITEM_IS_IN_TRANSIT.format( oObj.from_branch, oObj.date_sent );
+ } else if ( oObj.not_transferred ) {
+ data += NOT_TRANSFERRED_YET.format( oObj.not_transferred_by );
+ }
+ data += "</em>";
+ }
+ return data;
+ }
+ }
],
"bPaginate": false,
"bProcessing": true,
d.borrowernumber = borrowernumber;
}
},
- });
+ }));
$('#holds-table').on( 'draw.dt', function () {
$(".hold-suspend").on( "click", function() {
});
$(".hold_location_select").change(function(){
- if( confirm( _("Do you want to change the pickup location?") ) ){
- $(this).prop("disabled",true);
- var cur_select = $(this);
- $(this).after('<i id="holdwaiter" class="fa fa-circle-o-notch fa-spin fa-lg fa-fw"></i>');
- var api_url = '/api/v1/holds/'+$(this).attr('reserve_id');
- var update_info = JSON.stringify({ branchcode: $(this).val(), priority: parseInt($(this).attr("priority"),10) });
- $.ajax({
- method: "PUT",
- url: api_url,
- data: update_info ,
- success: function( data ){ holdsTable.api().ajax.reload(); },
- error: function( jqXHR, textStatus, errorThrown) {
- alert('There was an error:'+textStatus+" "+errorThrown);
- cur_select.prop("disabled",false);
- $("#holdwaiter").remove();
- cur_select.val( cur_select.children('option[selected="selected"]').val() );
- },
- });
- }
- else{
- $(this).val( $(this).children('option[selected="selected"]').val() );
- }
+ $(this).prop("disabled",true);
+ var cur_select = $(this);
+ var res_id = $(this).attr('reserve_id');
+ $(this).after('<div id="updating_reserveno'+res_id+'" class="waiting"><img src="/intranet-tmpl/prog/img/spinner-small.gif" alt="" /><span class="waiting_msg"></span></div>');
+ var api_url = '/api/v1/holds/'+res_id;
+ var update_info = JSON.stringify({ pickup_library_id: $(this).val(), priority: parseInt($(this).attr("priority"),10) });
+ $.ajax({
+ method: "PUT",
+ url: api_url,
+ data: update_info ,
+ success: function( data ){ holdsTable.api().ajax.reload(); },
+ error: function( jqXHR, textStatus, errorThrown) {
+ alert('There was an error:'+textStatus+" "+errorThrown);
+ cur_select.prop("disabled",false);
+ $("#updating_reserveno"+res_id).remove();
+ cur_select.val( cur_select.children('option[selected="selected"]').val() );
+ },
+ });
});
});
}
$("body").append("\
- <div id='suspend-modal' class='modal hide fade' tabindex='-1' role='dialog' aria-hidden='true'>\
+ <div id='suspend-modal' class='modal fade' role='dialog' aria-hidden='true'>\
+ <div class='modal-dialog'>\
+ <div class='modal-content'>\
<form id='suspend-modal-form' class='form-inline'>\
<div class='modal-header'>\
<button type='button' class='closebtn' data-dismiss='modal' aria-hidden='true'>×</button>\
<div class='modal-body'>\
<input type='hidden' id='suspend-modal-reserve_id' name='reserve_id' />\
\
- <label for='suspend-modal-until'>Suspend until:</label>\
+ <label for='suspend-modal-until'>" + SUSPEND_UNTIL + "</label>\
<input name='suspend_until' id='suspend-modal-until' class='suspend-until' size='10' />\
\
<p/><a class='btn btn-link' id='suspend-modal-clear-date' >" + CLEAR_DATE_TO_SUSPEND_INDEFINITELY + "</a></p>\
<a href='#' data-dismiss='modal' aria-hidden='true' class='cancel'>" + CANCEL + "</a>\
</div>\
</form>\
+ </div>\
+ </div>\
</div>\
");