summaryrefslogtreecommitdiff
path: root/lib/VNDB/VN.pm
diff options
context:
space:
mode:
authoryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-08-14 21:11:52 +0000
committeryorhel <yorhel@1fe2e327-d9db-4752-bcf7-ef0cb4a1748b>2008-08-14 21:11:52 +0000
commit2cf1c1848571f11e753dec784c7323e51b00801d (patch)
treea9502326f5dfc002e962ecaed115995db75d13fd /lib/VNDB/VN.pm
parent889e9b9c481170c94f0b5e773e7c39d27b921a43 (diff)
Added screenshots table to store the dimensions of all images, moved to AJAX for determining when a thumbnail has been generated after uploading a screenshot, and got rid of the javascript image preloader
git-svn-id: svn://vndb.org/vndb@84 1fe2e327-d9db-4752-bcf7-ef0cb4a1748b
Diffstat (limited to 'lib/VNDB/VN.pm')
-rw-r--r--lib/VNDB/VN.pm25
1 files changed, 20 insertions, 5 deletions
diff --git a/lib/VNDB/VN.pm b/lib/VNDB/VN.pm
index a6e5e735..e52fc2fc 100644
--- a/lib/VNDB/VN.pm
+++ b/lib/VNDB/VN.pm
@@ -84,7 +84,7 @@ sub VNEdit {
relations => join('|||', map { $_->{relation}.','.$_->{id}.','.$_->{title} } @{$v->{relations}}),
categories => join(',', map { $_->[0].$_->[1] } sort { $a->[0] cmp $b->[0] } @{$v->{categories}}),
anime => join(' ', sort { $a <=> $b } map $_->{id}, @{$v->{anime}}),
- screenshots => join(' ', map "$$_[0],$$_[1]", @{$v->{screenshots}}),
+ screenshots => join(' ', map "$$_{id},$$_{nsfw}", @{$v->{screenshots}}),
) : ();
my $frm = {};
@@ -323,10 +323,25 @@ sub VNXML {
sub VNScrXML {
my $self = shift;
-
- return $self->ResNotFound if $self->ReqMethod ne 'POST';
return $self->ResDenied if !$self->AuthCan('edit');
+ # check the status of recently uploaded screenshots
+ if($self->ReqMethod ne 'POST') {
+ my $ids = $self->FormCheck(
+ { name => 'id', required => 1, template => 'int', multi => 1 }
+ );
+ return $self->ResNotFound if $ids->{_err};
+ my $r = $self->DBGetScreenshot($ids->{id});
+ return $self->ResNotFound if !@$r;
+ my $x = $self->ResStartXML;
+ $x->startTag('images');
+ $x->emptyTag('image', id => $_->{id}, status => $_->{status}, width => $_->{width}, height => $_->{height})
+ for (@$r);
+ $x->endTag('images');
+ return;
+ }
+
+ # upload new screenshot
my $i = $self->FormCheck(
{ name => 'itemnumber', required => 1, template => 'int' }
);
@@ -349,11 +364,11 @@ sub VNScrXML {
if($id) {
unlink $tmp;
} else {
- $id = $self->DBIncId('screenshots_seq');
+ $id = $self->DBAddScreenshot;
my $new = sprintf '%s/%02d/%d.jpg', $self->{sfpath}, $id%100, $id;
rename $tmp, $new or die $!;
chmod 0666, $new;
- $self->RunCmd(sprintf 'screenshot %d', $id);
+ $self->RunCmd('screenshot');
}
my $x = $self->ResStartXML;