]> git.sesse.net Git - pr0n/blobdiff - perl/Sesse/pr0n/Index.pm
Add a concept where an image can be a rendering of another, which means it is not...
[pr0n] / perl / Sesse / pr0n / Index.pm
index fc8be72207a93c45e067bf217f3551ebb6175cf7..7d2ddf8227703ae74a51a066557c06b81f5bf55e 100644 (file)
@@ -63,8 +63,8 @@ sub handler {
                $where = ' AND event=' . $dbh->quote($event);
        }
        
-       # Any NEF files => default to processing
-       my $ref = $dbh->selectrow_hashref("SELECT * FROM images WHERE vhost=? $where AND ( LOWER(filename) LIKE '%.nef' OR LOWER(filename) LIKE '%.cr2' ) LIMIT 1",
+       # Any NEF files with no non-NEF renders => default to processing
+       my $ref = $dbh->selectrow_hashref("SELECT * FROM images WHERE vhost=? $where AND ( LOWER(filename) LIKE '%.nef' OR LOWER(filename) LIKE '%.cr2' ) AND render_id IS NULL LIMIT 1",
                undef, Sesse::pr0n::Common::get_server_name($r))
                and $defsettings{'xres'} = $defsettings{'yres'} = undef;
        
@@ -156,13 +156,13 @@ sub handler {
        # }
        
        # Count the number of selected images.
-       $ref = $dbh->selectrow_hashref("SELECT COUNT(*) AS num_selected FROM images WHERE vhost=? $where AND selected=\'t\'", undef, Sesse::pr0n::Common::get_server_name($r));
+       $ref = $dbh->selectrow_hashref("SELECT COUNT(*) AS num_selected FROM images WHERE vhost=? $where AND selected AND NOT is_render", undef, Sesse::pr0n::Common::get_server_name($r));
        my $num_selected = $ref->{'num_selected'};
 
        # Find all images related to this event.
        my $limit = (defined($start) && defined($num) && !$settings{'fullscreen'}) ? (" LIMIT $num OFFSET " . ($start-1)) : "";
 
-       my $q = $dbh->prepare("SELECT *, (date - INTERVAL '6 hours')::date AS day FROM images WHERE vhost=? $where ORDER BY (date - INTERVAL '6 hours')::date $datesort,takenby,date,filename $limit")
+       my $q = $dbh->prepare("SELECT *, (date - INTERVAL '6 hours')::date AS day FROM images WHERE vhost=? $where AND NOT is_render ORDER BY (date - INTERVAL '6 hours')::date $datesort,takenby,date,filename $limit")
                or return dberror($r, "prepare()");
        $q->execute(Sesse::pr0n::Common::get_server_name($r))
                or return dberror($r, "image enumeration");
@@ -212,7 +212,6 @@ sub handler {
                        Sesse::pr0n::Templates::print_template($r, $io, "overloadmode");
                }
 
-               print_viewres($r, $io, $event, \%settings, \%defsettings);
                print_selected($r, $io, $event, \%settings, \%defsettings) if ($num_selected > 0);
                print_fullscreen($r, $io, $event, \%settings, \%defsettings);
                print_nextprev($r, $io, $event, $where, \%settings, \%defsettings);
@@ -226,6 +225,7 @@ sub handler {
                                        COUNT(*) AS num
                                FROM images
                                WHERE vhost=? $where
+                               AND NOT is_render
                                GROUP BY 1,2
                                ORDER BY 1,2")
                                or die "Couldn't prepare to find equipment: $!";
@@ -341,6 +341,12 @@ sub handler {
                                $imgsz = " width=\"$width\" height=\"$height\"";
                        }
 
+                       # Add fullscreen link.
+                       my %fssettings = %settings;
+                       $fssettings{'fullscreen'} = 1;
+                       my $fsquery = Sesse::pr0n::Common::get_query_string(\%fssettings, \%defsettings);
+                       $fsquery .= '#' . $img_num;
+
                        my $filename = $ref->{'filename'};
                        my $uri = $filename;
                        if (defined($xres) && defined($yres) && $xres != -1 && $xres != -2) {
@@ -359,7 +365,7 @@ sub handler {
                        } else {
                                $io->print("     ");
                        }
-                       $io->print("<a href=\"$prefix$uri\"><img src=\"$prefix${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
+                       $io->print("<a href=\"$prefix$uri\" id=\"$img_num\" onclick=\"location.href='$prefix$fsquery';return false;\"><img src=\"$prefix${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
                
                        if ($rot == 1) {
                                $io->print("      90 <input type=\"checkbox\" name=\"rot-" .
@@ -440,18 +446,6 @@ sub print_changes {
        $io->print("    </p>\n");
 }
 
-sub print_viewres {
-       my ($r, $io, $event, $settings, $defsettings) = @_;
-       my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1152x864 1280x960 1400x1050 1600x1200 1920x1440 2048x1536 2304x1728);
-       chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'viewres-unlimited'));
-       chomp (my $original = Sesse::pr0n::Templates::fetch_template($r, 'viewres-original'));
-       push @alternatives, [ $unlimited, -2, -2 ];
-       push @alternatives, [ $original, -1, -1 ];
-
-       print_changes($r, $io, $event, 'viewres', $settings, $defsettings,
-                     'xres', 'yres', \@alternatives);
-}
-
 sub print_nextprev {
        my ($r, $io, $event, $where, $settings, $defsettings) = @_;
        my $start = $settings->{'start'};
@@ -462,7 +456,7 @@ sub print_nextprev {
        return unless (defined($start) && defined($num));
 
        # determine total number
-       my $ref = $dbh->selectrow_hashref("SELECT count(*) AS num_images FROM images WHERE vhost=? $where",
+       my $ref = $dbh->selectrow_hashref("SELECT count(*) AS num_images FROM images WHERE vhost=? $where AND NOT is_render",
                undef, Sesse::pr0n::Common::get_server_name($r))
                or return dberror($r, "image enumeration");
        my $num_images = $ref->{'num_images'};