Merge branch 'master' into zentaopms_239
This commit is contained in:
@@ -58,6 +58,6 @@ $config->programplan->customCreateFields = 'PM,percent,attribute,acl,milestone,r
|
||||
$config->programplan->custom = new stdclass();
|
||||
$config->programplan->custom->createFields = 'PM,percent,attribute,acl,milestone';
|
||||
|
||||
$config->programplan->custom->customGanttFields = 'PM,deadline,status,realBegan,realEnd,progress,taskProgress,estimate,consumed';
|
||||
$config->programplan->custom->customGanttFields = 'PM,deadline,status,realBegan,realEnd,progress,taskProgress,estimate,consumed,delay,delayDays';
|
||||
$config->programplan->ganttCustom = new stdclass();
|
||||
$config->programplan->ganttCustom->ganttFields = 'PM,deadline';
|
||||
|
||||
@@ -60,6 +60,9 @@ $lang->programplan->exporting = 'Exporting';
|
||||
$lang->programplan->exportFail = 'Export failed';
|
||||
$lang->programplan->hideCriticalPath = 'Hide Critical Path';
|
||||
$lang->programplan->showCriticalPath = 'Show Critical Path';
|
||||
$lang->programplan->delay = 'Delay';
|
||||
$lang->programplan->delayDays = 'Delay days';
|
||||
|
||||
$lang->programplan->errorBegin = "Project begin date: %s, begin date should be >= project begin date.";
|
||||
$lang->programplan->errorEnd = "Project end date: %s, end date should be <= project end date.";
|
||||
$lang->programplan->emptyBegin = '『Begin』should not be blank';
|
||||
@@ -70,6 +73,10 @@ $lang->programplan->checkEnd = '『End』should be valid date';
|
||||
$lang->programplan->milestoneList[1] = 'Yes';
|
||||
$lang->programplan->milestoneList[0] = 'No';
|
||||
|
||||
$lang->programplan->delayList = array();
|
||||
$lang->programplan->delayList[1] = 'Yes';
|
||||
$lang->programplan->delayList[0] = 'No';
|
||||
|
||||
$lang->programplan->noData = 'No Data';
|
||||
$lang->programplan->children = 'Sub Plan';
|
||||
$lang->programplan->childrenAB = 'Child';
|
||||
@@ -80,15 +87,17 @@ $lang->programplan->stageCustom = new stdClass();
|
||||
$lang->programplan->stageCustom->date = 'Show Date';
|
||||
$lang->programplan->stageCustom->task = 'Show Task';
|
||||
|
||||
$lang->programplan->ganttCustom['PM'] ='Manager';
|
||||
$lang->programplan->ganttCustom['deadline'] ='Deadline';
|
||||
$lang->programplan->ganttCustom['status'] ='Status';
|
||||
$lang->programplan->ganttCustom['realBegan'] ='Actual Began';
|
||||
$lang->programplan->ganttCustom['realEnd'] ='Actual End';
|
||||
$lang->programplan->ganttCustom['progress'] ='Workload Ratio';
|
||||
$lang->programplan->ganttCustom['taskProgress'] ='Task Progress';
|
||||
$lang->programplan->ganttCustom['estimate'] ='Estimate';
|
||||
$lang->programplan->ganttCustom['consumed'] ='Consumed';
|
||||
$lang->programplan->ganttCustom['PM'] = 'Manager';
|
||||
$lang->programplan->ganttCustom['deadline'] = 'Deadline';
|
||||
$lang->programplan->ganttCustom['status'] = 'Status';
|
||||
$lang->programplan->ganttCustom['realBegan'] = 'Actual Began';
|
||||
$lang->programplan->ganttCustom['realEnd'] = 'Actual End';
|
||||
$lang->programplan->ganttCustom['progress'] = 'Workload Ratio';
|
||||
$lang->programplan->ganttCustom['taskProgress'] = 'Task Progress';
|
||||
$lang->programplan->ganttCustom['estimate'] = 'Estimate';
|
||||
$lang->programplan->ganttCustom['consumed'] = 'Consumed';
|
||||
$lang->programplan->ganttCustom['delay'] = 'Delay';
|
||||
$lang->programplan->ganttCustom['delayDays'] = 'Delay days';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be digits.';
|
||||
@@ -98,6 +107,7 @@ $lang->programplan->error->createdTask = 'The task has been decomposed. Sub
|
||||
$lang->programplan->error->parentWorkload = 'The sum of the workload of the child phase cannot be greater than that of the parent phase: %s.';
|
||||
$lang->programplan->error->parentDuration = 'The planned start and planned completion of the child phase cannot exceed the parent phase.';
|
||||
$lang->programplan->error->sameName = 'Stage name cannot be the same!';
|
||||
$lang->programplan->error->sameCode = 'Stage code cannot be the same!';
|
||||
$lang->programplan->error->taskDrag = 'The %s task cannot be dragged';
|
||||
$lang->programplan->error->planDrag = 'The %s stage cannot be dragged';
|
||||
|
||||
|
||||
@@ -60,6 +60,9 @@ $lang->programplan->exporting = 'Exporting';
|
||||
$lang->programplan->exportFail = 'Failed';
|
||||
$lang->programplan->hideCriticalPath = 'Hide Critical Path';
|
||||
$lang->programplan->showCriticalPath = 'Show Critical Path';
|
||||
$lang->programplan->delay = 'Delay';
|
||||
$lang->programplan->delayDays = 'Delay days';
|
||||
|
||||
$lang->programplan->errorBegin = "Project begin date: %s, begin date should be >= project begin date.";
|
||||
$lang->programplan->errorEnd = "Project end date: %s, end date should be <= project end date.";
|
||||
$lang->programplan->emptyBegin = '『Begin』should not be blank';
|
||||
@@ -70,6 +73,10 @@ $lang->programplan->checkEnd = '『End』should be valid date';
|
||||
$lang->programplan->milestoneList[1] = 'Yes';
|
||||
$lang->programplan->milestoneList[0] = 'No';
|
||||
|
||||
$lang->programplan->delayList = array();
|
||||
$lang->programplan->delayList[1] = 'Yes';
|
||||
$lang->programplan->delayList[0] = 'No';
|
||||
|
||||
$lang->programplan->noData = 'No Data';
|
||||
$lang->programplan->children = 'Sub Plan';
|
||||
$lang->programplan->childrenAB = 'Child';
|
||||
@@ -80,15 +87,17 @@ $lang->programplan->stageCustom = new stdClass();
|
||||
$lang->programplan->stageCustom->date = 'Show Date';
|
||||
$lang->programplan->stageCustom->task = 'Show Task';
|
||||
|
||||
$lang->programplan->ganttCustom['PM'] ='Manager';
|
||||
$lang->programplan->ganttCustom['deadline'] ='Deadline';
|
||||
$lang->programplan->ganttCustom['status'] ='Status';
|
||||
$lang->programplan->ganttCustom['realBegan'] ='Actual Began';
|
||||
$lang->programplan->ganttCustom['realEnd'] ='Actual End';
|
||||
$lang->programplan->ganttCustom['progress'] ='Workload Ratio';
|
||||
$lang->programplan->ganttCustom['taskProgress'] ='Task Progress';
|
||||
$lang->programplan->ganttCustom['estimate'] ='Estimate';
|
||||
$lang->programplan->ganttCustom['consumed'] ='Consumed';
|
||||
$lang->programplan->ganttCustom['PM'] = 'Manager';
|
||||
$lang->programplan->ganttCustom['deadline'] = 'Deadline';
|
||||
$lang->programplan->ganttCustom['status'] = 'Status';
|
||||
$lang->programplan->ganttCustom['realBegan'] = 'Actual Began';
|
||||
$lang->programplan->ganttCustom['realEnd'] = 'Actual End';
|
||||
$lang->programplan->ganttCustom['progress'] = 'Workload Ratio';
|
||||
$lang->programplan->ganttCustom['taskProgress'] = 'Task Progress';
|
||||
$lang->programplan->ganttCustom['estimate'] = 'Estimate';
|
||||
$lang->programplan->ganttCustom['consumed'] = 'Consumed';
|
||||
$lang->programplan->ganttCustom['delay'] = 'Delay';
|
||||
$lang->programplan->ganttCustom['delayDays'] = 'Delay days';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be digits.';
|
||||
@@ -98,6 +107,7 @@ $lang->programplan->error->createdTask = 'The task is decomposed. Sub stages
|
||||
$lang->programplan->error->parentWorkload = 'The sum of the workload in the sub stage cannot be > that in the parent stage: %s.';
|
||||
$lang->programplan->error->parentDuration = 'The planned start and planned completion of the child phase cannot exceed the parent phase.';
|
||||
$lang->programplan->error->sameName = 'Stage name cannot be the same!';
|
||||
$lang->programplan->error->sameCode = 'Stage code cannot be the same!';
|
||||
$lang->programplan->error->taskDrag = 'The %s task cannot be dragged';
|
||||
$lang->programplan->error->planDrag = 'The %s stage cannot be dragged';
|
||||
|
||||
|
||||
@@ -60,6 +60,9 @@ $lang->programplan->exporting = 'Exporting';
|
||||
$lang->programplan->exportFail = 'Export failed';
|
||||
$lang->programplan->hideCriticalPath = 'Hide Critical Path';
|
||||
$lang->programplan->showCriticalPath = 'Show Critical Path';
|
||||
$lang->programplan->delay = 'Delay';
|
||||
$lang->programplan->delayDays = 'Delay days';
|
||||
|
||||
$lang->programplan->errorBegin = "Project begin date: %s, begin date should be >= project begin date.";
|
||||
$lang->programplan->errorEnd = "Project end date: %s, end date should be <= project end date.";
|
||||
$lang->programplan->emptyBegin = '『Begin』should not be blank';
|
||||
@@ -70,6 +73,10 @@ $lang->programplan->checkEnd = '『End』should be valid date';
|
||||
$lang->programplan->milestoneList[1] = 'Yes';
|
||||
$lang->programplan->milestoneList[0] = 'No';
|
||||
|
||||
$lang->programplan->delayList = array();
|
||||
$lang->programplan->delayList[1] = 'Yes';
|
||||
$lang->programplan->delayList[0] = 'No';
|
||||
|
||||
$lang->programplan->noData = 'No Data';
|
||||
$lang->programplan->children = 'Sub Plan';
|
||||
$lang->programplan->childrenAB = 'Child';
|
||||
@@ -80,15 +87,17 @@ $lang->programplan->stageCustom = new stdClass();
|
||||
$lang->programplan->stageCustom->date = 'Show Date';
|
||||
$lang->programplan->stageCustom->task = 'Show Task';
|
||||
|
||||
$lang->programplan->ganttCustom['PM'] ='Manager';
|
||||
$lang->programplan->ganttCustom['deadline'] ='Deadline';
|
||||
$lang->programplan->ganttCustom['status'] ='Status';
|
||||
$lang->programplan->ganttCustom['realBegan'] ='Actual Began';
|
||||
$lang->programplan->ganttCustom['realEnd'] ='Actual End';
|
||||
$lang->programplan->ganttCustom['progress'] ='Workload Ratio';
|
||||
$lang->programplan->ganttCustom['taskProgress'] ='Task Progress';
|
||||
$lang->programplan->ganttCustom['estimate'] ='Estimate';
|
||||
$lang->programplan->ganttCustom['consumed'] ='Consumed';
|
||||
$lang->programplan->ganttCustom['PM'] = 'Manager';
|
||||
$lang->programplan->ganttCustom['deadline'] = 'Deadline';
|
||||
$lang->programplan->ganttCustom['status'] = 'Status';
|
||||
$lang->programplan->ganttCustom['realBegan'] = 'Actual Began';
|
||||
$lang->programplan->ganttCustom['realEnd'] = 'Actual End';
|
||||
$lang->programplan->ganttCustom['progress'] = 'Workload Ratio';
|
||||
$lang->programplan->ganttCustom['taskProgress'] = 'Task Progress';
|
||||
$lang->programplan->ganttCustom['estimate'] = 'Estimate';
|
||||
$lang->programplan->ganttCustom['consumed'] = 'Consumed';
|
||||
$lang->programplan->ganttCustom['delay'] = 'Delay';
|
||||
$lang->programplan->ganttCustom['delayDays'] = 'Delay days';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"Workload %" must be digits.';
|
||||
@@ -98,6 +107,7 @@ $lang->programplan->error->createdTask = 'The task has been decomposed. Sub
|
||||
$lang->programplan->error->parentWorkload = 'The sum of the workload of the child phase cannot be greater than that of the parent phase: %s.';
|
||||
$lang->programplan->error->parentDuration = 'The planned start and planned completion of the child phase cannot exceed the parent phase.';
|
||||
$lang->programplan->error->sameName = 'Stage name cannot be the same!';
|
||||
$lang->programplan->error->sameCode = 'Stage code cannot be the same!';
|
||||
$lang->programplan->error->taskDrag = 'The %s task cannot be dragged';
|
||||
$lang->programplan->error->planDrag = 'The %s stage cannot be dragged';
|
||||
|
||||
|
||||
@@ -60,6 +60,9 @@ $lang->programplan->exporting = '导出';
|
||||
$lang->programplan->exportFail = '导出失败';
|
||||
$lang->programplan->hideCriticalPath = '隐藏关键路径';
|
||||
$lang->programplan->showCriticalPath = '显示关键路径';
|
||||
$lang->programplan->delay = '是否延期';
|
||||
$lang->programplan->delayDays = '延期天数';
|
||||
|
||||
$lang->programplan->errorBegin = '阶段的开始时间不能小于所属项目的开始时间%s';
|
||||
$lang->programplan->errorEnd = '阶段的结束时间不能大于所属项目的结束时间%s';
|
||||
$lang->programplan->emptyBegin = '『计划开始』日期不能为空';
|
||||
@@ -70,6 +73,10 @@ $lang->programplan->checkEnd = '『计划完成』应当为合法的日
|
||||
$lang->programplan->milestoneList[1] = '是';
|
||||
$lang->programplan->milestoneList[0] = '否';
|
||||
|
||||
$lang->programplan->delayList = array();
|
||||
$lang->programplan->delayList[1] = '是';
|
||||
$lang->programplan->delayList[0] = '否';
|
||||
|
||||
$lang->programplan->noData = '暂无数据。';
|
||||
$lang->programplan->children = '二级计划';
|
||||
$lang->programplan->childrenAB = '子';
|
||||
@@ -89,6 +96,8 @@ $lang->programplan->ganttCustom['progress'] ='工作量占比';
|
||||
$lang->programplan->ganttCustom['taskProgress'] ='任务进度';
|
||||
$lang->programplan->ganttCustom['estimate'] ='工时';
|
||||
$lang->programplan->ganttCustom['consumed'] ='消耗工时';
|
||||
$lang->programplan->ganttCustom['delay'] = '是否延期';
|
||||
$lang->programplan->ganttCustom['delayDays'] = '延期天数';
|
||||
|
||||
$lang->programplan->error = new stdclass();
|
||||
$lang->programplan->error->percentNumber = '"工作量比例"必须为数字';
|
||||
@@ -98,6 +107,7 @@ $lang->programplan->error->createdTask = '已分解任务,不可添加子
|
||||
$lang->programplan->error->parentWorkload = '子阶段的工作量之和不能大于父阶段的工作量:%s';
|
||||
$lang->programplan->error->parentDuration = '子阶段计划开始、计划完成不能超过父阶段';
|
||||
$lang->programplan->error->sameName = '阶段名称不能相同!';
|
||||
$lang->programplan->error->sameCode = '阶段代号不能相同!';
|
||||
$lang->programplan->error->taskDrag = '%s的任务不可以拖动';
|
||||
$lang->programplan->error->planDrag = '%s的阶段不可以拖动';
|
||||
|
||||
|
||||
@@ -169,6 +169,7 @@ class programplanModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
$today = helper::today();
|
||||
$datas = array();
|
||||
$planIdList = array();
|
||||
$isMilestone = "<icon class='icon icon-flag icon-sm red'></icon> ";
|
||||
@@ -205,6 +206,15 @@ class programplanModel extends model
|
||||
$data->textColor = $this->lang->execution->gantt->stage->textColor;
|
||||
$data->bar_height = $this->lang->execution->gantt->bar_height;
|
||||
|
||||
/* Determines if the object is delay. */
|
||||
$data->delay = $this->lang->programplan->delayList[0];
|
||||
$data->delayDays = 0;
|
||||
if($today > $end)
|
||||
{
|
||||
$data->delay = $this->lang->programplan->delayList[1];
|
||||
$data->delayDays = helper::diffDate($today, substr($end, 0, 10));
|
||||
}
|
||||
|
||||
if($data->endDate > $data->start_date) $data->duration = helper::diffDate(substr($data->endDate, 0, 10), substr($data->start_date, 0, 10)) + 1;
|
||||
if($data->start_date) $data->start_date = date('d-m-Y', strtotime($data->start_date));
|
||||
if($data->start_date == '' or $data->endDate == '') $data->duration = 1;
|
||||
@@ -285,6 +295,15 @@ class programplanModel extends model
|
||||
$data->textColor = zget($this->lang->execution->gantt->textColor, $task->pri, $this->lang->execution->gantt->defaultTextColor);
|
||||
$data->bar_height = $this->lang->execution->gantt->bar_height;
|
||||
|
||||
/* Determines if the object is delay. */
|
||||
$data->delay = $this->lang->programplan->delayList[0];
|
||||
$data->delayDays = 0;
|
||||
if($today > $end)
|
||||
{
|
||||
$data->delay = $this->lang->programplan->delayList[1];
|
||||
$data->delayDays = helper::diffDate($today, substr($end, 0, 10));
|
||||
}
|
||||
|
||||
/* If multi task then show the teams. */
|
||||
if($task->mode == 'multi' and !empty($taskTeams[$task->id]))
|
||||
{
|
||||
@@ -683,7 +702,15 @@ class programplanModel extends model
|
||||
return false;
|
||||
}
|
||||
|
||||
$project = $this->loadModel('project')->getByID($projectID);
|
||||
$project = $this->loadModel('project')->getByID($projectID);
|
||||
$setCode = (!isset($this->config->setCode) or $this->config->setCode == 1) ? true : false;
|
||||
$checkCode = $this->checkCodeUnique($codes, isset($planIDList) ? $planIDList : '');
|
||||
if($setCode and $checkCode !== true)
|
||||
{
|
||||
if($checkCode) dao::$errors['message'][] = sprintf($this->lang->error->repeat, $this->lang->execution->code, $checkCode);
|
||||
else dao::$errors['message'][] = $this->lang->programplan->error->sameCode;
|
||||
return false;
|
||||
}
|
||||
|
||||
$datas = array();
|
||||
foreach($names as $key => $name)
|
||||
@@ -696,6 +723,7 @@ class programplanModel extends model
|
||||
$plan->project = $projectID;
|
||||
$plan->parent = $parentID ? $parentID : $projectID;
|
||||
$plan->name = $names[$key];
|
||||
if($setCode) $plan->code = $codes[$key];
|
||||
$plan->percent = $percents[$key];
|
||||
$plan->attribute = empty($parentID) ? $attributes[$key] : $parentAttribute;
|
||||
$plan->milestone = $milestone[$key];
|
||||
@@ -765,6 +793,11 @@ class programplanModel extends model
|
||||
|
||||
if(helper::isZeroDate($plan->begin)) $plan->begin = '';
|
||||
if(helper::isZeroDate($plan->end)) $plan->end = '';
|
||||
if($setCode and empty($plan->code))
|
||||
{
|
||||
dao::$errors['message'][] = sprintf($this->lang->error->notempty, $this->lang->execution->code);
|
||||
return false;
|
||||
}
|
||||
foreach(explode(',', $this->config->programplan->create->requiredFields) as $field)
|
||||
{
|
||||
$field = trim($field);
|
||||
@@ -996,6 +1029,13 @@ class programplanModel extends model
|
||||
if($projectID) $this->loadModel('execution')->checkBeginAndEndDate($projectID, $plan->begin, $plan->end);
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$setCode = (!isset($this->config->setCode) or $this->config->setCode == 1) ? true : false;
|
||||
if($setCode and empty($plan->code))
|
||||
{
|
||||
dao::$errors['code'][] = sprintf($this->lang->error->notempty, $this->lang->execution->code);
|
||||
return false;
|
||||
}
|
||||
|
||||
$planChanged = ($oldPlan->name != $plan->name || $oldPlan->milestone != $plan->milestone || $oldPlan->begin != $plan->begin || $oldPlan->end != $plan->end);
|
||||
|
||||
if($plan->parent > 0)
|
||||
@@ -1035,15 +1075,19 @@ class programplanModel extends model
|
||||
if($planChanged) $plan->version = $oldPlan->version + 1;
|
||||
if(empty($plan->parent)) $plan->parent = $projectID;
|
||||
|
||||
$parentStage = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($plan->parent)->andWhere('type')->eq('stage')->fetch();
|
||||
|
||||
/* Fix bug #22030. Reset field name for show dao error. */
|
||||
$this->lang->project->name = $this->lang->programplan->name;
|
||||
$this->lang->project->code = $this->lang->execution->code;
|
||||
|
||||
$this->dao->update(TABLE_PROJECT)->data($plan)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->programplan->edit->requiredFields, 'notempty')
|
||||
->checkIF($plan->end != '0000-00-00', 'end', 'ge', $plan->begin)
|
||||
->checkIF($plan->percent != false, 'percent', 'float')
|
||||
->checkIF(!empty($plan->name), 'name', 'unique', "id != {$planID} and type in ('sprint','stage') and `project` = {$oldPlan->project}")
|
||||
->checkIF(!empty($plan->name), 'name', 'unique', "id != {$planID} and type in ('sprint','stage') and `project` = {$oldPlan->project} and `deleted` = '0'" . ($parentStage ? " and `parent` = {$oldPlan->parent}" : ''))
|
||||
->checkIF(!empty($plan->code) and $setCode, 'code', 'unique', "id != $planID and type in ('sprint','stage','kanban') and `deleted` = '0'")
|
||||
->where('id')->eq($planID)
|
||||
->exec();
|
||||
|
||||
@@ -1222,6 +1266,29 @@ class programplanModel extends model
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check code unique.
|
||||
*
|
||||
* @param array $codes
|
||||
* @param array $planIDList
|
||||
* @access public
|
||||
* @return mix
|
||||
*/
|
||||
public function checkCodeUnique($codes, $planIDList)
|
||||
{
|
||||
$codes = array_filter($codes);
|
||||
if(count(array_unique($codes)) != count($codes)) return false;
|
||||
|
||||
$code = $this->dao->select('code')->from(TABLE_EXECUTION)
|
||||
->where('type')->in('sprint,stage,kanban')
|
||||
->andWhere('deleted')->eq('0')
|
||||
->andWhere('code')->in($codes)
|
||||
->beginIF($planIDList)->andWhere('id')->notin($planIDList)->fi()
|
||||
->fetch('code');
|
||||
if($code) return $code;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the stage set to milestone.
|
||||
*
|
||||
|
||||
@@ -56,6 +56,9 @@
|
||||
<thead>
|
||||
<tr class='text-center'>
|
||||
<th class='c-name required'><?php echo $name;?></th>
|
||||
<?php if(!isset($config->setCode) or $config->setCode == 1):?>
|
||||
<th class='c-code required'><?php echo $lang->execution->code;?></th>
|
||||
<?php endif;?>
|
||||
<th class='c-pm <?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>'><?php echo $lang->programplan->PM;?></th>
|
||||
<th class='c-percent <?php echo zget($visibleFields, 'percent', ' hidden') . zget($requiredFields, 'percent', '', ' required');?>'>
|
||||
<?php echo $lang->programplan->percent;?>
|
||||
@@ -82,6 +85,9 @@
|
||||
<?php foreach($stages as $stage):?>
|
||||
<tr>
|
||||
<td><input type='text' name='names[<?php echo $i;?>]' id='names<?php echo $i;?>' value='<?php echo $stage->name;?>' class='form-control' /></td>
|
||||
<?php if(!isset($config->setCode) or $config->setCode == 1):?>
|
||||
<td><?php echo html::input("codes[$i]", $stage->code, "class='form-control'");?></td>
|
||||
<?php endif;?>
|
||||
<td <?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>><?php echo html::select("PM[$i]", $PMUsers, '', "class='form-control picker-select'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'percent', ' hidden') . zget($requiredFields, 'percent', '', ' required');?>>
|
||||
<div class='input-group'>
|
||||
@@ -113,6 +119,9 @@
|
||||
<?php echo html::hidden("planIDList[$i]", $plan->id);?>
|
||||
<tr>
|
||||
<td><input type='text' name="names[<?php echo $i;?>]" id='names<?php echo $i;?>' value='<?php echo $plan->name;?>' class='form-control' /></td>
|
||||
<?php if(!isset($config->setCode) or $config->setCode == 1):?>
|
||||
<td><?php echo html::input("codes[$i]", $plan->code, "class='form-control'");?></td>
|
||||
<?php endif;?>
|
||||
<td <?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>><?php echo html::select("PM[$i]", $PMUsers, $plan->PM, "class='form-control picker-select'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'percent', ' hidden') . zget($requiredFields, 'percent', '', ' required');?>>
|
||||
<div class='input-group'>
|
||||
@@ -142,6 +151,9 @@
|
||||
<?php for($j = 0; $j < 5; $j ++):?>
|
||||
<tr class='addedItem'>
|
||||
<td><input type='text' name='names[<?php echo $i;?>]' id='names<?php echo $i;?>' value='' class='form-control' /></td>
|
||||
<?php if(!isset($config->setCode) or $config->setCode == 1):?>
|
||||
<td><?php echo html::input("codes[$i]", '', "class='form-control'");?></td>
|
||||
<?php endif;?>
|
||||
<td <?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>><?php echo html::select("PM[$i]", $PMUsers, '', "class='form-control picker-select'");?></td>
|
||||
<td <?php echo zget($visibleFields, 'percent', ' hidden') . zget($requiredFields, 'percent', '', ' required');?>>
|
||||
<div class='input-group'>
|
||||
@@ -183,6 +195,9 @@
|
||||
<table class='hidden'>
|
||||
<tr id='addItem' class='hidden'>
|
||||
<td><input type='text' name='<?php echo "names[$i]";?>' id='names<?php echo $i;?>' class='form-control' /></td>
|
||||
<?php if(!isset($config->setCode) or $config->setCode == 1):?>
|
||||
<td><?php echo html::input("codes[$i]", '', "class='form-control'");?></td>
|
||||
<?php endif;?>
|
||||
<td <?php echo zget($visibleFields, 'PM', ' hidden') . zget($requiredFields, 'PM', '', ' required');?>><?php echo html::select("PM[$i]", $PMUsers, '', "class='form-control' id='PM$i'");?></td>
|
||||
<?php echo html::hidden("planIDList[$i]", 0);?>
|
||||
<td <?php echo zget($visibleFields, 'percent', ' hidden') . zget($requiredFields, 'percent', '', ' required');?>>
|
||||
|
||||
@@ -31,6 +31,12 @@
|
||||
<th class='w-100px'><?php echo $lang->programplan->name;?> </th>
|
||||
<td colspan='2'><?php echo html::input('name', $plan->name, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<?php if(!isset($config->setCode) or $config->setCode == 1):?>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->execution->code;?> </th>
|
||||
<td class='required' colspan='2'><?php echo html::input('code', $plan->code, "class='form-control'");?></td>
|
||||
</tr>
|
||||
<?php endif;?>
|
||||
<tr>
|
||||
<th><?php echo $lang->programplan->percent;?> </th>
|
||||
<td colspan='2'>
|
||||
|
||||
@@ -560,7 +560,9 @@ $(function()
|
||||
if(showFields.indexOf('taskProgress') != -1) gantt.config.columns.push({name: 'taskProgress', align: 'center', resize: true, width: 60});
|
||||
if(showFields.indexOf('realBegan') != -1) gantt.config.columns.push({name: 'realBegan', align: 'center', resize: true, width: 80});
|
||||
if(showFields.indexOf('realEnd') != -1) gantt.config.columns.push({name: 'realEnd', align: 'center', resize: true, width: 80});
|
||||
if(showFields.indexOf('consumed') != -1) gantt.config.columns.push({name: 'consumed', align: 'center', resize: false, width: 60});
|
||||
if(showFields.indexOf('consumed') != -1) gantt.config.columns.push({name: 'consumed', align: 'center', resize: true, width: 60});
|
||||
if(showFields.indexOf('delay') != -1) gantt.config.columns.push({name: 'delay', align: 'center', resize: true, width: 60});
|
||||
if(showFields.indexOf('delayDays') != -1) gantt.config.columns.push({name: 'delayDays', align: 'center', resize: false, width: 60});
|
||||
|
||||
endField = gantt.config.columns.pop();
|
||||
endField.resize = false;
|
||||
@@ -578,6 +580,8 @@ $(function()
|
||||
gantt.locale.labels.column_duration = "<?php echo $lang->programplan->duration;?>";
|
||||
gantt.locale.labels.column_estimate = "<?php echo $lang->programplan->estimate;?>";
|
||||
gantt.locale.labels.column_consumed = "<?php echo $lang->programplan->consumed;?>";
|
||||
gantt.locale.labels.column_delay = "<?php echo $lang->programplan->delay;?>";
|
||||
gantt.locale.labels.column_delayDays = "<?php echo $lang->programplan->delayDays;?>";
|
||||
|
||||
if((module == 'review' && method == 'assess') || dateDetails) gantt.config.show_chart = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user