]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/javascript/lib/js/opac/mresult.js
opac, here we come
[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 mresultDoSearch() {
7
8         table = G.ui.result.main_table;
9         rowtemplate = table.removeChild(G.ui.result.row_template);
10         removeChildren(table);
11
12         if(getOffset() == 0 || getHitCount() == null ) {
13                 mresultGetCount();
14                 mresultCollectIds();
15         } else { 
16                 resultSetInfo();
17                 mresultCollectIds();
18         }
19 }
20
21 function mresultGetCount() {
22         var req = new Request(FETCH_MRCOUNT, 
23                         getStype(), getTerm(), getLocation(), getDepth(), getForm() );
24         req.callback( function(r) {
25                 HITCOUNT = parseInt(r.getResultObject());
26                 resultSetInfo(); });
27         req.send();
28 }
29
30
31 /* performs the actual search */
32 function mresultCollectIds() {
33         var req = new Request(FETCH_MRIDS, getStype(), getTerm(), 
34                         getLocation(), getDepth(), getDisplayCount(), getOffset(), getForm() );
35         req.callback( function(r) {
36                 mresultSetRecords(r.getResultObject().ids);
37                 mresultCollectRecords(); 
38                 req.request = null;
39                 r.callback = null;
40         });
41         req.send();
42 }
43
44 function mresultSetRecords(idstruct) {
45         var o = getOffset();
46         for( var x = o; x!= idstruct.length + o; x++ ) {
47                 records[x] = idstruct[x - o][0];
48                 ranks[x] = idstruct[x - o][1];
49         }
50 }
51
52
53 function mresultCollectRecords() {
54         for( var x = getOffset(); x!= getDisplayCount() + getOffset(); x++ ) {
55                 if(isNull(records[x])) break;
56
57                 var req = new Request(FETCH_MRMODS, records[x]);
58                 req.callback(function(r){
59                                 var rec = r.getResultObject();
60                                 resultDisplayRecord(rec, rowtemplate, true);
61                                 mresultCollectCopyCounts(rec);
62                 });
63                 req.send();
64
65                 /*              
66                 if( x == (getDisplayCount() + getOffset()) - 1 ) {
67                         G.ui.result.top_div.appendChild(
68                                 G.ui.result.nav_links.cloneNode(true));
69                 }
70                 */
71         }
72 }
73
74 function mresultCollectCopyCounts(rec) {
75         if(rec == null) return;
76         if(rec.doc_id() == null) return;
77
78         var req = new Request(FETCH_MR_COPY_COUNTS, getLocation(), rec.doc_id() );
79         req.callback(function(r){ mresultDisplayCopyCounts(rec, r.getResultObject()); });
80         req.send();
81 }
82
83 function mresultDisplayCopyCounts(rec, copy_counts) {
84         if(copy_counts == null || rec == null) return;
85         var i = 0;
86         while(copy_counts[i] != null) {
87                 var cell = getId("copy_count_cell_" + i +"_" + rec.doc_id());
88                 cell.appendChild(text(copy_counts[i].available + " / " + copy_counts[i].count));
89                 i++;
90         }
91 }
92
93
94