--- Webpacus/root/js/search.js 2005/12/17 23:41:10 283 +++ Webpacus/root/js/search.js 2005/12/25 23:31:59 322 @@ -194,3 +194,74 @@ return true; } +/* helper function for [% search($display, $search, $delimiter) %] */ + +function search_via_link(attr, val, template) { + + if (! template) template = $('template_name').value; + Logger.info('search called from link for '+attr+'='+val+' in '+template); + + new WebPAC.Updater( 'results', + '/search/results?'+attr+'='+val+'&_template='+template, { + asynchronous: 1, + onLoading: function(request) { + show_searching(); + }, + onLoaded: function(request) { + save_search(attr, val); + hide_searching(); + } + } + ); + + return false; +} + +;/* save search and add element for it in search form */ + +function save_search( attr, val ) { + Logger.info('save_search '+attr+','+val+')'); + + var t=$('search_table'); + if (! t) { + Logger.error("can't find search_table"); + return; + } + Logger.debug('reset results_form'); + Form.reset('results_form'); + + var row_nr = t.rows.length; + Logger.debug('adding row '+row_nr); + var tr = t.insertRow( t.rows.length ); + + var td = tr.insertCell(0); + td.setAttribute('align', 'right'); + td.appendChild( + document.createTextNode(attr) + ); + + td = tr.insertCell(1); + td.setAttribute('align', 'left'); + + var el = document.createElement('input'); + el.setAttribute('type', 'text'); + el.setAttribute('disabled', 'true'); + el.setAttribute('name', attr); + el.setAttribute('id', '_attr_'+attr+'_id'); + el.setAttribute('size', val.length < 60 ? val.length : 60); + el.setAttribute('value', val ); + td.appendChild(el); + + var el = document.createElement('input'); + el.setAttribute('type', 'button'); + el.setAttribute('value', '-'); + el.onclick = function () { + Logger.info('remove:' + attr + ' row:'+row_nr); + t.deleteRow( row_nr ); + submit_results_form(); + return false; + } + td.appendChild(el); + + return true; +};