* when manage team, set roles auto.

This commit is contained in:
wangchunsheng
2013-01-11 08:21:56 +00:00
parent 8fff23ba16
commit 6b1194307d
5 changed files with 71 additions and 28 deletions
+2 -1
View File
@@ -1118,7 +1118,7 @@ class project extends control
$project = $this->project->getById($projectID);
$users = $this->user->getPairs('noclosed, nodeleted, devfirst');
$users = array('' => '') + $users;
$roles = $this->user->getUserRoles(array_keys($users));
$currentMembers = $this->project->getTeamMembers($projectID);
$members2Import = $this->project->getMembers2Import($team2Import, array_keys($currentMembers));
$teams2Import = $this->project->getTeams2Import($this->app->user->account, $projectID);
@@ -1141,6 +1141,7 @@ class project extends control
$this->view->project = $project;
$this->view->users = $users;
$this->view->roles = $roles;
$this->view->currentMembers = $currentMembers;
$this->view->members2Import = $members2Import;
$this->view->teams2Import = $teams2Import;
+25
View File
@@ -0,0 +1,25 @@
/**
* Import a team.
*
* @access public
* @return void
*/
function importTeam()
{
location.href = createLink('project', 'manageMembers', 'project=' + projectID + '&teamImport=' + $('#teams2Import').val());
}
/**
* Set role when select an account.
*
* @param string $account
* @param int $roleID
* @access public
* @return void
*/
function setRole(account, roleID)
{
role = roles[account]; // get role according the account.
roleOBJ = $('#role' + roleID); // get role object.
roleOBJ.val(role) // set the role.
}
+7 -2
View File
@@ -996,14 +996,19 @@ class projectModel extends model
{
if(empty($account)) continue;
$member = new stdclass();
$member->role = $roles[$key];
$member->days = $days[$key];
$member->hours = $hours[$key];
$mode = $modes[$key];
$mode = $modes[$key];
if($mode == 'update')
{
$this->dao->update(TABLE_TEAM)->data($member)->where('project')->eq((int)$projectID)->andWhere('account')->eq($account)->exec();
$this->dao->update(TABLE_TEAM)
->data($member)
->where('project')->eq((int)$projectID)
->andWhere('account')->eq($account)
->exec();
}
else
{
+21 -25
View File
@@ -11,14 +11,8 @@
*/
?>
<?php include '../../common/view/header.html.php';?>
<script>
projectID = <?php echo $project->id;?>;
function importTeam()
{
location.href = createLink('project', 'manageMembers', 'project=' + projectID + '&teamImport=' + $('#teams2Import').val());
}
</script>
<?php js::set('projectID', $project->id);?>
<?php js::set('roles', $roles, 'json');?>
<form method='post'>
<table align='center' class='table-4 a-center'>
<caption>
@@ -31,33 +25,34 @@ function importTeam()
<th><?php echo $lang->team->days;?></th>
<th><?php echo $lang->team->hours;?></th>
</tr>
<?php foreach($currentMembers as $key => $member):?>
<?php $i = 1;?>
<?php foreach($currentMembers as $member):?>
<?php $realname = substr($users[$member->account], 2);?>
<?php unset($users[$member->account]);?>
<tr>
<td><input type='text' name='realnames[]' id='account<?php echo $key;?>' value='<?php echo $realname;?>' readonly class='text-2' /></td>
<td class='hidden'><input type='text' name='accounts[]' id='account<?php echo $key;?>' value='<?php echo $member->account;?>' readonly class='text-2' /></td>
<td><input type='text' name='roles[]' id='role<?php echo $key;?>' value='<?php echo $member->role;?>' class='text-2' /></td>
<td><input type='text' name='days[] ' id='days<?php echo $key;?>' value='<?php echo $member->days;?>' class='text-2' /></td>
<td><input type='text' name='realnames[]' id='account<?php echo $i;?>' value='<?php echo $realname;?>' readonly class='text-2' /></td>
<td><input type='text' name='roles[]' id='role<?php echo $i;?>' value='<?php echo $member->role;?>' class='text-2' /></td>
<td><input type='text' name='days[] ' id='days<?php echo $i;?>' value='<?php echo $member->days;?>' class='text-2' /></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo $key;?>' value='<?php echo $member->hours;?>' class='text-2' />
<input type='text' name='hours[]' id='hours<?php echo $i;?>' value='<?php echo $member->hours;?>' class='text-2' />
<input type='hidden' name='modes[]' value='update' />
<input type='hidden' name='accounts[]' value='<?php echo $member->acount;?>' />
</td>
</tr>
<?php $i ++;?>
<?php endforeach;?>
<?php if(!$currentMembers) $key = 0;?>
<?php foreach($members2Import as $member2Import):?>
<?php $key ++;?>
<tr>
<td><?php echo html::select('accounts[]', $users, $member2Import->account, 'class=select-2');?></td>
<td><input type='text' name='roles[]' id='role<?php echo $key;?>' class='text-2' value='<?php echo $member2Import->role;?>' /></td>
<td><input type='text' name='days[]' id='days<?php echo $key;?>' class='text-2' value='<?php echo $project->days?>'/></td>
<td><?php echo html::select('accounts[]', $users, $member2Import->account, "class='select-2' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='roles[]' id='role<?php echo $i;?>' class='text-2' value='<?php echo $member2Import->role;?>' /></td>
<td><input type='text' name='days[]' id='days<?php echo $i;?>' class='text-2' value='<?php echo $project->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo $key;?>' class='text-2' value='<?php echo $member2Import->hours;?>' />
<input type='text' name='hours[]' id='hours<?php echo $i;?>' class='text-2' value='<?php echo $member2Import->hours;?>' />
<input type='hidden' name='modes[]' value='create' />
</td>
</tr>
<?php $i ++;?>
<?php endforeach;?>
<?php
@@ -65,16 +60,17 @@ function importTeam()
if($count > PROJECTMODEL::LINK_MEMBERS_ONE_TIME) $count = PROJECTMODEL::LINK_MEMBERS_ONE_TIME;
?>
<?php for($i = 0; $i < $count; $i ++):?>
<?php for($j = 0; $j < $count; $j ++):?>
<tr>
<td><?php echo html::select('accounts[]', $users, '', 'class=select-2');?></td>
<td><input type='text' name='roles[]' id='role<?php echo ($key + $i);?>' class='text-2' /></td>
<td><input type='text' name='days[]' id='days<?php echo ($key + $i);?>' class='text-2' value='<?php echo $project->days?>'/></td>
<td><?php echo html::select('accounts[]', $users, '', "class='select-2' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='roles[]' id='role<?php echo ($i);?>' class='text-2' /></td>
<td><input type='text' name='days[]' id='days<?php echo ($i);?>' class='text-2' value='<?php echo $project->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo ($key + $i);?>' class='text-2' value='7' />
<input type='text' name='hours[]' id='hours<?php echo ($i);?>' class='text-2' value='7' />
<input type='hidden' name='modes[]' value='create' />
</td>
</tr>
<?php $i ++;?>
<?php endfor;?>
<tr>
<td colspan='4'>
+16
View File
@@ -151,6 +151,22 @@ class userModel extends model
return $users;
}
/**
* Get roles for some users.
*
* @param string $users
* @access public
* @return array
*/
public function getUserRoles($users)
{
$users = $this->dao->select('account, role')->from(TABLE_USER)->where('account')->in($users)->fetchPairs();
if(!$users) return array();
foreach($users as $account => $role) $users[$account] = zset($this->lang->user->roleList, $role, $role);
return $users;
}
/**
* Get user info by ID.
*