X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/dd92616a516d41f9a84d080891f18d5a58754060..e24a09c638a103745a9b7b7e557d3222de2d1275:/writer.plp diff --git a/writer.plp b/writer.plp index a97bbfa..84dc4a8 100644 --- a/writer.plp +++ b/writer.plp @@ -5,98 +5,7 @@ Html({ version => '1.0', nocache => 1, raw => <<'EOT', - - + EOT }); @@ -104,18 +13,12 @@ EOT use List::Util qw( pairs pairkeys ); my $db = eval { - my @dbinfo = ( - 'DBI:Pg:dbname=sheet;host=localhost', 'sheetadmin', 'fairuse', - ) or die "database not configured\n"; - require DBIx::Simple; - DBIx::Simple->new(@dbinfo[0..2], { - RaiseError => 1, - pg_enable_utf8 => 1, - }); + require Shiar_Sheet::DB; + Shiar_Sheet::DB->connect; } or Abort('Database error', 501, $@); -$db->abstract->{array_datatypes}++; my $user = eval { + my $rootpath = ($ENV{REQUEST_URI} // '/writer') =~ s{(?new( -name => 'login', -value => '', - -path => '/writer', + -path => $rootpath, -expires => 'now', )->as_string)) { delete $cookie{login}; @@ -144,7 +47,7 @@ my $user = eval { my $httpcookie = CGI::Cookie->new( -name => 'login', -value => join(':', @{$found}{qw( username pass )}), - -path => '/writer', + -path => $rootpath, ) or die "prepared object is empty\n"; AddCookie($httpcookie->as_string); } or Abort(["Unable to create login cookie", $@], 403); @@ -169,6 +72,7 @@ my %lang = ( en => ["\N{REGIONAL INDICATOR SYMBOL LETTER G}\N{REGIONAL INDICATOR SYMBOL LETTER B}", 'english'], eo => ['â ', 'esperanto'], ru => ["\N{REGIONAL INDICATOR SYMBOL LETTER R}\N{REGIONAL INDICATOR SYMBOL LETTER U}", 'ÑÑÑÑкий'], + la => ["\N{PUSHPIN}", 'latin'], ); my @wordcols = pairkeys my %wordcol = ( @@ -196,8 +100,20 @@ my %wordcol = ( source => {-label => 'Image'}, thumb => {-label => 'Convert options', -multiple => 1}, ); -my ($find) = map {{id => $_}} $fields{id} || $Request || (); +if (my $search = $fields{q}) { + my %filter = (form => {ilike => '%'.$search.'%'}); + my $results = $db->select(word => '*', \%filter); + say '