the original file back (as we used to).
my ($r, $filename, $id, $dbwidth, $dbheight, $infobox, $xres, $yres, @otherres) = @_;
my $fname = get_disk_location($r, $id);
my ($r, $filename, $id, $dbwidth, $dbheight, $infobox, $xres, $yres, @otherres) = @_;
my $fname = get_disk_location($r, $id);
- unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1)) {
+ unless (defined($xres) && ($xres < $dbheight || $yres < $dbwidth || $dbwidth == -1 || $dbheight == -1 || $xres == -1)) {
- $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter);
+ if ($xres != -1) {
+ $cimg->Resize(width=>$nwidth, height=>$nheight, filter=>$filter);
+ }
- if (($nwidth >= 800 || $nheight >= 600) && $infobox == 1) {
+ if (($nwidth >= 800 || $nheight >= 600 || $xres == -1) && $infobox == 1) {
make_infobox($cimg, $info, $r);
}
make_infobox($cimg, $info, $r);
}
# Find the event and file name
my ($event,$filename,$xres,$yres);
my $infobox = 1;
# Find the event and file name
my ($event,$filename,$xres,$yres);
my $infobox = 1;
- if ($r->uri =~ m#^/([a-zA-Z0-9-]+)/([a-zA-Z0-9._-]+)$#) {
+ if ($r->uri =~ m#^/([a-zA-Z0-9-]+)/original/([a-zA-Z0-9._-]+)$#) {
$event = $1;
$filename = $2;
} elsif ($r->uri =~ m#^/([a-zA-Z0-9-]+)/(\d+)x(\d+)/(nobox/)?([a-zA-Z0-9._-]+)$#) {
$event = $1;
$filename = $2;
} elsif ($r->uri =~ m#^/([a-zA-Z0-9-]+)/(\d+)x(\d+)/(nobox/)?([a-zA-Z0-9._-]+)$#) {
$xres = $2;
$yres = $3;
$infobox = 0 if (defined($4));
$xres = $2;
$yres = $3;
$infobox = 0 if (defined($4));
+ } elsif ($r->uri =~ m#^/([a-zA-Z0-9-]+)/(nobox/)?([a-zA-Z0-9._-]+)$#) {
+ $event = $1;
+ $filename = $3;
+ $xres = -1;
+ $yres = -1;
+ $infobox = 0 if (defined($2));
}
my ($id, $dbwidth, $dbheight);
}
my ($id, $dbwidth, $dbheight);
if (defined($val) && $val =~ /^(\d+)$/) {
$settings{$s} = $val;
}
if (defined($val) && $val =~ /^(\d+)$/) {
$settings{$s} = $val;
}
- if ($s eq "num" && defined($val) && $val == -1) {
+ if (($s eq "num" || $s eq "xres" || $s eq "yres") && defined($val) && $val == -1) {
$settings{$s} = $val;
}
}
$settings{$s} = $val;
}
}
my $filename = $ref->{'filename'};
my $uri = $filename;
my $filename = $ref->{'filename'};
my $uri = $filename;
- if (defined($xres) && defined($yres)) {
+ if (defined($xres) && defined($yres) && $xres != -1) {
$uri = "${xres}x$yres/$infobox$filename";
$uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
}
$r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
}
$r->print(" <p><a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
my $filename = $ref->{'filename'};
my $uri = $filename;
my $filename = $ref->{'filename'};
my $uri = $filename;
- if (defined($xres) && defined($yres)) {
+ if (defined($xres) && defined($yres) && $xres != -1) {
$uri = "${xres}x$yres/$infobox$filename";
$uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
}
my $selected = $ref->{'selected'} ? ' checked="checked"' : '';
}
my $selected = $ref->{'selected'} ? ' checked="checked"' : '';
my $filename = $ref->{'filename'};
my $uri = $filename;
my $filename = $ref->{'filename'};
my $uri = $filename;
- if (defined($xres) && defined($yres)) {
+ if (defined($xres) && defined($yres) && $xres != -1) {
$uri = "${xres}x$yres/$infobox$filename";
$uri = "${xres}x$yres/$infobox$filename";
+ } elsif (defined($xres) && $xres == -1) {
+ $uri = "original/$infobox$filename";
}
$r->print(" <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
}
$r->print(" <a href=\"$uri\"><img src=\"${thumbxres}x${thumbyres}/$filename\" alt=\"\"$imgsz /></a>\n");
$r->print(" <p>$title:\n");
for my $a (@$alternatives) {
$r->print(" <p>$title:\n");
for my $a (@$alternatives) {
- # Parse the current alternative
- my ($v1, $v2) = split /x/, $a;
my %newsettings = %$settings;
my %newsettings = %$settings;
- if (defined($v1) && defined($v2)) {
+ if (ref $a) {
+ my ($v1, $v2);
+ ($text, $v1, $v2) = @$a;
+
$newsettings{$var1} = $v1;
$newsettings{$var2} = $v2;
} else {
$newsettings{$var1} = $v1;
$newsettings{$var2} = $v2;
} else {
- $newsettings{$var1} = undef;
- $newsettings{$var2} = undef;
+ $text = $a;
+
+ # Parse the current alternative
+ my ($v1, $v2) = split /x/, $a;
+
+ $newsettings{$var1} = $v1;
+ $newsettings{$var2} = $v2;
# Check if these settings are current (print only label)
if (eq_with_undef($settings->{$var1}, $newsettings{$var1}) &&
eq_with_undef($settings->{$var2}, $newsettings{$var2})) {
# Check if these settings are current (print only label)
if (eq_with_undef($settings->{$var1}, $newsettings{$var1}) &&
eq_with_undef($settings->{$var2}, $newsettings{$var2})) {
- Sesse::pr0n::Common::print_link($r, $a, "/$event/", \%newsettings, $defsettings);
+ Sesse::pr0n::Common::print_link($r, $text, "/$event/", \%newsettings, $defsettings);
my ($r, $event, $settings, $defsettings) = @_;
my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1280x960);
chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'viewres-unlimited'));
my ($r, $event, $settings, $defsettings) = @_;
my @alternatives = qw(320x256 512x384 640x480 800x600 1024x768 1280x960);
chomp (my $unlimited = Sesse::pr0n::Templates::fetch_template($r, 'viewres-unlimited'));
- push @alternatives, $unlimited;
+ chomp (my $original = Sesse::pr0n::Templates::fetch_template($r, 'viewres-original'));
+ push @alternatives, [ $unlimited, undef, undef ];
+ push @alternatives, [ $original, -1, -1 ];
print_changes($r, $event, 'viewres', $settings, $defsettings,
'xres', 'yres', \@alternatives);
print_changes($r, $event, 'viewres', $settings, $defsettings,
'xres', 'yres', \@alternatives);
# Make cache while we're at it.
# Don't do it for the resource forks Mac OS X loves to upload :-(
if ($filename !~ /^\._/) {
# Make cache while we're at it.
# Don't do it for the resource forks Mac OS X loves to upload :-(
if ($filename !~ /^\._/) {
- Sesse::pr0n::Common::ensure_cached($r, $filename, $newid, -1, -1, 1, 80, 64, 320, 256);
+ Sesse::pr0n::Common::ensure_cached($r, $filename, $newid, -1, -1, 1, 80, 64, 320, 256, -1, -1);
}
# OK, we got this far, commit
}
# OK, we got this far, commit
return Sesse::pr0n::NewEvent::handler($r);
} elsif ($uri =~ m#^/[a-zA-Z0-9-]+/?$#) {
return Sesse::pr0n::Index::handler($r);
return Sesse::pr0n::NewEvent::handler($r);
} elsif ($uri =~ m#^/[a-zA-Z0-9-]+/?$#) {
return Sesse::pr0n::Index::handler($r);
- } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/(\d+x\d+/)?(nobox/)?[a-zA-Z0-9._-]+$#) {
+ } elsif ($uri =~ m#^/[a-zA-Z0-9-]+/(\d+x\d+/|original)?(nobox/)?[a-zA-Z0-9._-]+$#) {
return Sesse::pr0n::Image::handler($r);
}
return Sesse::pr0n::Image::handler($r);
}