]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/javascript/lib/js/opac/mresult.js
memory leak debugging, removed closures
[working/Evergreen.git] / Open-ILS / src / javascript / lib / js / opac / mresult.js
1 var records = new Array();
2 var ranks = new Array();
3 var table;
4 var rowtemplate;
5
6 function mresultUnload() { removeChildren(table); table = null;}
7
8
9 function mresultDoSearch() {
10
11         table = G.ui.result.main_table;
12         rowtemplate = table.removeChild(G.ui.result.row_template);
13         removeChildren(table);
14
15         if(getOffset() == 0 || getHitCount() == null ) {
16                 mresultGetCount();
17                 mresultCollectIds();
18         } else { 
19                 resultSetInfo();
20                 mresultCollectIds();
21         }
22 }
23
24 function mresultGetCount() {
25         var req = new Request(FETCH_MRCOUNT, 
26                         getStype(), getTerm(), getLocation(), getDepth(), getForm() );
27         req.callback(mresultHandleCount);
28         req.send();
29 }
30
31 function mresultHandleCount(r) {
32         HITCOUNT = parseInt(r.getResultObject());
33         resultSetInfo(); 
34 }
35
36
37 /* performs the actual search */
38 function mresultCollectIds() {
39         var req = new Request(FETCH_MRIDS, getStype(), getTerm(), 
40                         getLocation(), getDepth(), getDisplayCount(), getOffset(), getForm() );
41         req.callback(mresultHandleMRIds);
42         req.send();
43 }
44
45 function mresultHandleMRIds(r) {
46         mresultSetRecords(r.getResultObject().ids);
47         mresultCollectRecords(); 
48 }
49
50 function mresultSetRecords(idstruct) {
51         var o = getOffset();
52         for( var x = o; x!= idstruct.length + o; x++ ) {
53                 records[x] = idstruct[x - o][0];
54                 ranks[x] = idstruct[x - o][1];
55         }
56 }
57
58 function mresultHandleMods(r) {
59         var rec = r.getResultObject();
60         resultDisplayRecord(rec, rowtemplate, true);
61         resultCollectCopyCounts(rec, FETCH_MR_COPY_COUNTS);
62 }
63
64
65 function mresultCollectRecords() {
66         for( var x = getOffset(); x!= getDisplayCount() + getOffset(); x++ ) {
67                 if(isNull(records[x])) break;
68                 var req = new Request(FETCH_MRMODS, records[x]);
69                 req.callback(mresultHandleMods);
70                 req.send();
71         }
72 }
73
74