2 var records = new Array();
\r
5 var rresultLimit = 200;
\r
8 var rresultIsPaged = false;
\r
10 function rresultUnload() { removeChildren(table); table = null;}
\r
12 attachEvt("common", "unload", rresultUnload);
\r
13 attachEvt("common", "run", rresultDoSearch);
\r
14 attachEvt("result", "idsReceived", rresultCollectRecords);
\r
15 attachEvt("result", "recordDrawn", rresultLaunchDrawn);
\r
17 hideMe($('copyright_block'));
\r
19 function rresultDoSearch() {
\r
21 swapCanvas($('loading_alt'));
\r
23 table = G.ui.result.main_table;
\r
24 hideMe(G.ui.result.row_template);
\r
25 if( table && table.parentNode ) {
\r
26 while( table.parentNode.rows.length <= (getDisplayCount() +1) )
\r
27 hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
\r
29 rresultCollectIds();
\r
32 function rresultCollectIds() {
\r
35 var rtype = getRtype();
\r
36 if (rtype && rtype.indexOf('|') > -1)
\r
37 rtype = rtype.substring(0,rtype.indexOf('|'));
\r
42 ids = JSON2js(cookieManager.read(COOKIE_RIDS));
\r
43 _rresultHandleIds( ids, ids.length );
\r
51 rresultDoRecordSearch();
\r
55 rresultDoRecordMultiSearch();
\r
59 rresultHandleList();
\r
63 rresultCollectMARCIds();
\r
67 rresultCollectISBNIds();
\r
71 rresultCollectTCNIds();
\r
75 rresultCollectISSNIds();
\r
83 var form = rresultGetForm();
\r
84 var args = { format : form, org : getLocation(), depth : rresultGetDepth() };
\r
86 var lasso = getLasso();
\r
87 if (lasso) args.org = -lasso;
\r
89 var req = new Request(FETCH_RIDS, getMrid(), args);
\r
90 req.callback( rresultHandleRIds );
\r
93 if( rresultGetDepth() != findOrgDepth(globalOrgTree) ) {
\r
94 var link = $('rresult_show_all_link');
\r
96 unHideMe($('rresult_show_all'));
\r
97 link.appendChild( text(
\r
98 findOrgType(globalOrgTree.ou_type()).opac_label()));
\r
102 if( rresultGetDepth() != getDepth() ) { /* inside a limited display */
\r
103 var link = $('rresult_show_here_link');
\r
105 link.appendChild( text(
\r
106 findOrgType(findOrgUnit(getLocation()).ou_type()).opac_label()));
\r
107 unHideMe($('rresult_show_here'));
\r
114 function rresultExpandSearch() {
\r
116 args[PARAM_RDEPTH] = findOrgDepth(globalOrgTree);
\r
117 goTo(buildOPACLink(args));
\r
120 function rresultContractSearch() {
\r
123 args[PARAM_OFFSET] = 0;
\r
124 goTo(buildOPACLink(args));
\r
128 function rresultGetDepth() {
\r
129 if( getRdepth() != null) return getRdepth();
\r
134 function rresultGetForm() {
\r
137 if(getTform()) /* did the user select a format from the icon list (temporary) */
\r
138 form = (getTform() == 'all') ? null : getTform();
\r
139 else /* did the use select a format from simple search dropdown */
\r
140 form = (getForm() == 'all') ? null : getForm();
\r
142 if(!form) { /* did the user select a format from the advanced search */
\r
143 form = getItemType();
\r
144 var f = getItemForm();
\r
147 form = form.replace(/,/,'');
\r
148 if(f) form += '-' + f;
\r
150 if(f) form = '-' + f;
\r
158 function rresultCollectMARCIds() {
\r
161 args.searches = JSON2js(getSearches());
\r
163 args.org_unit = globalOrgTree.id();
\r
166 rresultIsPaged = true;
\r
167 var req = new Request(FETCH_ADV_MARC_MRIDS, args, getDisplayCount(), getOffset());
\r
168 req.callback(rresultHandleRIds);
\r
169 req.request.noretry = true;
\r
174 function rresultCollectISBNIds() {
\r
175 var req = new Request(FETCH_ADV_ISBN_RIDS, getAdvTerm() );
\r
178 var blob = r.getResultObject();
\r
179 _rresultHandleIds(blob.ids, blob.count);
\r
185 function rresultCollectTCNIds() {
\r
186 var req = new Request(FETCH_ADV_TCN_RIDS, getAdvTerm() );
\r
189 var blob = r.getResultObject();
\r
190 _rresultHandleIds(blob.ids, blob.count);
\r
196 function rresultCollectISSNIds() {
\r
197 var req = new Request(FETCH_ADV_ISSN_RIDS, getAdvTerm() );
\r
200 var blob = r.getResultObject();
\r
201 _rresultHandleIds(blob.ids, blob.count);
\r
207 function rresultHandleList() {
\r
208 var ids = new CGI().param(PARAM_RLIST);
\r
210 if(!dojo.isArray(ids)) {
\r
214 count = ids.length;
\r
216 if(ids) _rresultHandleIds(ids, count);
\r
219 var rresultTries = 0;
\r
220 function rresultHandleRIds(r) {
\r
221 var res = r.getResultObject();
\r
223 if(!res) res = {count:0,ids:[]};
\r
225 if( res.count == 0 && rresultTries == 0 && ! r.noretry) {
\r
228 var form = rresultGetForm();
\r
229 var args = { format : form, org : getLocation(), depth : findOrgDepth(globalOrgTree) };
\r
231 var lasso = getLasso();
\r
232 if (lasso) args.org = -lasso;
\r
234 var req = new Request(FETCH_RIDS, getMrid(), args );
\r
235 req.callback( rresultHandleRIds );
\r
237 unHideMe($('no_formats'));
\r
238 hideMe($('rresult_show_all'));
\r
242 _rresultHandleIds(res.ids, res.count);
\r
246 function _rresultHandleIds(ids, count) {
\r
247 //var json = js2JSON({ids:ids,count:count});
\r
249 cookieManager.write(COOKIE_SRIDS, json, '+1d');
\r
252 HITCOUNT = parseInt(count);
\r
253 runEvt('result', 'hitCountReceived');
\r
254 runEvt('result', 'idsReceived', ids, getOffset());
\r
258 function rresultCollectRecords(ids) {
\r
259 runEvt("result", "preCollectRecords");
\r
261 for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {
\r
262 if(ids[i] == null) break;
\r
263 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
\r
264 req.callback(rresultHandleMods);
\r
265 req.request.userdata = x++;
\r
272 function rresultCollectRecords(ids, base) {
\r
273 runEvt("result", "preCollectRecords");
\r
276 if (!base) base = 0;
\r
277 if( rresultIsPaged ) base = 0;
\r
279 for( var i = base; i!= getDisplayCount() + base; i++ ) {
\r
280 if(ids[i] == null) break;
\r
281 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
\r
282 req.callback(rresultHandleMods);
\r
283 req.request.userdata = x++;
\r
288 var recsReceivedCalled = false;
\r
289 function rresultHandleMods(r) {
\r
290 var rec = r.getResultObject();
\r
291 runEvt('result', 'recordReceived', rec, r.userdata, false);
\r
292 resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);
\r
293 if(resultPageIsDone() && !recsReceivedCalled) {
\r
294 recsReceivedCalled = true;
\r
295 runEvt('result', 'allRecordsReceived', recordsCache);
\r
296 unHideMe($('copyright_block'));
\r
300 function rresultLaunchDrawn(id, node) {
\r
301 runEvt("rresult", "recordDrawn", id, node);
\r
305 function rresultDoRecordSearch() {
\r
306 rresultIsPaged = true;
\r
307 resultCollectSearchIds(true, SEARCH_RS_QUERY, rresultFilterSearchResults );
\r
310 function rresultDoRecordMultiSearch() {
\r
311 rresultIsPaged = true;
\r
312 resultCollectSearchIds(false, SEARCH_RS_QUERY, rresultFilterSearchResults );
\r
316 function rresultFilterSearchResults(r) {
\r
317 var result = r.getResultObject();
\r
319 if( result.count > 0 ) {
\r
320 for( var i = 0; i != result.ids.length; i++ )
\r
321 ids.push(result.ids[i][0]);
\r
324 resultFacetKey = result.facet_key;
\r
325 resultCompiledSearch = result.compiled_search;
\r
326 cookieManager.write(COOKIE_SEARCH, js2JSON(result.compiled_search), -1);
\r
327 _rresultHandleIds( ids, result.count );
\r
330 function rresultHandlePlaceHold(target) {
\r
331 function reload() {
\r
332 location.href = location.href.replace(/&hold_target=\d+/, '');
\r
334 attachEvt("common", "holdUpdated", reload);
\r
335 attachEvt("common", "holdUpdateCanceled", reload);
\r
336 attachEvt("common", "loginCanceled", reload);
\r
337 holdsDrawEditor({record:target, type: 'T'});
\r