/[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 328 by dpavlin, Mon Dec 26 22:02:55 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            reset_form();
254    
255            var form = $('results_form');
256            var inputs = form.getElementsByTagName('input');
257    
258            for (var i = 0; i < inputs.length; i++) {
259                    var input = inputs[i];
260                    if (input.name != attr) continue;
261                    Logger.debug('found '+name+'='+input.value);
262                    input.value = unescape( val );
263                    return false;
264            }
265    
266            var t_row_nr = t.rows.length;
267            var tr = t.insertRow( t_row_nr );
268    
269            if (! tr) {
270                    Logger.error("can't create row "+t_row_nr);
271                    return undef;
272          }          }
         Logger.debug('reset results_form');  
         Form.reset('results_form');  
273    
274          var row_nr = t.rows.length;          var row_nr = attr_rows.length;
275          Logger.debug('adding row '+row_nr);          attr_rows[ row_nr ] = t_row_nr;
276          var tr = t.insertRow( t.rows.length );  
277            Logger.debug('added row '+t_row_nr+' to table [offset: '+row_nr+']');
278    
279          var td = tr.insertCell(0);          var td = tr.insertCell(0);
280          td.setAttribute('align', 'right');          td.setAttribute('align', 'right');
# Line 248  function save_search( attr, val ) { Line 290  function save_search( attr, val ) {
290          el.setAttribute('disabled', 'true');          el.setAttribute('disabled', 'true');
291          el.setAttribute('name', attr);          el.setAttribute('name', attr);
292          el.setAttribute('id', '_attr_'+attr+'_id');          el.setAttribute('id', '_attr_'+attr+'_id');
293          el.setAttribute('size', val.length < 60 ? val.length : 60);          el.setAttribute('size', val.length < 60 ? 60: val.length);
294          el.setAttribute('value', val );          el.setAttribute('value', unescape( val ) );
295          td.appendChild(el);          td.appendChild(el);
296    
297          var el = document.createElement('input');          var el = document.createElement('input');
298          el.setAttribute('type', 'button');          el.setAttribute('type', 'button');
299          el.setAttribute('value', '-');          el.setAttribute('value', '-');
300          el.onclick = function () {          el.onclick = function () {
301                  Logger.info('remove:' + attr + ' row:'+row_nr);                  if (attr_rows[row_nr] == -1) {
302                  t.deleteRow( row_nr );                          Logger.error('row '+row_nr+' allready deleted');
303                            return false;
304                    }
305                    Logger.info('remove:' + attr + ' row:'+row_nr+' ['+attr_rows[row_nr]+']');
306                    t.deleteRow( attr_rows[row_nr] );
307    
308                    attr_rows[row_nr] = -1;
309                    for (var i=(row_nr + 1); i < attr_rows.length; i++) {
310                            attr_rows[i]--;
311                            Logger.debug('moved '+i+' to '+attr_rows[i]);
312                    }
313                  submit_results_form();                  submit_results_form();
314                  return false;                  return false;
315          }          }

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

  ViewVC Help
Powered by ViewVC 1.1.26