source: trunk/gsdl/macros/query.dm@ 3807

Last change on this file since 3807 was 3775, checked in by sjboddie, 21 years ago

Added "title" attributes to img tags so that modern browsers display
tooltips as intended (previously we relied on the "alt" attribute which
doesn't display tooltips for netscape6/mozilla etc.).

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 17.6 KB
Line 
1package query
2
3
4#######################################################################
5# Macros whose values are set from within the server at runtime. These
6# are here only for reference and to set default values if required.
7#######################################################################
8
9_quotedquery_ {}
10_freqmsg_ {}
11_resultline_ {}
12_thisfirst_ {}
13_thislast_ {}
14_nextfirst_ {}
15_nextlast_ {}
16_prevfirst_ {}
17_prevlast_ {}
18_searchhistorylist_ {}
19#_histvalue0_ to _histvalue19_
20_advformlist_ {}
21_regformlist_ {}
22_fqfselection_ {}
23
24
25#######################################################################
26# icons
27#######################################################################
28
29_iconthispage_ {<img src="_httpiconhsearch_" alt="_texticonthispage_" title="_texticonthispage_" width="_widthhsearch_" height="_heighthsearch_">}
30_iconthispage_ [v=1] {<h2>_texticonthispage_</h2>}
31
32_iconqueryresultsbar_ {<img src="_httpiconqryresb_" width="_widthqryresb_" height="_heightqryresb_" alt="_texticonqueryresultsbar_" title="_texticonqueryresultsbar_">}
33_iconqueryresultsbar_[v=1] {_texticonqueryresultsbar_}
34
35_iconsearchhistorybar_ {<img src="_httpiconsrchhistb_" width="_widthsrchhistb_" height="_heightsrchhistb_" alt="_texticonsearchhistorybar_" title="_texticonsearchhistorybar_">}
36_iconsearchhistorybar_[v=1] {_texticonsearchhistorybar_}
37
38# _iconnext_ and _iconprev_ are overridden in this package as we
39# don't want alt text here
40_iconnext_{<img src="_httpiconmore_" width=_widthmore_ height=_heightmore_ border=0 align=top>}
41_iconnext_ [v=1] {}
42_iconprev_{<img src="_httpiconless_" width=_widthless_ height=_heightless_ border=0 align=top>}
43_iconprev_ [v=1] {}
44
45# the small squares for search history
46## " " ## handmade ## mstds ##
47_httpiconmstdsqrof_ {_httpimg_/mstdsof.gif}
48_httpiconmstdsqron_ {_httpimg_/mstdson.gif}
49_widthmstdsqrx_ {13}
50_heightmstdsqrx_ {13}
51
52#######################################################################
53# images
54#######################################################################
55
56_imagethispage_ {_iconthispage_}
57
58#the buttons for the search history entries
59# takes one arg - the entry number (0-num entries)
60_imagehistbutton_ {<a href="_httpquery_" onMouseover="roll('histbutton_1_',1);" onMouseOut="roll('histbutton_1_',0);" onClick="inputQuery(histvalue_1_); return false;"><img name="histbutton_1_" src="_httpiconmstdsqrof_" onLoad="gbutton(this,'_httpiconmstdsqron_');" border=0 alt="_textusequery_" title="_textusequery_"></a>}
61
62
63#######################################################################
64# scripts (and some macros for the scripts)
65#######################################################################
66
67_pagescriptextra_ {_If_("_cgiargct_" eq "1" && "_cgiargqt_" eq "1",_formpagescriptextra_,_dummypagescriptextra_)
68_If_("_cgiarghd_" ne "0",_historypagescriptextra_) }
69
70_dummypagescriptextra_{
71function initialize() \{
72\}
73}
74_formpagescriptextra_ {
75// query scripts generated by \_query:pagescriptextra\_
76
77_standardfunctions_
78_formfunctions_
79_searchfunctions_
80
81function getsearchargs () \{
82
83 var args="";
84 args = "&fqa=0&fqv="+argfqv+"&fqf="+argfqf;
85 _If_(_cgiargb_,args += "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc;)
86
87 return args;
88\}
89
90
91
92function getqueryargs () \{
93 return "&fqa=1"+"&q="+argq+"&fqv="+argfqv+"&fqf="+argfqf+
94 "&fqk="+argfqk+"&fqs="+argfqs+"&fqc="+argfqc ;
95\}
96
97}
98
99_historypagescriptextra_{
100
101var histvalue0='_histvalue0_';
102var histvalue1='_histvalue1_';
103var histvalue2='_histvalue2_';
104var histvalue3='_histvalue3_';
105var histvalue4='_histvalue4_';
106var histvalue5='_histvalue5_';
107var histvalue6='_histvalue6_';
108var histvalue7='_histvalue7_';
109var histvalue8='_histvalue8_';
110var histvalue9='_histvalue9_';
111var histvalue10='_histvalue10_';
112var histvalue11='_histvalue11_';
113var histvalue12='_histvalue12_';
114var histvalue13='_histvalue13_';
115var histvalue14='_histvalue14_';
116var histvalue15='_histvalue15_';
117var histvalue16='_histvalue16_';
118var histvalue17='_histvalue17_';
119var histvalue18='_histvalue18_';
120var histvalue19='_histvalue19_';
121
122function inputQuery(value) \{
123 if ("_cgiargqt_" == "0") \{ // text search
124 document.QueryForm.q.value += " "+value;
125 \}
126 else \{
127 if ("_cgiargb_" == "1") \{ // advanced query
128 document.QueryForm.q.value += " "+value;
129 updateq();
130 \}
131 else \{ // simple form search
132 // do something here, what??
133 \}
134 \}
135\}
136
137}
138
139_standardfunctions_{
140
141 function getstdargs() \{
142
143 stdarg = "";
144 _If_(_cgiargh_,_getharg_)
145 _If_(_gselection_,_getgarg_)
146 _If_(_cgiargj_,_getjarg_)
147
148 value = document.QueryForm.t.options[document.QueryForm.t.selectedIndex].value;
149 if (value != "_cgiargt_") stdarg += "&t="+value;
150
151 stdarg += "&r=1&hs=1";
152 return stdarg;
153 \}
154
155}
156
157#some macros to go with getstdargs()
158_getharg_{
159 value = document.QueryForm.h.options[document.QueryForm.h.selectedIndex].value;
160 if (value != "_cgiargh_") stdarg += "&h="+value;
161}
162
163_getgarg_{
164 value = document.QueryForm.g.options[document.QueryForm.g.selectedIndex].value;
165 if (value != "_cgiargg_") stdarg += "&g="+value;
166}
167
168_getjarg_{
169 value = document.QueryForm.j.options[document.QueryForm.j.selectedIndex].value;
170 if (value != "_cgiargj_") stdarg += "&j="+value;
171}
172
173
174_formfunctions_{
175
176argfqf="_cgiargfqf_";
177argfqv="_cgiargfqv_";
178argfqk="_cgiargfqk_";
179argfqs="_cgiargfqs_";
180argfqc="_cgiargfqc_";
181argq = "";
182
183function initialize () \{
184
185 if (document.QueryForm.fqf != null) \{initfqf();\}
186 initfqv();
187 if ( "_cgiargb_" == "1") \{
188 initfqs();
189 initfqk();
190 initfqc();
191 initq();
192 \}
193
194\}
195
196// fqf - the field selection box
197function initfqf() \{
198 var i;
199 fqf = argfqf.split(",");
200 for (i=0; i<fqf.length; i++) \{
201 for (j=0;j<document.QueryForm.fqf[i].options.length;j++) \{
202 if (fqf[i] != "" && fqf[i]== document.QueryForm.fqf[i].options[j].value) \{
203 document.QueryForm.fqf[i].options[j].selected = true;
204 break;
205 \}
206 \}
207 \}
208 if (fqf.length < document.QueryForm.fqf.length) \{ // initialize remaining ones
209 var v=1; // the option with a null value is either at place 1 or 2
210 if (document.QueryForm.fqf[0].options[v].value !="") v++;
211 for (i=fqf.length;i<document.QueryForm.fqf.length;i++) \{
212 var z=i;
213 while (z >= document.QueryForm.fqf[i].options.length-1) \{
214 z = z-(document.QueryForm.fqf[i].options.length-1);
215 \}
216 if (z>=v)z++; // skip over the void value
217
218 document.QueryForm.fqf[i].options[z].selected = true;
219
220 \}
221 \}
222 updatefqf();
223
224\}
225
226function updatefqf() \{
227
228 var i;
229 argfqf = "";
230 var j = document.QueryForm.fqf[0].selectedIndex;
231 argfqf += document.QueryForm.fqf[0].options[j].value;
232 for (i=1; i<document.QueryForm.fqf.length;i++) \{
233 j = document.QueryForm.fqf[i].selectedIndex;
234 argfqf += "," + document.QueryForm.fqf[i].options[j].value;
235 \}
236
237\}
238
239
240function clearfqf() \{
241 var i;
242 for (i=0;i<document.QueryForm.fqf.length;i++) \{
243 var z = i;
244 if (i >= document.QueryForm.fqf[i].options.length) z = z-document.QueryForm.fqf[i].options.length;
245 document.QueryForm.fqf[i].options[z].selected = true;
246 \}
247 updatefqf();
248\}
249
250// fqc - the boolean operator selection box
251function initfqc() \{
252 var i,j;
253 fqc = argfqc.split(",");
254 if (_cgiargfqn_ == 2) \{ // there will only be one fqc element
255 for (j=0;j<document.QueryForm.fqc.options.length;j++) \{
256 if (fqc[0] == document.QueryForm.fqc.options[j].value) \{
257 document.QueryForm.fqc.options[j].selected = true;
258 break;
259 \}
260 \}
261 \}
262 else \{
263 for (i=0; i<fqc.length;i++) \{
264 for (j=0;j<document.QueryForm.fqc[i].options.length;j++) \{
265 if (fqc[i] == document.QueryForm.fqc[i].options[j].value) \{
266 document.QueryForm.fqc[i].options[j].selected = true;
267 break;
268 \}
269 \}
270 \}
271 \}
272 updatefqc();
273
274\}
275
276function updatefqc() \{
277
278 var i,j;
279 argfqc = "";
280 if (_cgiargfqn_ == 2) \{
281 j = document.QueryForm.fqc.selectedIndex;
282 argfqc += document.QueryForm.fqc.options[j].value;
283 \}
284 else \{
285 j = document.QueryForm.fqc[0].selectedIndex;
286 argfqc += document.QueryForm.fqc[0].options[j].value;
287 for (i=1;i<document.QueryForm.fqc.length;i++) \{
288 j = document.QueryForm.fqc[i].selectedIndex;
289 argfqc += "," + document.QueryForm.fqc[i].options[j].value;
290 \}
291 \}
292
293\}
294
295
296function clearfqc() \{
297
298 var i;
299 if (_cgiargfqn_ == 2) \{
300 document.QueryForm.fqc.options[0].selected = true;
301 \}
302 else \{
303 for (i=0; i<document.QueryForm.fqc.length; i++) \{
304 document.QueryForm.fqc[i].options[0].selected = true;
305 \}
306 \}
307 updatefqc();
308\}
309
310// fqv - the query word/phrase text box
311function initfqv() \{
312
313 var i;
314 fqv= argfqv.split(",");
315 for (i=0; i<fqv.length; i++) \{
316 document.QueryForm.fqv[i].value = fqv[i];
317 \}
318 updatefqv();
319
320
321\}
322
323
324function updatefqv() \{
325
326 var i;
327 argfqv="";
328 argfqv += escape(format(document.QueryForm.fqv[0].value));
329 for (i=1; i<document.QueryForm.fqv.length;i++) \{
330 argfqv += ",";
331 argfqv += escape(format(document.QueryForm.fqv[i].value));
332 \}
333\}
334
335function clearfqv() \{
336 var i;
337 for (i=0; i< document.QueryForm.fqv.length;i++) \{
338 document.QueryForm.fqv[i].value = "";
339 \}
340 updatefqv();
341\}
342
343// fqs - the stemming checkboxes
344function initfqs() \{
345
346 var i;
347 fqs = argfqs.split(",");
348 for (i=0; i<fqs.length; i++) \{
349 if (fqs[i]=="1") \{
350 document.QueryForm.fqs[i].checked = true;
351 \}
352 \}
353 updatefqs();
354
355\}
356
357function updatefqs() \{
358 argfqs="";
359 if (document.QueryForm.fqs[0].checked) \{
360 argfqs += "1";
361 \}
362 else \{
363 argfqs += "0";
364 \}
365 var i;
366 for (i=1; i<document.QueryForm.fqs.length; i++) \{
367 if (document.QueryForm.fqs[i].checked) \{
368 argfqs += ",1";
369 \}
370 else \{
371 argfqs += ",0";
372 \}
373 \}
374\}
375
376
377function clearfqs() \{
378 var i;
379 for (i=0; i<document.QueryForm.fqs.length; i++) \{
380 document.QueryForm.fqs[i].checked = false;
381 \}
382 updatefqs();
383\}
384
385// kqk - the casefolding checkboxes
386function initfqk() \{
387 var i;
388 fqk = argfqk.split(",");
389 for (i=0; i<fqk.length; i++) \{
390 if (fqk[i]=="1") \{
391 document.QueryForm.fqk[i].checked = true;
392 \}
393 \}
394 updatefqk();
395
396\}
397
398
399function updatefqk() \{
400 argfqk="";
401 if (document.QueryForm.fqk[0].checked) \{
402 argfqk += "1";
403 \}
404 else \{
405 argfqk += "0";
406 \}
407 var i;
408 for (i=1; i<document.QueryForm.fqk.length; i++) \{
409 if (document.QueryForm.fqk[i].checked) \{
410 argfqk += ",1";
411 \}
412 else \{
413 argfqk += ",0";
414 \}
415 \}
416\}
417
418function clearfqk() \{
419 var i;
420 for (i=0; i<document.QueryForm.fqk.length; i++) \{
421 document.QueryForm.fqk[i].checked = false;
422 \}
423 updatefqk();
424\}
425
426// q - the advanced query box
427function initq() \{
428 updateq();
429\}
430
431function updateq() \{
432 argq = "";
433 argq += escape(document.QueryForm.q.value);
434\}
435
436function clearq() \{
437 document.QueryForm.q.value="";
438\}
439
440
441// convert commas and spaces to plus
442function format(string) \{
443 var str = "" + string;
444 var out = "", flag = 0;
445 var j;
446 for (j = 0; j < str.length; j++) \{
447 if (str.charAt(j) == " "|| str.charAt(j) == ",") \{
448 if ( flag == 0) \{
449 out += "+";
450 flag=1;
451 \}
452 \}
453 else \{
454 out += str.charAt(j);
455 flag=0;
456 \}
457 \}
458 return out;
459\}
460
461}
462
463#_httpquery_ has a=q&e=compressedargs
464#if adv form, need to set k=0 and s=0
465_advformargs_{_If_(_cgiargb_,&k=0&s=0)}
466
467_searchfunctions_ {
468
469function beginSearch() \{
470window.location="_httpquery_"+getstdargs()+"_advformargs_"+getsearchargs();
471\}
472
473function runQuery() \{
474window.location="_httpquery_"+getstdargs()+"_advformargs_"+getqueryargs();
475\}
476
477function clearForm() \{
478 clearfqf();
479 clearfqv();
480
481 if ("_cgiargb_" == "1") \{
482 clearfqk();
483 clearfqs();
484 clearfqc();
485 \}
486
487\}
488
489}
490
491#######################################################################
492# headers
493# these are overridden so we can put an onLoad event handler
494# in the <body> tag of this page - for mgpp, form search pages
495#######################################################################
496
497#copied from prefs
498
499_header_ {_cgihead_
500_htmlhead_(background="_httpiconchalk_" onLoad="initialize();")_startspacer__pagebanner_
501}
502
503# this declaration ends up being the same as style=restrict, never mind
504_header_[v=1] {_cgihead_
505_htmlhead_(onLoad="initialize();")_pagebanner_
506}
507
508#######################################################################
509# page content
510#######################################################################
511
512
513_pagetitle_ {_If_(_cgiargq_,_textquerytitle_,_textnoquerytitle_)}
514
515
516_content_ {
517<center>
518_navigationbar_
519</center>
520<center>
521_If_(_cgiargct_,_selectqueryform_,_queryform_)
522</center>
523_If_(_searchhistorylist_,<center>_iconsearchhistorybar_</center><br>
524<center>
525_searchhistorylist_
526</center>)
527_If_(_cgiargq_,<center>_iconqueryresultsbar_</center><br>
528<small>
529_freqmsg_
530_textpostprocess_</small><br>
531_resultline_
532,<center>_iconblankbar_</center>)<br>
533}
534
535_selectqueryform_{_If_(_cgiargqt_,_fieldqueryform_,_queryform_)}
536
537_queryform_ {
538<!-- query form (\_query:queryform\_) -->
539<form name=QueryForm method=get action="_gwcgi_">
540
541<input type=hidden name="a" value="q">
542<input type=hidden name="r" value="1">
543<input type=hidden name="hs" value="1">
544<input type=hidden name="e" value="_decodedcompressedoptions_">
545_queryformcontent_
546
547</form>
548<!-- end of query form -->
549}
550
551_queryformcontent_{_basicqueryform_}
552
553_basicqueryform_ {<table><tr><td>
554<nobr>_textselect_</nobr>
555</td></tr>
556<tr><td>
557_If_(_cgiargqb_,_largequerybox_,_smallquerybox_)
558</td></tr></table>
559}
560
561_datesearch_
562{<table><tr><td>
563 <center>
564_textstartdate_
565<input type="text" name="ds" value = "_cgiargds_"size="4" maxlength="4">
566<select name="dsbc" value="_cgiargdsbc_" size="1">
567 <option value = "0"_If_(_cgiargdsbc_,, selected)>_textad_
568 <option value = "1"_If_(_cgiargdsbc_, selected)>_textbc_
569</select>
570_textenddate_
571<input type="text" name="de" value = "_cgiargde_" size="4" maxlength="4">
572<select name="debc" size="1">
573 <option value = "0" _If_(_cgiargdebc_,, selected)>_textad_
574 <option value = "1" _If_(_cgiargdebc_, selected)>_textbc_
575</select>
576</center>
577</tr></td>
578<tr><td>
579_textexplaineras_
580</tr></td>
581</table>
582</center>
583}
584
585_smallquerybox_ {<tr><td><nobr><input type="text" name="q" value="_cgiargq_" size="50">
586<input type="submit" value="_textbeginsearch_"></nobr>}
587
588_largequerybox_ {
589<tr><td><textarea name="q" cols=63 rows=10>
590_cgiargq_
591</textarea></td></tr>
592<tr align=right><td><table>
593<tr><td><input type="submit" value="_textbeginsearch_"></td>
594</tr></table></td></tr>}
595
596
597_fieldqueryform_ {
598<!-- field query form (\_query:fieldqueryform\_) -->
599<form name=QueryForm method=get action="_gwcgi_">
600<table><tr><td>
601<nobr>
602_textformselect_
603</nobr>
604</td></tr>
605_If_(_cgiargb_,_advancedforms_,_simpleforms_)
606</table>
607_If_(_cgiargb_,<center>_iconblankbar_</center><br>
608<center>_advancedformextra_</center>)
609</form>
610<!-- end of query form -->
611}
612
613_advancedforms_{
614<tr><td><center> <table border=0 cellspacing=0 cellpadding=0 width="90%">
615<tr><th></th><th align=left>_textwordphrase_</th><th colspan=2><nobr>_textfoldstem_</nobr></th><th align=center>&nbsp;&nbsp;_textinfield_</th></tr>
616_advformlist_
617<tr><td colspan=2><input type=button value="_textclearform_" onClick="clearForm();"></td>
618<td colspan=3><table>
619<tr><td><input type=button value="_textbeginsearch_" onClick="beginSearch();"></td>
620</tr></table></td></tr>
621</table></td></tr>
622}
623
624_advancedformextra_{
625<table>
626<tr><td>_textadvquery_</td></tr>
627<tr><td><textarea name=q cols=57 rows=3 onChange="updateq();">_cgiargq_</textarea></td>
628<td valign=bottom>
629<input type="button" value="_textrunquery_" onClick="runQuery();"></td></tr>
630</table>
631}
632
633_simpleforms_{
634<tr><td><center> <table border=0 cellspacing=0 cellpadding=0 width="90%">
635<tr><th align=left>_textwordphrase_</th><th align=left>&nbsp;&nbsp;_textinfield_</th></tr>
636_regformlist_
637<tr><td><input type=button value="_textclearform_" onClick="clearForm();"></td>
638<td><table>
639<tr><td><input type=button value="_textbeginsearch_" onClick="beginSearch();"></td>
640</tr>
641</table></td></tr>
642</table></td></tr>}
643
644_regformelement_{
645<td><input type=text size=39 name="fqv" onChange="updatefqv();"></td>
646<td>_fqfselection_</td>}
647
648#has no and/or/not selection box
649_firstadvformelement_{
650<td></td><td><input type=text size=31 name="fqv" onChange="updatefqv();"></td>
651<td align=center><input type=checkbox name="fqk" onClick="updatefqk();""></td>
652<td align-center><input type=checkbox name="fqs" onClick="updatefqs();"></td>
653<td align=right>_fqfselection_</td>}
654
655_advformelement_{
656<td>_fqcselection_</td>
657<td><input type=text size=31 name="fqv" onChange="updatefqv();"></td>
658<td align=center><input type=checkbox name="fqk" onClick="updatefqk();"></td>
659<td align-center><input type=checkbox name="fqs" onClick="updatefqs();"></td>
660<td align=right>_fqfselection_</td>}
661
662_fqcselection_ {
663<select name="fqc" onChange="updatefqc();">
664<option value="and">_textand_
665<option value="or">_textor_
666<option value="not">_textandnot_
667</select>}
668
669_textselect_ {_If_(_cgiargb_,_textadvancedsearch_,_textsimplesearch_)}
670_textformselect_ {_If_(_cgiargb_,_textformadvancedsearch_,_textformsimplesearch_)}
671
672_ZZ_{_textallfields_}
673
674# we want to put the links to previous/next pages of results
675# in the footer
676_pagefooterextra_ {
677<center>
678<table cellspacing=0 cellpadding=0 width=_pagewidth_>
679<tr>
680<td align=left>_If_(_prevfirst_,<a href="_httpquery_&r=_prevfirst_">_iconprev__textmatches__prevfirst_ - _prevlast_</a>)</td>
681<td align=right>_If_(_nextfirst_,<a href="_httpquery_&r=_nextfirst_">_textmatches__nextfirst_ - _nextlast__iconnext_</a>)</td>
682</tr></table>
683</center>
684}
685
686_querytypeselection_ {
687<select name="t">
688<option value="1"_If_(_cgiargt_, selected)>_textsome_
689<option value="0"_If_(_cgiargt_,, selected)>_textall_
690</select>
691}
692
693_formquerytypeselection_ {
694<select name="t">
695<option value="1"_If_(_cgiargt_, selected)>_textformsome_
696<option value="0"_If_(_cgiargt_,, selected)>_textformall_
697</select>
698}
699
700
Note: See TracBrowser for help on using the repository browser.