diff --git a/lib/WebGUI/Asset/Redirect.pm b/lib/WebGUI/Asset/Redirect.pm index 8c625924f..535ba8265 100644 --- a/lib/WebGUI/Asset/Redirect.pm +++ b/lib/WebGUI/Asset/Redirect.pm @@ -15,11 +15,37 @@ package WebGUI::Asset::Redirect; =cut use strict; -use WebGUI::Asset; use WebGUI::Macro; -our @ISA = qw(WebGUI::Asset); - +use WebGUI::Definition::Asset; +extends 'WebGUI::Asset'; +aspect assetName => ['assetName', 'Asset_Redirect']; +aspect uiLevel => 9; +aspect icon => 'redirect.gif'; +aspect tableName => 'redirect'; +property redirectUrl => ( + tab => "properties", + label => ['redirect url', 'Asset_Redirect'], + hoverHelp => ['redirect url description', 'Asset_Redirect'], + fieldType => 'url', + default => undef, + ); +property redirectType => ( + tab => "properties", + label => ['Redirect Type', 'Asset_Redirect'], + hoverHelp => ['redirect type description', 'Asset_Redirect'], + fieldType => 'selectBox', + default => 302, + options => \&_redirectType_options, + ); +sub _redirectType_options { + my $session = shift->session; + my $i18n = WebGUI::International->new($session, "Asset_Redirect"); + return { + 302 => $i18n->get('302 Moved Temporarily'), + 301 => $i18n->get('301 Moved Permanently'), + }; +} =head1 NAME @@ -40,56 +66,6 @@ These methods are available from this class: =cut - - -#------------------------------------------------------------------- - -=head2 definition ( definition ) - -Defines the properties of this asset. - -=head3 definition - -A hash reference passed in from a subclass definition. - -=cut - -sub definition { - my $class = shift; - my $session = shift; - my $definition = shift; - my $i18n = WebGUI::International->new($session,"Asset_Redirect"); - push(@{$definition}, { - assetName=>$i18n->get('assetName'), - uiLevel => 9, - autoGenerateForms=>1, - icon=>'redirect.gif', - tableName=>'redirect', - className=>'WebGUI::Asset::Redirect', - properties=>{ - redirectUrl=>{ - tab => "properties", - label => $i18n->get('redirect url'), - hoverHelp => $i18n->get('redirect url description'), - fieldType => 'url', - defaultValue => undef - }, - redirectType=>{ - tab => "properties", - label => $i18n->get('Redirect Type'), - hoverHelp => $i18n->get('redirect type description'), - fieldType => 'selectBox', - defaultValue => 302, - options => { - 302 => $i18n->get('302 Moved Temporarily'), - 301 => $i18n->get('301 Moved Permanently'), - } - }, - }, - }); - return $class->SUPER::definition($session,$definition); -} - #------------------------------------------------------------------- =head2 exportHtml_view @@ -101,9 +77,9 @@ Override the method from AssetExportHtml to handle the redirect. sub exportHtml_view { my $self = shift; return $self->session->privilege->noAccess() unless $self->canView; - my $url = $self->get("redirectUrl"); + my $url = $self->redirectUrl; WebGUI::Macro::process($self->session, \$url); - return '' if ($url eq $self->get("url")); + return '' if ($url eq $self->url); $self->session->http->setRedirect($url); return $self->session->style->process('', 'PBtmpl0000000000000060'); } @@ -119,7 +95,7 @@ Display the redirect url when in admin mode. sub view { my $self = shift; if ($self->session->var->isAdminOn) { - return $self->getToolbar.' '.$self->getTitle.' '.$self->get('redirectUrl'); + return $self->getToolbar.' '.$self->getTitle.' '.$self->redirectUrl; } else { return ""; @@ -138,7 +114,7 @@ sub www_view { my $self = shift; return $self->session->privilege->noAccess() unless $self->canView; my $i18n = WebGUI::International->new($self->session, "Asset_Redirect"); - my $url = $self->get("redirectUrl"); + my $url = $self->redirectUrl; WebGUI::Macro::process($self->session, \$url); if ($self->session->var->isAdminOn() && $self->canEdit) { return $self->getAdminConsole->render($i18n->get("what do you want to do with this redirect").' @@ -148,8 +124,8 @@ sub www_view {
  • '.$i18n->get("go to the redirect parent page").'
  • ',$i18n->get("assetName")); } - unless ($url eq $self->get("url")) { - $self->session->http->setRedirect($url,$self->get('redirectType')); + unless ($url eq $self->url) { + $self->session->http->setRedirect($url,$self->redirectType); return undef; } return $i18n->get('self_referential');