Merge branch '8' into psgi

Conflicts:
	lib/WebGUI/Asset/Template.pm
	lib/WebGUI/Session/Scratch.pm
This commit is contained in:
Doug Bell 2010-04-21 13:03:03 -05:00
commit cb3f83a93e
45 changed files with 987 additions and 860 deletions

View file

@ -290,7 +290,7 @@ See WebGUI::Asset::purgeCache() for details.
override purgeCache => sub {
my $self = shift;
eval{$self->session->cache->delete("view_".$self->getId)};
$self->session->cache->remove("view_".$self->getId);
super();
};
@ -322,7 +322,7 @@ sub view {
my $cache = $self->session->cache;
if (!$self->session->var->isAdminOn && $self->cacheTimeout > 10 && !$self->session->form->process("overrideTemplateId") &&
!$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) {
my $out = eval{$cache->get($self->getViewCacheKey)};
my $out = $cache->get($self->getViewCacheKey);
return $out if $out;
}
my %var;
@ -386,7 +386,7 @@ sub view {
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if (!$self->session->var->isAdminOn && $self->cacheTimeout > 10 && !$self->session->form->process("overrideTemplateId") &&
!$self->session->form->process($self->paginateVar) && !$self->session->form->process("makePrintable")) {
eval{$cache->set($self->getViewCacheKey, $out, $self->cacheTimeout)};
$cache->set($self->getViewCacheKey, $out, $self->cacheTimeout);
}
return $out;
}

View file

@ -1436,8 +1436,8 @@ override purgeCache => sub {
my $self = shift;
my $cache = $self->session->cache;
eval {
$cache->delete("view_".$self->getId);
$cache->delete($self->_visitorCacheKey);
$cache->remove("view_".$self->getId);
$cache->remove($self->_visitorCacheKey);
};
super();
};
@ -1584,7 +1584,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if ($self->_visitorCacheOk) {
my $out = eval{$cache->get($self->_visitorCacheKey)};
my $out = $cache->get($self->_visitorCacheKey);
$self->session->errorHandler->debug("HIT") if $out;
return $out if $out;
}
@ -1595,7 +1595,7 @@ sub view {
$self->prepareView unless ($self->{_viewTemplate});
my $out = $self->processTemplate($self->getViewTemplateVars,undef,$self->{_viewTemplate});
if ($self->_visitorCacheOk) {
eval{$cache->set($self->_visitorCacheKey, $out, $self->visitorCacheTimeout)};
$cache->set($self->_visitorCacheKey, $out, $self->visitorCacheTimeout);
}
return $out;
}

View file

@ -190,7 +190,7 @@ See WebGUI::Asset::purgeCache() for details.
override purgeCache => sub {
my $self = shift;
eval{$self->session->cache->delete("view_".$self->getId)};
$self->session->cache->remove("view_".$self->getId);
super();
};
@ -209,7 +209,7 @@ sub view {
# Use cached version for visitors
my $cache = $self->session->cache;
if ($self->session->user->isVisitor) {
my $out = eval{$cache->get("view_".$self->getId)};
my $out = $cache->get("view_".$self->getId);
return $out if $out;
}
@ -274,7 +274,7 @@ sub view {
# Update the cache
if ($self->session->user->isVisitor) {
eval{$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout)};
$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout);
}
return $out;

View file

@ -342,34 +342,6 @@ use WebGUI::HTML;
#----------------------------------------------------------------------------
=head2 addChild ( properties, [...] )
Add a child to this asset. See C<WebGUI::AssetLineage> for more info.
Overridden to ensure that only GalleryAlbums are added to Galleries.
=cut
sub addChild {
my $self = shift;
my $properties = shift;
my $albumClass = "WebGUI::Asset::Wobject::GalleryAlbum";
# Load the class
WebGUI::Pluggable::load( $properties->{className} );
if ( !$properties->{className}->isa( $albumClass ) ) {
$self->session->errorHandler->security(
"add a ".$properties->{className}." to a ".$self->className
);
return undef;
}
return $self->next::method( $properties, @_ );
}
#----------------------------------------------------------------------------
=head2 appendTemplateVarsSearchForm ( var )
Appends the template vars for the search form to the hash reference C<var>.

View file

@ -269,8 +269,8 @@ override purgeCache => sub {
my $self = shift;
my $cache = $self->session->cache;
eval {
$cache->delete([$self->proxiedUrl,"URL"]);
$cache->delete([$self->proxiedUrl,"HEADER"]);
$cache->remove($self->proxiedUrl."_URL");
$cache->remove($self->proxiedUrl."_HEADER");
};
super();
};
@ -316,8 +316,8 @@ sub view {
my $cache = $self->session->cache;
if ($requestMethod =~ /^GET$/i) {
eval {
$var{header} = $cache->get([$proxiedUrl,'HEADER']);
$var{content} = $cache->get([$proxiedUrl,"URL"]);
$var{header} = $cache->get($proxiedUrl.'_HEADER');
$var{content} = $cache->get($proxiedUrl."_URL");
};
}
@ -459,8 +459,8 @@ sub view {
}
unless ($self->cacheTimeout <= 10) {
eval{
$cache->set([$proxiedUrl,'URL'], $var{content}, $self->cacheTimeout);
$cache->set([$proxiedUrl,'HEADER'], $var{header}, $self->cacheTimeout);
$cache->set($proxiedUrl.'URL', $var{content}, $self->cacheTimeout);
$cache->set($proxiedUrl.'HEADER', $var{header}, $self->cacheTimeout);
};
}
}

View file

@ -420,12 +420,12 @@ override www_view => sub {
return $check if (defined $check);
my $cacheKey = $self->getWwwCacheKey('view');
my $cache = $session->cache;
my $out = eval{ $cache->get($cacheKey) };
my $out = $cache->get($cacheKey);
unless ($out) {
$self->prepareView;
$session->stow->set("cacheFixOverride", 1);
$out = $self->processStyle($self->view, { noHeadTags => 1 });
eval{ $cache->set($cacheKey, $out, 60) };
$cache->set($cacheKey, $out, 60);
$session->stow->delete("cacheFixOverride");
}
# keep those ads rotating even though the output is cached

View file

@ -85,6 +85,7 @@ property startZoom => (
maximum => 19,
label => ["startZoom label", 'Asset_Map'],
hoverHelp => ["startZoom description", 'Asset_Map'],
default => 1,
);
property templateIdEditPoint => (
tab => "display",
@ -116,6 +117,7 @@ property workflowIdPoint => (
label => ["workflowIdPoint label", 'Asset_Map'],
hoverHelp => ["workflowIdPoint description", 'Asset_Map'],
type => 'WebGUI::VersionTag',
default => "pbworkflow000000000003",
);
#-------------------------------------------------------------------

View file

@ -486,7 +486,7 @@ sub getListings {
|| ($versionTag && $versionTag->getId eq $self->tagId);
my $cache = $session->cache;
unless ($noCache) {
$listingsEncoded = eval{$cache->get("matrixListings_".$self->getId)};
$listingsEncoded = $cache->get("matrixListings_".$self->getId);
}
if ($listingsEncoded){
@ -526,7 +526,7 @@ assetData.revisionDate
}
$listingsEncoded = JSON->new->encode($listings);
eval{$cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->listingsCacheTimeout)};
$cache->set("matrixListings_".$self->getId, $listingsEncoded, $self->listingsCacheTimeout);
}
return $listings;
}
@ -647,7 +647,7 @@ sub view {
|| ($versionTag && $versionTag->getId eq $self->tagId);
my $cache = $session->cache;
unless ($noCache) {
$varStatisticsEncoded = eval{$cache->get("matrixStatistics_".$self->getId)};
$varStatisticsEncoded = $cache->get("matrixStatistics_".$self->getId);
}
if ($varStatisticsEncoded){
@ -797,7 +797,7 @@ sub view {
[$self->getId]);
$varStatisticsEncoded = JSON->new->encode($varStatistics);
eval{$cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->statisticsCacheTimeout)};
$cache->set("matrixStatistics_".$self->getId, $varStatisticsEncoded, $self->statisticsCacheTimeout);
}
foreach my $statistic (keys %{$varStatistics}) {

View file

@ -72,7 +72,7 @@ See WebGUI::Asset::purgeCache() for details.
override purgeCache => sub {
my $self = shift;
eval{$self->session->cache->delete("view_".$self->getId)};
$self->session->cache->remove("view_".$self->getId);
super();
};
@ -88,7 +88,7 @@ sub view {
my $self = shift;
my $cache = $self->session->cache;
if ($self->session->user->isVisitor) {
my $out = eval{$cache->get("view_".$self->getId)};
my $out = $cache->get("view_".$self->getId);
return $out if $out;
}
my %var;
@ -153,7 +153,7 @@ sub view {
my $out = $self->processTemplate(\%var,undef,$self->{_viewTemplate});
if ($self->session->user->isVisitor) {
eval{$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout)};
$cache->set("view_".$self->getId, $out, $self->visitorCacheTimeout);
}
return $out;
}

View file

@ -82,7 +82,7 @@ See WebGUI::Asset::purgeCache() for details.
override purgeCache => sub {
my $self = shift;
eval{$self->session->cache->delete("view_".$self->getId)};
eval{$self->session->cache->remove("view_".$self->getId)};
super();
};

View file

@ -559,7 +559,7 @@ See WebGUI::Asset::purgeCache() for details.
override purgeCache => sub {
my $self = shift;
eval{$self->session->cache->delete("view_".$self->getId)};
$self->session->cache->remove("view_".$self->getId);
super();
};

View file

@ -115,23 +115,36 @@ Combines all feeds into a single XML::FeedPP object.
sub generateFeed {
my $self = shift;
my $limit = shift || $self->maxHeadlines;
my $session = $self->session;
my ( $log, $cache ) = $session->quick(qw( log cache ));
my $feed = XML::FeedPP::Atom->new();
my $log = $self->session->log;
# build one feed out of many
my $newlyCached = 0;
my $cache = $self->session->cache;
foreach my $url (split(/\s+/, $self->rssUrl)) {
$log->info("Processing FEED: ".$url);
$url =~ s/^feed:/http:/;
if ($self->processMacroInRssUrl) {
WebGUI::Macro::process($self->session, \$url);
}
my $value = eval{$cache->get($url)};
unless ($value) {
$value = eval{$cache->setByHttp($url, $self->cacheTimeout)};
$newlyCached = 1;
}
my $value = $cache->compute( $url, sub {
my $ua = LWP::UserAgent->new(
env_proxy => 1,
agent => "WebGUI/" . $WebGUI::VERSION,
timeout => 30,
);
my $r = $ua->get( $url );
if ( $r->is_error ) {
$session->log->warn( "Could not get syndicated content from '$url': " . $r->status_line );
}
else {
$newlyCached = 1;
return $r->decoded_content;
}
}, $self->cacheTimeout );
# if the content can be downgraded, it is either valid latin1 or didn't have
# an HTTP Content-Encoding header. In the second case, XML::FeedPP will take
# care of any encoding specified in the XML prolog
@ -142,7 +155,7 @@ sub generateFeed {
$feed->merge_item($singleFeed);
};
if ($@) {
$log->error("Syndicated Content asset (".$self->getId.") has a bad feed URL (".$url."). Failed with ".$@);
$log->warn("Syndicated Content asset (".$self->getId.") has a bad feed URL (".$url."). Failed with ".$@);
}
}
@ -159,7 +172,7 @@ sub generateFeed {
}
}
my %seen = {};
my %seen = ();
my @items = $feed->get_item;
$feed->clear_item;
ITEM: foreach my $item (@items) {
@ -306,7 +319,7 @@ See WebGUI::Asset::purgeCache() for details.
override purgeCache => sub {
my $self = shift;
eval{$self->session->cache->delete("view_".$self->getId)};
$self->session->cache->remove("view_".$self->getId);
super();
};
@ -324,7 +337,7 @@ sub view {
# try the cached version
my $cache = $session->cache;
my $out = eval{$cache->get("view_".$self->getId)};
my $out = $cache->get("view_".$self->getId);
return $out if ($out ne "" && !$session->var->isAdminOn);
#return $out if $out;
@ -332,7 +345,7 @@ sub view {
my $feed = $self->generateFeed;
$out = $self->processTemplate($self->getTemplateVariables($feed),undef,$self->{_viewTemplate});
if (!$session->var->isAdminOn && $self->cacheTimeout > 10) {
eval{$cache->set("view_".$self->getId, $out, $self->cacheTimeout)};
$cache->set("view_".$self->getId, $out, $self->cacheTimeout);
}
return $out;
}

View file

@ -2656,7 +2656,7 @@ sub www_export {
push(@fieldLabels,@metaDataFields)
}
$query = eval{$session->cache->get("query_".$thingId)};
$query = $session->cache->get("query_".$thingId);
$sth = $session->db->read($query);
### Loop through the returned structure and put it through Text::CSV
@ -3301,7 +3301,7 @@ sequenceNumber');
}
# store query in cache for thirty minutes
eval{$self->session->cache->set("query_".$thingId, $query, 30*60)};
$self->session->cache->set("query_".$thingId, $query, 30*60);
$paginatePage = $self->session->form->param('pn') || 1;
$currentUrl = $self->session->url->append($currentUrl, "orderBy=".$orderBy) if $orderBy;

View file

@ -187,6 +187,7 @@ with 'WebGUI::Role::Asset::RssFeed';
use WebGUI::International;
use HTML::Parser;
use URI::Escape;
use WebGUI::Utility qw/isIn/;
#-------------------------------------------------------------------