+
+
|
+
+
diff --git a/Open-ILS/web/opac/skin/default/css/layout.css b/Open-ILS/web/opac/skin/default/css/layout.css
index 93830dbb3e..eae2f6b54f 100644
--- a/Open-ILS/web/opac/skin/default/css/layout.css
+++ b/Open-ILS/web/opac/skin/default/css/layout.css
@@ -43,6 +43,8 @@ table { border-collapse: collapse; }
.light_border { border: 1px solid #E0E0E0; }
+/*.overdue { color: red; font-size: 110%; background: #F0F0E0; }*/
+.overdue { color: red; font-weight: bold;}
/*
#main_table { border-collapse: collapse; width: 100%; height: 100%; }
diff --git a/Open-ILS/web/opac/skin/default/js/adv_global.js b/Open-ILS/web/opac/skin/default/js/adv_global.js
index b5f2fdad49..f49d2e4a28 100644
--- a/Open-ILS/web/opac/skin/default/js/adv_global.js
+++ b/Open-ILS/web/opac/skin/default/js/adv_global.js
@@ -70,7 +70,7 @@ function advSelToStringList(sel) {
for( var i = 0; i < list.length; i++ ) {
var str = list[i];
for( var j = 0; j < str.length; j++ ) {
- if(str.charAt(j) == ' ') continue;
+ //if(str.charAt(j) == ' ') continue;
vals.push(str.charAt(j));
}
}
diff --git a/Open-ILS/web/opac/skin/default/js/advanced.js b/Open-ILS/web/opac/skin/default/js/advanced.js
index 20f5a55aab..27e9994d9a 100644
--- a/Open-ILS/web/opac/skin/default/js/advanced.js
+++ b/Open-ILS/web/opac/skin/default/js/advanced.js
@@ -113,6 +113,10 @@ function advGenericSearch() {
arg[PARAM_RTYPE] = RTYPE_TCN;
break;
+ case 'barcode':
+ advFindBarcode(term);
+ break;
+
case 'cn':
arg.page = CNBROWSE;
@@ -142,3 +146,25 @@ function advGenericSearch() {
}
+function advFindBarcode(barcode) {
+ var req = new Request(FETCH_BIB_ID_BY_BARCODE, barcode);
+ req.callback(advDrawBarcode);
+ req.request.alertEvent = false;
+ req.send();
+}
+
+function advDrawBarcode(r) {
+ titleid = r.getResultObject();
+ if(checkILSEvent(titleid)) {
+ alertId('myopac.copy.not.found');
+ return;
+ }
+ if(!titleid) return;
+ var args = {};
+ args.page = RDETAIL;
+ args[PARAM_RID] = titleid;
+ location.href = buildOPACLink(args);
+}
+
+
+
diff --git a/Open-ILS/web/opac/skin/default/js/holds.js b/Open-ILS/web/opac/skin/default/js/holds.js
index 9a0980b982..1bd6ca6a28 100644
--- a/Open-ILS/web/opac/skin/default/js/holds.js
+++ b/Open-ILS/web/opac/skin/default/js/holds.js
@@ -8,6 +8,8 @@ item_form and language are optional - if language exist and no
item_form is specified, use item_type(s)--language
*/
+var noEmailMessage;
+
function holdsHandleStaff() {
swapCanvas($('xulholds_box'));
$('xul_recipient_barcode').focus();
@@ -52,6 +54,9 @@ function holdsDrawEditor(args) {
holdArgs = (args) ? args : holdArgs;
+ if(!noEmailMessage)
+ noEmailMessage = $('holds_email').removeChild($('holds.no_email'));
+
if(isXUL() && holdArgs.recipient == null
&& holdArgs.editHold == null) {
holdsHandleStaff();
@@ -402,6 +407,15 @@ function __holdsDrawWindow() {
}
}
+ if(!G.user.email()) {
+ $('holds_enable_email').checked = false;
+ $('holds_enable_email').disabled = true;
+ var n = noEmailMessage.cloneNode(true);
+ appendClear( $('holds_email'), n);
+ unHideMe(n);
+ $('holds.no_email.my_account').setAttribute('href', buildOPACLink({page:MYOPAC},null,true));
+ }
+
if(!$('holds_phone').value)
$('holds_enable_phone').checked = false;
@@ -552,15 +566,22 @@ function holdsCheckPossibility(pickuplib, hold, recurse) {
pickup_lib : pickuplib
};
- _debug("hold possible args = "+js2JSON(args));
+ if(recurse) {
+ /* if we're calling create again (recursing),
+ we know that the hold possibility check already succeeded */
+ holdHandleCreateResponse({_recurse:true, _hold:hold}, true );
- var req = new Request(CHECK_HOLD_POSSIBLE, G.user.session, args );
-
- req.request.alertEvent = false;
- req.request._hold = hold;
- req.request._recurse = recurse;
- req.callback(holdHandleCreateResponse);
- req.send();
+ } else {
+ _debug("hold possible args = "+js2JSON(args));
+
+ var req = new Request(CHECK_HOLD_POSSIBLE, G.user.session, args );
+
+ req.request.alertEvent = false;
+ req.request._hold = hold;
+ req.request._recurse = recurse;
+ req.callback(holdHandleCreateResponse);
+ req.send();
+ }
}
@@ -657,22 +678,25 @@ function holdsPlaceHold(hold, recurse) {
}
-function holdHandleCreateResponse(r) {
- var res = r.getResultObject();
- if(!res || checkILSEvent(res) ) {
- if(!res) {
- alert($('hold_not_allowed').innerHTML);
- } else {
- if( res.textcode == 'PATRON_BARRED' ) {
- alertId('hold_failed_patron_barred');
- } else {
+function holdHandleCreateResponse(r, recurse) {
+
+ if(!recurse) {
+ var res = r.getResultObject();
+ if(!res || checkILSEvent(res) ) {
+ if(!res) {
alert($('hold_not_allowed').innerHTML);
+ } else {
+ if( res.textcode == 'PATRON_BARRED' ) {
+ alertId('hold_failed_patron_barred');
+ } else {
+ alert($('hold_not_allowed').innerHTML);
+ }
}
+ swapCanvas($('holds_box'));
+ return;
}
- swapCanvas($('holds_box'));
- return;
- }
-
+ }
+
holdCreateHold(r._recurse, r._hold);
}
@@ -688,14 +712,15 @@ function holdCreateHold( recurse, hold ) {
showCanvas();
- holdArgs = null;
runEvt('common', 'holdUpdated');
}
function holdProcessResult( hold, res, recurse ) {
+
if( res == '1' ) {
alert($('holds_success').innerHTML);
+ holdArgs = null;
} else {
diff --git a/Open-ILS/web/opac/skin/default/js/myopac.js b/Open-ILS/web/opac/skin/default/js/myopac.js
index a8e6a901d0..7a9065903a 100644
--- a/Open-ILS/web/opac/skin/default/js/myopac.js
+++ b/Open-ILS/web/opac/skin/default/js/myopac.js
@@ -118,6 +118,15 @@ var checkedRowTemplate;
var circsCache = new Array();
var checkedDrawn = false;
+function moClearCheckedTable() {
+ var tbody = $("myopac_checked_tbody");
+ var loading = $("myopac_checked_loading");
+ var none = $("myopac_checked_none");
+ clearNodes( tbody, [ loading, none ] );
+}
+
+var __can_renew_one = false;
+
function myOPACDrawCheckedOutSlim(r) {
var checked = r.getResultObject();
@@ -125,12 +134,14 @@ function myOPACDrawCheckedOutSlim(r) {
var loading = $("myopac_checked_loading");
var none = $("myopac_checked_none");
+ __can_renew_one = false;
+
if(checkedDrawn) return;
checkedDrawn = true;
if(!checkedRowTemplate)
checkedRowTemplate = tbody.removeChild($("myopac_checked_row"));
- clearNodes( tbody, [ loading, none ] );
+ moClearCheckedTable();
hideMe(loading); /* remove all children and start over */
if(!(checked && (checked.out || checked.overdue))) {
@@ -154,31 +165,55 @@ function myOPACDrawCheckedOutSlim(r) {
req.send();
}
+ appendClear($('mo_items_out_count'),
+ text(new String( parseInt(checked.overdue.length) + parseInt(checked.out.length) )) );
+
+ if( checked.overdue.length > 0 ) {
+ addCSSClass($('mo_items_overdue_count'), 'overdue');
+ appendClear($('mo_items_overdue_count'),
+ text(new String( parseInt(checked.overdue.length) )) );
+ }
+
}
+
function myOPACDrawCheckedItem(r) {
var circ = r.getResultObject();
var tbody = r.tbody;
var row = checkedRowTemplate.cloneNode(true);
row.id = 'myopac_checked_row_ ' + circ.id();
+ row.setAttribute('circid', circ.id());
var due = _trimTime(circ.due_date());
var dlink = $n( row, "myopac_checked_due" );
var rlink = $n( row, "myopac_checked_renewals" );
- var rnlink = $n( row, "myopac_checked_renew_link" );
+ //var rnlink = $n( row, "myopac_checked_renew_link" );
- if( r.od ) due = elem('b', {style:'color:red;font-size:110%'},due);
- else due = text(due);
+ //if( r.od ) due = elem('b', {style:'color:red;font-size:110%'},due);
+ if( r.od ) {
+ due = elem('b', null, due);
+ addCSSClass(due, 'overdue');
+ } else {
+ due = text(due);
+ }
dlink.appendChild(due);
rlink.appendChild(text(circ.renewal_remaining()));
unHideMe(row);
- rnlink.setAttribute('href', 'javascript:myOPACRenewCirc("'+circ.id()+'");');
+ //rnlink.setAttribute('href', 'javascript:myOPACRenewCirc("'+circ.id()+'");');
circsCache.push(circ);
- if( circ.renewal_remaining() < 1 ) hideMe(rnlink);
+ if( circ.renewal_remaining() < 1 ) {
+ $n(row, 'selectme').disabled = true;
+ if(!__can_renew_one)
+ $('mo_renew_button').disabled = true;
+ } else {
+ __can_renew_one = true;
+ $('mo_renew_button').disabled = false;
+ $n(row, 'selectme').disabled = false;
+ }
tbody.appendChild(row);
@@ -190,6 +225,8 @@ function myOPACDrawCheckedItem(r) {
req.send();
}
+var __circ_titles = {};
+
function myOPACDrawCheckedTitle(r) {
var record = r.getResultObject();
var circid = r.circ;
@@ -207,6 +244,7 @@ function myOPACDrawCheckedTitle(r) {
var alink = $n( row, "myopac_checked_author_link" );
buildTitleDetailLink(record, tlink);
buildSearchLink(STYPE_AUTHOR, record.author(), alink);
+ __circ_titles[circid] = record.title();
}
function myOPACDrawNonCatalogedItem(r) {
@@ -219,9 +257,11 @@ function myOPACDrawNonCatalogedItem(r) {
tlink.parentNode.appendChild(text(copy.dummy_title()));
alink.parentNode.appendChild(text(copy.dummy_author()));
+ __circ_titles[circid] = copy.dummy_title();
}
+/*
function myOPACRenewCirc(circid) {
var circ;
@@ -232,7 +272,7 @@ function myOPACRenewCirc(circid) {
if(!confirm($('myopac_renew_confirm').innerHTML)) return;
var req = new Request(RENEW_CIRC, G.user.session,
- { patron : G.user.id(), copyid : circ.target_copy() } );
+ { patron : G.user.id(), copyid : circ.target_copy(), opac_renewal : 1 } );
req.request.alertEvent = false;
req.send(true);
var res = req.result();
@@ -246,6 +286,7 @@ function myOPACRenewCirc(circid) {
checkedDrawn = false;
myOPACShowChecked();
}
+*/
@@ -464,10 +505,17 @@ function _finesFormatNumber(num) {
//function _trimTime(time) { if(!time) return ""; return time.replace(/\ .*/,""); }
function _trimTime(time) {
if(!time) return "";
- return time.replace(/T.*/,"");
+ var d = Date.parseIso8601(time);
+ if(!d) return ""; /* date parse failed */
+ return d.iso8601Format('YMD');
}
-function _trimSeconds(time) { if(!time) return ""; return time.replace(/:\d\d\..*$/,""); }
+function _trimSeconds(time) {
+ if(!time) return "";
+ var d = Date.parseIso8601(time);
+ if(!d) return ""; /* date parse failed */
+ return d.iso8601Format('YMDHM',null,true,true);
+}
function myOPACShowTransactions(r) {
@@ -700,6 +748,12 @@ function _myOPACSummaryShowUer(r) {
fleshedUser = user;
if(!user) return;
+ var expireDate = Date.parseIso8601(user.expire_date());
+ if( expireDate < new Date() ) {
+ appendClear($('myopac.expired.date'), expireDate.iso8601Format('YMD'));
+ unHideMe($('myopac.expired.alert'));
+ }
+
var iv1 = user.ident_value()+'';
if (iv1.length > 4) iv1 = iv1.replace(new RegExp(iv1.substring(0,iv1.length - 4)), '***********');
@@ -1110,20 +1164,126 @@ function myOPACDrawNonCatCirc(r) {
duration = parseInt(duration + '000');
var dtf = circ.circ_time();
+ var start = Date.parseIso8601(circ.circ_time());
+ var due = new Date( start.getTime() + duration );
+ appendClear($n(row, 'circ_time'), text(due.iso8601Format('YMDHM', null, true, true)));
+}
- /*Date.W3CDTF is not happy with the milliseonds, nor is it
- happy without minute component of the timezone */
- dtf = dtf.replace(/\.\d+/,'');
- dtf += ":00";
- var start = new Date.W3CDTF();
- start.setW3CDTF(dtf);
- var due = new Date( start.getTime() + duration );
- due = (due+'').replace(/(.*?:\d\d):.*/, '$1');
- appendClear($n(row, 'circ_time'), text(due));
+
+function myopacSelectAllChecked() {
+ __myopacSelectChecked(true);
+}
+
+function myopacSelectNoneChecked() {
+ __myopacSelectChecked(false);
}
+function __myopacSelectChecked(value) {
+ var rows = myopacGetCheckedOutRows();
+ for( var i = 0; i < rows.length; i++ ) {
+ var row = rows[i];
+ var box = $n(row, 'selectme');
+ if( box && ! box.disabled )
+ box.checked = value;
+ }
+}
+
+function myopacGetCheckedOutRows() {
+ var rows = [];
+ var tbody = $('myopac_checked_tbody');
+ var children = tbody.childNodes;
+ for( var i = 0; i < children.length; i++ ) {
+ var child = children[i];
+ if( child.nodeName.match(/^tr$/i) )
+ if( $n(child, 'selectme') )
+ rows.push(child);
+ }
+ return rows;
+}
+
+var __renew_circs = [];
+
+/* true if 1 renewal succeeded */
+var __a_renew_success = false;
+
+/* renews all selected circulations */
+function myOPACRenewSelected() {
+ var rows = myopacGetCheckedOutRows();
+ if(!confirm($('myopac_renew_confirm').innerHTML)) return;
+ __a_renew_success = false;
+
+ var renewThese = [];
+
+ for( var i = 0; i < rows.length; i++ ) {
+
+ var row = rows[i];
+ if( ! $n(row, 'selectme').checked ) continue;
+ var circ_id = row.getAttribute('circid');
+
+ var circ;
+ for( var j = 0; j != circsCache.length; j++ )
+ if(circsCache[j].id() == circ_id)
+ circ = circsCache[j];
+
+ renewThese.push(circ);
+ }
+
+ for( var i = 0; i < renewThese.length; i++ ) {
+ var circ = renewThese[i];
+ moRenewCirc( circ.target_copy(), G.user.id(), circ );
+ }
+}
+
+
+/* renews a single circulation */
+function moRenewCirc(copy_id, user_id, circ) {
+
+ unHideMe($('my_renewing'));
+ moClearCheckedTable();
+
+ _debug('renewing circ ' + circ.id() + ' with copy ' + copy_id);
+ var req = new Request(RENEW_CIRC, G.user.session,
+ { patron : user_id,
+ copyid : copy_id, opac_renewal : 1
+ }
+ );
+
+ __renew_circs.push(circ.id());
+ req.request.alertEvent = false;
+ req.callback(myHandleRenewResponse);
+ req.request.circ = circ;
+ req.send();
+}
+
+
+
+/* handles the circ renew results */
+function myHandleRenewResponse(r) {
+ var res = r.getResultObject();
+ var circ = r.circ;
+
+ /* remove this circ from the list of circs to renew */
+ __renew_circs = grep(__renew_circs, function(i) { return (i != circ.id()); });
+
+ _debug("handling renew result for " + circ.id());
+
+ if(checkILSEvent(res) || checkILSEvent(res[0]))
+ alertIdText('myopac_renew_fail', __circ_titles[circ.id()]);
+ else __a_renew_success = true;
+
+ if(__renew_circs) return; /* more to come */
+
+ __renew_circs = [];
+
+ if( __a_renew_success )
+ alert($('myopac_renew_success').innerHTML);
+
+ hideMe($('my_renewing'));
+ checkedDrawn = false;
+ myOPACShowChecked();
+}
diff --git a/Open-ILS/web/opac/skin/default/js/rdetail.js b/Open-ILS/web/opac/skin/default/js/rdetail.js
index 2c5090451a..066d3fdbba 100644
--- a/Open-ILS/web/opac/skin/default/js/rdetail.js
+++ b/Open-ILS/web/opac/skin/default/js/rdetail.js
@@ -145,8 +145,6 @@ function rdetailViewMarc(r,id) {
hideMe($('rdetail_extras_loading'));
$('rdetail_view_marc_box').innerHTML = r.getResultObject();
- var d = new Date();
-
var div = elem('div', { "class" : 'hide_me' });
var span = div.appendChild( elem('abbr') );
@@ -506,9 +504,12 @@ function _rdetailRows(node) {
}
}
+ /* don't show hidden orgs */
if(node) {
+ if(!isXUL() && !isTrue(node.opac_visible())) return;
+
var row = copyRow.cloneNode(true);
row.id = "cp_info_" + node.id();
@@ -599,7 +600,8 @@ function _rdetailBuildInfoRows(r) {
}
}
- if(isLocal) unHideMe(rowNode);
+ //if(isLocal) unHideMe(rowNode);
+ unHideMe(rowNode);
rdetailSetPath( thisOrg, isLocal );
rdetailBuildBrowseInfo( rowNode, arr[1], isLocal, thisOrg );
diff --git a/Open-ILS/web/opac/skin/default/js/result_common.js b/Open-ILS/web/opac/skin/default/js/result_common.js
index 9bce1feba4..4fa713e75e 100644
--- a/Open-ILS/web/opac/skin/default/js/result_common.js
+++ b/Open-ILS/web/opac/skin/default/js/result_common.js
@@ -10,7 +10,8 @@ if( findCurrentPage() == MRESULT || findCurrentPage() == RRESULT ) {
G.evt.result.hitCountReceived.push(resultSetHitInfo);
G.evt.result.recordReceived.push(resultDisplayRecord, resultAddCopyCounts);
G.evt.result.copyCountsReceived.push(resultDisplayCopyCounts);
- G.evt.result.allRecordsReceived.push(resultBuildCaches, resultDrawSubjects, resultDrawAuthors, resultDrawSeries);
+ G.evt.result.allRecordsReceived.push(resultBuildCaches, resultDrawSubjects,
+ resultDrawAuthors, resultDrawSeries, function(){unHideMe($('result_info_2'))});
attachEvt('result','lowHits',resultLowHits);
attachEvt('result','zeroHits',resultZeroHits);
attachEvt( "common", "locationUpdated", resultSBSubmit );
@@ -151,6 +152,9 @@ function resultSetHitInfo() {
G.ui.result.current_page.appendChild(text(cpage));
G.ui.result.num_pages.appendChild(text(pages + ")")); /* the ) is dumb */
+ $('current_page2').appendChild(text(cpage));
+ $('num_pages2').appendChild(text(pages + ")")); /* the ) is dumb */
+
/* set the offsets */
var offsetEnd = getDisplayCount() + getOffset();
if( getDisplayCount() > (getHitCount() - getOffset()))
@@ -159,8 +163,14 @@ function resultSetHitInfo() {
G.ui.result.offset_end.appendChild(text(offsetEnd));
G.ui.result.offset_start.appendChild(text(getOffset() + 1));
+ $('offset_end2').appendChild(text(offsetEnd));
+ $('offset_start2').appendChild(text(getOffset() + 1));
+
G.ui.result.result_count.appendChild(text(getHitCount()));
unHideMe(G.ui.result.info);
+
+ $('result_count2').appendChild(text(getHitCount()));
+ unHideMe($('result_info_div2'));
}
function resultLowHits() {
@@ -326,6 +336,9 @@ function resultPaginate() {
G.ui.result.next_link.setAttribute("href", buildOPACLink(args));
addCSSClass(G.ui.result.next_link, config.css.result.nav_active);
+ $('next_link2').setAttribute("href", buildOPACLink(args));
+ addCSSClass($('next_link2'), config.css.result.nav_active);
+
args[PARAM_OFFSET] = getHitCount() - (getHitCount() % getDisplayCount());
/* when hit count is divisible by display count, we have to adjust */
@@ -334,6 +347,9 @@ function resultPaginate() {
G.ui.result.end_link.setAttribute("href", buildOPACLink(args));
addCSSClass(G.ui.result.end_link, config.css.result.nav_active);
+
+ $('end_link2').setAttribute("href", buildOPACLink(args));
+ addCSSClass($('end_link2'), config.css.result.nav_active);
}
if( o > 0 ) {
@@ -347,13 +363,21 @@ function resultPaginate() {
G.ui.result.prev_link.setAttribute( "href", buildOPACLink(args));
addCSSClass(G.ui.result.prev_link, config.css.result.nav_active);
+ $('prev_link2').setAttribute( "href", buildOPACLink(args));
+ addCSSClass($('prev_link2'), config.css.result.nav_active);
+
args[PARAM_OFFSET] = 0;
G.ui.result.home_link.setAttribute( "href", buildOPACLink(args));
addCSSClass(G.ui.result.home_link, config.css.result.nav_active);
+
+ $('search_home_link2').setAttribute( "href", buildOPACLink(args));
+ addCSSClass($('search_home_link2'), config.css.result.nav_active);
}
- if(getDisplayCount() < getHitCount())
+ if(getDisplayCount() < getHitCount()) {
unHideMe($('start_end_links_span'));
+ unHideMe($('start_end_links_span2'));
+ }
showCanvas();
try{searchTimer.stop()}catch(e){}
diff --git a/Open-ILS/web/opac/skin/default/js/rresult.js b/Open-ILS/web/opac/skin/default/js/rresult.js
index 7fd0532cc0..c314dfd33b 100644
--- a/Open-ILS/web/opac/skin/default/js/rresult.js
+++ b/Open-ILS/web/opac/skin/default/js/rresult.js
@@ -229,6 +229,8 @@ var rresultTries = 0;
function rresultHandleRIds(r) {
var res = r.getResultObject();
+ if(!res) res = {count:0,ids:[]};
+
if( res.count == 0 && rresultTries == 0 && ! r.noretry) {
rresultTries++;
diff --git a/Open-ILS/web/opac/skin/default/xml/advanced/advanced_global.xml b/Open-ILS/web/opac/skin/default/xml/advanced/advanced_global.xml
index 4b7490aeaa..6232cb5505 100644
--- a/Open-ILS/web/opac/skin/default/xml/advanced/advanced_global.xml
+++ b/Open-ILS/web/opac/skin/default/xml/advanced/advanced_global.xml
@@ -185,7 +185,7 @@
@@ -228,13 +228,18 @@
+
+
|
- |
+
|
@@ -257,6 +263,9 @@
+
+
+
|
diff --git a/Open-ILS/web/opac/skin/default/xml/common/css_common.xml b/Open-ILS/web/opac/skin/default/xml/common/css_common.xml
index fea5f3170d..e7fc06cd63 100644
--- a/Open-ILS/web/opac/skin/default/xml/common/css_common.xml
+++ b/Open-ILS/web/opac/skin/default/xml/common/css_common.xml
@@ -15,5 +15,5 @@
+ href="http:///opac/extras/opensearch/1.1/-/osd.xml">
diff --git a/Open-ILS/web/opac/skin/default/xml/common/holds.xml b/Open-ILS/web/opac/skin/default/xml/common/holds.xml
index 5c6170c1ba..b605871528 100644
--- a/Open-ILS/web/opac/skin/default/xml/common/holds.xml
+++ b/Open-ILS/web/opac/skin/default/xml/common/holds.xml
@@ -90,7 +90,11 @@
| &opac.holds.concactEmail;: |
- |
+
+
+ (See My Account for setting your email address)
+
+ |
| Enable email notifications for this hold? |
@@ -165,7 +169,8 @@
No items were found that could fulfill the requested holds.
It's possible that choosing a different format will result in a successful hold.
- Otherwise, please consult your local librarian.
+ It is also possible that you have exceeded the number of allowable holds.
+ For further information, please consult your local librarian.
diff --git a/Open-ILS/web/opac/skin/default/xml/common/sidebar.xml b/Open-ILS/web/opac/skin/default/xml/common/sidebar.xml
index 0b54c218f3..fc9789c5c5 100644
--- a/Open-ILS/web/opac/skin/default/xml/common/sidebar.xml
+++ b/Open-ILS/web/opac/skin/default/xml/common/sidebar.xml
@@ -114,6 +114,7 @@
+
@@ -121,6 +122,7 @@
|
+