]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/opac/skin/default/js/rresult.js
added 'dbg' url param to turn on debugging, in particular this enables request debugging
[Evergreen.git] / Open-ILS / web / opac / skin / default / js / rresult.js
1 var records = new Array();
2 var table;
3 var rowtemplate;
4 var rresultLimit = 200;
5
6 function rresultUnload() { removeChildren(table); table = null;}
7
8 attachEvt("common", "unload", rresultUnload);
9 attachEvt("common", "run", rresultDoSearch);
10 attachEvt("result", "idsReceived", rresultCollectRecords); 
11 attachEvt("result", "recordDrawn", rresultLaunchDrawn); 
12
13 function rresultDoSearch() {
14         table = G.ui.result.main_table;
15         hideMe(G.ui.result.row_template);
16         while( table.parentNode.rows.length <= (getDisplayCount() +1) ) 
17                 hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
18         rresultCollectIds();
19 }
20
21 function rresultCollectIds() {
22         var ids;
23         switch(getRtype()) {
24
25                 case RTYPE_COOKIE:
26                         ids = JSON2js(cookieManager.read(COOKIE_RIDS));
27                         _rresultHandleIds( ids, ids.length );
28                         break;
29
30                 case RTYPE_TITLE:
31                 case RTYPE_AUTHOR:
32                 case RTYPE_SUBJECT:
33                 case RTYPE_SERIES:
34                 case RTYPE_KEYWORD:
35                         rresultDoRecordSearch();
36                         break;
37
38                 case RTYPE_LIST :
39                         rresultHandleList();
40                         break;
41
42                 case RTYPE_MRID :
43                 defaut:
44                         var form = (getForm() == "all") ? null : getForm();
45                         var req = new Request(FETCH_RIDS, getMrid(), form );
46                         req.callback( rresultHandleRIds );
47                         req.send();
48         }
49 }
50
51 function rresultHandleList() {
52         var ids = new CGI().param(PARAM_RLIST);
53         if(ids) _rresultHandleIds(ids, ids.length);
54 }
55
56 function rresultHandleRIds(r) {
57         var res = r.getResultObject();
58         _rresultHandleIds(res.ids, res.count);
59 }
60
61 function _rresultHandleIds(ids, count) {
62         HITCOUNT = parseInt(count);
63         runEvt('result', 'hitCountReceived');
64         runEvt('result', 'idsReceived', ids);
65 }
66
67 function rresultCollectRecords(ids) {
68         runEvt("result", "preCollectRecords");
69         var x = 0;
70         for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {
71                 if(ids[i] == null) break;
72                 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
73                 req.callback(rresultHandleMods);
74                 req.request.userdata = x++;
75                 req.send();
76         }
77 }
78
79 function rresultHandleMods(r) {
80         var rec = r.getResultObject();
81         runEvt('result', 'recordReceived', rec, r.userdata, false);
82         resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);
83         if(resultPageIsDone())  
84                 runEvt('result', 'allRecordsReceived', recordsCache);
85 }
86
87
88 function rresultLaunchDrawn(id, node) {
89         runEvt("rresult", "recordDrawn", id, node);
90 }
91
92
93 function rresultDoRecordSearch() {
94
95         var form                = (!getForm() || getForm() == "all") ? null : getForm();
96         var sort                = (getSort() == SORT_TYPE_REL) ? null : getSort(); 
97         var sortdir = (sort) ? ((getSortDir()) ? getSortDir() : SORT_DIR_ASC) : null;
98
99         var req = new Request(FETCH_SEARCH_RIDS, getRtype(), 
100                 {       term            : getTerm(), 
101                         sort            : sort,
102                         sort_dir        : sortdir,
103                         org_unit : getLocation(),
104                         depth           : getDepth(),
105                         limit           : rresultLimit,
106                         offset  : getOffset(),
107                         format  : form } );
108
109         req.callback(rresultFilterSearchResults);
110         req.send();
111 }
112
113 function rresultFilterSearchResults(r) {
114         var result = r.getResultObject();
115         var ids = [];
116         for( var i = 0; i != result.ids.length; i++ ) 
117                 ids.push(result.ids[i][0]);
118         _rresultHandleIds( ids, result.count );
119 }
120
121