This commit is contained in:
holan20180123
2020-12-25 15:19:46 +08:00
48 changed files with 469 additions and 281 deletions
+57 -33
View File
@@ -219,11 +219,11 @@ class program extends control
*/
public function PGMClose($programID)
{
$program = $this->program->getPGMByID($programID);
$this->lang->navGroup->program = 'program';
$this->loadModel('action');
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->close($programID);
if(dao::isError()) die(js::error(dao::getError()));
@@ -237,14 +237,47 @@ class program extends control
$this->view->title = $this->lang->program->PGMClose;
$this->view->position[] = $this->lang->program->PGMClose;
$this->view->project = $program;
$this->view->project = $this->program->getPGMByID($programID);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('program', $programID);
$this->view->actions = $this->action->getList('program', $programID);
$this->display('project', 'close');
}
/**
* Start program.
*
* @param int $programID
* @access public
* @return void
*/
public function PGMStart($programID)
{
$this->lang->navGroup->program = 'program';
$this->loadModel('action');
if(!empty($_POST))
{
$changes = $this->project->start($programID);
if(dao::isError()) die(js::error(dao::getError()));
if($this->post->comment != '' or !empty($changes))
{
$actionID = $this->action->create('program', $programID, 'Started', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($programID);
die(js::reload('parent.parent'));
}
$this->view->title = $this->lang->project->start;
$this->view->position[] = $this->lang->project->start;
$this->view->program = $this->program->getPGMByID($programID);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->action->getList('program', $programID);
$this->display();
}
/**
* Activate a program.
*
@@ -254,11 +287,12 @@ class program extends control
*/
public function PGMActivate($programID = 0)
{
$this->lang->navGroup->program = 'program';
$this->loadModel('action');
$program = $this->program->getPGMByID($programID);
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->activate($programID);
if(dao::isError()) die(js::error(dao::getError()));
@@ -276,10 +310,9 @@ class program extends control
$this->view->title = $this->lang->program->PGMActivate;
$this->view->position[] = $this->lang->program->PGMActivate;
$this->view->program = $program;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('program', $programID);
$this->view->actions = $this->action->getList('program', $programID);
$this->view->newBegin = $newBegin;
$this->view->newEnd = $newEnd;
$this->display();
@@ -295,11 +328,10 @@ class program extends control
public function PGMSuspend($programID)
{
$this->lang->navGroup->program = 'program';
$program = $this->program->getPGMByID($programID);
$this->loadModel('action');
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->suspend($programID);
if(dao::isError()) die(js::error(dao::getError()));
@@ -315,8 +347,8 @@ class program extends control
$this->view->title = $this->lang->project->suspend;
$this->view->position[] = $this->lang->project->suspend;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('project', $programID);
$this->view->project = $program;
$this->view->actions = $this->action->getList('program', $programID);
$this->view->project = $this->program->getPGMByID($programID);
$this->display('project', 'suspend');
}
@@ -1192,19 +1224,16 @@ class program extends control
public function PRJStart($projectID)
{
$this->lang->navGroup->program = 'project';
$project = $this->program->getPGMByID($projectID);
$projectID = $project->id;
$this->loadModel('action');
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->start($projectID);
if(dao::isError()) die(js::error(dao::getError()));
if($this->post->comment != '' or !empty($changes))
{
$objectType = $project->type == 'program' ? 'program' : 'project';
$actionID = $this->action->create($objectType, $projectID, 'Started', $this->post->comment);
$actionID = $this->action->create('project', $projectID, 'Started', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($projectID);
@@ -1213,9 +1242,9 @@ class program extends control
$this->view->title = $this->lang->project->start;
$this->view->position[] = $this->lang->project->start;
$this->view->project = $project;
$this->view->project = $this->program->getPRJByID($projectID);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('project', $projectID);
$this->view->actions = $this->action->getList('project', $projectID);
$this->display();
}
@@ -1229,18 +1258,16 @@ class program extends control
public function PRJSuspend($projectID)
{
$this->lang->navGroup->program = 'project';
$project = $this->program->getPGMByID($projectID);
$this->loadModel('action');
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->suspend($projectID);
if(dao::isError()) die(js::error(dao::getError()));
if($this->post->comment != '' or !empty($changes))
{
$objectType = $project->type == 'program' ? 'program' : 'project';
$actionID = $this->action->create($objectType, $projectID, 'Suspended', $this->post->comment);
$actionID = $this->action->create('project', $projectID, 'Suspended', $this->post->comment);
$this->action->logHistory($actionID, $changes);
}
$this->executeHooks($projectID);
@@ -1250,8 +1277,8 @@ class program extends control
$this->view->title = $this->lang->project->suspend;
$this->view->position[] = $this->lang->project->suspend;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('project', $projectID);
$this->view->project = $project;
$this->view->actions = $this->action->getList('project', $projectID);
$this->view->project = $this->program->getPGMByID($projectID);
$this->display('project', 'suspend');
}
@@ -1266,11 +1293,10 @@ class program extends control
public function PRJClose($projectID)
{
$this->lang->navGroup->program = 'project';
$project = $this->program->getPGMByID($projectID);
$this->loadModel('action');
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->close($projectID);
if(dao::isError()) die(js::error(dao::getError()));
@@ -1285,9 +1311,9 @@ class program extends control
$this->view->title = $this->lang->project->close;
$this->view->position[] = $this->lang->project->close;
$this->view->project = $project;
$this->view->project = $this->program->getPGMByID($projectID);
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('project', $projectID);
$this->view->actions = $this->action->getList('project', $projectID);
$this->display('project', 'close');
}
@@ -1302,11 +1328,11 @@ class program extends control
public function PRJActivate($projectID)
{
$this->lang->navGroup->program = 'project';
$this->loadModel('action');
$project = $this->program->getPRJByID($projectID);
if(!empty($_POST))
{
$this->loadModel('action');
$changes = $this->project->activate($projectID);
if(dao::isError()) die(js::error(dao::getError()));
@@ -1325,10 +1351,8 @@ class program extends control
$this->view->title = $this->lang->project->activate;
$this->view->position[] = $this->lang->project->activate;
$this->view->project = $project;
$this->view->users = $this->loadModel('user')->getPairs('noletter');
$this->view->actions = $this->loadModel('action')->getList('project', $projectID);
$this->view->actions = $this->action->getList('project', $projectID);
$this->view->newBegin = $newBegin;
$this->view->newEnd = $newEnd;
$this->view->project = $project;
+6 -1
View File
@@ -195,6 +195,8 @@ $lang->program->PGMExport = 'Export';
$lang->program->PGMStakeholder = 'Stakeholder';
$lang->program->createStakeholder = 'Create Stakeholder';
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
$lang->program->stakeholderType = 'Stakeholder type';
$lang->program->isStakeholderKey = 'Key stakeholder';
$lang->program->importStakeholder = 'Import program';
$lang->program->PGMManageMembers = 'Program Team';
$lang->program->PGMParentBudget = "Parent program budget:%s";
@@ -204,6 +206,9 @@ $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be
$lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date.";
$lang->program->PGMEndLetterChild = "Child latest end: %s, parent end date >= child latest end date.";
$lang->program->stakeholderTypeList['inside'] = 'Inside';
$lang->program->stakeholderTypeList['outside'] = 'Outside';
/* Fields. */
$lang->program->PGMName = 'Name';
$lang->program->PGMTemplate = 'Template';
@@ -211,7 +216,7 @@ $lang->program->PGMCategory = 'Type';
$lang->program->PGMDesc = 'Description';
$lang->program->PGMCopy = 'Copy Program';
$lang->program->PGMStatus = 'Status';
$lang->program->PGMPM = 'Program manager';
$lang->program->PGMPM = 'Manager';
$lang->program->PGMBudget = 'Budget';
$lang->program->PGMProgress = 'Progress';
$lang->program->PGMChildren = 'Child';
+6 -1
View File
@@ -195,6 +195,8 @@ $lang->program->PGMExport = 'Export';
$lang->program->PGMStakeholder = 'Stakeholder';
$lang->program->createStakeholder = 'Create Stakeholder';
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
$lang->program->stakeholderType = 'Stakeholder type';
$lang->program->isStakeholderKey = 'Key stakeholder';
$lang->program->importStakeholder = 'Import program';
$lang->program->PGMManageMembers = 'Program Team';
$lang->program->PGMParentBudget = "Parent program budget:%s";
@@ -204,6 +206,9 @@ $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be
$lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date.";
$lang->program->PGMEndLetterChild = "Child latest end: %s, parent end date >= child latest end date.";
$lang->program->stakeholderTypeList['inside'] = 'Inside';
$lang->program->stakeholderTypeList['outside'] = 'Outside';
/* Fields. */
$lang->program->PGMName = 'Name';
$lang->program->PGMTemplate = 'Template';
@@ -211,7 +216,7 @@ $lang->program->PGMCategory = 'Type';
$lang->program->PGMDesc = 'Description';
$lang->program->PGMCopy = 'Copy Program';
$lang->program->PGMStatus = 'Status';
$lang->program->PGMPM = 'Program manager';
$lang->program->PGMPM = 'Manager';
$lang->program->PGMBudget = 'Budget';
$lang->program->PGMProgress = 'Progress';
$lang->program->PGMChildren = 'Child';
+6 -1
View File
@@ -195,6 +195,8 @@ $lang->program->PGMExport = 'Export';
$lang->program->PGMStakeholder = 'Stakeholder';
$lang->program->createStakeholder = 'Create Stakeholder';
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
$lang->program->stakeholderType = 'Stakeholder type';
$lang->program->isStakeholderKey = 'Key stakeholder';
$lang->program->importStakeholder = 'Import program';
$lang->program->PGMManageMembers = 'Program Team';
$lang->program->PGMParentBudget = "Parent program budget:%s";
@@ -204,6 +206,9 @@ $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be
$lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date.";
$lang->program->PGMEndLetterChild = "Child latest end: %s, parent end date >= child latest end date.";
$lang->program->stakeholderTypeList['inside'] = 'Inside';
$lang->program->stakeholderTypeList['outside'] = 'Outside';
/* Fields. */
$lang->program->PGMName = 'Name';
$lang->program->PGMTemplate = 'Template';
@@ -211,7 +216,7 @@ $lang->program->PGMCategory = 'Type';
$lang->program->PGMDesc = 'Description';
$lang->program->PGMCopy = 'Copy Program';
$lang->program->PGMStatus = 'Status';
$lang->program->PGMPM = 'Program manager';
$lang->program->PGMPM = 'Manager';
$lang->program->PGMBudget = 'Budget';
$lang->program->PGMProgress = 'Progress';
$lang->program->PGMChildren = 'Child';
+6 -1
View File
@@ -195,6 +195,8 @@ $lang->program->PGMExport = 'Export';
$lang->program->PGMStakeholder = 'Stakeholder';
$lang->program->createStakeholder = 'Create Stakeholder';
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
$lang->program->stakeholderType = 'Stakeholder type';
$lang->program->isStakeholderKey = 'Key stakeholder';
$lang->program->importStakeholder = 'Import program';
$lang->program->PGMManageMembers = 'Program Team';
$lang->program->PGMParentBudget = "Parent program budget:%s";
@@ -204,6 +206,9 @@ $lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be
$lang->program->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date <= child earliest begin date.";
$lang->program->PGMEndLetterChild = "Child latest end: %s, parent end date >= child latest end date.";
$lang->program->stakeholderTypeList['inside'] = 'Inside';
$lang->program->stakeholderTypeList['outside'] = 'Outside';
/* Fields. */
$lang->program->PGMName = 'Name';
$lang->program->PGMTemplate = 'Template';
@@ -211,7 +216,7 @@ $lang->program->PGMCategory = 'Type';
$lang->program->PGMDesc = 'Description';
$lang->program->PGMCopy = 'Copy Program';
$lang->program->PGMStatus = 'Status';
$lang->program->PGMPM = 'Program manager';
$lang->program->PGMPM = 'Manager';
$lang->program->PGMBudget = 'Budget';
$lang->program->PGMProgress = 'Progress';
$lang->program->PGMChildren = 'Child';
+6 -1
View File
@@ -195,6 +195,8 @@ $lang->program->PGMExport = '导出';
$lang->program->PGMStakeholder = '干系人列表';
$lang->program->createStakeholder = '添加干系人';
$lang->program->unlinkStakeholder = '移除干系人';
$lang->program->stakeholderType = '干系人类型';
$lang->program->isStakeholderKey = '关键干系人';
$lang->program->importStakeholder = '从父项目集导入';
$lang->program->PGMManageMembers = '项目集团队';
$lang->program->PGMParentBudget = "父项目集预算:%s";
@@ -204,6 +206,9 @@ $lang->program->PGMEndGreaterParent = "父项目集的完成日期:%s,完
$lang->program->PGMBeginGreateChild = "子项目集的最小开始日期:%s,父项目集的开始日期不能大于子项目集的最小开始日期";
$lang->program->PGMEndLetterChild = "子项目的最大完成日期:%s,父项目的完成日期不能小于子项目的最大完成日期";
$lang->program->stakeholderTypeList['inside'] = '内部';
$lang->program->stakeholderTypeList['outside'] = '外部';
/* Fields. */
$lang->program->PGMName = '项目集名称';
$lang->program->PGMTemplate = '项目集模板';
@@ -211,7 +216,7 @@ $lang->program->PGMCategory = '项目集类型';
$lang->program->PGMDesc = '项目集描述';
$lang->program->PGMCopy = '复制项目集';
$lang->program->PGMStatus = '状态';
$lang->program->PGMPM = '项目集负责人';
$lang->program->PGMPM = '负责人';
$lang->program->PGMBudget = '预算';
$lang->program->PGMProgress = '项目进度';
$lang->program->PGMChildren = '子项目集';
+6 -1
View File
@@ -198,6 +198,8 @@ $lang->program->PGMExport = '導出';
$lang->program->PGMStakeholder = '干係人列表';
$lang->program->createStakeholder = '添加干係人';
$lang->program->unlinkStakeholder = '移除干係人';
$lang->program->stakeholderType = '干係人類型';
$lang->program->isStakeholderKey = '關鍵干係人';
$lang->program->importStakeholder = '從父項目集導入';
$lang->program->PGMManageMembers = '項目集團隊';
$lang->program->PGMParentBudget = "父項目集預算:%s";
@@ -207,6 +209,9 @@ $lang->program->PGMEndGreaterParent = "父項目集的完成日期:%s,完
$lang->program->PGMBeginGreateChild = "子項目集的最小開始日期:%s,父項目集的開始日期不能大於子項目集的最小開始日期";
$lang->program->PGMEndLetterChild = "子項目的最大完成日期:%s,父項目的完成日期不能小於子項目的最大完成日期";
$lang->program->stakeholderTypeList['inside'] = '内部';
$lang->program->stakeholderTypeList['outside'] = '外部';
/* Fields. */
$lang->program->PGMName = '項目集名稱';
$lang->program->PGMTemplate = '項目集模板';
@@ -214,7 +219,7 @@ $lang->program->PGMCategory = '項目集類型';
$lang->program->PGMDesc = '項目集描述';
$lang->program->PGMCopy = '複製項目集';
$lang->program->PGMStatus = '狀態';
$lang->program->PGMPM = '項目集負責人';
$lang->program->PGMPM = '負責人';
$lang->program->PGMBudget = '預算';
$lang->program->PGMProgress = '項目進度';
$lang->program->PGMChildren = '子項目集';
+19 -37
View File
@@ -449,7 +449,7 @@ class programModel extends model
*/
public function getStakeholders($programID = 0, $orderBy, $pager = null)
{
return $this->dao->select('t2.account,t2.realname,t2.role,t2.qq,t2.mobile,t2.phone,t2.weixin,t2.email,t1.id')->from(TABLE_STAKEHOLDER)->alias('t1')
return $this->dao->select('t2.account,t2.realname,t2.role,t2.qq,t2.mobile,t2.phone,t2.weixin,t2.email,t1.id,t1.type,t1.key')->from(TABLE_STAKEHOLDER)->alias('t1')
->leftJoin(TABLE_USER)->alias('t2')->on('t1.user=t2.account')
->where('t1.objectID')->eq($programID)
->andWhere('t1.objectType')->eq('program')
@@ -556,6 +556,7 @@ class programModel extends model
if($action == 'pgmclose') return $program->status != 'closed';
if($action == 'pgmactivate') return $program->status == 'done' or $program->status == 'closed';
if($action == 'pgmsuspend') return $program->status == 'wait' or $program->status == 'doing';
if($action == 'prjstart') return $program->status == 'wait' or $program->status == 'suspended';
if($action == 'prjfinish') return $program->status == 'wait' or $program->status == 'doing';
@@ -1545,56 +1546,37 @@ class programModel extends model
echo $project->hours->totalLeft;
break;
case 'PRJProgress':
echo "<span class='pie-icon' data-percent='{$project->hours->progress}' data-border-color='#ddd' data-back-color='#f1f1f1'></span> {$project->hours->progress}%";
echo "<div class='progress-pie' data-doughnut-size='80' data-color='#00da88' data-value='{$project->hours->progress}' data-width='24' data-height='24' data-back-color='#e8edf3'><div class='progress-info'>{$project->hours->progress}%</div></div>";
break;
case 'actions':
if($project->status == 'wait')
{
$method = 'PRJStart';
$icon = 'start';
}
if($project->status == 'doing')
{
$method = 'PRJClose';
$icon = 'off';
}
if($project->status == 'suspended')
{
$method = 'PRJStart';
$icon = 'start';
}
if($project->status == 'closed')
{
$method = 'PRJActivate';
$icon = 'magic';
}
common::printIcon('program', $method, "programID=$project->id", $project, 'list', $icon, '', 'iframe', true);
if($project->status == 'wait' || $project->status == 'suspended') common::printIcon('program', 'PRJStart', "projectID=$project->id", $project, 'list', 'play', '', 'iframe', true);
if($project->status == 'doing') common::printIcon('program', 'PRJClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);
if($project->status == 'closed') common::printIcon('program', 'PRJActivate', "projectID=$project->id", $project, 'list', 'magic', '', 'iframe', true);
echo "<div class='btn-group'>";
echo "<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='context-dropdown' title={$this->lang->more}></button>";
echo "<ul class='dropdown-menu pull-right'>";
common::printIcon('program', 'PRJStart', "projectID=$project->id", $project, 'list', 'start', '', $project->status == 'wait' || $project->status == 'suspended' ? 'hidden' : 'iframe btn-action', true);
common::printIcon('program', 'PRJActivate', "programID=$project->id", $project, 'list', 'magic', '', $project->status == 'closed' ? 'hidden' : 'iframe btn-action', true);
common::printIcon('program', 'PRJSuspend', "programID=$project->id", $project, 'list', 'pause', '', 'iframe btn-action', true);
common::printIcon('program', 'PRJClose', "programID=$project->id", $project, 'list', 'off', '', $project->status == 'doing' ? 'hidden' : 'iframe btn-action', true);
echo "<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='context-dropdown' title='{$this->lang->more}'></button>";
echo "<ul class='dropdown-menu pull-right text-center' role='menu'>";
common::printIcon('program', 'PRJSuspend', "projectID=$project->id", $project, 'list', 'pause', '', 'iframe btn-action', true);
if($project->status != 'doing') common::printIcon('program', 'PRJClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe btn-action', true);
if($project->status != 'closed') common::printIcon('program', 'PRJActivate', "projectID=$project->id", $project, 'list', 'magic', '', 'iframe btn-action', true);
echo "</ul>";
echo "</div>";
if(common::hasPriv('program', 'PRJEdit')) echo html::a(helper::createLink("program", "PRJEdit", "programID=$project->id"), "<i class='icon-edit'></i>", '', "class='btn' title='{$this->lang->edit}'");
common::printIcon('program', 'PRJManageMembers', "programID=$project->id", $project, 'list', 'persons');
common::printIcon('program', 'PRJEdit', "projectID=$project->id", $project, 'list', 'edit');
common::printIcon('program', 'PRJManageMembers', "projectID=$project->id", $project, 'list', 'persons');
common::printIcon('program', 'PRJGroup', "projectID=$project->id&programID=$programID", $project, 'list', 'lock');
echo "<div class='btn-group'>";
echo "<button type='button' class='btn icon-more-circle dropdown-toggle' data-toggle='context-dropdown' title={$this->lang->more}></button>";
echo "<ul class='dropdown-menu pull-right'>";
common::printIcon('program', 'PRJManageProducts', "projectID=$project->id&programID=$programID", $project, 'list', 'icon icon-menu-project', '', 'btn-action', true);
common::printIcon('program', 'PRJWhitelist', "projectID=$project->id&programID=$programID", $project, 'list', 'group', '', 'btn-action', true);
if(common::hasPriv('program','PRJDelete')) common::printIcon('program', 'PRJDelete', "projectID=$project->id", $project, 'list', 'trash', 'hiddenwin', 'btn-action', true);
echo "<button type='button' class='btn icon-more-circle dropdown-toggle' data-toggle='context-dropdown' title='{$this->lang->more}'></button>";
echo "<ul class='dropdown-menu pull-right text-center' role='menu'>";
common::printIcon('program', 'PRJManageProducts', "projectID=$project->id", $project, 'list', 'icon icon-menu-project', '', 'btn-action');
common::printIcon('program', 'PRJWhitelist', "projectID=$project->id", $project, 'list', 'group', '', 'btn-action');
if(common::hasPriv('program','PRJDelete')) echo html::a(inLink("prjdelete", "projectID=$project->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn btn-action' title='{$this->lang->program->PRJDelete}'");
echo "</ul>";
echo "</div>";
break;
}
echo '</td>';
echo '</td>';
}
}
}
+22 -19
View File
@@ -8,11 +8,11 @@
<a class='table-nest-toggle table-nest-toggle-global' data-expand-text='<?php echo $lang->expand; ?>' data-collapse-text='<?php echo $lang->collapse; ?>'></a>
<?php echo $lang->program->PGMName;?>
</th>
<th class='w-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PGMPM);?></th>
<th class='w-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PGMPM);?></th>
<th class='w-100px'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->program->PGMBudget);?></th>
<th class='w-90px'><?php common::printOrderLink('status', $orderBy, $vars, $lang->program->PGMStatus);?></th>
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->program->begin);?></th>
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->program->end);?></th>
<th class='w-90px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->program->PGMStatus);?></th>
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->program->begin);?></th>
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->program->end);?></th>
<th class='text-center w-180px'><?php echo $lang->actions;?></th>
</tr>
</thead>
@@ -58,37 +58,41 @@
<td><?php echo $program->end == LONG_TIME ? $lang->program->PRJLongTime : $program->end;?></td>
<td class='c-actions'>
<?php if($program->type == 'program'):?>
<?php common::printIcon('program', 'PRJStart', "programID=$program->id", $program, 'list', 'play', '', 'iframe', true, '', $this->lang->program->PGMStart);?>
<?php if($program->status == 'wait' || $program->status == 'suspended') common::printIcon('program', 'PGMStart', "programID=$program->id", $program, 'list', 'play', '', 'iframe', true, '', $this->lang->program->PGMStart);?>
<?php if($program->status == 'doing') common::printIcon('program', 'PGMClose', "programID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
<?php if($program->status == 'closed') common::printIcon('program', 'PGMActivate', "programID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
<div class='btn-group'>
<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>"></button>
<ul class='dropdown-menu pull-right' role='menu'>
<?php common::printIcon('program', 'PGMActivate', "programID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
<ul class='dropdown-menu pull-right text-center' role='menu'>
<?php common::printIcon('program', 'PGMSuspend', "programID=$program->id", $program, 'list', 'pause', '', 'iframe', true, '', $this->lang->program->PGMSuspend);?>
<?php common::printIcon('program', 'PGMClose', "programID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
<?php if($program->status != 'doing') common::printIcon('program', 'PGMClose', "programID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
<?php if($program->status != 'closed') common::printIcon('program', 'PGMActivate', "programID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
</ul>
</div>
<?php if(common::hasPriv('program', 'PGMEdit')) echo html::a($this->createLink("program", "pgmedit", "programID=$program->id"), "<i class='icon-edit'></i>", '', "class='btn' title='{$this->lang->program->PGMEdit}'");?>
<?php common::printIcon('program', 'PGMEdit', "programID=$program->id", '', 'list', 'edit');?>
<?php common::printIcon('program', 'PGMCreate', "programID=$program->id", '', 'list', 'treemap-alt', '', '', '', '', $this->lang->program->PGMChildren);?>
<?php if(common::hasPriv('program', 'PGMDelete')) echo html::a($this->createLink("program", "pgmdelete", "programID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->program->PGMDelete}'");?>
<?php else:?>
<?php common::printIcon('program', 'PRJStart', "projectID=$program->id", $program, 'list', 'play', '', 'iframe', true);?>
<?php if($program->status == 'wait' || $program->status == 'suspended') common::printIcon('program', 'PRJStart', "projectID=$program->id", $program, 'list', 'play', '', 'iframe', true);?>
<?php if($program->status == 'doing') common::printIcon('program', 'PRJClose', "projectID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
<?php if($program->status == 'closed') common::printIcon('program', 'PRJActivate', "projectID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
<div class='btn-group'>
<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>"></button>
<ul class='dropdown-menu pull-right' role='menu'>
<?php common::printIcon('program', 'PRJActivate', "projectID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
<ul class='dropdown-menu pull-right text-center' role='menu'>
<?php common::printIcon('program', 'PRJSuspend', "projectID=$program->id", $program, 'list', 'pause', '', 'iframe', true);?>
<?php common::printIcon('program', 'PRJClose', "projectID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
<?php if($program->status != 'doing') common::printIcon('program', 'PRJClose', "projectID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
<?php if($program->status != 'closed') common::printIcon('program', 'PRJActivate', "projectID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
</ul>
</div>
<?php if(common::hasPriv('program','PRJEdit')) echo html::a($this->createLink("program", "prjedit", "projectID=$program->id"), "<i class='icon-edit'></i>", '', "class='btn' title='{$this->lang->program->PRJEdit}'");?>
<?php common::printIcon('program', 'PRJEdit', "projectID=$program->id", $program, 'list', 'edit');?>
<?php common::printIcon('program', 'PRJManageMembers', "projectID=$program->id", $program, 'list', 'persons');?>
<?php common::printIcon('program', 'PRJGroup', "projectID=$program->id", $program, 'list', 'icon icon-lock');?>
<?php common::printIcon('program', 'PRJGroup', "projectID=$program->id", $program, 'list', 'lock');?>
<div class='btn-group'>
<button type='button' class='btn icon-more-circle dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>"></button>
<ul class='dropdown-menu pull-right' role='menu'>
<?php common::printIcon('program', 'PRJManageProducts', "projectID=$program->id", $program, 'list', 'icon icon-menu-project');?>
<?php common::printIcon('program', 'PRJWhitelist', "projectID=$program->id", $program, 'list', 'group');?>
<ul class='dropdown-menu pull-right text-center' role='menu'>
<?php common::printIcon('program', 'PRJManageProducts', "projectID=$program->id", $program, 'list', 'menu-project');?>
<?php common::printIcon('program', 'PRJWhitelist', "projectID=$program->id", $program, 'list', 'group');?>
<?php if(common::hasPriv('program','PRJDelete')) echo html::a($this->createLink("program", "prjdelete", "projectID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->program->PRJDelete}'");?>
</ul>
</div>
@@ -104,7 +108,6 @@
#programTableList.sortable-sorting > tr.drag-row {opacity: 1;}
#programTableList > tr.drop-not-allowed {opacity: 0.1!important}
#programList .c-actions {overflow: visible;}
#programList .c-actions .dropdown-menu {padding-right: 8px; margin-top: -4px;}
#programTableList > tr:last-child .c-actions .dropdown-menu {top: auto; bottom: 100%; margin-bottom: -5px;}
</style>
<?php js::set('originOrders', $originOrders);?>
+9
View File
@@ -31,6 +31,14 @@ js::set('browseType', $browseType);
</div>
<div id='mainContent' class="main-row fade">
<div class="main-col">
<?php if(empty($projectStats)):?>
<div class="table-empty-tip">
<p>
<span class="text-muted"><?php echo $lang->program->noPRJ;?></span>
<?php common::printLink('program', 'createGuide', "programID=$programID", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?>
</p>
</div>
<?php else:?>
<form class='main-table' id='projectsForm' method='post' data-ride="table">
<?php
include '../../common/view/datatable.html.php';
@@ -66,6 +74,7 @@ js::set('browseType', $browseType);
</div>
<?php endif;?>
</form>
<?php endif;?>
</div>
</div>
<script>
+5 -1
View File
@@ -32,6 +32,7 @@
<?php echo $lang->idAB;?>
</th>
<th><?php echo $lang->user->realname;?></th>
<th class="w-100px"><?php echo $lang->program->stakeholderType;?></th>
<th class="w-120px"><?php echo $lang->user->role;?></th>
<th class="w-120px"><?php echo $lang->user->phone;?></th>
<th class="w-120px"><?php echo $lang->user->qq;?></th>
@@ -46,7 +47,10 @@
<td class='c-id'>
<?php printf('%03d', $stakeholder->id);?>
</td>
<td><?php echo $stakeholder->realname;?></td>
<?php $isKey = $stakeholder->key ? " <i class='icon icon-star-empty'></i>" : '';?>
<?php $title = $stakeholder->key ? $lang->program->isStakeholderKey : '';?>
<td title="<?php echo $title;?>"><?php echo $stakeholder->realname . $isKey;?></td>
<td title='<?php echo zget($lang->program->stakeholderTypeList, $stakeholder->type, '');?>'><?php echo zget($lang->program->stakeholderTypeList, $stakeholder->type, '');?></td>
<td><?php echo zget($lang->user->roleList, $stakeholder->role);?></td>
<td title="<?php echo $stakeholder->phone;?>"><?php echo $stakeholder->phone;?></td>
<td title="<?php echo $stakeholder->qq;?>"><?php echo $stakeholder->qq;?></td>
+50
View File
@@ -0,0 +1,50 @@
<?php
/**
* The prjstart view file of program module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package program
* @version $Id: prjstart.html.php 4769 2013-05-05 07:24:21Z wwccss $
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<?php include '../../common/view/kindeditor.html.php';?>
<div id='mainContent' class='main-content'>
<div class='main-header'>
<h2>
<span class='prefix label-id'><strong><?php echo $program->id;?></strong></span>
<?php echo isonlybody() ? ("<span title='$program->name'>" . $program->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $program->id), $program->name, '_blank');?>
<?php if(!isonlybody()):?>
<small><?php echo $lang->arrow . $lang->project->start;?></small>
<?php endif;?>
</h2>
</div>
<form class='load-indicator main-form' method='post' target='hiddenwin'>
<table class='table table-form'>
<tbody>
<tr>
<th class='w-100px'><?php echo $lang->program->realBegan;?></th>
<td><?php echo html::input('realBegan', helper::today(), "class='form-control form-date'");?></td>
<td></td>
</tr>
<tr>
<th class='w-40px'><?php echo $lang->comment;?></th>
<td colspan='2'><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
</tr>
<tr>
<td colspan='3' class='text-center form-actions'>
<?php echo html::submitButton($lang->project->start);?>
</td>
</tr>
</tbody>
</table>
</form>
<hr class='small' />
<div class='main'>
<?php include '../../common/view/action.html.php';?>
</div>
</div>
<?php include '../../common/view/footer.html.php';?>