summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/Handler/ULists.pm26
-rw-r--r--lib/VNDB/Handler/VNPage.pm11
2 files changed, 34 insertions, 3 deletions
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm
index daad5c4b..f89e5e56 100644
--- a/lib/VNDB/Handler/ULists.pm
+++ b/lib/VNDB/Handler/ULists.pm
@@ -10,8 +10,9 @@ 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{xml/rlist.xml}, \&rlist,
+ qr{v([1-9]\d*)/list}, \&vnlist_e,
+ qr{r([1-9]\d*)/list}, \&rlist_e,
+ qr{xml/rlist.xml}, \&rlist_e,
qr{([uv])([1-9]\d*)/votes}, \&votelist,
qr{u([1-9]\d*)/wish}, \&wishlist,
qr{u([1-9]\d*)/list}, \&vnlist,
@@ -56,7 +57,26 @@ sub vnwish {
}
-sub rlist {
+sub vnlist_e {
+ my($self, $id) = @_;
+
+ my $uid = $self->authInfo->{id};
+ return $self->htmlDenied() if !$uid;
+
+ return if !$self->authCheckCode;
+ my $f = $self->formValidate(
+ { name => 'e', enum => [ -1, @{$self->{rlst_vstat}} ] }
+ );
+ return 404 if $f->{_err};
+
+ $self->dbVNListDel($uid, $id) if $f->{e} == -1;
+ $self->dbVNListAdd($uid, $id, $f->{e}) if $f->{e} != -1;
+
+ $self->resRedirect('/v'.$id, 'temp');
+}
+
+
+sub rlist_e {
my($self, $id) = @_;
my $rid = $id;
diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm
index b07a7914..5a925711 100644
--- a/lib/VNDB/Handler/VNPage.pm
+++ b/lib/VNDB/Handler/VNPage.pm
@@ -343,6 +343,7 @@ sub _useroptions {
my($self, $i, $v) = @_;
my $vote = $self->dbVoteGet(uid => $self->authInfo->{id}, vid => $v->{id})->[0];
+ my $list = $self->dbVNListGet(uid => $self->authInfo->{id}, vid => $v->{id})->[0];
my $wish = $self->dbWishListGet(uid => $self->authInfo->{id}, vid => $v->{id})->[0];
Tr ++$$i % 2 ? (class => 'odd') : ();
@@ -358,6 +359,16 @@ sub _useroptions {
end;
br;
}
+
+ Select id => 'listsel', name => $self->authGetCode("/v$v->{id}/list");
+ option $list ? mt '_vnpage_uopt_vnlisted', mt '_vnlst_stat_'.$list->{status} : mt '_vnpage_uopt_novn';
+ optgroup label => $list ? mt '_vnpage_uopt_changevn' : mt '_vnpage_uopt_addvn';
+ option value => $_, mt "_vnlst_stat_$_" for (@{$self->{rlst_vstat}});
+ end;
+ option value => -1, mt '_vnpage_uopt_delvn' if $list;
+ end;
+ br;
+
if(!$vote || $wish) {
Select id => 'wishsel', name => $self->authGetCode("/v$v->{id}/wish");
option $wish ? mt '_vnpage_uopt_wishlisted', mt '_wish_'.$wish->{wstat} : mt '_vnpage_uopt_nowish';