summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler/Producers.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-11-14 12:25:20 +0100
committerYorhel <git@yorhel.nl>2008-11-14 12:25:20 +0100
commit46fb3641fd0c516061858c8af028404c71608920 (patch)
tree3d8ccddecd37fb62170a88dad44b8cd8441d2040 /lib/VNDB/Handler/Producers.pm
parente5d79246f94a08ebd8f421b84735416cf942c44a (diff)
Added producer list + search
Although the actual listing of producers is still pending...
Diffstat (limited to 'lib/VNDB/Handler/Producers.pm')
-rw-r--r--lib/VNDB/Handler/Producers.pm45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm
index 4cecdaa7..822fb084 100644
--- a/lib/VNDB/Handler/Producers.pm
+++ b/lib/VNDB/Handler/Producers.pm
@@ -11,6 +11,7 @@ YAWF::register(
qr{p([1-9]\d*)(?:\.([1-9]\d*))?} => \&page,
qr{p(?:([1-9]\d*)/edit|/new)} => \&edit,
qr{p([1-9]\d*)/(lock|hide)} => \&mod,
+ qr{p/([a-z0]|all)} => \&list,
);
@@ -164,5 +165,49 @@ sub mod {
}
+sub list {
+ my($self, $char) = @_;
+
+ my $f = $self->formValidate(
+ { name => 'p', required => 0, default => 1, template => 'int' },
+ { name => 'q', required => 0, default => '' },
+ );
+ return 404 if $f->{_err};
+
+ my($list, $np) = $self->dbProducerGet(
+ $char ne 'all' ? ( char => $char ) : (),
+ $f->{q} ? ( search => $f->{q} ) : (),
+ results => 50,
+ page => $f->{p}
+ );
+
+ $self->htmlHeader(title => 'Browse producers');
+
+ div class => 'mainbox';
+ h1 'Browse producers';
+ form class => 'search', action => '/p/all', 'accept-charset' => 'UTF-8', method => 'get';
+ fieldset;
+ input type => 'text', name => 'q', id => 'q', class => 'text';
+ input type => 'submit', class => 'submit', value => 'Search!';
+ end;
+ end;
+ p class => 'browseopts';
+ for ('all', 'a'..'z', 0) {
+ a href => "/p/$_", $_ eq $char ? (class => 'optselected') : (), $_ ? uc $_ : '#';
+ }
+ end;
+ end;
+
+ my $pageurl = "/p/$char" . ($f->{q} ? "?q=$f->{q}" : '');
+ $self->htmlBrowseNavigate($pageurl, $f->{p}, $np, 't');
+ div class => 'mainbox producerbrowse';
+ h1 $f->{q} ? 'Search results' : 'Producer list';
+ p $_->{name} for (@$list);
+ end;
+ $self->htmlBrowseNavigate($pageurl, $f->{p}, $np, 'b');
+ $self->htmlFooter;
+}
+
+
1;