summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2010-12-21 10:53:32 +0100
committerYorhel <git@yorhel.nl>2010-12-21 10:53:32 +0100
commite77484d81461c322656615759ba77ea25713a8d6 (patch)
treeb750f8e165ead267bdd2fc4ad900f181997535cb
parent19e353c480091ec607324ee09a8821dd3d895975 (diff)
Added vnlists.status filter to /u+/list
Can only filter on one option. If there are more things to filter on it would make sense to use the filter selector, but for now this will do.
-rw-r--r--ChangeLog1
-rw-r--r--data/lang.txt2
-rw-r--r--lib/VNDB/DB/ULists.pm1
-rw-r--r--lib/VNDB/Handler/ULists.pm9
4 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index ce42bf76..d266865c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@
- ULists::votelist: Added first character selection
- Added advanced page-browsing tabs to threads
- Added notes field to the user VN list
+ - Added vnlists.status filter to /u+/list
2.15 - 2010-12-15
- Removed expand/collapse from history browser and /u+/posts and switched to
diff --git a/data/lang.txt b/data/lang.txt
index 8812a58d..505da71d 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -4903,7 +4903,7 @@ cs : List vizuálních novel uživatele [_1]
hu : [_1] visual novel listája
nl : Visual novel lijst van [_1]
-:_rlist_voted_all
+:_rlist_all
en : All
ru : Все
cs : Všechny
diff --git a/lib/VNDB/DB/ULists.pm b/lib/VNDB/DB/ULists.pm
index 09cfac23..a1f02786 100644
--- a/lib/VNDB/DB/ULists.pm
+++ b/lib/VNDB/DB/ULists.pm
@@ -58,6 +58,7 @@ sub dbVNListList {
my %where = (
'vl.uid = ?' => $o{uid},
defined($o{voted}) ? ('vo.vote !s NULL' => $o{voted} ? 'IS NOT' : 'IS') : (),
+ defined($o{status})? ('vl.status = ?' => $o{status}) : (),
$o{char} ? ('LOWER(SUBSTR(vr.title, 1, 1)) = ?' => $o{char} ) : (),
defined $o{char} && !$o{char} ? (
'(ASCII(vr.title) < 97 OR ASCII(vr.title) > 122) AND (ASCII(vr.title) < 65 OR ASCII(vr.title) > 90)' => 1 ) : (),
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm
index a6d6198d..d9051347 100644
--- a/lib/VNDB/Handler/ULists.pm
+++ b/lib/VNDB/Handler/ULists.pm
@@ -331,6 +331,7 @@ sub vnlist {
{ name => 's', required => 0, default => 'title', enum => [ 'title', 'vote' ] },
{ name => 'c', required => 0, default => 'all', enum => [ 'all', 'a'..'z', 0 ] },
{ name => 'v', required => 0, default => 0, enum => [ -1..1 ] },
+ { name => 't', required => 0, default => -1, enum => [ -1, @{$self->{vnlist_status}} ] },
);
return 404 if $f->{_err};
@@ -363,6 +364,7 @@ sub vnlist {
sort => $f->{s}, reverse => $f->{o} eq 'd',
voted => $f->{v} == 0 ? undef : $f->{v} < 0 ? 0 : $f->{v},
$f->{c} ne 'all' ? (char => $f->{c}) : (),
+ $f->{t} >= 0 ? (status => $f->{t}) : (),
);
my $title = $own ? mt '_rlist_title_my' : mt '_rlist_title_other', $u->{username};
@@ -376,6 +378,7 @@ sub vnlist {
local $_ = "/u$uid/list";
$_ .= '?c='.($n eq 'c' ? $v : $f->{c});
$_ .= ';v='.($n eq 'v' ? $v : $f->{v});
+ $_ .= ';t='.($n eq 't' ? $v : $f->{t});
if($n eq 'page') {
$_ .= ';o='.($n eq 'o' ? $v : $f->{o});
$_ .= ';s='.($n eq 's' ? $v : $f->{s});
@@ -391,10 +394,14 @@ sub vnlist {
}
end;
p class => 'browseopts';
- a href => $url->(v => 0), 0 == $f->{v} ? (class => 'optselected') : (), mt '_rlist_voted_all';
+ a href => $url->(v => 0), 0 == $f->{v} ? (class => 'optselected') : (), mt '_rlist_all';
a href => $url->(v => 1), 1 == $f->{v} ? (class => 'optselected') : (), mt '_rlist_voted_only';
a href => $url->(v => -1), -1 == $f->{v} ? (class => 'optselected') : (), mt '_rlist_voted_none';
end;
+ p class => 'browseopts';
+ a href => $url->(t => -1), -1 == $f->{t} ? (class => 'optselected') : (), mt '_rlist_all';
+ a href => $url->(t => $_), $_ == $f->{t} ? (class => 'optselected') : (), mt '_vnlist_status_'.$_ for @{$self->{vnlist_status}};
+ end;
end;
_vnlist_browse($self, $own, $list, $np, $f, $url, $uid);