summaryrefslogtreecommitdiff
path: root/demos
diff options
context:
space:
mode:
authorwei <>2006-07-19 03:55:25 +0000
committerwei <>2006-07-19 03:55:25 +0000
commit0c16571c091f8c4c89ae18427b2c2994cd4cf3bb (patch)
treebd0186684f6291e735c585c1c36baee7046ae0e9 /demos
parent63e66acd2ed45300d095d5428ebdfff7652070ea (diff)
Add project details in time-tracker
Diffstat (limited to 'demos')
-rw-r--r--demos/time-tracker/protected/App_Code/UserDao.php2
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.page44
-rw-r--r--demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.php35
-rw-r--r--demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php9
-rw-r--r--demos/time-tracker/themes/TimeTracker/bar.pngbin0 -> 344 bytes
-rw-r--r--demos/time-tracker/themes/TimeTracker/project.css70
6 files changed, 155 insertions, 5 deletions
diff --git a/demos/time-tracker/protected/App_Code/UserDao.php b/demos/time-tracker/protected/App_Code/UserDao.php
index 6064be7e..6f31090d 100644
--- a/demos/time-tracker/protected/App_Code/UserDao.php
+++ b/demos/time-tracker/protected/App_Code/UserDao.php
@@ -51,7 +51,7 @@ class UserDao extends BaseDao
$sqlmap = $this->getConnection();
return $sqlmap->queryForList('GetAllUsers');
}
-
+
/**
* @param TimeTrackerUser new user details.
* @param string new user password.
diff --git a/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.page b/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.page
index a8a7d1d3..2a7cb6dd 100644
--- a/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.page
+++ b/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.page
@@ -1,4 +1,46 @@
<com:TContent ID="Main">
-<h1>Project Details</h1>
+<h1>Create New Project</h1>
+
+<fieldset class="project"><legend>Project Configuration</legend>
+ <p>Define the project and specify which users will be part of the project.
+ Then add categories to the project to help keep track of specific areas of
+ product. Press the <tt>SAVE</tt> button at the bottom for your configuration
+ to take effect.</p>
+ <div class="projectInfo">
+ <h2>Project Information</h2>
+ <div class="projectName">
+ <com:TLabel ForControl="projectName" Text="Project Name"/>
+ <com:TTextBox ID="projectName" />
+ </div>
+ <div class="manager">
+ <com:TLabel ForControl="manager" Text="Project Manager" />
+ <com:TDropDownList ID="manager" />
+ </div>
+ <div class="completionDate">
+ <com:TLabel ForControl="completionDate" Text="Estimated complete date:"/>
+ <com:TDatePicker ID="completionDate" InputMode="DropDownList" />
+ </div>
+ <div class="estimateHours">
+ <com:TLabel ForControl="estimateHours" Text="Estimated Duration (in hours):"/>
+ <com:TTextBox ID="estimateHours" />
+ </div>
+ <div class="description">
+ <com:TLabel ForControl="description" Text="Description:" />
+ <com:TTextBox ID="description" TextMode="MultiLine" />
+ </div>
+ </div>
+
+ <div class="projectMembers">
+ <h2>Specify Project Members</h2>
+ <p>Select a resource. Use ctrl+click to select multiple resources at once:</p>
+ <com:TListBox ID="members" SelectionMode="Multiple" />
+ </div>
+
+ <div class="actionButtons">
+ <com:TButton Text="Save" />
+ <com:TButton Text="Cancel" />
+ <com:TButton Text="Delete" />
+ </div>
+ </fieldset>
</com:TContent> \ No newline at end of file
diff --git a/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.php b/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.php
new file mode 100644
index 00000000..16c10e6f
--- /dev/null
+++ b/demos/time-tracker/protected/pages/TimeTracker/ProjectDetails.php
@@ -0,0 +1,35 @@
+<?php
+
+class ProjectDetails extends TPage
+{
+ private $allUsers = null;
+
+ public function onLoad($param)
+ {
+ if(!$this->IsPostBack)
+ {
+ $this->manager->DataSource = $this->getUsersWithRole('manager');
+ $this->manager->dataBind();
+ $this->members->DataSource = $this->getUsersWithRole('consultant');
+ $this->members->dataBind();
+ }
+ }
+
+ protected function getUsersWithRole($role)
+ {
+ if(is_null($this->allUsers))
+ {
+ $dao = $this->Application->Modules['daos']->getDao('UserDao');
+ $this->allUsers = $dao->getAllUsers();
+ }
+ $users = array();
+ foreach($this->allUsers as $user)
+ {
+ if($user->isInRole($role))
+ $users[] = $user->Name;
+ }
+ return $users;
+ }
+}
+
+?> \ No newline at end of file
diff --git a/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php b/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php
index 29e3ba67..20b1266e 100644
--- a/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php
+++ b/demos/time-tracker/tests/unit/TimeEntryDaoTestCase.php
@@ -155,7 +155,7 @@ class TimeEntryDaoTestCase extends BaseTestCase
return array($entry, $entry2, $added);
}
-/*
+
function testCreateNewTimeEntry()
{
$added = $this->createTimeEntry1();
@@ -247,7 +247,7 @@ class TimeEntryDaoTestCase extends BaseTestCase
$this->assertEqual($list[0]->Username, 'consultant');
$this->assertEqual($list[0]->ActualDuration, 1.2);
}
-*/
+
function testTimeReportsByProject()
{
$added = $this->createTimeEntries2();
@@ -256,7 +256,10 @@ class TimeEntryDaoTestCase extends BaseTestCase
$list = $this->reportDao->getTimeReportsByProjectID(1);
- var_dump($list);
+ $this->assertEqual(count($list),1);
+ $this->assertEqual($list[0]->Username, 'consultant');
+ $this->assertEqual($list[0]->CategoryID, 1);
+ $this->assertEqual($list[0]->ActualDuration, 6.7);
}
}
diff --git a/demos/time-tracker/themes/TimeTracker/bar.png b/demos/time-tracker/themes/TimeTracker/bar.png
new file mode 100644
index 00000000..571641c9
--- /dev/null
+++ b/demos/time-tracker/themes/TimeTracker/bar.png
Binary files differ
diff --git a/demos/time-tracker/themes/TimeTracker/project.css b/demos/time-tracker/themes/TimeTracker/project.css
new file mode 100644
index 00000000..7b6863a0
--- /dev/null
+++ b/demos/time-tracker/themes/TimeTracker/project.css
@@ -0,0 +1,70 @@
+fieldset.project label
+{
+ display: block;
+ font-size: 0.9em;
+ margin-bottom: 0.2em;
+}
+
+.projectInfo
+{
+ width: 40%;
+ float: left;
+}
+
+.projectMembers
+{
+ width: 40%;
+ float: left;
+ margin-left: 0.3em;
+}
+
+fieldset.project h2
+{
+ background-color: #D2E8E8;
+ font-size: 0.8em;
+ color: #4169E1;
+ padding: 0.65em;
+ text-align: center;
+ background-image: url(bar.png);
+ background-repeat: repeat-x;
+ background-position: center;
+}
+
+.projectInfo div, .projectMembers div
+{
+ margin: 0.7em 0;
+}
+
+.projectInfo div input, .projectInfo div.manager select
+{
+ width: 15em;
+}
+
+.projectInfo .estimateHours input
+{
+ width: 4em;
+}
+
+.projectInfo .description textarea
+{
+ width: 17em;
+ height: 10em;
+}
+
+.projectMembers select
+{
+ width: 15em;
+ height: 17em;
+}
+
+.actionButtons
+{
+ float: left;
+ width: 90%;
+ padding: 0.65em;
+ text-align: center;
+ background-color: #D2E8E8;
+ background-image: url(bar.png);
+ background-repeat: repeat-x;
+ background-position: center;
+} \ No newline at end of file