summaryrefslogtreecommitdiff
path: root/lib/VNDB/Handler
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2009-01-17 17:05:45 +0100
committerYorhel <git@yorhel.nl>2009-01-17 17:05:45 +0100
commit896e6545ffdf955b772c439d1afa4d093da64355 (patch)
tree62aaa0c7fecd330de3b8d5c2c910d68d64b362c7 /lib/VNDB/Handler
parent9ee7694a4b6f7dce174ec785cf5a71a5a38774bb (diff)
No page reload needed when changing rlist status from vn page
Diffstat (limited to 'lib/VNDB/Handler')
-rw-r--r--lib/VNDB/Handler/ULists.pm29
1 files changed, 24 insertions, 5 deletions
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm
index f86cba83..9d9fba9d 100644
--- a/lib/VNDB/Handler/ULists.pm
+++ b/lib/VNDB/Handler/ULists.pm
@@ -3,7 +3,7 @@ package VNDB::Handler::ULists;
use strict;
use warnings;
-use YAWF ':html';
+use YAWF ':html', ':xml';
use VNDB::Func;
@@ -11,6 +11,7 @@ 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{u([1-9]\d*)/wish}, \&wishlist,
qr{u([1-9]\d*)/list}, \&vnlist,
);
@@ -55,6 +56,15 @@ sub vnwish {
sub rlist {
my($self, $id) = @_;
+ my $rid = $id;
+ if(!$rid) {
+ my $f = $self->formValidate(
+ { name => 'id', required => 1, template => 'int' }
+ );
+ return 404 if $f->{_err};
+ $rid = $f->{id};
+ }
+
my $uid = $self->authInfo->{id};
return $self->htmlDenied() if !$uid;
@@ -63,15 +73,24 @@ sub rlist {
);
return 404 if $f->{_err};
- $self->dbVNListDel($uid, $id) if $f->{e} eq 'del';
+ $self->dbVNListDel($uid, $rid) if $f->{e} eq 'del';
$self->dbVNListAdd(
- rid => $id,
+ rid => $rid,
uid => $uid,
$f->{e} =~ /^([rv])(\d+)$/ && $1 eq 'r' ? (rstat => $2) : (vstat => $2)
) if $f->{e} ne 'del';
- (my $ref = $self->reqHeader('Referer')||"/r$id") =~ s/^\Q$self->{url}//;
- $self->resRedirect($ref, 'temp');
+ if($id) {
+ (my $ref = $self->reqHeader('Referer')||"/r$id") =~ s/^\Q$self->{url}//;
+ $self->resRedirect($ref, 'temp');
+ } else {
+ $self->resHeader('Content-type' => 'text/xml');
+ my $st = $self->dbVNListGet(uid => $self->authInfo->{id}, rid => [$rid])->[0];
+ xml;
+ tag 'rlist', uid => $self->authInfo->{id}, rid => $rid;
+ txt $st ? liststat $st : '--';
+ end;
+ }
}