summaryrefslogtreecommitdiff
path: root/demos/time-tracker/protected
diff options
context:
space:
mode:
Diffstat (limited to 'demos/time-tracker/protected')
-rw-r--r--demos/time-tracker/protected/App_Code/ReportsDao.php12
-rw-r--r--demos/time-tracker/protected/App_Code/TimeEntryDao.php9
-rw-r--r--demos/time-tracker/protected/App_Code/UserDao.php4
-rw-r--r--demos/time-tracker/protected/application.xml3
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php33
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/ReportProject.php47
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/ReportResource.php61
7 files changed, 130 insertions, 39 deletions
diff --git a/demos/time-tracker/protected/App_Code/ReportsDao.php b/demos/time-tracker/protected/App_Code/ReportsDao.php
index 8d2e2627..50005d06 100644
--- a/demos/time-tracker/protected/App_Code/ReportsDao.php
+++ b/demos/time-tracker/protected/App_Code/ReportsDao.php
@@ -61,18 +61,6 @@ class UserProjectReport
class ReportsDao extends BaseDao
{
- public function getUserTimeReport($username)
- {
- $sqlmap = $this->getConnection();
- return $sqlmap->queryForObject('GetTimeReportByUsername', $username);
- }
-
- public function getTimeReportsByCategoryID($categoryID)
- {
- $sqlmap = $this->getConnection();
- return $sqlmap->queryForList('GetTimeReportByCategoryID', $categoryID);
- }
-
public function getTimeReportsByProjectIDs($projects)
{
$ids = implode(',', array_map('intval', $projects));
diff --git a/demos/time-tracker/protected/App_Code/TimeEntryDao.php b/demos/time-tracker/protected/App_Code/TimeEntryDao.php
index 60301f3b..7207ed47 100644
--- a/demos/time-tracker/protected/App_Code/TimeEntryDao.php
+++ b/demos/time-tracker/protected/App_Code/TimeEntryDao.php
@@ -33,15 +33,6 @@ class TimeEntryDao extends BaseDao
$sqlmap = $this->getConnection();
$sqlmap->update('UpdateTimeEntry', $entry);
}
-
- public function getTimeEntriesByDate($username, $start, $end)
- {
- $sqlmap = $this->getConnection();
- $param['username'] = $username;
- $param['startDate'] = $start;
- $param['endDate'] = $end;
- return $sqlmap->queryForList('GetTimeEntriesByDate', $param);
- }
}
?> \ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Code/UserDao.php b/demos/time-tracker/protected/App_Code/UserDao.php
index a0a80f7e..95a85410 100644
--- a/demos/time-tracker/protected/App_Code/UserDao.php
+++ b/demos/time-tracker/protected/App_Code/UserDao.php
@@ -30,9 +30,7 @@ class UserDao extends BaseDao
public function getUserByName($username)
{
$sqlmap = $this->getConnection();
- $user = $sqlmap->queryForObject('GetUserByName', $username);
- var_dump($user);
- return $user;
+ return $sqlmap->queryForObject('GetUserByName', $username);
}
/**
diff --git a/demos/time-tracker/protected/application.xml b/demos/time-tracker/protected/application.xml
index 1622073e..98dc3a79 100644
--- a/demos/time-tracker/protected/application.xml
+++ b/demos/time-tracker/protected/application.xml
@@ -10,9 +10,12 @@
<using namespace="Application.App_Code.*" />
</paths>
<modules>
+
<module id="cache" class="System.Caching.TMemCache" />
<module id="sqlmap" class="TSQLMap"
+ EnableConfigCache="true"
configFile="Application.App_Data.mysql-sqlmap" />
+
<module id="daos" class="DaoManager" Connection="sqlmap">
<dao id="UserDao" class="Application.App_Code.UserDao" />
<dao id="ProjectDao" class="Application.App_Code.ProjectDao" />
diff --git a/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php b/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php
index a134289c..28611c3c 100644
--- a/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php
+++ b/demos/time-tracker/protected/pages/TimeTracker/LogTimeEntry.php
@@ -88,21 +88,24 @@ class LogTimeEntry extends TPage
if(!$this->IsValid)
return;
- $entry = new TimeEntry;
- $entry->CreatorUserName = $this->User->Name;
- $category = new Category;
- $category->ID = $this->category->SelectedValue;
- $entry->Category = $category;
- $entry->Description = $this->description->Text;
- $entry->Duration = floatval($this->hours->Text);
- $entry->ReportDate = $this->day->TimeStamp;
- $entry->Username = $this->projectMembers->SelectedItem->Text;
-
- $this->hours->Text = '';
- $this->description->Text = '';
-
- $this->getTimeEntryDao()->addNewTimeEntry($entry);
- $this->showTimeSheet();
+ if($this->projectMembers->SelectedItem)
+ {
+ $entry = new TimeEntry;
+ $entry->CreatorUserName = $this->User->Name;
+ $category = new Category;
+ $category->ID = $this->category->SelectedValue;
+ $entry->Category = $category;
+ $entry->Description = $this->description->Text;
+ $entry->Duration = floatval($this->hours->Text);
+ $entry->ReportDate = $this->day->TimeStamp;
+ $entry->Username = $this->projectMembers->SelectedItem->Text;
+
+ $this->hours->Text = '';
+ $this->description->Text = '';
+
+ $this->getTimeEntryDao()->addNewTimeEntry($entry);
+ $this->showTimeSheet();
+ }
}
}
diff --git a/demos/time-tracker/protected/pages/TimeTracker/ReportProject.php b/demos/time-tracker/protected/pages/TimeTracker/ReportProject.php
new file mode 100644
index 00000000..fea372be
--- /dev/null
+++ b/demos/time-tracker/protected/pages/TimeTracker/ReportProject.php
@@ -0,0 +1,47 @@
+<?php
+
+class ReportProject extends TPage
+{
+ protected function getProjects()
+ {
+ $projectDao = $this->Application->Modules['daos']->getDao('ProjectDao');
+ $projects = array();
+ foreach($projectDao->getAllProjects() as $project)
+ $projects[$project->ID] = $project->Name;
+ return $projects;
+ }
+
+ public function onLoad($param)
+ {
+ if(!$this->IsPostBack)
+ {
+ $this->projectList->DataSource = $this->getProjects();
+ $this->dataBind();
+ }
+ }
+
+ public function generateReport_Clicked($sender, $param)
+ {
+ $reportDao = $this->Application->Modules['daos']->getDao('ReportDao');
+ $reports = $reportDao->getTimeReportsByProjectIDs($this->projectList->SelectedValues);
+ $this->views->ActiveViewIndex = 1;
+ $this->projects->DataSource = $reports;
+ $this->projects->dataBind();
+ }
+
+ public function project_itemCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ $item->category->DataSource = $item->DataItem->Categories;
+ }
+
+ public function category_itemCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ $item->members->DataSource = $item->DataItem->members;
+ }
+}
+
+?> \ No newline at end of file
diff --git a/demos/time-tracker/protected/pages/TimeTracker/ReportResource.php b/demos/time-tracker/protected/pages/TimeTracker/ReportResource.php
new file mode 100644
index 00000000..a233e127
--- /dev/null
+++ b/demos/time-tracker/protected/pages/TimeTracker/ReportResource.php
@@ -0,0 +1,61 @@
+<?php
+
+class ReportResource extends TPage
+{
+ protected function getProjects()
+ {
+ $projectDao = $this->Application->Modules['daos']->getDao('ProjectDao');
+ $projects = array();
+ foreach($projectDao->getAllProjects() as $project)
+ $projects[$project->ID] = $project->Name;
+ return $projects;
+ }
+
+ protected function getUsers()
+ {
+ $dao = $this->Application->Modules['daos']->getDao('UserDao');
+ $users = array();
+ foreach($dao->getAllUsers() as $user)
+ {
+ $users[$user->Name] = $user->Name;
+ }
+ return $users;
+ }
+
+ public function onLoad($param)
+ {
+ if(!$this->IsPostBack)
+ {
+ $this->projectList->DataSource = $this->getProjects();
+ $this->resourceList->DataSource = $this->getUsers();
+ $this->dataBind();
+ }
+ }
+
+ public function generateReport_Clicked($sender, $param)
+ {
+ $this->views->ActiveViewIndex = 1;
+ $reportDao = $this->Application->Modules['daos']->getDao('ReportDao');
+ $projects = $this->projectList->SelectedValues;
+ $users = $this->resourceList->SelectedValues;
+ $start = $this->dateFrom->TimeStamp;
+ $end = $this->dateTo->TimeStamp;
+
+ $report = $reportDao->getUserProjectTimeReports($users, $projects, $start, $end);
+ $this->resource_report->DataSource = $report;
+ $this->resource_report->dataBind();
+ }
+
+ public function resource_report_itemCreated($sender, $param)
+ {
+ $item = $param->Item;
+ if($item->ItemType==='Item' || $item->ItemType==='AlternatingItem')
+ {
+ if(count($item->DataItem->Projects) > 0 &&
+ $item->DataItem->Projects[0]->ProjectName !== null)
+ $item->time_entries->DataSource = $item->DataItem->Projects;
+ }
+ }
+}
+
+?> \ No newline at end of file