Experimental support for dBase .dbf files. Usege like this in all2xml.conf:
[webpac] / WebPac.pm
index 94d47d5..4af84d8 100644 (file)
--- a/WebPac.pm
+++ b/WebPac.pm
@@ -182,14 +182,17 @@ sub make_pager_vars {
        my $tmpl = shift @_;
        my @persist_vars = @_;
        my $hidden_vars = '';
+       my $hidden_search = '';
        foreach my $v (@persist_vars) {
                foreach my $val ($q->param($v)) {
                        next if (! $val || $val eq '');
                        $hidden_vars .= '<input type="hidden" name="'.$v.'" value="'.$val.'"/>'."\n";
+                       $hidden_search .= '<input type="hidden" name="'.$v.'" value="'.$val.'"/>'."\n" if ($v ne "rm");
                }
        }
 
        $tmpl->param('PAGER_HIDDEN', $hidden_vars);
+       $tmpl->param('SEARCH_HIDDEN', $hidden_search);
        $tmpl->param('PAGER_JAVASCRIPT', qq#
 <SCRIPT LANGUAGE="Javascript">
 <!-- Begin
@@ -224,6 +227,12 @@ sub show_results_list {
 
        my $q = $self->query();
 
+       # submit was reset?
+       if ($q->param('reset')) {
+               $q->delete_all;
+               return $self->show_search_form();
+       }
+
        # load template for this page
 
        my @s_arr;      # all queries are located here
@@ -264,6 +273,8 @@ sub show_results_list {
                push @url_params_persist,"f$i=".$q->url_param("f$i") if ($persist);
 
                foreach my $v ($q->url_param("v$i")) {
+                       # escape quotes so that phrase search work
+                       $v =~ s/"/%22/g;
                        push @url_params,"v$i=$v";
                        push @url_params_persist,"v$i=$v" if ($persist);
                }
@@ -328,7 +339,7 @@ sub show_results_list {
                push @s_arr, $q->param("f$i")."_swish".$exact."=(".join(" or ",@swish_q).")";
        }
 
-       my $tmpl = $self->load_tmpl(url_ex($q,'results.html'), global_vars => 1);
+       my $tmpl = $self->load_tmpl(url_ex($q,'results.html'), global_vars => 1, die_on_bad_params => 0);
 
        $tmpl->param('url_params',"?".join("&",@url_params));
 
@@ -469,7 +480,7 @@ sub show_index {
                return $html;
        }
 
-       my $tmpl = $self->load_tmpl(url_ex($q,'index_res.html'), global_vars => 1);
+       my $tmpl = $self->load_tmpl(url_ex($q,'index_res.html'), global_vars => 1, die_on_bad_params => 0);
        $tmpl->param('field',$field);
        $tmpl->param('limit',$limit);
        $tmpl->param('total',$total);