diff --git a/asset_status.ods b/asset_status.ods index 758cbbba7..ee492a805 100644 Binary files a/asset_status.ods and b/asset_status.ods differ diff --git a/lib/WebGUI/Asset/Wobject/WeatherData.pm b/lib/WebGUI/Asset/Wobject/WeatherData.pm index 8497b9943..5cdbe4a0f 100644 --- a/lib/WebGUI/Asset/Wobject/WeatherData.pm +++ b/lib/WebGUI/Asset/Wobject/WeatherData.pm @@ -28,64 +28,48 @@ BEGIN { } use WebGUI::International; -use base 'WebGUI::Asset::Wobject'; -use WebGUI::Utility; - -#------------------------------------------------------------------- - -=head2 definition ( ) - -defines wobject properties for WeatherData instances - -=cut - -sub definition { - my $class = shift; - my $session = shift; - my $definition = shift; - my $i18n = WebGUI::International->new($session, "Asset_WeatherData"); - my $properties = { - partnerId => { - fieldType => "text", - tab => "properties", - defaultValue => undef, - hoverHelp => $i18n->get("partnerId help"), - label => $i18n->get("partnerId"), - subtext => ''.$i18n->get("you need a weather.com key").'', - }, - licenseKey => { - fieldType => "text", - tab => "properties", - defaultValue => undef, - hoverHelp => $i18n->get("licenseKey help"), - label => $i18n->get("licenseKey"), - }, - templateId =>{ - fieldType=>"template", - tab=>"display", - defaultValue=>'WeatherDataTmpl0000001', - namespace=>"WeatherData", - hoverHelp=>$i18n->get("Current Weather Conditions Template to use"), - label=>$i18n->get("Template") - }, - locations=>{ - fieldType=>"textarea", - defaultValue=>"Madison, WI\nToronto, Canada\n53536", - tab=>"properties", - hoverHelp=>$i18n->get("Your list of default weather locations"), - label=>$i18n->get("Default Locations") - }, - }; - push(@{$definition}, { - tableName=>'WeatherData', - className=>'WebGUI::Asset::Wobject::WeatherData', - assetName=>$i18n->get("assetName"), - icon=>'weatherData.gif', - autoGenerateForms=>1, - properties=>$properties - }); - return $class->SUPER::definition($session, $definition); +use WebGUI::Definition::Asset; +extends 'WebGUI::Asset::Wobject'; +aspect tableName => 'WeatherData'; +aspect assetName => ["assetName", 'Asset_WeatherData']; +aspect icon => 'weatherData.gif'; +property partnerId => ( + fieldType => "text", + tab => "properties", + default => undef, + hoverHelp => ["partnerId help", 'Asset_WeatherData'], + label => ["partnerId", 'Asset_WeatherData'], + subtext => \&_partnerId_subtext, + ); +sub _partnerId_subtext { + my $session = shift->session; + my $i18n = WebGUI::International->new($session, 'Asset_WeatherData'); + return ''.$i18n->get("you need a weather.com key").''; } +property licenseKey => ( + fieldType => "text", + tab => "properties", + default => undef, + hoverHelp => ["licenseKey help", 'Asset_WeatherData'], + label => ["licenseKey", 'Asset_WeatherData'], + ); +property templateId => ( + fieldType => "template", + tab => "display", + default => 'WeatherDataTmpl0000001', + namespace => "WeatherData", + hoverHelp => ["Current Weather Conditions Template to use", 'Asset_WeatherData'], + label => ["Template", 'Asset_WeatherData'], + ); +property locations => ( + fieldType => "textarea", + default => "Madison, WI\nToronto, Canada\n53536", + tab => "properties", + hoverHelp => ["Your list of default weather locations", 'Asset_WeatherData'], + label => ["Default Locations", 'Asset_WeatherData'], + ); + +use WebGUI::Utility; #------------------------------------------------------------------- @@ -98,11 +82,11 @@ See WebGUI::Asset::prepareView() for details. sub prepareView { my $self = shift; $self->SUPER::prepareView(); - my $template = WebGUI::Asset::Template->new($self->session, $self->get("templateId")); + my $template = WebGUI::Asset::Template->new($self->session, $self->templateId); if (!$template) { WebGUI::Error::ObjectNotFound::Template->throw( error => qq{Template not found}, - templateId => $self->get("templateId"), + templateId => $self->templateId, assetId => $self->getId, ); } @@ -124,11 +108,11 @@ sub view { my %var; my $url = $self->session->url; - if ($self->get("partnerId") ne "" && $self->get("licenseKey") ne "") { - foreach my $location (split("\n", $self->get("locations"))) { + if ($self->partnerId ne "" && $self->licenseKey ne "") { + foreach my $location (split("\n", $self->locations)) { my $weather = Weather::Com::Finder->new({ - 'partner_id' => $self->get("partnerId"), - 'license' => $self->get("licenseKey"), + 'partner_id' => $self->partnerId, + 'license' => $self->licenseKey, 'cache' => '/tmp', }); next unless defined $weather;