From cffa6de2fb050c7546a043c93a741d42e7405ff6 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Mon, 8 Dec 2008 17:28:11 +0100 Subject: Batch edit user VN list --- lib/VNDB/Handler/ULists.pm | 63 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 7 deletions(-) (limited to 'lib/VNDB/Handler') diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm index fcb8d6c0..3cfbedeb 100644 --- a/lib/VNDB/Handler/ULists.pm +++ b/lib/VNDB/Handler/ULists.pm @@ -69,11 +69,11 @@ sub wishlist { if($own && $self->reqMethod eq 'POST') { my $frm = $self->formValidate( { name => 'sel', required => 0, default => 0, multi => 1, template => 'int' }, - { name => 'wishbatch', required => 1, enum => [ -1..$#{$self->{wishlist_status}} ] }, + { name => 'batchedit', required => 1, enum => [ -1..$#{$self->{wishlist_status}} ] }, ); if(!$frm->{_err} && @{$frm->{sel}} && $frm->{sel}[0]) { - $self->dbWishListDel($uid, $frm->{sel}) if $frm->{wishbatch} == -1; - $self->dbWishListAdd($frm->{sel}, $uid, $frm->{wishbatch}) if $frm->{wishbatch} >= 0; + $self->dbWishListDel($uid, $frm->{sel}) if $frm->{batchedit} == -1; + $self->dbWishListAdd($frm->{sel}, $uid, $frm->{batchedit}) if $frm->{batchedit} >= 0; } } @@ -134,7 +134,7 @@ sub wishlist { return if !$own; Tr; td colspan => 3; - Select name => 'wishbatch', id => 'wishbatch'; + Select name => 'batchedit', id => 'batchedit'; option '-- with selected --'; optgroup label => 'Change priority'; option value => $_, $self->{wishlist_status}[$_] @@ -167,6 +167,22 @@ sub vnlist { ); return 404 if $f->{_err}; + if($own && $self->reqMethod eq 'POST') { + my $frm = $self->formValidate( + { name => 'sel', required => 0, default => 0, multi => 1, template => 'int' }, + { name => 'batchedit', required => 1, enum => [ 'del', map("r$_", 0..$#{$self->{vn_rstat}}), map("v$_", 0..$#{$self->{vn_vstat}}) ] }, + ); + if(!$frm->{_err} && @{$frm->{sel}} && $frm->{sel}[0]) { + $self->dbVNListDel($uid, $frm->{sel}) if $frm->{batchedit} eq 'del'; + $self->dbVNListAdd( + rid => $frm->{sel}, + uid => $uid, + $frm->{batchedit} =~ /^([rv])(\d+)$/ && $1 eq 'r' ? (rstat => $2) : (vstat => $2) + ) if $frm->{batchedit} ne 'del'; + } + } + + my($list, $np) = $self->dbVNListGet( uid => $uid, results => 50, @@ -208,6 +224,16 @@ sub vnlist { end; end; + _vnlist_browse($self, $own, $list, $np, $f, $url); + $self->htmlFooter; +} + +sub _vnlist_browse { + my($self, $own, $list, $np, $f, $url) = @_; + + form action => $url->(), method => 'post' + if $own; + $self->htmlBrowse( class => 'rlist', items => $list, @@ -221,6 +247,7 @@ sub vnlist { [ Vote => 'vote' ], ], row => sub { + my($s, $n, $i) = @_; Tr $n % 2 == 0 ? (class => 'odd') : (); td class => 'tc1', colspan => 3; @@ -237,9 +264,12 @@ sub vnlist { end; td class => 'tc3', $i->{vote} || '-'; end; + for (@{$i->{rels}}) { Tr class => "relhid vid$i->{vid} "; - td class => 'tc1'; + td class => 'tc1'.($own ? ' own' : ''); + input type => 'checkbox', name => 'sel', value => $_->{rid} + if $own; lit datestr $_->{released}; end; td class => 'tc2'; @@ -253,10 +283,29 @@ sub vnlist { end; } }, + + footer => sub { + Tr; + td class => 'tc1', colspan => 3; + Select id => 'batchedit', name => 'batchedit'; + option '- with selected -'; + optgroup label => 'Change release status'; + option value => "r$_", $self->{vn_rstat}[$_] + for (0..$#{$self->{vn_rstat}}); + end; + optgroup label => 'Change play status'; + option value => "v$_", $self->{vn_vstat}[$_] + for (0..$#{$self->{vn_vstat}}); + end; + option value => 'del', 'remove from list'; + end; + end; + end; + } ); - $self->htmlFooter; -} + end if $own; +} 1; -- cgit v1.2.3