Merge branch '8' into psgi
Conflicts: lib/WebGUI/Asset/Template.pm lib/WebGUI/Session/Scratch.pm
This commit is contained in:
commit
cb3f83a93e
45 changed files with 987 additions and 860 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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>.
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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",
|
||||
);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -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}) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ with 'WebGUI::Role::Asset::RssFeed';
|
|||
use WebGUI::International;
|
||||
use HTML::Parser;
|
||||
use URI::Escape;
|
||||
use WebGUI::Utility qw/isIn/;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue