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

Last change on this file since 2173 was 2042, checked in by sjboddie, 23 years ago

Renamed some image files that had been added with bad file names (bad if
you're trying to use win3.1 anyway).

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 16.5 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_" width="_widthhsearch_" height="_heighthsearch_">}
30_iconthispage_ [v=1] {<h2>_texticonthispage_</h2>}
31
32_iconqueryresultsbar_ {<img src="_httpiconqryresb_" width="_widthqryresb_" height="_heightqryresb_" alt="_texticonqueryresultsbar_">}
33_iconqueryresultsbar_[v=1] {_texticonqueryresultsbar_}
34
35_iconsearchhistorybar_ {<img src="_httpiconsrchhistb_" width="_widthsrchhistb_" height="_heightsrchhistb_" alt="_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_"></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_(_cgiargg_,_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 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] == 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 for (i=fqf.length;i<document.QueryForm.fqf.length;i++) \{
210 var z=i;
211 if (i >= document.QueryForm.fqf[i].options.length)
212 z = z-document.QueryForm.fqf[i].options.length;
213
214 document.QueryForm.fqf[i].options[z].selected = true;
215
216 \}
217 \}
218 updatefqf();
219
220\}
221
222function updatefqf() \{
223
224 var i;
225 argfqf = "";
226 var j = document.QueryForm.fqf[0].selectedIndex;
227 argfqf += document.QueryForm.fqf[0].options[j].value;
228 for (i=1; i<document.QueryForm.fqf.length;i++) \{
229 j = document.QueryForm.fqf[i].selectedIndex;
230 argfqf += "," + document.QueryForm.fqf[i].options[j].value;
231 \}
232
233\}
234
235
236function clearfqf() \{
237 var i;
238 for (i=0;i<document.QueryForm.fqf.length;i++) \{
239 var z = i;
240 if (i >= document.QueryForm.fqf[i].options.length) z = z-document.QueryForm.fqf[i].options.length;
241 document.QueryForm.fqf[i].options[z].selected = true;
242 \}
243 updatefqf();
244\}
245
246// fqc - the boolean operator selection box
247function initfqc() \{
248 var i,j;
249 fqc = argfqc.split(",");
250 if (_cgiargfqn_ == 2) \{ // there will only be one fqc element
251 for (j=0;j<document.QueryForm.fqc.options.length;j++) \{
252 if (fqc[0] == document.QueryForm.fqc.options[j].value) \{
253 document.QueryForm.fqc.options[j].selected = true;
254 break;
255 \}
256 \}
257 \}
258 else \{
259 for (i=0; i<fqc.length;i++) \{
260 for (j=0;j<document.QueryForm.fqc[i].options.length;j++) \{
261 if (fqc[i] == document.QueryForm.fqc[i].options[j].value) \{
262 document.QueryForm.fqc[i].options[j].selected = true;
263 break;
264 \}
265 \}
266 \}
267 \}
268 updatefqc();
269
270\}
271
272function updatefqc() \{
273
274 var i,j;
275 argfqc = "";
276 if (_cgiargfqn_ == 2) \{
277 j = document.QueryForm.fqc.selectedIndex;
278 argfqc += document.QueryForm.fqc.options[j].value;
279 \}
280 else \{
281 j = document.QueryForm.fqc[0].selectedIndex;
282 argfqc += document.QueryForm.fqc[0].options[j].value;
283 for (i=1;i<document.QueryForm.fqc.length;i++) \{
284 j = document.QueryForm.fqc[i].selectedIndex;
285 argfqc += "," + document.QueryForm.fqc[i].options[j].value;
286 \}
287 \}
288
289\}
290
291
292function clearfqc() \{
293
294 var i;
295 if (_cgiargfqn_ == 2) \{
296 document.QueryForm.fqc.options[0].selected = true;
297 \}
298 else \{
299 for (i=0; i<document.QueryForm.fqc.length; i++) \{
300 document.QueryForm.fqc[i].options[0].selected = true;
301 \}
302 \}
303 updatefqc();
304\}
305
306// fqv - the query word/phrase text box
307function initfqv() \{
308
309 var i;
310 fqv= argfqv.split(",");
311 for (i=0; i<fqv.length; i++) \{
312 document.QueryForm.fqv[i].value = fqv[i];
313 \}
314 updatefqv();
315
316
317\}
318
319
320function updatefqv() \{
321
322 var i;
323 argfqv="";
324 argfqv += escape(format(document.QueryForm.fqv[0].value));
325 for (i=1; i<document.QueryForm.fqv.length;i++) \{
326 argfqv += ",";
327 argfqv += escape(format(document.QueryForm.fqv[i].value));
328 \}
329\}
330
331function clearfqv() \{
332 var i;
333 for (i=0; i< document.QueryForm.fqv.length;i++) \{
334 document.QueryForm.fqv[i].value = "";
335 \}
336 updatefqv();
337\}
338
339// fqs - the stemming checkboxes
340function initfqs() \{
341
342 var i;
343 fqs = argfqs.split(",");
344 for (i=0; i<fqs.length; i++) \{
345 if (fqs[i]=="1") \{
346 document.QueryForm.fqs[i].checked = true;
347 \}
348 \}
349 updatefqs();
350
351\}
352
353function updatefqs() \{
354 argfqs="";
355 if (document.QueryForm.fqs[0].checked) \{
356 argfqs += "1";
357 \}
358 else \{
359 argfqs += "0";
360 \}
361 var i;
362 for (i=1; i<document.QueryForm.fqs.length; i++) \{
363 if (document.QueryForm.fqs[i].checked) \{
364 argfqs += ",1";
365 \}
366 else \{
367 argfqs += ",0";
368 \}
369 \}
370\}
371
372
373function clearfqs() \{
374 var i;
375 for (i=0; i<document.QueryForm.fqs.length; i++) \{
376 document.QueryForm.fqs[i].checked = false;
377 \}
378 updatefqs();
379\}
380
381// kqk - the casefolding checkboxes
382function initfqk() \{
383 var i;
384 fqk = argfqk.split(",");
385 for (i=0; i<fqk.length; i++) \{
386 if (fqk[i]=="1") \{
387 document.QueryForm.fqk[i].checked = true;
388 \}
389 \}
390 updatefqk();
391
392\}
393
394
395function updatefqk() \{
396 argfqk="";
397 if (document.QueryForm.fqk[0].checked) \{
398 argfqk += "1";
399 \}
400 else \{
401 argfqk += "0";
402 \}
403 var i;
404 for (i=1; i<document.QueryForm.fqk.length; i++) \{
405 if (document.QueryForm.fqk[i].checked) \{
406 argfqk += ",1";
407 \}
408 else \{
409 argfqk += ",0";
410 \}
411 \}
412\}
413
414function clearfqk() \{
415 var i;
416 for (i=0; i<document.QueryForm.fqk.length; i++) \{
417 document.QueryForm.fqk[i].checked = false;
418 \}
419 updatefqk();
420\}
421
422// q - the advanced query box
423function initq() \{
424 updateq();
425\}
426
427function updateq() \{
428 argq = "";
429 argq += escape(document.QueryForm.q.value);
430\}
431
432function clearq() \{
433 document.QueryForm.q.value="";
434\}
435
436
437// convert commas and spaces to plus
438function format(string) \{
439 var str = "" + string;
440 var out = "", flag = 0;
441 var j;
442 for (j = 0; j < str.length; j++) \{
443 if (str.charAt(j) == " "|| str.charAt(j) == ",") \{
444 if ( flag == 0) \{
445 out += "+";
446 flag=1;
447 \}
448 \}
449 else \{
450 out += str.charAt(j);
451 flag=0;
452 \}
453 \}
454 return out;
455\}
456
457}
458
459#_httpquery_ has a=q&e=compressedargs
460#if adv form, need to set k=0 and s=0
461_advformargs_{_If_(_cgiargb_,&k=0&s=0)}
462
463_searchfunctions_ {
464
465function beginSearch() \{
466window.location="_httpquery_"+getstdargs()+"_advformargs_"+getsearchargs();
467\}
468
469function runQuery() \{
470window.location="_httpquery_"+getstdargs()+"_advformargs_"+getqueryargs();
471\}
472
473function clearForm() \{
474 clearfqf();
475 clearfqv();
476
477 if ("_cgiargb_" == "1") \{
478 clearfqk();
479 clearfqs();
480 clearfqc();
481 \}
482
483\}
484
485}
486
487#######################################################################
488# headers
489# these are overridden so we can put an onLoad event handler
490# in the <body> tag of this page - for mgpp, form search pages
491#######################################################################
492
493#copied from prefs
494
495_header_ {_cgihead_
496_htmlhead_(background="_httpiconchalk_" onLoad="initialize();")_startspacer__pagebanner_
497}
498
499# this declaration ends up being the same as style=restrict, never mind
500_header_[v=1] {_cgihead_
501_htmlhead_(onLoad="initialize();")_pagebanner_
502}
503
504#######################################################################
505# page content
506#######################################################################
507
508
509_pagetitle_ {_If_(_cgiargq_,_textquerytitle_,_textnoquerytitle_)}
510
511
512_content_ {
513<center>
514_navigationbar_
515</center>
516<center>
517_If_(_cgiargct_,_selectqueryform_,_queryform_)
518</center>
519_If_(_searchhistorylist_,<center>_iconsearchhistorybar_</center><br>
520<center>
521_searchhistorylist_
522</center>)
523_If_(_cgiargq_,<center>_iconqueryresultsbar_</center><br>
524<small>
525_freqmsg_
526_textpostprocess_</small><br>
527_resultline_
528,<center>_iconblankbar_</center>)<br>
529}
530
531_selectqueryform_{_If_(_cgiargqt_,_fieldqueryform_,_queryform_)}
532
533_queryform_ {
534<!-- query form (\_query:queryform\_) -->
535<form name=QueryForm method=get action="_gwcgi_">
536
537<input type=hidden name="a" value="q">
538<input type=hidden name="r" value="1">
539<input type=hidden name="hs" value="1">
540<input type=hidden name="e" value="_decodedcompressedoptions_">
541
542<table><tr><td>
543<nobr>_textselect_</nobr>
544</td></tr>
545<tr><td>
546_If_(_cgiargqb_,_largequerybox_,_smallquerybox_)
547</td></tr></table>
548</form>
549<!-- end of query form -->
550}
551
552_smallquerybox_ {<tr><td><nobr><input type="text" name="q" value="_cgiargq_" size="50">
553<input type="submit" value="_textbeginsearch_"></nobr>}
554
555_largequerybox_ {
556<tr><td><textarea name="q" cols=63 rows=10>
557_cgiargq_
558</textarea></td></tr>
559<tr align=right><td><table>
560<tr><td><input type="submit" value="_textbeginsearch_"></td>
561</tr></table></td></tr>}
562
563
564_fieldqueryform_ {
565<!-- field query form (\_query:fieldqueryform\_) -->
566<form name=QueryForm method=get action="_gwcgi_">
567<table><tr><td>
568<nobr>
569_textformselect_
570</nobr>
571</td></tr>
572_If_(_cgiargb_,_advancedforms_,_simpleforms_)
573</table>
574_If_(_cgiargb_,<center>_iconblankbar_</center><br>
575<center>_advancedformextra_</center>)
576</form>
577<!-- end of query form -->
578}
579
580_advancedforms_{
581<tr><td><center> <table border=0 cellspacing=0 cellpadding=0 width="90%">
582<tr><th></th><th align=left>_textwordphrase_</th><th colspan=2><nobr>_textfoldstem_</nobr></th><th align=center>&nbsp;&nbsp;_textinfield_</th></tr>
583_advformlist_
584<tr><td colspan=2><input type=button value="_textclearform_" onClick="clearForm();"></td>
585<td colspan=3><table>
586<tr><td><input type=button value="_textbeginsearch_" onClick="beginSearch();"></td>
587</tr></table></td></tr>
588</table></td></tr>
589}
590
591_advancedformextra_{
592<table>
593<tr><td>_textadvquery_</td></tr>
594<tr><td><textarea name=q cols=57 rows=3 onChange="updateq();">_cgiargq_</textarea></td>
595<td valign=bottom>
596<input type="button" value="_textrunquery_" onClick="runQuery();"></td></tr>
597</table>
598}
599
600_simpleforms_{
601<tr><td><center> <table border=0 cellspacing=0 cellpadding=0 width="90%">
602<tr><th align=left>_textwordphrase_</th><th align=left>&nbsp;&nbsp;_textinfield_</th></tr>
603_regformlist_
604<tr><td><input type=button value="_textclearform_" onClick="clearForm();"></td>
605<td><table>
606<tr><td><input type=button value="_textbeginsearch_" onClick="beginSearch();"></td>
607</tr>
608</table></td></tr>
609</table></td></tr>}
610
611_regformelement_{
612<td><input type=text size=39 name="fqv" onChange="updatefqv();"></td>
613<td>_fqfselection_</td>}
614
615#has no and/or/not selection box
616_firstadvformelement_{
617<td></td><td><input type=text size=31 name="fqv" onChange="updatefqv();"></td>
618<td align=center><input type=checkbox name="fqk" onClick="updatefqk();""></td>
619<td align-center><input type=checkbox name="fqs" onClick="updatefqs();"></td>
620<td align=right>_fqfselection_</td>}
621
622_advformelement_{
623<td>_fqcselection_</td>
624<td><input type=text size=31 name="fqv" onChange="updatefqv();"></td>
625<td align=center><input type=checkbox name="fqk" onClick="updatefqk();"></td>
626<td align-center><input type=checkbox name="fqs" onClick="updatefqs();"></td>
627<td align=right>_fqfselection_</td>}
628
629_fqcselection_ {
630<select name="fqc" onChange="updatefqc();">
631<option value="and">_textand_
632<option value="or">_textor_
633<option value="not">_textandnot_
634</select>}
635
636_textselect_ {_If_(_cgiargb_,_textadvancedsearch_,_textsimplesearch_)}
637_textformselect_ {_If_(_cgiargb_,_textformadvancedsearch_,_textformsimplesearch_)}
638
639_ZZ_{_textallfields_}
640
641# we want to put the links to previous/next pages of results
642# in the footer
643_pagefooterextra_ {
644<center>
645<table cellspacing=0 cellpadding=0 width=_pagewidth_>
646<tr>
647<td align=left>_If_(_prevfirst_,<a href="_httpquery_&r=_prevfirst_">_iconprev__textmatches__prevfirst_ - _prevlast_</a>)</td>
648<td align=right>_If_(_nextfirst_,<a href="_httpquery_&r=_nextfirst_">_textmatches__nextfirst_ - _nextlast__iconnext_</a>)</td>
649</tr></table>
650</center>
651}
652
653_querytypeselection_ {
654<select name="t">
655<option value="1"_If_(_cgiargt_, selected)>_textsome_
656<option value="0"_If_(_cgiargt_,, selected)>_textall_
657</select>
658}
659
660_formquerytypeselection_ {
661<select name="t">
662<option value="1"_If_(_cgiargt_, selected)>_textformsome_
663<option value="0"_If_(_cgiargt_,, selected)>_textformall_
664</select>
665}
666
667
Note: See TracBrowser for help on using the repository browser.