fixed redirect bugs in file, image, and zip archive
added cache control headers to style added cache control headers to snippet added server side caching to snippet
This commit is contained in:
parent
404749e32b
commit
da9c26d72c
7 changed files with 45 additions and 4 deletions
|
|
@ -319,7 +319,7 @@ sub www_view {
|
|||
}
|
||||
my $storage = $self->getStorageLocation;
|
||||
$self->session->http->setRedirect($storage->getUrl($self->get("filename")));
|
||||
return "";
|
||||
return "1";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -309,7 +309,7 @@ sub www_view {
|
|||
return $self->getContainer->www_view;
|
||||
}
|
||||
$self->session->http->setRedirect($self->getFileUrl($self->getValue("showPage")));
|
||||
return "";
|
||||
return "1";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ use strict;
|
|||
use WebGUI::Asset;
|
||||
use WebGUI::Asset::Template;
|
||||
use WebGUI::Macro;
|
||||
use HTTP::Date;
|
||||
|
||||
our @ISA = qw(WebGUI::Asset);
|
||||
|
||||
|
|
@ -71,6 +72,14 @@ sub definition {
|
|||
fieldType=>'codearea',
|
||||
defaultValue=>undef
|
||||
},
|
||||
cacheTimeout => {
|
||||
tab => "display",
|
||||
fieldType => "interval",
|
||||
defaultValue => 3600,
|
||||
uiLevel => 8,
|
||||
label => $i18n->get("cache timeout"),
|
||||
hoverHelp => $i18n->get("cache timeout help")
|
||||
},
|
||||
processAsTemplate=>{
|
||||
fieldType=>'yesNo',
|
||||
defaultValue=>0
|
||||
|
|
@ -157,11 +166,20 @@ sub indexContent {
|
|||
sub view {
|
||||
my $self = shift;
|
||||
my $calledAsWebMethod = shift;
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
my $out = WebGUI::Cache->new($self->session,"view_".$calledAsWebMethod."_".$self->getId)->get;
|
||||
return $out if $out;
|
||||
}
|
||||
my $output = $self->get("snippet");
|
||||
WebGUI::Macro::process($self->session,\$output);
|
||||
$output = $self->getToolbar.$output if ($self->session->var->get("adminOn") && !$calledAsWebMethod);
|
||||
return $output unless ($self->getValue("processAsTemplate"));
|
||||
return WebGUI::Asset::Template->processRaw($self->session, $output);
|
||||
unless ($self->getValue("processAsTemplate")) {
|
||||
$output = WebGUI::Asset::Template->processRaw($self->session, $output);
|
||||
}
|
||||
if (!$self->session->var->isAdminOn && $self->get("cacheTimeout") > 10) {
|
||||
WebGUI::Cache->new($self->session,"view_".$calledAsWebMethod."_".$self->getId)->set($output,$self->get("cacheTimeout"));
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -185,6 +203,12 @@ sub www_view {
|
|||
my $self = shift;
|
||||
my $mimeType=$self->getValue('mimeType');
|
||||
$self->session->http->setMimeType($mimeType || 'text/html');
|
||||
my $request = $self->session->request;
|
||||
if (defined $request && $request->protocol =~ /(\d\.\d)/ && $1 >= 1.1){
|
||||
$request->header_out('Cache-Control', "max-age=" . $self->get("cacheTimeout"));
|
||||
} elsif (defined $request) {
|
||||
$request->header_out('Expires', HTTP::Date::time2str(time + $self->get("cacheTimeout")));
|
||||
}
|
||||
return $self->view(1);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ our $HELP = {
|
|||
title => 'snippet add/edit title',
|
||||
body => 'snippet add/edit body',
|
||||
fields => [
|
||||
{
|
||||
title => 'cache timeout',
|
||||
namespace => 'Asset_File',
|
||||
description => 'cache timeout help'
|
||||
},
|
||||
{
|
||||
title => 'assetName',
|
||||
description => 'snippet description',
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ if ($self->session->user->isInGroup(2)) {
|
|||
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate, max-age=0" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
';
|
||||
$self->session->request->no_cache(1) if ($self->session->request);
|
||||
}
|
||||
my $style = WebGUI::Asset::Template->new($self->session,$templateId);
|
||||
my $output;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,16 @@ package WebGUI::i18n::English::Asset_Snippet;
|
|||
|
||||
our $I18N = {
|
||||
|
||||
'cache timeout' => {
|
||||
message => q|Cache Timeout|,
|
||||
lastUpdated => 0
|
||||
},
|
||||
|
||||
'cache timeout help' => {
|
||||
message => q|Since all users will see this asset the same way, we can cache it for long periods of time to increase performance. How long should we cache it?<br /> <br /><b>UI Level: 8</b>|,
|
||||
lastUpdated => 0
|
||||
},
|
||||
|
||||
'assetName' => {
|
||||
message => q|Snippet|,
|
||||
lastUpdated => 1128830080,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue