/[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

Diff of /Webpacus/root/js/search.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 283 by dpavlin, Sat Dec 17 23:41:10 2005 UTC revision 327 by dpavlin, Mon Dec 26 21:25:42 2005 UTC
# Line 60  function get_page_nr() { Line 60  function get_page_nr() {
60  function reset_page_nr( nr ) {  function reset_page_nr( nr ) {
61          if (! nr) nr = 1;          if (! nr) nr = 1;
62          Logger.info('reset_page_nr to '+nr);          Logger.info('reset_page_nr to '+nr);
63          page_nr = nr;          $('page_nr').value = nr;
         $('page_nr').value = page_nr;  
64  }  }
65    
66  /* syntaxtic sugar */  /* syntaxtic sugar */
# Line 194  function checkbox_click() { Line 193  function checkbox_click() {
193          return true;          return true;
194  }  }
195    
196    /* reset form fields in _reset hidden field to nothing */
197    
198    function reset_form() {
199            Logger.info('reset '+$F('_reset'));
200    
201            var names = new Array();
202            names = $F('_reset').split(',');
203            for(var i = 0; i < names.length; i++) {
204                    Logger.debug('reset '+i+': '+names[i]);
205                    $(names[i]).value='';
206            }
207    
208            var t=$('search_table');
209            var max_p = t.rows.length;
210            for(var i = 0; i < attr_rows.length; i++) {
211                    var p = attr_rows[i];
212                    if (p != -1) {
213                            if (p < max_p) {
214                                    Logger.debug('delete row '+p);
215                                    t.deleteRow( p );
216                            } else {
217                                    Logger.error('skipping invalid delete row '+p);
218                            }
219                    }
220            }
221    
222            attr_rows = new Array();
223    
224            return false;
225    }
226    
227    /* helper function for [% search($display, $search, $delimiter) %] */
228    
229    function search_via_link(attr, val, template) {
230    
231            if (! template) template = $('template_name').value;
232            Logger.info('search called from link for '+attr+'='+val+' in '+template);
233            save_search(attr, val);
234    
235            $('template_name').value = template;
236            submit_results_form();
237    
238            return false;
239    }
240    
241    /* save search and add element for it in search form */
242    
243    var attr_rows = new Array();
244    
245    function save_search( attr, val ) {
246            Logger.info('save_search('+attr+','+val+')');
247    
248            var t=$('search_table');
249            if (! t) {
250                    Logger.error("can't find search_table");
251                    return undef;
252            }
253            reset_form();
254    
255            var t_row_nr = t.rows.length;
256            var tr = t.insertRow( t_row_nr );
257    
258            if (! tr) {
259                    Logger.error("can't create row "+t_row_nr);
260                    return undef;
261            }
262    
263            var row_nr = attr_rows.length;
264            attr_rows[ row_nr ] = t_row_nr;
265    
266            Logger.debug('added row '+t_row_nr+' to table [offset: '+row_nr+']');
267    
268            var td = tr.insertCell(0);
269            td.setAttribute('align', 'right');
270            td.appendChild(
271                    document.createTextNode(attr)
272            );
273    
274            td = tr.insertCell(1);
275            td.setAttribute('align', 'left');
276    
277            var el = document.createElement('input');
278            el.setAttribute('type', 'text');
279            el.setAttribute('disabled', 'true');
280            el.setAttribute('name', attr);
281            el.setAttribute('id', '_attr_'+attr+'_id');
282            el.setAttribute('size', val.length < 60 ? 60: val.length);
283            el.setAttribute('value', unescape( val ) );
284            td.appendChild(el);
285    
286            var el = document.createElement('input');
287            el.setAttribute('type', 'button');
288            el.setAttribute('value', '-');
289            el.onclick = function () {
290                    if (attr_rows[row_nr] == -1) {
291                            Logger.error('row '+row_nr+' allready deleted');
292                            return false;
293                    }
294                    Logger.info('remove:' + attr + ' row:'+row_nr+' ['+attr_rows[row_nr]+']');
295                    t.deleteRow( attr_rows[row_nr] );
296    
297                    attr_rows[row_nr] = -1;
298                    for (var i=(row_nr + 1); i < attr_rows.length; i++) {
299                            attr_rows[i]--;
300                            Logger.debug('moved '+i+' to '+attr_rows[i]);
301                    }
302                    submit_results_form();
303                    return false;
304            }
305            td.appendChild(el);
306    
307            return true;
308    };

Legend:
Removed from v.283  
changed lines
  Added in v.327

  ViewVC Help
Powered by ViewVC 1.1.26