diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VNDB/DB/ULists.pm | 17 | ||||
-rw-r--r-- | lib/VNDB/Handler/ULists.pm | 15 |
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'; |