* adjust the team manage code.

* task #94.
This commit is contained in:
wangchunsheng
2010-03-01 06:50:27 +00:00
parent 921f92c0e0
commit ae9eb756c5
3 changed files with 31 additions and 15 deletions
+2 -4
View File
@@ -495,14 +495,12 @@ class project extends control
{
if($confirm == 'no')
{
echo js::confirm($this->lang->project->confirmUnlinkMember, $this->createLink('project', 'unlinkMember', "projectID=$projectID&account=$account&confirm=yes"));
exit;
die(js::confirm($this->lang->project->confirmUnlinkMember, $this->inlink('unlinkMember', "projectID=$projectID&account=$account&confirm=yes")));
}
else
{
$this->project->unlinkMember($projectID, $account);
echo js::locate($this->createLink('project', 'browse', "projectID=$projectID"), 'parent');
exit;
die(js::locate($this->inlink('team', "projectID=$projectID"), 'parent'));
}
}
+26 -10
View File
@@ -203,16 +203,24 @@ class projectModel extends model
/* 获取团队成员。*/
public function getTeamMembers($projectID)
{
$sql = "SELECT T1.*, T2.realname FROM " . TABLE_TEAM . " AS T1 LEFT JOIN " . TABLE_USER . " AS T2 ON T1.account = T2.account WHERE T1.project = '$projectID'";
$stmt = $this->dbh->query($sql);
return $stmt->fetchAll();
return $this->dao->select('t1.*, t2.realname')->from(TABLE_TEAM)->alias('t1')
->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account')
->where('t1.project')->eq((int)$projectID)->fetchAll();
}
/* 获取团队成员account=>name列表。*/
public function getTeamMemberPairs($projectID)
{
$sql = "SELECT T2.account, T2.realname FROM " . TABLE_TEAM . " AS T1 LEFT JOIN " . TABLE_USER . " AS T2 ON T1.account = T2.account WHERE T1.project = '$projectID'";
return $this->fetchPairs($sql);
$users = $this->dao->select('t1.account, t2.realname')->from(TABLE_TEAM)->alias('t1')
->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account')
->where('t1.project')->eq((int)$projectID)->fetchPairs();
if(!$users) return array();
foreach($users as $account => $realName)
{
$firstLetter = ucfirst(substr($account, 0, 1)) . ':';
$users[$account] = $firstLetter . ($realName ? $realName : $account);
}
return array('' => '') + $users;
}
/* 关联成员。*/
@@ -229,21 +237,29 @@ class projectModel extends model
if($mode == 'update')
{
$sql = "UPDATE " . TABLE_TEAM . " SET role = '$role', workingHour = '$workingHour' WHERE project = '$projectID' AND account = '$account'";
$this->dao->update(TABLE_TEAM)
->set('role')->eq($role)
->set('workingHour')->eq($workingHour)
->where('project')->eq((int)$projectID)
->andWhere('account')->eq($account)
->exec();
}
else
{
$sql = "INSERT INTO " . TABLE_TEAM . " (project, account, joinDate, role, workingHour) VALUES ('$projectID', '$account', NOW(), '$role', '$workingHour')";
$member->project = (int)$projectID;
$member->account = $account;
$member->joinDate = date('Y-m-d');
$member->role = $role;
$member->workingHour = $workingHour;
$this->dao->insert(TABLE_TEAM)->data($member)->exec();
}
$this->dbh->query($sql);
}
}
/* 删除一个成员。*/
public function unlinkMember($projectID, $account)
{
$sql = "DELETE FROM " . TABLE_TEAM . " WHERE project = '$projectID' AND account = '$account'";
return $this->dbh->exec($sql);
$this->dao->delete()->from(TABLE_TEAM)->where('project')->eq((int)$projectID)->andWhere('account')->eq($account)->exec();
}
/* 燃烧图所需要的数据。*/
+3 -1
View File
@@ -51,8 +51,10 @@
<?php if(common::hasPriv('project', 'unlinkmember')) echo "<td>" . html::a($this->createLink('project', 'unlinkmember', "projectID=$project->id&account=$member->account"), $lang->project->unlinkMember, 'hiddenwin') . '</td>';?>
</tr>
<?php endforeach;?>
<tr><td colspan='5' class='a-right'><?php common::printLink('project', 'managemembers', "projectID=$project->id", $lang->project->manageMembers);?></td></tr>
</tbody>
<tfoot>
<tr><td colspan='5' class='a-right'><?php common::printLink('project', 'managemembers', "projectID=$project->id", $lang->project->manageMembers);?></td></tr>
</tfoot>
</table>
<div class='a-right'>
</div>