/[webpac2]/Webpacus/root/js/search.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /Webpacus/root/js/search.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 283 - (hide annotations)
Sat Dec 17 23:41:10 2005 UTC (18 years, 5 months ago) by dpavlin
File MIME type: text/cpp
File size: 4104 byte(s)
 r11772@llin:  dpavlin | 2005-12-18 05:41:37 +0100
 mostly re-organisation and cleanup of code. Split WebPAC class in
 js/webpac.js and search related API (called from templates) into
 js/search.js, fix saving in editor as consequence [0.23]

1 dpavlin 283 // WebPAC API
2     //
3     // Documented in this code only, I'm afraid. Beware of dragons!
4     // Dobrica Pavlinusic dpavlin(at)rot13(dot)org 2005-11-22
5    
6     /*
7     load another template
8     */
9     function load_template(template_name) {
10    
11     var old_template = $('template_name').value;
12    
13     Logger.info('load_template: '+template_name+' (old: '+old_template+')');
14    
15     if (template_name == old_template) {
16     Logger.error('why reload same template?');
17     return false;
18     }
19    
20     $('template_name').value = template_name;
21     submit_results_form();
22     return false;
23     }
24    
25     /*
26     pager
27     */
28     function load_results_page(page_nr) {
29    
30     if (parseInt(page_nr) != page_nr) {
31     Logger.error("load_results_page can't parseInt "+page_nr);
32     return false;
33     }
34    
35     var old_page = get_page_nr();
36    
37     if (page_nr < 1) {
38     Logger.error("load_results_page called with '"+page_nr+"' < 1");
39     return false;
40     }
41    
42     Logger.info('load_results_page: '+page_nr+' (from page: '+old_page+')');
43    
44     if (page_nr == old_page) {
45     Logger.error('why reload same page?');
46     return false;
47     }
48    
49     $('page_nr').value = page_nr;
50     submit_results_form();
51    
52     return false;
53     }
54    
55     function get_page_nr() {
56     var page_nr = parseInt( $('page_nr').value ) || 1;
57     return page_nr;
58     }
59    
60     function reset_page_nr( nr ) {
61     if (! nr) nr = 1;
62     Logger.info('reset_page_nr to '+nr);
63     page_nr = nr;
64     $('page_nr').value = page_nr;
65     }
66    
67     /* syntaxtic sugar */
68     function set_page_nr(nr) {
69     return load_results_page(nr);
70     }
71    
72     function next_page() {
73     load_results_page( get_page_nr() + 1 );
74     return false;
75     }
76    
77     function prev_page() {
78     load_results_page( get_page_nr() - 1 );
79     return false;
80     }
81    
82     /* toggle visibility and replace text with something else */
83     function toggleLinkAndElement ( link, elementID, text ) {
84    
85     if ( link.innerHTML != text ) {
86     // change link text
87     link.oldInnerHTML = link.innerHTML;
88     link.innerHTML = text;
89     } else {
90     // change it back
91     link.innerHTML = link.oldInnerHTML;
92     }
93    
94     Logger.debug('toggleLinkAndElement '+elementID+': '+Element.visible( elementID )+' text: '+text);
95    
96     Element.toggle( elementID );
97    
98     // why is this needed, Firefox 1.5?
99     if (Element.visible( elementID )) $( elementID ).style.display = 'block';
100    
101     return false;
102     }
103    
104    
105     /*
106     submit results form using AJAX
107     */
108     function submit_results_form() {
109     var results_form = $('results_form');
110    
111     if (results_form) {
112     var form_params = Form.serialize( results_form );
113    
114     Logger.debug('Ajax.Updater(results,/results/ajax) '+form_params);
115    
116     new Ajax.Updater( 'results', '/search/results/ajax', {
117     parameters: form_params,
118     asynchronous: 1,
119     onLoading: function(request) {
120     show_searching();
121     },
122     onLoaded: function(request) {
123     hide_searching();
124     }
125     } ) ;
126     return false;
127     } else {
128     Logger.debug('no results_form element');
129     return undef;
130     }
131     return false;
132     }
133    
134     /*
135     helper functions for submit_results_form()
136     */
137    
138     var search_active = 0;
139    
140     function show_searching() {
141     Logger.debug('show_searching');
142     Element.show('searching');
143     // new Effect.Fade('results', { duration: 0.3 });
144     search_active = 1;
145     return false;
146     }
147    
148     function hide_searching() {
149     Logger.debug('hide_searching');
150     Element.hide('searching');
151     // new Effect.Highlight('results');
152     // new Effect.Appear('results', { duration: 0.3 });
153     search_active = 0;
154     return false;
155     }
156    
157     /*
158     load record nr in some template
159     */
160    
161     function load_rec(record_uri, tmp_template_filename) {
162     if (! tmp_template_filename) tmp_template_filename = template_filename;
163     Logger.info('load_rec '+record_uri+' in '+tmp_template_filename);
164    
165     var results_form = $('results_form');
166    
167     if (results_form) {
168     var args = '?record_uri='+record_uri+'&template_filename='+tmp_template_filename;
169     Logger.debug('Ajax.Updater(results,/search/record) '+args);
170    
171     new Ajax.Updater( 'results', '/search/record'+args, {
172     asynchronous: 1,
173     onLoading: function(request) {
174     show_searching();
175     },
176     onLoaded: function(request) {
177     hide_searching();
178     }
179     } ) ;
180     return false;
181     } else {
182     Logger.debug('no results_form element');
183     return undef;
184     }
185     return false;
186     }
187    
188     /* click on checkbox */
189    
190     function checkbox_click() {
191     if (search_active) return false;
192     submit_results_form();
193     Logger.debug('checkbox_click');
194     return true;
195     }
196    

Properties

Name Value
svn:mime-type text/cpp

  ViewVC Help
Powered by ViewVC 1.1.26