<div class="row">
<div class="col-md-offset-4 col-xs-9 col-md-8"><label>Items Checked Out</label></div>
- <div class="col-xs-3 pad-vert-btn">
+ </div>
+<div class="row">
+ <div class="col-md-offset-1 col-md-5 pad-vert-btn">
<a href="javascript:;" onclick="selfCheckMgr.printList('items_out');" class="btn btn-success scko-action-btn">
Print List</a>
</div>
+ <div class="col-xs-3 col-md-offset-1 col-md-5 pad-vert-btn">
+ <a href="javascript:;" onclick="selfCheckMgr.renewItems();" class="btn btn-success scko-action-btn">
+ Renew Items</a>
+ </div>
+
</div>
<div class="scko-table">
<tbody id='oils-selfck-circ-out-tbody'>
<tr id='oils-selfck-circ-out-row'><td>
<table>
- <tr><td class="scko-table-label">BARCODE:</td><td name="barcode"></td></tr>
+ <tr>
+ <th rowspan="5"><input type="checkbox" name="renew_selector" class="oils-selfck-renewal-selector"></th>
+ <td class="scko-table-label">BARCODE:</td><td name="barcode"></td>
+ </tr>
<tr><td class="scko-table-label">TITLE:</td><td name="title"></td></tr>
<tr><td class="scko-table-label">AUTHOR:</td><td name="author"></td></tr>
<tr><td class="scko-table-label">DUE DATE:</td><td name="due_date"></td></tr>
+ <tr><td class="scko-table-label">REMAINING RENEWALS:</td><td name="remaining_renewals"></td></tr>
<tr><td class="scko-table-label hideMe">FORMAT:</td><td class="hideMe" name="format"></td></tr>
</table>
</td></tr>
var itemsOutCirc = [];
var itemsOutMod = [];
var itemsOutCopy = [];
+var currentItemsOut = [];
var readyHolds = false;
const SET_BARCODE_REGEX = 'opac.barcode_regex';
progressDialog.show(true);
var self = this;
+ self.itemsOutArray = [];
fieldmapper.standardRequest(
['open-ils.circ', 'open-ils.circ.actor.user.checked_out.atomic'],
dojo.forEach(circs,
function(circ) {
self.itemsOut.push(circ.circ.id());
- handleCheckedItems(circ);
+ self.itemsOutArray.push(circ);
}
);
progressDialog.hide();
}
}
);
+ handleCheckedItems(self.itemsOutArray);
}
-function handleCheckedItems(circ) {
+function handleCheckedItems(circs) {
var self = selfCheckMgr;
var row = self.outTemplate.cloneNode(true);
- self.byName(row,'barcode').innerHTML = circ.copy.barcode();
- self.byName(row,'title').innerHTML = circ.record.title();
- self.byName(row,'author').innerHTML = circ.record.author();
- if(dojo.date.stamp.fromISOString(circ.circ.due_date())<(new Date())) self.byName(row,'due_date').style.color="red";
- self.byName(row,'due_date').innerHTML = dojo.date.locale.format(dojo.date.stamp.fromISOString(circ.circ.due_date()), {
- selector: 'date', fullYear: true
- });
- self.byName(row,'format').innerHTML = circ.record.types_of_resource()[0];
+ if(circs.length) {
+ for(circ = 0; circ < circs.length; circ++) {
+ var row = self.outTemplate.cloneNode(true);
+ currentItemsOut.push(circs[circ]);
+ self.byName(row,'barcode').innerHTML = circs[circ].copy.barcode();
+ self.byName(row, 'title').innerHTML = circs[circ].record.title();
+ self.byName(row, 'author').innerHTML = circs[circ].record.author();
+ self.byName(row, 'remaining_renewals').innerHTML = circs[circ].circ.renewal_remaining();
+
+ if(dojo.date.stamp.fromISOString(circs[circ].circ.due_date()) < (new Date()))
+ self.byName(row,'due_date').style.color="red";
+
+ self.byName(row,'due_date').innerHTML = dojo.date.locale.format(
+ dojo.date.stamp.fromISOString(circs[circ].circ.due_date()),
+ {selector: 'date', fullYear: true}
+ );
+ if(circs[circ].circ.renewal_remaining() == 0) {
+ self.byName(row, 'renew_selector').checked = false;
+ self.byName(row, 'renew_selector').setAttribute('disabled', true);
+ }
+ self.byName(row,'format').innerHTML = circs[circ].record.types_of_resource()[0];
+ self.itemsOutTbody.appendChild(row);
+ }
+ }
- self.itemsOutTbody.appendChild(row);
}
SelfCheckManager.prototype.goToTab = function(name) {
}
}
+/*
+ * Renew ticked checkbox items
+ */
+SelfCheckManager.prototype.renewItems = function() {
+
+ var checkboxes = document.getElementsByClassName('oils-selfck-renewal-selector');
+ var itemsToRenew = [];
+ for(var checkbox = 0; checkbox < checkboxes.length; checkbox++) {
+ if(checkboxes[checkbox].checked == true) {
+ itemsToRenew.push(currentItemsOut[checkbox]);
+ }
+ checkboxes[checkbox].checked = false;
+ }
+
+ for(var item = 0; item < itemsToRenew.length; item++) {
+ this.renew(itemsToRenew[item].copy.barcode())
+ }
+
+ this.drawCircPage();
+}
+
SelfCheckManager.prototype.printList = function(which) {
// reset timeout