2 var FETCH_HOLD_LIST = 'open-ils.circ:open-ils.circ.hold_pull_list.retrieve';
3 var FETCH_COPY_LOCATIONS = 'open-ils.search:open-ils.search.config.copy_location.retrieve.all';
4 var FETCH_COPY = 'open-ils.search:open-ils.search.asset.copy.retrieve';
5 var FETCH_USER = 'open-ils.actor:open-ils.actor.user.fleshed.retrieve';
6 var FETCH_VOLUME = 'open-ils.search:open-ils.search.callnumber.retrieve';
8 var myPerms = [ 'VIEW_HOLD' ];
9 var HOLD_LIST_LIMIT = 50;
13 var copyLocations = null;
16 function pullListInit() {
18 $('pl_user').appendChild(text(USER.usrname()));
19 $('pl_org').appendChild(text(findOrgUnit(USER.ws_ou()).name()));
20 setTimeout( function() {
21 fetchHighestPermOrgs( SESSION, USER.id(), myPerms );
22 pullListFetchCopyLocations();
27 function pullListFetchCopyLocations() {
28 var req = new Request(FETCH_COPY_LOCATIONS);
30 copyLocations = req.result();
33 function pullListFetchHolds() {
34 var req = new Request(FETCH_HOLD_LIST, SESSION, HOLD_LIST_LIMIT, listOffset );
35 req.callback(pullListDrawHolds);
40 function pullListDrawHolds(r) {
41 var holds = r.getResultObject();
43 var tbody = $('pull_list_tbody');
45 holdRowTemplate = tbody.removeChild($('pull_list_row'));
46 numHolds = holds.length;
48 for( var h in holds ) {
50 var row = holdRowTemplate.cloneNode(true);
51 tbody.appendChild(row);
52 pullListDrawHold( tbody, row, hold, h );
57 function pullListDrawHold( tbody, row, hold, idx ) {
59 $n(row, 'date').appendChild(text(hold.request_time().replace(/\ .*/, "")));
61 var treq = new Request( FETCH_MODS_FROM_COPY, hold.current_copy() );
64 pullListDrawTitle( tbody, row, hold, idx, r.getResultObject() ); });
67 var creq = new Request( FETCH_COPY, hold.current_copy() );
70 pullListDrawCopy( tbody, row, hold, idx, r.getResultObject() ); });
73 var ureq = new Request( FETCH_USER, SESSION, hold.usr() );
76 pullListDrawUser( tbody, row, hold, idx, r.getResultObject() ); });
82 function pullListDrawTitle( tbody, row, hold, idx, record ) {
83 $n(row, 'title').appendChild(text(record.title()));
84 $n(row, 'author').appendChild(text(record.author()));
86 var type = modsFormatToMARC(record.types_of_resource()[0]);
87 unHideMe($n(row, 'format_' + type));
91 function pullListDrawCopy( tbody, row, hold, idx, copy ) {
92 $n(row, 'barcode').appendChild(text(copy.barcode()));
93 for( var l in copyLocations ) {
94 var loc = copyLocations[l];
95 if( loc.id() == copy.location() ) {
96 $n(row, 'copy_location').appendChild(text(loc.name()));
100 $n(row, 'copy_number').appendChild(text(copy.copy_number()));
102 var vreq = new Request(FETCH_VOLUME, copy.call_number());
104 function(r) { pullListDrawVolume( tbody, row, hold, idx, r.getResultObject() ); } );
109 function pullListDrawUser( tbody, row, hold, idx, user ) {
110 $n(row, 'patron').appendChild(text(user.card().barcode()));
113 var callNumbers = [];
114 function pullListDrawVolume( tbody, row, hold, idx, volume ) {
115 $n(row, 'call_number').appendChild(text(volume.label()));
116 callNumbers.push(volume.label());
118 if( (parseInt(idx) +1) == numHolds )
119 ts_resortTable($('pl_callnumber').getElementsByTagName('a')[0]);