X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FSelect.pm;h=777e02b37cd3adc236f1ef7d161afc0eb0e2c4bb;hp=1086587ae77769df03fbf93864e662de94d370ba;hb=97587692088c0aebc302164e335817f5dfedc49f;hpb=2d6536cab108c937e2af49f7dcf15f2230f44d1a diff --git a/perl/Sesse/pr0n/Select.pm b/perl/Sesse/pr0n/Select.pm index 1086587..777e02b 100644 --- a/perl/Sesse/pr0n/Select.pm +++ b/perl/Sesse/pr0n/Select.pm @@ -23,16 +23,23 @@ sub handler { local $dbh->{AutoCommit} = 0; local $dbh->{RaiseError} = 1; - $dbh->do('UPDATE images SET selected=\'f\' WHERE event=?', undef, $event); - - my @params = $apr->param(); - my $key; - for $key (@params) { - if ($key =~ /^sel-(\d+)/ && $apr->param($key) eq 'on') { - my $id = $1; - my $q = $dbh->do('UPDATE images SET selected=\'t\' WHERE id=?', undef, $id) - or dberror($r, "Selection of $id failed: $!"); - $r->print("

Selected image ID `$id'.

\n"); + if (defined($apr->param('mode')) && $apr->param('mode') eq 'single') { + # single mode; enable one (FIXME: need to support disable too) + my $filename = $apr->param('filename'); + $dbh->do('UPDATE images SET selected=\'t\' WHERE event=? AND filename=?', undef, $event, $filename); + } else { + # traditional multi-mode + $dbh->do('UPDATE images SET selected=\'f\' WHERE event=?', undef, $event); + + my @params = $apr->param(); + my $key; + for $key (@params) { + if ($key =~ /^sel-(\d+)/ && $apr->param($key) eq 'on') { + my $id = $1; + my $q = $dbh->do('UPDATE images SET selected=\'t\' WHERE id=?', undef, $id) + or dberror($r, "Selection of $id failed: $!"); + $r->print("

Selected image ID `$id'.

\n"); + } } } }