]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/javascript/lib/js/opac/mresult.js
web work
[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
13         hideMe(G.ui.result.row_template);
14         while( table.parentNode.rows.length <= getDisplayCount() )  /* add an extra so IE and safari won't complain */
15                 hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
16
17         if(getOffset() == 0 || getHitCount() == null ) {
18                 mresultGetCount();
19                 mresultCollectIds();
20         } else { 
21                 resultSetInfo();
22                 mresultCollectIds();
23         }
24 }
25
26 function mresultGetCount() {
27         var req = new Request(FETCH_MRCOUNT, 
28                         getStype(), getTerm(), getLocation(), getDepth(), getForm() );
29         req.callback(mresultHandleCount);
30         req.send();
31 }
32
33 function mresultHandleCount(r) {
34         HITCOUNT = parseInt(r.getResultObject());
35         resultSetInfo(); 
36 }
37
38
39 /* performs the actual search */
40 function mresultCollectIds() {
41         var req = new Request(FETCH_MRIDS, getStype(), getTerm(), 
42                         getLocation(), getDepth(), getDisplayCount(), getOffset(), getForm() );
43         req.callback(mresultHandleMRIds);
44         req.send();
45 }
46
47 function mresultHandleMRIds(r) {
48         mresultSetRecords(r.getResultObject().ids);
49         mresultCollectRecords(); 
50 }
51
52 function mresultSetRecords(idstruct) {
53         var o = getOffset();
54         for( var x = o; x!= idstruct.length + o; x++ ) {
55                 records[x] = idstruct[x - o][0];
56                 ranks[x] = idstruct[x - o][1];
57         }
58 }
59
60 function mresultHandleMods(r) {
61         var rec = r.getResultObject();
62         resultDisplayRecord(rec, rowtemplate, r.userdata, true);
63         resultCollectCopyCounts(rec, FETCH_MR_COPY_COUNTS);
64 }
65
66
67 function mresultCollectRecords() {
68         var i = 0;
69         for( var x = getOffset(); x!= getDisplayCount() + getOffset(); x++ ) {
70                 if(isNull(records[x])) break;
71                 var req = new Request(FETCH_MRMODS, records[x]);
72                 req.request.userdata = i++;
73                 req.callback(mresultHandleMods);
74                 req.send();
75         }
76 }
77
78