From 83d006a8b947b9246305aef76a51f98459d8e993 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Fri, 3 Jul 2009 18:35:36 +0200 Subject: Search box on user list --- ChangeLog | 1 + lib/VNDB/DB/Users.pm | 5 ++++- lib/VNDB/Handler/Users.pm | 9 +++++++-- lib/VNDB/Util/CommonHTML.pm | 1 + 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 302b2bd3..c2a52374 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2.5 - ? - Hide NSFW images in diff viewer (unless NSFW warnings are disabled) - Display related boards in recent posts tooltip op homepage + - Added search box on user list 2.4 - 2009-06-07 - Release search + browser + filters diff --git a/lib/VNDB/DB/Users.pm b/lib/VNDB/DB/Users.pm index 3a93a9c5..49b56823 100644 --- a/lib/VNDB/DB/Users.pm +++ b/lib/VNDB/DB/Users.pm @@ -8,7 +8,7 @@ use Exporter 'import'; our @EXPORT = qw|dbUserGet dbUserEdit dbUserAdd dbUserDel|; -# %options->{ username passwd mail order uid ip registered results page what } +# %options->{ username passwd mail order uid ip registered search results page what } # what: stats sub dbUserGet { my $s = shift; @@ -20,6 +20,7 @@ sub dbUserGet { @_ ); + $o{search} =~ s/%// if $o{search}; my %where = ( $o{username} ? ( 'username = ?' => $o{username} ) : (), @@ -39,6 +40,8 @@ sub dbUserGet { 'ip = ?' => $o{ip} ) : (), $o{registered} ? ( 'registered > ?' => $o{registered} ) : (), + $o{search} ? ( + 'username ILIKE ?' => "%$o{search}%") : (), ); my @select = ( diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index 3bbcbf78..895a6fbe 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -426,6 +426,7 @@ sub list { { name => 's', required => 0, default => 'username', enum => [ qw|username registered votes changes tags| ] }, { name => 'o', required => 0, default => 'a', enum => [ 'a','d' ] }, { name => 'p', required => 0, default => 1, template => 'int' }, + { name => 'q', required => 0, default => '', maxlength => 50 }, ); return 404 if $f->{_err}; @@ -433,6 +434,9 @@ sub list { div class => 'mainbox'; h1 'Browse users'; + form action => '/u/all', 'accept-charset' => 'UTF-8', method => 'get'; + $self->htmlSearchBox('u', $f->{q}); + end; p class => 'browseopts'; for ('all', 'a'..'z', 0) { a href => "/u/$_", $_ eq $char ? (class => 'optselected') : (), $_ ? uc $_ : '#'; @@ -446,14 +450,15 @@ sub list { firstchar => $char ) : (), results => 50, page => $f->{p}, + search => $f->{q}, ); $self->htmlBrowse( items => $list, options => $f, nextpage => $np, - pageurl => "/u/$char?o=$f->{o};s=$f->{s}", - sorturl => "/u/$char", + pageurl => "/u/$char?o=$f->{o};s=$f->{s};q=$f->{q}", + sorturl => "/u/$char?q=$f->{q}", header => [ [ 'Username', 'username' ], [ 'Registered', 'registered' ], diff --git a/lib/VNDB/Util/CommonHTML.pm b/lib/VNDB/Util/CommonHTML.pm index de565954..2bf496f6 100644 --- a/lib/VNDB/Util/CommonHTML.pm +++ b/lib/VNDB/Util/CommonHTML.pm @@ -527,6 +527,7 @@ sub htmlSearchBox { a href => '/r', $sel eq 'r' ? (class => 'sel') : (), 'Releases'; a href => '/p/all', $sel eq 'p' ? (class => 'sel') : (), 'Producers'; a href => '/g', $sel eq 'g' ? (class => 'sel') : (), 'Tags'; + a href => '/u/all', $sel eq 'u' ? (class => 'sel') : (), 'Users'; end; fieldset class => 'search'; input type => 'text', name => 'q', id => 'q', class => 'text', value => $v; -- cgit v1.2.3