* Fix menu and program.

This commit is contained in:
sgm0422
2020-05-18 16:46:40 +08:00
parent 7478fb8c30
commit 5dc4fbcec8
9 changed files with 248 additions and 84 deletions
+42
View File
@@ -154,6 +154,48 @@ class program extends control
$this->display();
}
public function manageMembers($projectID, $dept = '')
{
if(!empty($_POST))
{
$this->project->manageMembers($projectID);
die(js::locate($this->createLink('program', 'index'), 'parent'));
}
/* Load model. */
$this->loadModel('user');
$this->loadModel('dept');
$project = $this->project->getById($projectID);
$users = $this->user->getPairs('noclosed|nodeleted|devfirst|nofeedback');
$roles = $this->user->getUserRoles(array_keys($users));
$deptUsers = $dept === '' ? array() : $this->dept->getDeptUserPairs($dept);
$currentMembers = $this->project->getTeamMembers($projectID);
//$members2Import = $this->project->getMembers2Import($team2Import, array_keys($currentMembers));
//$teams2Import = $this->project->getTeams2Import($this->app->user->account, $projectID);
//$teams2Import = array('' => '') + $teams2Import;
/* Set menu. */
//$this->project->setMenu($this->projects, $project->id);
$title = $this->lang->program->manageMembers . $this->lang->colon . $project->name;
$position[] = $this->lang->program->manageMembers;
$this->view->title = $title;
$this->view->position = $position;
$this->view->project = $project;
$this->view->users = $users;
$this->view->deptUsers = $deptUsers;
$this->view->roles = $roles;
$this->view->dept = $dept;
$this->view->depts = array('' => '') + $this->loadModel('dept')->getOptionMenu();
$this->view->currentMembers = $currentMembers;
//$this->view->members2Import = $members2Import;
//$this->view->teams2Import = $teams2Import;
//$this->view->team2Import = $team2Import;
$this->display();
}
/**
* Start project.
*
+36
View File
@@ -0,0 +1,36 @@
/**
* 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.
}
function addItem(obj)
{
var item = $('#addItem').html().replace(/%i%/g, i);
$(obj).closest('tr').after('<tr class="addedItem">' + item + '</tr>');
var accounts = $('#hours' + i).closest('tr').find('select:first')
accounts.trigger('liszt:updated');
accounts.chosen();
i ++;
}
function deleteItem(obj)
{
$(obj).closest('tr').remove();
}
function setDeptUsers(obj)
{
dept = $(obj).val();//Get dept ID.
link = createLink('program', 'manageMembers', 'projectID=' + projectID + '&dept=' + dept);//Create manageMembers link.
location.href=link;
}
+31 -30
View File
@@ -1,34 +1,35 @@
<?php
$lang->program->index = '项目主页';
$lang->program->common = '项目';
$lang->program->stage = '阶段';
$lang->program->name = '项目名称';
$lang->program->template = '项目模板';
$lang->program->category = '项目类型';
$lang->program->desc = '项目描述';
$lang->program->code = '项目代号';
$lang->program->copy = '复制项目';
$lang->program->begin = '计划开始日期';
$lang->program->end = '计划完成日期';
$lang->program->status = '项目状态';
$lang->program->PM = '项目负责人';
$lang->program->create = '添加项目';
$lang->program->edit = '编辑项目';
$lang->program->all = '所有项目';
$lang->program->start = '启动';
$lang->program->finish = '完成';
$lang->program->suspend = '挂起';
$lang->program->delete = '删除';
$lang->program->close = '关闭';
$lang->program->activate = '激活';
$lang->program->budget = '项目预算';
$lang->program->dateRange = '起止时间';
$lang->program->to = '至';
$lang->program->realFinished = '实际完成日期';
$lang->program->realStarted = '实际开始日期';
$lang->program->bygrid = '看板';
$lang->program->bylist = '列表';
$lang->program->mine = '我参与的';
$lang->program->index = '项目主页';
$lang->program->common = '项目';
$lang->program->stage = '阶段';
$lang->program->name = '项目名称';
$lang->program->template = '项目模板';
$lang->program->category = '项目类型';
$lang->program->desc = '项目描述';
$lang->program->code = '项目代号';
$lang->program->copy = '复制项目';
$lang->program->begin = '计划开始日期';
$lang->program->end = '计划完成日期';
$lang->program->status = '项目状态';
$lang->program->PM = '项目负责人';
$lang->program->create = '添加项目';
$lang->program->edit = '编辑项目';
$lang->program->all = '所有项目';
$lang->program->start = '启动';
$lang->program->finish = '完成';
$lang->program->suspend = '挂起';
$lang->program->delete = '删除';
$lang->program->close = '关闭';
$lang->program->activate = '激活';
$lang->program->budget = '项目预算';
$lang->program->dateRange = '起止时间';
$lang->program->to = '至';
$lang->program->realFinished = '实际完成日期';
$lang->program->realStarted = '实际开始日期';
$lang->program->bygrid = '看板';
$lang->program->bylist = '列表';
$lang->program->mine = '我参与的';
$lang->program->manageMembers = '维护团队';
$lang->program->durationEstimation = '工作量估算';
$lang->program->noProgram = '暂时没有项目';
@@ -49,6 +49,7 @@
<td><?php echo zget($users, $project->PM);?></td>
<td title='<?php echo strip_tags($project->desc);?>'><?php echo strip_tags($project->desc);?></td>
<td class='text-center c-actions'>
<?php common::printIcon('program', 'manageMembers', "projectID=$project->id", $project, 'list', 'persons');?>
<?php common::printIcon('program', 'start', "projectID=$project->id", $project, 'list', '', '', 'iframe', true);?>
<?php common::printIcon('program', 'activate', "projectID=$project->id", $project, 'list', '', '', 'iframe', true);?>
<?php common::printIcon('program', 'suspend', "projectID=$project->id", $project, 'list', '', '', 'iframe', true);?>
+109
View File
@@ -0,0 +1,109 @@
<?php include '../../common/view/header.html.php';?>
<?php js::set('projectID', $project->id);?>
<?php js::set('roles', $roles);?>
<div id='mainMenu' class='clearfix'>
<div class='btn-toolbar pull-left'>
<span class='btn btn-link btn-active-text'>
<?php echo html::a($this->createLink('project', 'managemembers', "projectID={$project->id}"), "<span class='text'> {$lang->project->manageMembers}</span>");?>
</span>
<div class='input-group space w-200px'>
<span class='input-group-addon'><?php echo $lang->project->selectDept?></span>
<?php echo html::select('dept', $depts, $dept, "class='form-control chosen' onchange='setDeptUsers(this)' data-placeholder='{$lang->project->selectDeptTitle}'");?>
</div>
</div>
</div>
<div id='mainContent' class='main-content'>
<form class='main-form' method='post' id='teamForm' target='hiddenwin'>
<table class='table table-form'>
<thead>
<tr class='text-center'>
<th><?php echo $lang->team->role;?></th>
<th><?php echo $lang->team->account;?></th>
<th class='w-100px'><?php echo $lang->team->days;?></th>
<th class='w-100px'><?php echo $lang->team->hours;?></th>
<th class='w-110px'><?php echo $lang->team->limited;?></th>
<th class="w-90px"> <?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php $i = 0; $memberCount = 0;?>
<?php foreach($currentMembers as $member):?>
<?php if(!isset($users[$member->account])) continue;?>
<?php unset($users[$member->account]);?>
<tr>
<td><input type='text' name='roles[]' id='role<?php echo $i;?>' value='<?php echo $member->role;?>' class='form-control' /></td>
<td><input type='text' name='realnames[]' id='account<?php echo $i;?>' value='<?php echo $member->realname;?>' readonly class='form-control' /></td>
<td><input type='text' name='days[] ' id='days<?php echo $i;?>' value='<?php echo $member->days;?>' class='form-control' /></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo $i;?>' value='<?php echo $member->hours;?>' class='form-control' />
<input type='hidden' name='accounts[]' value='<?php echo $member->account;?>' />
</td>
<td><?php echo html::radio("limited[$i]", $lang->team->limitedList, $member->limited);?></td>
<td class='c-actions text-center'>
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
</td>
</tr>
<?php $i ++; $memberCount ++;?>
<?php endforeach;?>
<?php foreach($deptUsers as $deptAccount => $userName):?>
<?php if(!isset($users[$deptAccount])) continue;?>
<tr class='addedItem'>
<td><input type='text' name='roles[]' id='role<?php echo $i;?>' class='form-control' value='<?php echo $roles[$deptAccount]?>'/></td>
<td><?php echo html::select("accounts[]", $users, $deptAccount, "class='form-control chosen' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='days[]' id='days<?php echo $i;?>' class='form-control' value='<?php echo $project->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo $i;?>' class='form-control' value='<?php echo $config->project->defaultWorkhours?>' />
</td>
<td><?php echo html::radio("limited[$i]", $lang->team->limitedList, 'no');?></td>
<td class='c-actions text-center'>
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
</td>
</tr>
<?php unset($users[$deptAccount]);?>
<?php $i ++; $memberCount ++;?>
<?php endforeach;?>
<?php for($j = 0; $j < 5; $j ++):?>
<tr class='addedItem'>
<td><input type='text' name='roles[]' id='role<?php echo ($i);?>' class='form-control' /></td>
<td><?php echo html::select("accounts[]", $users, '', "class='form-control chosen' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='days[]' id='days<?php echo ($i);?>' class='form-control' value='<?php echo $project->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo ($i);?>' class='form-control' value='<?php echo $config->project->defaultWorkhours?>' />
</td>
<td><?php echo html::radio("limited[$i]", $lang->team->limitedList, 'no');?></td>
<td class='c-actions text-center'>
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
</td>
</tr>
<?php $i ++; $memberCount ++;?>
<?php endfor;?>
</tbody>
<tfoot><tr><td colspan='6' class='text-center form-actions'><?php echo html::submitButton() . ' ' . html::backButton(); ?></td></tr></tfoot>
</table>
<?php js::set('i', $i);?>
</form>
</div>
<div>
<?php $i = '%i%';?>
<table class='hidden'>
<tr id='addItem' class='hidden'>
<td><input type='text' name='roles[]' id='role<?php echo ($i);?>' class='form-control' /></td>
<td><?php echo html::select("accounts[]", $users, '', "class='form-control' onchange='setRole(this.value, $i)'");?></td>
<td><input type='text' name='days[]' id='days<?php echo ($i);?>' class='form-control' value='<?php echo $project->days?>'/></td>
<td>
<input type='text' name='hours[]' id='hours<?php echo ($i);?>' class='form-control' value='<?php echo $config->project->defaultWorkhours?>' />
</td>
<td><?php echo html::radio("limited[$i]", $lang->team->limitedList, 'no');?></td>
<td class='c-actions text-center'>
<a href='javascript:;' onclick='addItem(this)' class='btn btn-link'><i class='icon-plus'></i></a>
<a href='javascript:;' onclick='deleteItem(this)' class='btn btn-link'><i class='icon icon-close'></i></a>
</td>
</tr>
</table>
</div>
<?php include '../../common/view/footer.html.php';?>