/[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 322 by dpavlin, Sun Dec 25 23:31:59 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) %] */  /* helper function for [% search($display, $search, $delimiter) %] */
228    
229  function search_via_link(attr, val, template) {  function search_via_link(attr, val, template) {
230    
231          if (! template) template = $('template_name').value;          if (! template) template = $('template_name').value;
232          Logger.info('search called from link for '+attr+'='+val+' in '+template);          Logger.info('search called from link for '+attr+'='+val+' in '+template);
233            save_search(attr, val);
234    
235          new WebPAC.Updater( 'results',          $('template_name').value = template;
236                  '/search/results?'+attr+'='+val+'&_template='+template, {          submit_results_form();
                         asynchronous: 1,  
                         onLoading: function(request) {  
                                 show_searching();  
                         },  
                         onLoaded: function(request) {  
                                 save_search(attr, val);  
                                 hide_searching();  
                         }  
                 }  
         );  
237    
238          return false;          return false;
239  }  }
240    
241  ;/* save search and add element for it in search form */  /* save search and add element for it in search form */
242    
243    var attr_rows = new Array();
244    
245  function save_search( attr, val ) {  function save_search( attr, val ) {
246          Logger.info('save_search '+attr+','+val+')');          Logger.info('save_search('+attr+','+val+')');
247    
248          var t=$('search_table');          var t=$('search_table');
249          if (! t) {          if (! t) {
250                  Logger.error("can't find search_table");                  Logger.error("can't find search_table");
251                  return;                  return undef;
252          }          }
253          Logger.debug('reset results_form');          reset_form();
         Form.reset('results_form');  
254    
255          var row_nr = t.rows.length;          var t_row_nr = t.rows.length;
256          Logger.debug('adding row '+row_nr);          var tr = t.insertRow( t_row_nr );
257          var tr = t.insertRow( t.rows.length );  
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);          var td = tr.insertCell(0);
269          td.setAttribute('align', 'right');          td.setAttribute('align', 'right');
# Line 248  function save_search( attr, val ) { Line 279  function save_search( attr, val ) {
279          el.setAttribute('disabled', 'true');          el.setAttribute('disabled', 'true');
280          el.setAttribute('name', attr);          el.setAttribute('name', attr);
281          el.setAttribute('id', '_attr_'+attr+'_id');          el.setAttribute('id', '_attr_'+attr+'_id');
282          el.setAttribute('size', val.length < 60 ? val.length : 60);          el.setAttribute('size', val.length < 60 ? 60: val.length);
283          el.setAttribute('value', val );          el.setAttribute('value', unescape( val ) );
284          td.appendChild(el);          td.appendChild(el);
285    
286          var el = document.createElement('input');          var el = document.createElement('input');
287          el.setAttribute('type', 'button');          el.setAttribute('type', 'button');
288          el.setAttribute('value', '-');          el.setAttribute('value', '-');
289          el.onclick = function () {          el.onclick = function () {
290                  Logger.info('remove:' + attr + ' row:'+row_nr);                  if (attr_rows[row_nr] == -1) {
291                  t.deleteRow( row_nr );                          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();                  submit_results_form();
303                  return false;                  return false;
304          }          }

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

  ViewVC Help
Powered by ViewVC 1.1.26