From 30f22c9b7aad4bbdaedc31a3ad72f9351d4d9d3d Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Tue, 18 Dec 2007 15:38:06 +0000 Subject: [PATCH] fixed some bugs in URL/Content handlers. fixed some bugs in Gallery. --- .../root_import_gallery-templates-2.wgpkg | Bin 21091 -> 0 bytes .../root_import_gallery-templates.wgpkg | Bin 0 -> 21168 bytes docs/upgrades/upgrade_7.4.18-7.5.0.pl | 3 - lib/WebGUI/Asset/Wobject/GalleryAlbum.pm | 15 ++- lib/WebGUI/AssetPackage.pm | 12 +- lib/WebGUI/Content/Asset.pm | 105 +++++++++--------- lib/WebGUI/Help/Asset_GalleryAlbum.pm | 5 + lib/WebGUI/Help/Asset_Photo.pm | 3 +- lib/WebGUI/URL/Content.pm | 10 +- lib/WebGUI/i18n/English/Asset_GalleryAlbum.pm | 10 ++ 10 files changed, 96 insertions(+), 67 deletions(-) delete mode 100644 docs/upgrades/templates-7.5.0/root_import_gallery-templates-2.wgpkg create mode 100644 docs/upgrades/templates-7.5.0/root_import_gallery-templates.wgpkg diff --git a/docs/upgrades/templates-7.5.0/root_import_gallery-templates-2.wgpkg b/docs/upgrades/templates-7.5.0/root_import_gallery-templates-2.wgpkg deleted file mode 100644 index 8b71ce9d9999cac292822d70153c60ce79749dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21091 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 fv=Y-2nt_UORIc~#={V%CV``=6K!2Wlg z|ELhDaoPXQ?f<^YuEN}iWTnM3QLZ@tUSrD2ODyYt^-SNxC5{@1H>Q#5+W z`C}g=%A7Yv-{|=!JS4&}DLSbYDiq7?;Co2$qsBLxMW}GSJjGr-M4xwHid4*WejZ$J zbWm!fJSwhB-`-j2(xfg@U35ZH=S;G6d06~7>zCOaXilP!cVSwJ9~_*h*Fai0-qEOH zgkA8oeNo0%rpaJ6MyOCqTTC49gdR3~@nfe<)@gL=B*=P#OQ9VGl=p<>YtbRbc%0A; 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 diff --git a/docs/upgrades/templates-7.5.0/root_import_gallery-templates.wgpkg b/docs/upgrades/templates-7.5.0/root_import_gallery-templates.wgpkg new file mode 100644 index 0000000000000000000000000000000000000000..19f52f7532468c9b77e4f9955d44a34a827931d2 GIT binary patch literal 21168 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 Q+)?2F0A^+5v;eLF0AxK$#Q*>R literal 0 HcmV?d00001 diff --git a/docs/upgrades/upgrade_7.4.18-7.5.0.pl b/docs/upgrades/upgrade_7.4.18-7.5.0.pl index 3e95a300b..c08072f1a 100644 --- a/docs/upgrades/upgrade_7.4.18-7.5.0.pl +++ b/docs/upgrades/upgrade_7.4.18-7.5.0.pl @@ -390,6 +390,3 @@ sub createNewTemplatesFolder { return $newFolder; } - - ->>>>>>> .merge-right.r5144 diff --git a/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm b/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm index 2f62447e3..33ba9019f 100644 --- a/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm +++ b/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm @@ -564,14 +564,18 @@ sub view_thumbnails { #---------------------------------------------------------------------------- -=head2 www_addArchive ( ) +=head2 www_addArchive ( params ) -Show the form to add an archive of files to this gallery. +Show the form to add an archive of files to this gallery. C is a hash +reference of parameters with the following keys: + + error => An error message to show to the user. =cut sub www_addArchive { my $self = shift; + my $params = shift; return $self->session->privilege->insufficient unless $self->canAddFile; @@ -579,6 +583,8 @@ sub www_addArchive { my $form = $self->session->form; my $var = $self->getTemplateVars; + $var->{ error } = $params->{ error }; + $var->{ form_start } = WebGUI::Form::formHeader( $session, { action => $self->getUrl('func=addArchiveSave'), @@ -639,6 +645,11 @@ sub www_addArchiveSave { my $storageId = $form->get("archive", "File"); my $storage = WebGUI::Storage->get( $session, $storageId ); + if (!$storage) { + return $self->www_addArchive({ + error => sprintf $i18n->get('addArchive error too big'), + }); + } my $filename = $storage->getPath( $storage->getFiles->[0] ); $self->addArchive( $filename, $properties ); diff --git a/lib/WebGUI/AssetPackage.pm b/lib/WebGUI/AssetPackage.pm index 5ae3c2930..aec12f86b 100644 --- a/lib/WebGUI/AssetPackage.pm +++ b/lib/WebGUI/AssetPackage.pm @@ -276,12 +276,12 @@ Returns a tarball file for the user to download containing the package data. =cut sub www_exportPackage { - my $self = shift; - return $self->session->privilege->insufficient() unless ($self->get("isPackage") && $self->canEdit && $self->session->user->isInGroup(4)); - my $storage = $self->exportPackage; - my $filename = $storage->getFiles->[0]; - $self->session->http->setRedirect($storage->getUrl($storage->getFiles->[0])); - return "redirect"; + my $self = shift; + return $self->session->privilege->insufficient() unless ($self->get("isPackage") && $self->canEdit && $self->session->user->isInGroup(4)); + my $storage = $self->exportPackage; + my $filename = $storage->getFiles->[0]; + $self->session->http->setRedirect($storage->getUrl($storage->getFiles->[0])); + return "redirect"; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Content/Asset.pm b/lib/WebGUI/Content/Asset.pm index 9caab81fe..305711440 100644 --- a/lib/WebGUI/Content/Asset.pm +++ b/lib/WebGUI/Content/Asset.pm @@ -84,60 +84,65 @@ sub handler { my ($session) = @_; my ($errorHandler, $http, $var, $asset, $request, $config) = $session->quick(qw(errorHandler http var asset request config)); my $output = ""; - if ($errorHandler->canShowPerformanceIndicators) { #show performance indicators if required - my $t = [Time::HiRes::gettimeofday()]; - $output = page($session); - $t = Time::HiRes::tv_interval($t) ; - if ($output =~ /<\/title>/) { - $output =~ s/<\/title>/ : ${t} seconds<\/title>/i; - } - else { - # Kludge. - my $mimeType = $http->getMimeType(); - if ($mimeType eq 'text/css') { - $session->output->print("\n/* Page generated in $t seconds. */\n"); - } - elsif ($mimeType eq 'text/html') { - $session->output->print("\nPage generated in $t seconds.\n"); - } - else { - # Don't apply to content when we don't know how - # to modify it semi-safely. - } - } - } + if ($errorHandler->canShowPerformanceIndicators) { #show performance indicators if required + my $t = [Time::HiRes::gettimeofday()]; + $output = page($session); + $t = Time::HiRes::tv_interval($t) ; + if ($output =~ /<\/title>/) { + $output =~ s/<\/title>/ : ${t} seconds<\/title>/i; + } else { + # Kludge. + my $mimeType = $http->getMimeType(); + if ($mimeType eq 'text/css') { + $session->output->print("\n/* Page generated in $t seconds. */\n"); + } + elsif ($mimeType eq 'text/html') { + $session->output->print("\nPage generated in $t seconds.\n"); + } + else { + # Don't apply to content when we don't know how + # to modify it semi-safely. + } + } + } + else { - my $asset = getAsset($session, getRequestedAssetUrl($session)); + my $asset = getAsset($session, getRequestedAssetUrl($session)); - # display from cache if page hasn't been modified. - if ($var->get("userId") eq "1" && defined $asset && !$http->ifModifiedSince($asset->getContentLastModified)) { - $http->setStatus("304","Content Not Modified"); - $http->sendHeader; - $session->close; - return Apache2::Const::OK; - } + # display from cache if page hasn't been modified. + if ($var->get("userId") eq "1" && defined $asset && !$http->ifModifiedSince($asset->getContentLastModified)) { + $http->setStatus("304","Content Not Modified"); + $http->sendHeader; + $session->close; + return Apache2::Const::OK; + } + + # return the page. + else { + $output = page($session, undef, $asset); + } + } + + my $filename = $http->getStreamedFile(); + if ((defined $filename) && ($config->get("enableStreamingUploads") eq "1")) { + my $ct = guess_media_type($filename); + my $oldContentType = $request->content_type($ct); + if ($request->sendfile($filename) ) { + $session->close; + return Apache2::Const::OK; + } + else { + $request->content_type($oldContentType); + } + } + + # Uhm... why here and not somewhere else? Do content handlers manage their own content + # or should the URL handlers do it for them? + if ($output eq "redirect") { + $http->sendHeader; + } - # return the page. - else { - $output = page($session, undef, $asset); - } - } - my $filename = $http->getStreamedFile(); - if ((defined $filename) && ($config->get("enableStreamingUploads") eq "1")) { - my $ct = guess_media_type($filename); - my $oldContentType = $request->content_type($ct); - if ($request->sendfile($filename) ) { - $session->close; - return Apache2::Const::OK; - } else { - $request->content_type($oldContentType); - } - } - $http->sendHeader(); #http object will only send the header once per request, so if the above sent a header as part of it's operation, this will do nothing. - unless ($http->isRedirect()) { - $session->output->print($output); - } # ... return $output; } diff --git a/lib/WebGUI/Help/Asset_GalleryAlbum.pm b/lib/WebGUI/Help/Asset_GalleryAlbum.pm index 25cc4598a..5d24a4039 100644 --- a/lib/WebGUI/Help/Asset_GalleryAlbum.pm +++ b/lib/WebGUI/Help/Asset_GalleryAlbum.pm @@ -176,6 +176,11 @@ our $HELP = { }, ], variables => { + { + name => 'error', + description => 'helpvar error', + required => 1, + }, { name => 'form_start', description => 'helpvar form_start', diff --git a/lib/WebGUI/Help/Asset_Photo.pm b/lib/WebGUI/Help/Asset_Photo.pm index 9a733ed42..7943361f8 100644 --- a/lib/WebGUI/Help/Asset_Photo.pm +++ b/lib/WebGUI/Help/Asset_Photo.pm @@ -207,7 +207,8 @@ our $HELP = { required => 1, }, ], - } + }, + 'help view' => { title => 'help view title', body => 'help view body', diff --git a/lib/WebGUI/URL/Content.pm b/lib/WebGUI/URL/Content.pm index 6f4c88fb7..7bc4c5837 100644 --- a/lib/WebGUI/URL/Content.pm +++ b/lib/WebGUI/URL/Content.pm @@ -68,15 +68,15 @@ sub handler { $session->http->sendHeader(); $session->output->print($output) } - if ($session->errorHandler->canShowDebug()) { - $session->output->print($session->errorHandler->showDebug(),1); - } + if ($session->errorHandler->canShowDebug()) { + $session->output->print($session->errorHandler->showDebug(),1); + } } last; } } - } - WebGUI::Affiliate::grabReferral($session); # process affiliate tracking request + } + WebGUI::Affiliate::grabReferral($session); # process affiliate tracking request $session->close; return Apache2::Const::OK; }); diff --git a/lib/WebGUI/i18n/English/Asset_GalleryAlbum.pm b/lib/WebGUI/i18n/English/Asset_GalleryAlbum.pm index 7724c47fc..833558c6a 100644 --- a/lib/WebGUI/i18n/English/Asset_GalleryAlbum.pm +++ b/lib/WebGUI/i18n/English/Asset_GalleryAlbum.pm @@ -294,6 +294,16 @@ our $I18N = { lastUpdated => 0, }, + 'helpvar error' => { + message => 'An error message to show the user. Only defined when something went wrong.', + lastUpdated => 0, + }, + + 'addArchive error too big' => { + message => 'The archive you are trying to upload is too big. Please try again.', + lastUpdated => 0, + }, + }; 1;