diff options
author | Yorhel <git@yorhel.nl> | 2008-12-09 12:14:12 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2008-12-09 12:14:12 +0100 |
commit | 62ab2e931cf21236e83d4483d8cb4eb773f26a89 (patch) | |
tree | a4a6306b569c97485c324045bf6ea9689702f219 /lib/VNDB/Handler | |
parent | 148934c9d29be12fddc4e043fc587cce4f8b47b5 (diff) |
Release list editing from release pages
I get the feeling I'm kind of rushing this entire VNlist feature
and don't really think about making things look nice... Oh well,
as long as it works. Nothing has to be perfect from the start,
can always fix things afterwards, etc.
Diffstat (limited to 'lib/VNDB/Handler')
-rw-r--r-- | lib/VNDB/Handler/Releases.pm | 21 | ||||
-rw-r--r-- | lib/VNDB/Handler/ULists.pm | 25 |
2 files changed, 45 insertions, 1 deletions
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index 3d33cf04..2338f5aa 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -180,6 +180,27 @@ sub _infotable { end; } + if($self->authInfo->{id}) { + my $rl = $self->dbVNListGet(uid => $self->authInfo->{id}, rid => $r->{id})->[0]; + Tr ++$i % 2 ? (class => 'odd') : (); + td 'User options'; + td; + Select id => 'listsel', name => 'listsel'; + option !$rl ? 'not in your list' : "Status: $self->{vn_rstat}[$rl->{rstat}] / $self->{vn_vstat}[$rl->{vstat}]"; + optgroup label => 'Set release status'; + option value => "r$_", $self->{vn_rstat}[$_] + for (0..$#{$self->{vn_rstat}}); + end; + optgroup label => 'Set play status'; + option value => "v$_", $self->{vn_vstat}[$_] + for (0..$#{$self->{vn_vstat}}); + end; + option value => 'del', 'remove from list' if $rl; + end; + end; + end; + } + end; } diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm index 110ded30..b94cd8e6 100644 --- a/lib/VNDB/Handler/ULists.pm +++ b/lib/VNDB/Handler/ULists.pm @@ -10,6 +10,7 @@ use VNDB::Func; YAWF::register( qr{v([1-9]\d*)/vote}, \&vnvote, qr{v([1-9]\d*)/wish}, \&vnwish, + qr{r([1-9]\d*)/list}, \&rlist, qr{u([1-9]\d*)/wish}, \&wishlist, qr{u([1-9]\d*)/list}, \&vnlist, ); @@ -51,6 +52,28 @@ sub vnwish { } +sub rlist { + my($self, $id) = @_; + + my $uid = $self->authInfo->{id}; + return $self->htmlDenied() if !$uid; + + my $f = $self->formValidate( + { name => 'e', required => 1, enum => [ 'del', map("r$_", 0..$#{$self->{vn_rstat}}), map("v$_", 0..$#{$self->{vn_vstat}}) ] }, + ); + return 404 if $f->{_err}; + + $self->dbVNListDel($uid, $id) if $f->{e} eq 'del'; + $self->dbVNListAdd( + rid => $id, + uid => $uid, + $f->{e} =~ /^([rv])(\d+)$/ && $1 eq 'r' ? (rstat => $2) : (vstat => $2) + ) if $f->{e} ne 'del'; + + $self->resRedirect('/r'.$id, 'temp'); +} + + sub wishlist { my($self, $uid) = @_; @@ -183,7 +206,7 @@ sub vnlist { } - my($list, $np) = $self->dbVNListGet( + my($list, $np) = $self->dbVNListList( uid => $uid, results => 50, page => $f->{p}, |