summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/DB/ULists.pm17
-rw-r--r--lib/VNDB/Handler/ULists.pm15
2 files changed, 21 insertions, 11 deletions
diff --git a/lib/VNDB/DB/ULists.pm b/lib/VNDB/DB/ULists.pm
index e6850a02..09cfac23 100644
--- a/lib/VNDB/DB/ULists.pm
+++ b/lib/VNDB/DB/ULists.pm
@@ -70,7 +70,7 @@ sub dbVNListList {
# execute query
my($r, $np) = $self->dbPage(\%o, qq|
- SELECT vr.vid, vr.title, vr.original, vl.status, COALESCE(vo.vote, 0) AS vote
+ SELECT vr.vid, vr.title, vr.original, vl.status, vl.notes, COALESCE(vo.vote, 0) AS vote
FROM vnlists vl
JOIN vn v ON v.id = vl.vid
JOIN vn_rev vr ON vr.id = v.latest
@@ -119,18 +119,21 @@ sub dbVNListList {
}
-# Arguments: uid vid status
+# Arguments: uid vid status notes
# vid can be an arrayref only when the rows are already present, in which case an update is done
+# status and notes can be undef when an update is done, in which case these fields aren't updated
sub dbVNListAdd {
- my($self, $uid, $vid, $stat) = @_;
+ my($self, $uid, $vid, $stat, $notes) = @_;
$self->dbExec(
- 'UPDATE vnlists SET status = ? WHERE uid = ? AND vid IN(!l)',
- $stat, $uid, ref($vid) ? $vid : [ $vid ]
+ 'UPDATE vnlists !H WHERE uid = ? AND vid IN(!l)',
+ {defined($stat) ? ('status = ?' => $stat ):(),
+ defined($notes)? ('notes = ?' => $notes):()},
+ $uid, ref($vid) ? $vid : [ $vid ]
)
||
$self->dbExec(
- 'INSERT INTO vnlists (uid, vid, status) VALUES(?, ?, ?)',
- $uid, $vid, $stat
+ 'INSERT INTO vnlists (uid, vid, status, notes) VALUES(?, ?, ?, ?)',
+ $uid, $vid, $stat||0, $notes||''
);
}
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm
index 720701c1..a6d6198d 100644
--- a/lib/VNDB/Handler/ULists.pm
+++ b/lib/VNDB/Handler/ULists.pm
@@ -339,14 +339,16 @@ sub vnlist {
my $frm = $self->formValidate(
{ name => 'vid', required => 0, default => 0, multi => 1, template => 'int' },
{ name => 'rid', required => 0, default => 0, multi => 1, template => 'int' },
- { name => 'vns', required => 1, enum => [ -2, -1, @{$self->{vnlist_status}} ] },
+ { name => 'not', required => 0, default => '', maxlength => 2000 },
+ { name => 'vns', required => 1, enum => [ -2, -1, @{$self->{vnlist_status}}, 999 ] },
{ name => 'rel', required => 1, enum => [ -2, -1, @{$self->{rlist_status}} ] },
);
my @vid = grep $_ > 0, @{$frm->{vid}};
my @rid = grep $_ > 0, @{$frm->{rid}};
if(!$frm->{_err} && @vid && $frm->{vns} > -2) {
$self->dbVNListDel($uid, \@vid) if $frm->{vns} == -1;
- $self->dbVNListAdd($uid, \@vid, $frm->{vns}) if $frm->{vns} >= 0;
+ $self->dbVNListAdd($uid, \@vid, $frm->{vns}) if $frm->{vns} >= 0 && $frm->{vns} < 999;
+ $self->dbVNListAdd($uid, \@vid, undef, $frm->{not}) if $frm->{vns} == 999;
}
if(!$frm->{_err} && @rid && $frm->{rel} > -2) {
$self->dbRListDel($uid, \@rid) if $frm->{rel} == -1;
@@ -402,8 +404,11 @@ sub vnlist {
sub _vnlist_browse {
my($self, $own, $list, $np, $f, $url, $uid) = @_;
- form action => $url->().';formcode='.$self->authGetCode("/u$uid/list"), method => 'post'
- if $own;
+ if($own) {
+ form action => $url->(), method => 'post';
+ input type => 'hidden', class => 'hidden', name => 'not', id => 'not', value => '';
+ input type => 'hidden', class => 'hidden', name => 'formcode', id => 'formcode', value => $self->authGetCode("/u$uid/list");
+ }
$self->htmlBrowse(
class => 'rlist',
@@ -432,6 +437,7 @@ sub _vnlist_browse {
}
td class => 'tc3_5', colspan => 3;
a href => "/v$i->{vid}", title => $i->{original}||$i->{title}, shorten $i->{title}, 70;
+ b class => 'grayedout', $i->{notes} if $i->{notes};
end;
td class => 'tc6', $i->{status} ? mt '_vnlist_status_'.$i->{status} : '';
td class => 'tc7';
@@ -476,6 +482,7 @@ sub _vnlist_browse {
option value => $_, mt "_vnlist_status_$_"
for (@{$self->{vnlist_status}});
end;
+ option value => 999, mt '_rlist_setnote';
option value => -1, mt '_rlist_del';
end;
Select id => 'rel', name => 'rel';