Bug Fixes / Updates
This commit is contained in:
parent
0338bcbddb
commit
fb8ab0caa6
1 changed files with 75 additions and 46 deletions
|
|
@ -118,6 +118,30 @@ sub purge {
|
|||
return $self->SUPER::purge;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getDaysInWeek {
|
||||
my $self = shift;
|
||||
my $week = $_[0];
|
||||
return [] unless $week;
|
||||
|
||||
my ($session,$dt,$i18n,$eh) = $self->getSessionVars("datetime","i18n","errorHandler");
|
||||
|
||||
#Week View Below
|
||||
my ($dayStart,$dayEnd) = $dt->dayStartEnd($week);
|
||||
my $dayOfWeek = $dt->getDayOfWeek($dayStart);
|
||||
my $sundayAdjust = (7 - $dayOfWeek);
|
||||
|
||||
my $weekStart = $dt->addToDateTime($dayStart,0,0,$sundayAdjust,1);
|
||||
|
||||
tie my %hash, "Tie::IxHash";
|
||||
$hash{"0"} = $weekStart;
|
||||
for (my $i = 1; $i < 7; $i++) {
|
||||
$hash{$i} = $dt->addToDate($weekStart,0,0,$i);
|
||||
}
|
||||
|
||||
return \%hash;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub setSessionVars {
|
||||
my $self = shift;
|
||||
|
|
@ -130,18 +154,20 @@ sub setSessionVars {
|
|||
#-------------------------------------------------------------------
|
||||
sub getSessionVars {
|
||||
my $self = shift;
|
||||
my $vars = $_[0];
|
||||
return () unless $vars;
|
||||
my @vars = @_;
|
||||
my $session = $self->session;
|
||||
return ($session) unless (scalar(@vars) > 0);
|
||||
|
||||
my @list = ();
|
||||
my $session = $self->session;
|
||||
push(@list, $session);
|
||||
|
||||
foreach my $var (@{$vars}) {
|
||||
foreach my $var (@vars) {
|
||||
if($var eq "i18n") {
|
||||
push(@list,WebGUI::International->new($session,'Asset_ProjectManager'));
|
||||
}
|
||||
push(@list, $session->$var);
|
||||
push(@list,WebGUI::International->new($session,'Asset_TimeTracking'));
|
||||
} else {
|
||||
push(@list, $session->$var);
|
||||
}
|
||||
}
|
||||
return @list;
|
||||
}
|
||||
|
|
@ -173,8 +199,18 @@ sub _buildUserView {
|
|||
my $self = shift;
|
||||
my $var = $_[0];
|
||||
|
||||
my @vars = ("privilege","form","db","datetime","i18n","user","eh");
|
||||
my ($session,$privilege,$form,$db,$dt,$i18n,$user,$eh) = $self->getSessionVars(\@vars);
|
||||
my ($session,$privilege,$form,$db,$dt,$i18n,$user,$eh) = $self->getSessionVars("privilege","form","db","datetime","i18n","user","errorHandler");
|
||||
my $pmAssetId = $self->getValue("pmAssetId");
|
||||
|
||||
if($user->isInGroup($self->get("groupToManage"))) {
|
||||
if($pmAssetId) {
|
||||
#Add link to project dashboard
|
||||
$var->{'project.manage.url'} = "";
|
||||
} else {
|
||||
$var->{'project.manage.url'} = $self->getUrl("func=manageProjects");
|
||||
}
|
||||
$var->{'project.manage.label'} = $i18n->get("project manage label");
|
||||
}
|
||||
|
||||
$var->{'form.header'} = WebGUI::Form::formHeader($session,{
|
||||
action=>$self->getUrl,
|
||||
|
|
@ -189,7 +225,6 @@ sub _buildUserView {
|
|||
|
||||
$var->{'form.timetracker'} = $self->_buildTimeTable($var);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -199,8 +234,7 @@ sub _buildTimeTable {
|
|||
my $var = {};
|
||||
|
||||
$var->{'extras'} = $viewVar->{'extras'};
|
||||
my @vars = ("datetime","i18n","eh","form","db","user");
|
||||
my ($session,$dt,$i18n,$eh,$form,$db,$user) = $self->getSessionVars(\@vars);
|
||||
my ($session,$dt,$i18n,$eh,$form,$db,$user) = $self->getSessionVars("datetime","i18n","errorHandler","form","db","user");
|
||||
|
||||
my $week = $form->get("week") || $dt->time;
|
||||
my $daysInWeek = $self->getDaysInWeek($week);
|
||||
|
|
@ -217,16 +251,24 @@ sub _buildTimeTable {
|
|||
my $weekStart = $daysInWeek->{"0"};
|
||||
my ($junk,$weekEnd) = $dt->dayStartEnd($daysInWeek->{"6"});
|
||||
|
||||
my $entries = $db->buildArrayRefOfHashRefs("select * from TT_timeEntry where resourceId=".$db->quote($user->userId)." and date >= ".$db->quote($weekStart)." and date <=".$db->quote($weekEnd));
|
||||
#Rebuild days in week hash to contain set values
|
||||
tie my %setDaysHash,"Tie::IxHash";
|
||||
foreach my $day (keys %{$daysInWeek}) {
|
||||
$setDaysHash{$day} = $dt->epochToSet($daysInWeek->{$day});
|
||||
}
|
||||
|
||||
#Build Entries Loop
|
||||
my $entries = $db->buildArrayRefOfHashRefs("select * from TT_timeEntry where resourceId=".$db->quote($user->userId)." and taskDate >= ".$db->quote($weekStart)." and taskDate <=".$db->quote($weekEnd));
|
||||
my $rowCount = 1;
|
||||
my @timeEntries = ();
|
||||
|
||||
foreach my $entry (@{$entries}) {
|
||||
push (@timeEntries,$self->_buildRow($entry,$rowCount++));
|
||||
push (@timeEntries,$self->_buildRow($entry,$rowCount++,\%setDaysHash));
|
||||
}
|
||||
|
||||
#Seed time tracker with 10 empty rows
|
||||
for( my $i = $rowCount; $i < ($rowCount + 10); $i++) {
|
||||
push(@timeEntries,$self->_buildRow(undef,$i));
|
||||
push(@timeEntries,$self->_buildRow(undef,$i,\%setDaysHash));
|
||||
}
|
||||
|
||||
$var->{'time.entry.loop'} = \@timeEntries;
|
||||
|
|
@ -238,11 +280,12 @@ sub _buildTimeTable {
|
|||
#-------------------------------------------------------------------
|
||||
sub _buildRow {
|
||||
my $self = shift;
|
||||
my ($session,$dt,$i18n,$eh,$form,$db,$user) = $self->getSessionVars(("datetime","i18n","eh","form","db","user"));
|
||||
my ($session,$dt,$i18n,$eh,$form,$db,$user) = $self->getSessionVars("datetime","i18n","errorHandler","form","db","user");
|
||||
|
||||
my $var = {};
|
||||
my $entry = $_[0] || {};
|
||||
my $rowCount = $_[1];
|
||||
my $daysInWeek = $_[2];
|
||||
|
||||
my $entryId = $entry->{entryId};
|
||||
$var->{'row.id'} = "row_$rowCount";
|
||||
|
|
@ -253,9 +296,12 @@ sub _buildRow {
|
|||
my $pmAssetId = $self->getValue("pmAssetId");
|
||||
|
||||
#Entry Date
|
||||
$var->{'form.date'} = WebGUI::Form::date($session,{
|
||||
tie my %days, "Tie::IxHash";
|
||||
%days = (""=>"Choose One", %{$daysInWeek});
|
||||
$var->{'form.date'} = WebGUI::Form::selectBox($session,{
|
||||
-name=>"taskDate_$rowCount",
|
||||
-value=>$entry->{taskDate}
|
||||
-value=>$entry->{taskDate},
|
||||
-options=>\%days
|
||||
});
|
||||
|
||||
#Entry Project
|
||||
|
|
@ -263,8 +309,13 @@ sub _buildRow {
|
|||
if($pmAssetId) {
|
||||
#Build project list and task lists from project management app
|
||||
} else {
|
||||
%projectList = $db->buildHashRef("select a.projectId, a.projectName from TT_projectList a, TT_projectResourceList b where a.projectId=b.projectId and b.resourceId=".$db->quote($user->userId));
|
||||
%projectList = $db->buildHash("select a.projectId, a.projectName from TT_projectList a, TT_projectResourceList b where a.projectId=b.projectId and b.resourceId=".$db->quote($user->userId));
|
||||
}
|
||||
|
||||
#if(scalar(keys %projectList) == 0) {
|
||||
%projectList = (""=>"Choose One",%projectList);
|
||||
#}
|
||||
|
||||
$var->{'form.project'} = WebGUI::Form::selectBox($session,{
|
||||
-name=>"projectId_$rowCount",
|
||||
-options=>\%projectList,
|
||||
|
|
@ -277,11 +328,12 @@ sub _buildRow {
|
|||
if($pmAssetId) {
|
||||
#Build task list for project from project managmenet app
|
||||
} else {
|
||||
%taskList = $db->buildHashRef("select taskName, taskId from TT_projectTasks where projectId=".$db->quote($projectId));
|
||||
%taskList = $db->buildHash("select taskName, taskId from TT_projectTasks where projectId=".$db->quote($projectId));
|
||||
}
|
||||
} else {
|
||||
%taskList = ("","Choose One");
|
||||
}
|
||||
|
||||
%taskList = (""=>"Choose One",%taskList);
|
||||
|
||||
$var->{'form.task'} = WebGUI::Form::selectBox($session,{
|
||||
-name=>"taskId_$rowCount",
|
||||
-options=>\%taskList,
|
||||
|
|
@ -291,7 +343,8 @@ sub _buildRow {
|
|||
#Entry Hours
|
||||
$var->{'form.hours'} = WebGUI::Form::float($session, {
|
||||
-name=>"hours_$rowCount",
|
||||
-value=>$entry->{hours}
|
||||
-value=>$entry->{hours},
|
||||
-size=>5
|
||||
});
|
||||
|
||||
#Entry Comments
|
||||
|
|
@ -306,28 +359,4 @@ sub _buildRow {
|
|||
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getDaysInWeek {
|
||||
my $self = shift;
|
||||
my $week = $_[0];
|
||||
return [] unless $week;
|
||||
|
||||
my ($session,$dt,$i18n,$eh) = $self->getSessionVars(("datetime","i18n","eh"));
|
||||
|
||||
#Week View Below
|
||||
my ($dayStart,$dayEnd) = $dt->dayStartEnd($week);
|
||||
my $dayOfWeek = $dt->getDayOfWeek($dayStart);
|
||||
my $sundayAdjust = (7 - $dayOfWeek);
|
||||
|
||||
my $weekStart = $dt->addToDateTime($dayStart,0,0,$sundayAdjust,1);
|
||||
|
||||
tie my %hash, "Tie::IxHash";
|
||||
$hash{"0"} = $weekStart;
|
||||
for (my $i = 1; $i < 7; $i++) {
|
||||
$hash{$i} = $dt->addToDate($weekStart,0,0,$i);
|
||||
}
|
||||
|
||||
return \%hash;
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue