--- Webpacus/root/js/webpac.js 2005/11/24 22:29:34 136 +++ Webpacus/root/js/webpac.js 2005/11/26 16:39:56 162 @@ -3,33 +3,119 @@ // Documented in this code only, I'm afraid. Beware of dragons! // Dobrica Pavlinusic dpavlin(at)rot13(dot)org 2005-11-22 +/* + load another template +*/ function load_template(template_name) { -// alert('load_template '+template_name+' old template is '+$('template_name').value); + + var old_template = $('template_name').value; + + Logger.info('load_template: '+template_name+' (old: '+old_template+')'); + + if (template_name == old_template) { + Logger.error('why reload same template?'); + return false; + } $('template_name').value = template_name; + submit_results_form(); + return false; +} + +/* + pager +*/ +function load_results_page(page_nr) { + + if (parseInt(page_nr) != page_nr) { + Logger.error("load_results_page can't parseInt "+page_nr); + return false; + } + + var old_page = get_page_nr(); + + if (page_nr < 1) { + Logger.error("load_results_page called with '"+page_nr+"' < 1"); + return false; + } + + Logger.info('load_results_page: '+page_nr+' (from page: '+old_page+')'); + + if (page_nr == old_page) { + Logger.error('why reload same page?'); + return false; + } + + $('page_nr').value = page_nr; + submit_results_form(); + + return false; +} + +function get_page_nr() { + var page_nr = parseInt( $('page_nr').value ) || 1; + return page_nr; +} + +/* syntaxtic sugar */ +function set_page_nr(nr) { + return load_results_page(nr); +} + +function next_page() { + load_results_page( get_page_nr() + 1 ); + return false; +} - new Ajax.Updater( 'results', '/results', { - parameters: Form.serialize( $('results_form') ), - asynchronous: 1, - onLoading: function(request) { - show_searching(); - }, - onLoaded: function(request) { - Element.hide('searching'); -/* hide_searching(); */ - } - } ) ; +function prev_page() { + load_results_page( get_page_nr() - 1 ); return false; } +/* + submit results form using AJAX +*/ +function submit_results_form() { + var results_form = $('results_form'); + + if (results_form) { + var form_params = Form.serialize( results_form ); + + Logger.debug('Ajax.Updater(results,/results) '+form_params); + + new Ajax.Updater( 'results', '/search/results', { + parameters: form_params, + asynchronous: 1, + onLoading: function(request) { + show_searching(); + }, + onLoaded: function(request) { + hide_searching(); + } + } ) ; + return false; + } else { + Logger.debug('no results_form element'); + return undef; + } + return false; +} + +/* + helper functions for submit_results_form() +*/ function show_searching() { + Logger.debug('show_searching'); Element.show('searching'); new Effect.Fade('results', { duration: 0.3 }); + return false; } function hide_searching() { + Logger.debug('hide_searching'); Element.hide('searching'); //new Effect.Highlight('results'); new Effect.Appear('results', { duration: 0.3 }); + return false; }