diff --git a/lib/WebGUI/Asset/Wobject/TimeTracking.pm b/lib/WebGUI/Asset/Wobject/TimeTracking.pm index 64c4dd6e2..158b02984 100644 --- a/lib/WebGUI/Asset/Wobject/TimeTracking.pm +++ b/lib/WebGUI/Asset/Wobject/TimeTracking.pm @@ -18,7 +18,53 @@ use Tie::IxHash; use WebGUI::International; use WebGUI::Utility; use POSIX qw(ceil floor); -use base 'WebGUI::Asset::Wobject'; +use WebGUI::Definition::Asset; +extends 'WebGUI::Asset::Wobject'; +aspect assetName => ['assetName', 'Asset_TimeTracking'], +aspect icon => 'timetrack.gif'; +aspect tableName => 'TT_wobject'; +property userViewTemplateId => ( + fieldType => "template", + default => 'TimeTrackingTMPL000001', + tab => "display", + namespace => "TimeTracking_user", + hoverHelp => ['userViewTemplate hoverhelp', 'Asset_TimeTracking'], + label => ['userViewTemplate label', 'Asset_TimeTracking'], + ); +property managerViewTemplateId => ( + fieldType => "template", + default => 'TimeTrackingTMPL000002', + tab => "display", + namespace => "TimeTracking_manager", + hoverHelp => ['managerViewTemplate hoverhelp', 'Asset_TimeTracking'], + label => ['managerViewTemplate label', 'Asset_TimeTracking'], + ); +property timeRowTemplateId => ( + fieldType => "template", + default => 'TimeTrackingTMPL000003', + tab => "display", + namespace => "TimeTracking_row", + hoverHelp => ['timeRowTemplateId hoverhelp', 'Asset_TimeTracking'], + label => ['timeRowTemplateId label', 'Asset_TimeTracking'], + ); +property groupToManage => ( + fieldType => "group", + default => 3, + tab => "security", + hoverHelp => ['groupToManage hoverhelp', 'Asset_TimeTracking'], + label => ['groupToManage label', 'Asset_TimeTracking'], + ); +property pmIntegration => ( + fieldTypei => "yesNo", + default => 0, + tab => "properties", + hoverHelp => ["Choose yes to pull projects and task information from the various project management assets on your site", 'Asset_TimeTracking'], + label => ["Project Management Integration", 'Asset_TimeTracking'], + ); + + + + use WebGUI::Asset::Wobject::ProjectManager; #------------------------------------------------------------------- @@ -35,50 +81,8 @@ sub definition { my %properties; tie %properties, 'Tie::IxHash'; %properties = ( - userViewTemplateId =>{ - fieldType=>"template", - defaultValue=>'TimeTrackingTMPL000001', - tab=>"display", - namespace=>"TimeTracking_user", - hoverHelp=>$i18n->get('userViewTemplate hoverhelp'), - label=>$i18n->get('userViewTemplate label') - }, - managerViewTemplateId => { - fieldType=>"template", - defaultValue=>'TimeTrackingTMPL000002', - tab=>"display", - namespace=>"TimeTracking_manager", - hoverHelp=>$i18n->get('managerViewTemplate hoverhelp'), - label=>$i18n->get('managerViewTemplate label') - }, - timeRowTemplateId=> { - fieldType=>"template", - defaultValue=>'TimeTrackingTMPL000003', - tab=>"display", - namespace=>"TimeTracking_row", - hoverHelp=>$i18n->get('timeRowTemplateId hoverhelp'), - label=>$i18n->get('timeRowTemplateId label') - }, - groupToManage => { - fieldType=>"group", - defaultValue=>3, - tab=>"security", - hoverHelp=>$i18n->get('groupToManage hoverhelp'), - label=>$i18n->get('groupToManage label') - }, - pmIntegration => { - fieldType=>"yesNo", - defaultValue=>0, - tab=>"properties", - hoverHelp=>$i18n->get("Choose yes to pull projects and task information from the various project management assets on your site"), - label=>$i18n->get("Project Management Integration") - }, ); push(@{$definition}, { - assetName=>$i18n->get('assetName'), - icon=>'timetrack.gif', - autoGenerateForms=>1, - tableName=>'TT_wobject', className=>'WebGUI::Asset::Wobject::TimeTracking', properties=>\%properties }); @@ -96,15 +100,11 @@ sub prepareView { my $self = shift; $self->SUPER::prepareView(); my $template; - #if($user->isInGroup($self->get("groupToManage")) { - # $template = WebGUI::Asset::Template->new($self->session, $self->get("managerViewTemplateId")); - #} else { - $template = WebGUI::Asset::Template->new($self->session, $self->get("userViewTemplateId")); - #} + $template = WebGUI::Asset::Template->new($self->session, $self->userViewTemplateId); if (!$template) { WebGUI::Error::ObjectNotFound::Template->throw( error => qq{Template not found}, - templateId => $self->get("userViewTemplateId"), + templateId => $self->userViewTemplateId, assetId => $self->getId, ); } @@ -209,7 +209,7 @@ sub view { my $i18n = WebGUI::International->new($session,'Asset_TimeTracking'); $var->{'extras'} = $config->get("extrasURL")."/wobject/TimeTracking"; - if($user->isInGroup($self->get("groupToManage"))) { + if($user->isInGroup($self->groupToManage)) { $var->{'project.manage.url'} = $self->getUrl("func=manageProjects"); $var->{'project.manage.label'} = $i18n->get("project manage label"); } @@ -303,7 +303,7 @@ sub www_editTimeEntrySave { } # Update Project Management App if integrated - if ($self->getValue("pmIntegration")) { + if ($self->pmIntegration) { foreach my $projectId (keys %deltaHours) { foreach my $taskId (keys %{$deltaHours{$projectId}}) { my $deltaHours = $deltaHours{$projectId}{$taskId}; @@ -329,7 +329,7 @@ sub www_deleteProject { my $i18n = WebGUI::International->new($session,'Asset_TimeTracking'); #Check Privileges - return $privilege->insufficient unless ($user->isInGroup($self->get("groupToManage"))); + return $privilege->insufficient unless ($user->isInGroup($self->groupToManage)); my $projectId = $form->get("projectId"); my ($count) = $db->quickArray("select count(*) from TT_timeEntry where projectId=".$db->quote($projectId)); @@ -356,7 +356,7 @@ sub www_editProject { my $i18n = WebGUI::International->new($session,'Asset_TimeTracking'); #Check Privileges - return $privilege->insufficient unless ($user->isInGroup($self->get("groupToManage"))); + return $privilege->insufficient unless ($user->isInGroup($self->groupToManage)); my $projectId = $_[0] || $form->get("projectId") || "new"; my $taskError = qq|
$_[1]| if($_[1]); my $extras = $config->get("extrasURL")."/wobject/TimeTracking"; @@ -461,7 +461,7 @@ sub www_editProjectSave { my $i18n = WebGUI::International->new($session,'Asset_TimeTracking'); #Check Privileges - return $privilege->insufficient unless ($user->isInGroup($self->get("groupToManage"))); + return $privilege->insufficient unless ($user->isInGroup($self->groupToManage)); my $action = $form->get("action"); @@ -526,7 +526,7 @@ sub www_manageProjects { my $i18n = WebGUI::International->new($session,'Asset_TimeTracking'); #Check Privileges - return $privilege->insufficient unless ($user->isInGroup($self->get("groupToManage"))); + return $privilege->insufficient unless ($user->isInGroup($self->groupToManage)); my $pnLabel = $i18n->get("manage project name label"); my $atLabel = $i18n->get("manage project available task label"); @@ -656,7 +656,7 @@ sub www_buildTimeTable { return $privilege->insufficient unless ($self->canView); - my $pmIntegration = $self->getValue("pmIntegration"); + my $pmIntegration = $self->pmIntegration; my $week = $form->get("week") || $dt->time; @@ -743,7 +743,7 @@ sub www_buildTimeTable { %projectList = (""=>$chooseLabel,%projectList); my $resourceIdFromForm = $form->get("resourceId"); - my $resourceId = ($user->isInGroup($self->get("groupToManage")) && $resourceIdFromForm)?$resourceIdFromForm:$user->userId; + my $resourceId = ($user->isInGroup($self->groupToManage) && $resourceIdFromForm)?$resourceIdFromForm:$user->userId; #Build Report Info my $report = $db->quickHashRef("select * from TT_report where resourceId=? and assetId=? and startDate=? and endDate=?",[$resourceId,$self->getId,$weekStart,$weekEnd]); my $reportId = $report->{reportId}; @@ -806,7 +806,7 @@ sub www_buildTimeTable { $var->{'time.entry.loop'} = \@timeEntries; $viewVar->{'time.report.rows.total'} = (scalar(@timeEntries)+1); - return $self->processTemplate($var,$self->getValue("timeRowTemplateId")); + return $self->processTemplate($var,$self->timeRowTemplateId); } #-------------------------------------------------------------------