summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-07-03 18:35:36 +0200
committerYorhel <git@yorhel.nl>2009-07-03 18:35:36 +0200
commit83d006a8b947b9246305aef76a51f98459d8e993 (patch)
tree03323802f8913545310cb441fc588599d372455e
parente53a1fb11c96bf18084cf98d0dd53872783badb6 (diff)
Search box on user list
-rw-r--r--ChangeLog1
-rw-r--r--lib/VNDB/DB/Users.pm5
-rw-r--r--lib/VNDB/Handler/Users.pm9
-rw-r--r--lib/VNDB/Util/CommonHTML.pm1
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;