projects
/
webpac2
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
strict match AND/OR with word-boundries
[webpac2]
/
vhost
/
webpac2.cgi
diff --git
a/vhost/webpac2.cgi
b/vhost/webpac2.cgi
index
7c32a6e
..
5e4ac0e
100755
(executable)
--- a/
vhost/webpac2.cgi
+++ b/
vhost/webpac2.cgi
@@
-11,6
+11,9
@@
use Data::Page;
use Data::Dump qw/dump/;
use SWISH::API;
use JSON;
use Data::Dump qw/dump/;
use SWISH::API;
use JSON;
+use Text::Unaccent::PurePerl qw/unac_string/;
+use HTML::FillInForm::Lite;
+use Encode;
my $range_around = 5;
my @entries_per_page = ( 30, 50, 100, 500 );
my $range_around = 5;
my @entries_per_page = ( 30, 50, 100, 500 );
@@
-151,6
+154,15
@@
push @style, "../../$path/$path.css" if -e "$dir/$path/$path.css";
dump_yaml( 'style', \@style );
sub search_form {
dump_yaml( 'style', \@style );
sub search_form {
+
+ my $form_html = "$dir/$path/$path-search.html";
+ if ( -e $form_html ) {
+ my $html = read_file( $form_html );
+ my $q = CGI->new();
+ my $h = HTML::FillInForm::Lite->new();
+ return $h->fill(\$html, $q);
+ }
+
qq|<a name="form"></a>|,
start_form( -action => self_url( query => 0 ) ),
checkbox_group(
qq|<a name="form"></a>|,
start_form( -action => self_url( query => 0 ) ),
checkbox_group(
@@
-191,6
+203,8
@@
print
if ( my $search = param('search') ) {
if ( my $search = param('search') ) {
+ $search = unac_string( Encode::decode('utf-8',$search) );
+
print qq|
<a href="#form" class="skip" title="skip to search form">#</a>
<div id="results">
print qq|
<a href="#form" class="skip" title="skip to search form">#</a>
<div id="results">
@@
-203,7
+217,7
@@
if ( my $search = param('search') ) {
my @attrs = param('attr');
my $op = param('attr_operator');
my @attrs = param('attr');
my $op = param('attr_operator');
- if ( $search =~ m{(=|"|
AND|OR
)} ) {
+ if ( $search =~ m{(=|"|
\bAND\b|\bOR\b
)} ) {
push @search, $search;
} elsif ( @attrs ) {
push @search, $search;
} elsif ( @attrs ) {