X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=perl%2FSesse%2Fpr0n%2FSelect.pm;h=21dca6a662611418a828abe2d4d06647e0de432d;hb=62fc186e8f1f3377061e5083d495df944d78010d;hp=1086587ae77769df03fbf93864e662de94d370ba;hpb=2d6536cab108c937e2af49f7dcf15f2230f44d1a;p=pr0n diff --git a/perl/Sesse/pr0n/Select.pm b/perl/Sesse/pr0n/Select.pm index 1086587..21dca6a 100644 --- a/perl/Sesse/pr0n/Select.pm +++ b/perl/Sesse/pr0n/Select.pm @@ -23,20 +23,30 @@ 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"); + } } } } + $dbh->do('UPDATE events SET last_update=CURRENT_TIMESTAMP WHERE id=?', undef, $event) + or dberror($r, "Cache invalidation failed"); + Sesse::pr0n::Common::footer($r); return Apache2::Const::OK;