* Divide program/project/execution.
This commit is contained in:
@@ -599,7 +599,7 @@ $lang->menugroup->testtask = 'qa';
|
||||
$lang->menugroup->testsuite = 'qa';
|
||||
$lang->menugroup->caselib = 'qa';
|
||||
$lang->menugroup->testreport = 'qa';
|
||||
$lang->menugroup->report = 'reporting';
|
||||
$lang->menugroup->report = 'report';
|
||||
$lang->menugroup->people = 'admin';
|
||||
$lang->menugroup->dept = 'company';
|
||||
$lang->menugroup->todo = 'my';
|
||||
@@ -627,6 +627,7 @@ $lang->navGroup->todo = 'my';
|
||||
$lang->navGroup->effort = 'my';
|
||||
$lang->navGroup->score = 'my';
|
||||
|
||||
$lang->navGroup->program = 'program';
|
||||
$lang->navGroup->personnel = 'program';
|
||||
|
||||
$lang->navGroup->product = 'product';
|
||||
|
||||
@@ -625,6 +625,7 @@ $lang->navGroup->todo = 'my';
|
||||
$lang->navGroup->effort = 'my';
|
||||
$lang->navGroup->score = 'my';
|
||||
|
||||
$lang->navGroup->program = 'program';
|
||||
$lang->navGroup->personnel = 'program';
|
||||
|
||||
$lang->navGroup->product = 'product';
|
||||
|
||||
@@ -8,11 +8,11 @@ $config->custom->canAdd['testtask'] = 'priList';
|
||||
$config->custom->canAdd['todo'] = 'priList,typeList';
|
||||
$config->custom->canAdd['user'] = 'roleList';
|
||||
$config->custom->canAdd['block'] = '';
|
||||
$config->custom->canAdd['program'] = 'unitList';
|
||||
$config->custom->canAdd['project'] = 'unitList';
|
||||
|
||||
$config->custom->noModuleMenu = array();
|
||||
|
||||
$config->custom->requiredModules[10] = 'program';
|
||||
$config->custom->requiredModules[10] = 'project';
|
||||
$config->custom->requiredModules[15] = 'product';
|
||||
$config->custom->requiredModules[20] = 'story';
|
||||
$config->custom->requiredModules[25] = 'productplan';
|
||||
@@ -33,10 +33,10 @@ $config->custom->requiredModules[80] = 'doc';
|
||||
|
||||
$config->custom->requiredModules[85] = 'user';
|
||||
|
||||
$config->custom->fieldList['program']['PGMCreate'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['program']['PGMEdit'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['program']['PRJCreate'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['program']['PRJEdit'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['program']['create'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['program']['edit'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['project']['create'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['project']['edit'] = 'budget,PM,desc';
|
||||
$config->custom->fieldList['product']['create'] = 'PO,QD,RD,type,desc';
|
||||
$config->custom->fieldList['product']['edit'] = 'PO,QD,RD,type,desc,status';
|
||||
$config->custom->fieldList['story']['create'] = 'module,plan,source,pri,estimate,keywords';
|
||||
|
||||
@@ -19,7 +19,7 @@ class custom extends control
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
if(common::hasPriv('custom', 'set')) die(js::locate(inlink('set', "module=program&field=" . key($this->lang->custom->program->fields))));
|
||||
if(common::hasPriv('custom', 'set')) die(js::locate(inlink('set', "module=project&field=" . key($this->lang->custom->project->fields))));
|
||||
if(common::hasPriv('custom', 'product')) die(js::locate(inlink('product')));
|
||||
if(common::hasPriv('custom', 'project')) die(js::locate(inlink('project')));
|
||||
|
||||
@@ -48,7 +48,7 @@ class custom extends control
|
||||
$this->app->loadLang($module);
|
||||
$fieldList = zget($this->lang->$module, $field, '');
|
||||
|
||||
if($module == 'program' and $field == 'unitList')
|
||||
if($module == 'project' and $field == 'unitList')
|
||||
{
|
||||
$this->app->loadConfig($module);
|
||||
$unitList = zget($this->config->$module, 'unitList', '');
|
||||
@@ -65,9 +65,9 @@ class custom extends control
|
||||
}
|
||||
if($module == 'task' and $field == 'hours')
|
||||
{
|
||||
$this->app->loadConfig('project');
|
||||
$this->view->weekend = $this->config->project->weekend;
|
||||
$this->view->workhours = $this->config->project->defaultWorkhours;
|
||||
$this->app->loadConfig('execution');
|
||||
$this->view->weekend = $this->config->execution->weekend;
|
||||
$this->view->workhours = $this->config->execution->defaultWorkhours;
|
||||
}
|
||||
if($module == 'bug' and $field == 'longlife')
|
||||
{
|
||||
@@ -90,7 +90,7 @@ class custom extends control
|
||||
|
||||
if(strtolower($this->server->request_method) == "post")
|
||||
{
|
||||
if($module == 'program' and $field == 'unitList')
|
||||
if($module == 'project' and $field == 'unitList')
|
||||
{
|
||||
$data = fixer::input('post')->join('unitList', ',')->get();
|
||||
if(empty($data->unitList)) $this->send(array('result' => 'fail', 'message' => $this->lang->custom->currencyNotEmpty));
|
||||
@@ -111,7 +111,7 @@ class custom extends control
|
||||
}
|
||||
elseif($module == 'task' and $field == 'hours')
|
||||
{
|
||||
$this->loadModel('setting')->setItems('system.project', fixer::input('post')->get());
|
||||
$this->loadModel('setting')->setItems('system.execution', fixer::input('post')->get());
|
||||
}
|
||||
elseif($module == 'bug' and $field == 'longlife')
|
||||
{
|
||||
@@ -466,7 +466,7 @@ class custom extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function project()
|
||||
public function execution()
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
$(function()
|
||||
{
|
||||
$("[name='URAndSR']").change(function()
|
||||
{
|
||||
if($(this).val() == 0)
|
||||
{
|
||||
$('#URSRName').addClass('hidden');
|
||||
$('#customURSR').addClass('hidden');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#URSRName').removeClass('hidden');
|
||||
}
|
||||
});
|
||||
|
||||
$('[name^="URSRCustom"]').change(function()
|
||||
{
|
||||
if($(this).attr('checked'))
|
||||
{
|
||||
$('#customURSR').removeClass('hidden');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#customURSR').addClass('hidden');
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -19,7 +19,7 @@ $lang->custom->score = '积分';
|
||||
$lang->custom->timezone = '时区';
|
||||
$lang->custom->scoreReset = '重置积分';
|
||||
$lang->custom->scoreTitle = '积分功能';
|
||||
$lang->custom->project = $lang->sprintCommon;
|
||||
$lang->custom->execution = $lang->executionCommon;
|
||||
$lang->custom->product = $lang->productCommon;
|
||||
$lang->custom->convertFactor = '换算系数';
|
||||
$lang->custom->region = '区间';
|
||||
@@ -74,22 +74,22 @@ $lang->custom->numberError = '区间必须大于零';
|
||||
$lang->custom->closedProject = '已关闭' . $lang->sprintCommon;
|
||||
$lang->custom->closedProduct = '已关闭' . $lang->productCommon;
|
||||
|
||||
$lang->custom->object['program'] = '项目';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['project'] = $lang->sprintCommon;
|
||||
$lang->custom->object['story'] = $lang->SRCommon;
|
||||
$lang->custom->object['task'] = '任务';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
$lang->custom->object['testcase'] = '用例';
|
||||
$lang->custom->object['testtask'] = '版本';
|
||||
$lang->custom->object['todo'] = '待办';
|
||||
$lang->custom->object['user'] = '用户';
|
||||
$lang->custom->object['block'] = '区块';
|
||||
$lang->custom->object['project'] = '项目';
|
||||
$lang->custom->object['product'] = $lang->productCommon;
|
||||
$lang->custom->object['execution'] = $lang->executionCommon;
|
||||
$lang->custom->object['story'] = $lang->SRCommon;
|
||||
$lang->custom->object['task'] = '任务';
|
||||
$lang->custom->object['bug'] = 'Bug';
|
||||
$lang->custom->object['testcase'] = '用例';
|
||||
$lang->custom->object['testtask'] = '版本';
|
||||
$lang->custom->object['todo'] = '待办';
|
||||
$lang->custom->object['user'] = '用户';
|
||||
$lang->custom->object['block'] = '区块';
|
||||
|
||||
$lang->custom->program = new stdClass();
|
||||
$lang->custom->program->currencySetting = '货币设置';
|
||||
$lang->custom->program->defaultCurrency = '默认货币';
|
||||
$lang->custom->program->fields['unitList'] = '预算单位';
|
||||
$lang->custom->project = new stdClass();
|
||||
$lang->custom->project->currencySetting = '货币设置';
|
||||
$lang->custom->project->defaultCurrency = '默认货币';
|
||||
$lang->custom->project->fields['unitList'] = '预算单位';
|
||||
|
||||
$lang->custom->story = new stdClass();
|
||||
$lang->custom->story->fields['priList'] = '优先级';
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<script>
|
||||
$(function()
|
||||
{
|
||||
$('#mainMenu #projectTab').addClass('btn-active-text');
|
||||
$('#mainMenu #executionTab').addClass('btn-active-text');
|
||||
})
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
@@ -4,8 +4,8 @@
|
||||
<?php
|
||||
foreach($lang->custom->object as $object => $name)
|
||||
{
|
||||
if(strpos('project|product', $object) !== false) common::printLink('custom', $object, "", "<span class='text'>{$lang->custom->$object}</span>", '', "class='btn btn-link' id='{$object}Tab'");
|
||||
if(strpos('project|product', $object) === false) common::printLink('custom', 'set', "module=$object&field=" . key($lang->custom->{$object}->fields), "<span class='text'>{$name}</span>", '', "class='btn btn-link' id='{$object}Tab'");
|
||||
if(strpos('execution|product', $object) !== false) common::printLink('custom', $object, "", "<span class='text'>{$lang->custom->$object}</span>", '', "class='btn btn-link' id='{$object}Tab'");
|
||||
if(strpos('execution|product', $object) === false) common::printLink('custom', 'set', "module=$object&field=" . key($lang->custom->{$object}->fields), "<span class='text'>{$name}</span>", '', "class='btn btn-link' id='{$object}Tab'");
|
||||
}
|
||||
|
||||
foreach($lang->custom->system as $sysObject)
|
||||
|
||||
@@ -54,17 +54,17 @@ EOT;
|
||||
<strong><?php echo $lang->custom->object[$module] . $lang->arrow . $lang->custom->$module->fields[$field]?></strong>
|
||||
</div>
|
||||
</div>
|
||||
<?php if($module == 'program' and $field == 'unitList'):?>
|
||||
<?php if($module == 'project' and $field == 'unitList'):?>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='<?php echo strpos($this->app->getClientLang(), 'zh') === false ? 'w-120px' : 'w-70px';?> text-left'><?php echo $lang->custom->program->currencySetting;?></th>
|
||||
<th class='<?php echo strpos($this->app->getClientLang(), 'zh') === false ? 'w-120px' : 'w-70px';?> text-left'><?php echo $lang->custom->project->currencySetting;?></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='5'><?php echo html::checkbox('unitList', $lang->program->unitList, $unitList);?></td>
|
||||
<td colspan='5'><?php echo html::checkbox('unitList', $lang->project->unitList, $unitList);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='text-left'><?php echo $lang->custom->program->defaultCurrency;?></th>
|
||||
<td><?php echo html::select('defaultCurrency', $lang->program->unitList, $defaultCurrency, "class='form-control chosen' required");?></td>
|
||||
<th class='text-left'><?php echo $lang->custom->project->defaultCurrency;?></th>
|
||||
<td><?php echo html::select('defaultCurrency', $lang->project->unitList, $defaultCurrency, "class='form-control chosen' required");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='4' class='text-center'><?php echo html::submitButton();?></td>
|
||||
|
||||
+94
-94
@@ -1,109 +1,109 @@
|
||||
<?php
|
||||
$config->project = new stdclass();
|
||||
$config->project->defaultWorkhours = '7.0';
|
||||
$config->project->orderBy = 'isDone,status,order_desc';
|
||||
$config->project->maxBurnDay = '31';
|
||||
$config->project->weekend = '2';
|
||||
$config->execution = new stdclass();
|
||||
$config->execution->defaultWorkhours = '7.0';
|
||||
$config->execution->orderBy = 'isDone,status,order_desc';
|
||||
$config->execution->maxBurnDay = '31';
|
||||
$config->execution->weekend = '2';
|
||||
|
||||
$config->project->list = new stdclass();
|
||||
$config->project->list->exportFields = 'id,name,code,PM,end,status,totalEstimate,totalConsumed,totalLeft,progress';
|
||||
$config->execution->list = new stdclass();
|
||||
$config->execution->list->exportFields = 'id,name,code,PM,end,status,totalEstimate,totalConsumed,totalLeft,progress';
|
||||
|
||||
$config->project->modelList['scrum'] = 'sprint';
|
||||
$config->project->modelList['waterfall'] = 'stage';
|
||||
$config->execution->modelList['scrum'] = 'sprint';
|
||||
$config->execution->modelList['waterfall'] = 'stage';
|
||||
|
||||
global $lang, $app;
|
||||
$app->loadLang('task');
|
||||
$config->project->task = new stdclass();
|
||||
$config->project->create = new stdclass();
|
||||
$config->project->edit = new stdclass();
|
||||
$config->project->create->requiredFields = 'name,code,begin,end';
|
||||
$config->project->edit->requiredFields = 'name,code,begin,end';
|
||||
$config->execution->task = new stdclass();
|
||||
$config->execution->create = new stdclass();
|
||||
$config->execution->edit = new stdclass();
|
||||
$config->execution->create->requiredFields = 'name,code,begin,end';
|
||||
$config->execution->edit->requiredFields = 'name,code,begin,end';
|
||||
|
||||
$config->project->customBatchEditFields = 'days,type,teamname,status,desc,PO,QD,PM,RD';
|
||||
$config->execution->customBatchEditFields = 'days,type,teamname,status,desc,PO,QD,PM,RD';
|
||||
|
||||
$config->project->custom = new stdclass();
|
||||
$config->project->custom->batchEditFields = 'days,status,PM';
|
||||
$config->execution->custom = new stdclass();
|
||||
$config->execution->custom->batchEditFields = 'days,status,PM';
|
||||
|
||||
$config->project->editor = new stdclass();
|
||||
$config->project->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->project->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->project->editor->putoff = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->activate = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->close = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->start = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->suspend = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->tree = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->view = array('id' => 'comment,lastComment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor = new stdclass();
|
||||
$config->execution->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->putoff = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->activate = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->close = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->start = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->suspend = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->tree = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->execution->editor->view = array('id' => 'comment,lastComment', 'tools' => 'simpleTools');
|
||||
|
||||
$config->project->search['module'] = 'task';
|
||||
$config->project->search['fields']['name'] = $lang->task->name;
|
||||
$config->project->search['fields']['id'] = $lang->task->id;
|
||||
$config->project->search['fields']['status'] = $lang->task->status;
|
||||
$config->project->search['fields']['desc'] = $lang->task->desc;
|
||||
$config->project->search['fields']['assignedTo'] = $lang->task->assignedTo;
|
||||
$config->project->search['fields']['pri'] = $lang->task->pri;
|
||||
$config->execution->search['module'] = 'task';
|
||||
$config->execution->search['fields']['name'] = $lang->task->name;
|
||||
$config->execution->search['fields']['id'] = $lang->task->id;
|
||||
$config->execution->search['fields']['status'] = $lang->task->status;
|
||||
$config->execution->search['fields']['desc'] = $lang->task->desc;
|
||||
$config->execution->search['fields']['assignedTo'] = $lang->task->assignedTo;
|
||||
$config->execution->search['fields']['pri'] = $lang->task->pri;
|
||||
|
||||
$config->project->search['fields']['project'] = $lang->task->execution;
|
||||
$config->project->search['fields']['module'] = $lang->task->module;
|
||||
$config->project->search['fields']['estimate'] = $lang->task->estimate;
|
||||
$config->project->search['fields']['left'] = $lang->task->left;
|
||||
$config->project->search['fields']['consumed'] = $lang->task->consumed;
|
||||
$config->project->search['fields']['type'] = $lang->task->type;
|
||||
$config->project->search['fields']['fromBug'] = $lang->task->fromBug;
|
||||
$config->project->search['fields']['closedReason'] = $lang->task->closedReason;
|
||||
$config->execution->search['fields']['execution'] = $lang->task->execution;
|
||||
$config->execution->search['fields']['module'] = $lang->task->module;
|
||||
$config->execution->search['fields']['estimate'] = $lang->task->estimate;
|
||||
$config->execution->search['fields']['left'] = $lang->task->left;
|
||||
$config->execution->search['fields']['consumed'] = $lang->task->consumed;
|
||||
$config->execution->search['fields']['type'] = $lang->task->type;
|
||||
$config->execution->search['fields']['fromBug'] = $lang->task->fromBug;
|
||||
$config->execution->search['fields']['closedReason'] = $lang->task->closedReason;
|
||||
|
||||
$config->project->search['fields']['openedBy'] = $lang->task->openedBy;
|
||||
$config->project->search['fields']['finishedBy'] = $lang->task->finishedBy;
|
||||
$config->project->search['fields']['closedBy'] = $lang->task->closedBy;
|
||||
$config->project->search['fields']['canceledBy'] = $lang->task->canceledBy;
|
||||
$config->project->search['fields']['lastEditedBy'] = $lang->task->lastEditedBy;
|
||||
$config->execution->search['fields']['openedBy'] = $lang->task->openedBy;
|
||||
$config->execution->search['fields']['finishedBy'] = $lang->task->finishedBy;
|
||||
$config->execution->search['fields']['closedBy'] = $lang->task->closedBy;
|
||||
$config->execution->search['fields']['canceledBy'] = $lang->task->canceledBy;
|
||||
$config->execution->search['fields']['lastEditedBy'] = $lang->task->lastEditedBy;
|
||||
|
||||
$config->project->search['fields']['mailto'] = $lang->task->mailto;
|
||||
$config->project->search['fields']['finishedList'] = $lang->task->finishedList;
|
||||
$config->execution->search['fields']['mailto'] = $lang->task->mailto;
|
||||
$config->execution->search['fields']['finishedList'] = $lang->task->finishedList;
|
||||
|
||||
$config->project->search['fields']['openedDate'] = $lang->task->openedDate;
|
||||
$config->project->search['fields']['deadline'] = $lang->task->deadline;
|
||||
$config->project->search['fields']['estStarted'] = $lang->task->estStarted;
|
||||
$config->project->search['fields']['realStarted'] = $lang->task->realStarted;
|
||||
$config->project->search['fields']['assignedDate'] = $lang->task->assignedDate;
|
||||
$config->project->search['fields']['finishedDate'] = $lang->task->finishedDate;
|
||||
$config->project->search['fields']['closedDate'] = $lang->task->closedDate;
|
||||
$config->project->search['fields']['canceledDate'] = $lang->task->canceledDate;
|
||||
$config->project->search['fields']['lastEditedDate'] = $lang->task->lastEditedDate;
|
||||
$config->execution->search['fields']['openedDate'] = $lang->task->openedDate;
|
||||
$config->execution->search['fields']['deadline'] = $lang->task->deadline;
|
||||
$config->execution->search['fields']['estStarted'] = $lang->task->estStarted;
|
||||
$config->execution->search['fields']['realStarted'] = $lang->task->realStarted;
|
||||
$config->execution->search['fields']['assignedDate'] = $lang->task->assignedDate;
|
||||
$config->execution->search['fields']['finishedDate'] = $lang->task->finishedDate;
|
||||
$config->execution->search['fields']['closedDate'] = $lang->task->closedDate;
|
||||
$config->execution->search['fields']['canceledDate'] = $lang->task->canceledDate;
|
||||
$config->execution->search['fields']['lastEditedDate'] = $lang->task->lastEditedDate;
|
||||
|
||||
$config->project->search['params']['name'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->project->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->statusList);
|
||||
$config->project->search['params']['desc'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->project->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->project->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->priList);
|
||||
$config->execution->search['params']['name'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->execution->search['params']['status'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->statusList);
|
||||
$config->execution->search['params']['desc'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
|
||||
$config->execution->search['params']['assignedTo'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['pri'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->priList);
|
||||
|
||||
$config->project->search['params']['project'] = array('operator' => '=', 'control' => 'select', 'values' => '');
|
||||
$config->project->search['params']['module'] = array('operator' => 'belong', 'control' => 'select', 'values' => '');
|
||||
$config->project->search['params']['estimate'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->project->search['params']['left'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->project->search['params']['consumed'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->project->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->typeList);
|
||||
$config->project->search['params']['fromBug'] = array('operator' => '=', 'control' => 'input', 'values' => $lang->task->typeList);
|
||||
$config->project->search['params']['closedReason'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->reasonList);
|
||||
$config->execution->search['params']['execution'] = array('operator' => '=', 'control' => 'select', 'values' => '');
|
||||
$config->execution->search['params']['module'] = array('operator' => 'belong', 'control' => 'select', 'values' => '');
|
||||
$config->execution->search['params']['estimate'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->execution->search['params']['left'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->execution->search['params']['consumed'] = array('operator' => '=', 'control' => 'input', 'values' => '');
|
||||
$config->execution->search['params']['type'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->typeList);
|
||||
$config->execution->search['params']['fromBug'] = array('operator' => '=', 'control' => 'input', 'values' => $lang->task->typeList);
|
||||
$config->execution->search['params']['closedReason'] = array('operator' => '=', 'control' => 'select', 'values' => $lang->task->reasonList);
|
||||
|
||||
$config->project->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->project->search['params']['finishedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->project->search['params']['closedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->project->search['params']['cancelBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->project->search['params']['lastEditedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['openedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['finishedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['closedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['cancelBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['lastEditedBy'] = array('operator' => '=', 'control' => 'select', 'values' => 'users');
|
||||
|
||||
$config->project->search['params']['mailto'] = array('operator' => 'include', 'control' => 'select', 'values' => 'users');
|
||||
$config->project->search['params']['finishedList'] = array('operator' => 'include', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['mailto'] = array('operator' => 'include', 'control' => 'select', 'values' => 'users');
|
||||
$config->execution->search['params']['finishedList'] = array('operator' => 'include', 'control' => 'select', 'values' => 'users');
|
||||
|
||||
$config->project->search['params']['openedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['deadline'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['estStarted'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['realStarted'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['assignedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['finishedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['closedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['canceledDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->project->search['params']['lastEditedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['openedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['deadline'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['estStarted'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['realStarted'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['assignedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['finishedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['closedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['canceledDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
$config->execution->search['params']['lastEditedDate'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date');
|
||||
|
||||
$config->printKanban = new stdClass();
|
||||
$config->printKanban->col['story'] = 1;
|
||||
@@ -112,10 +112,10 @@ $config->printKanban->col['doing'] = 3;
|
||||
$config->printKanban->col['done'] = 4;
|
||||
$config->printKanban->col['closed'] = 5;
|
||||
|
||||
$config->project->kanbanSetting = new stdclass();
|
||||
$config->project->kanbanSetting->colorList['wait'] = '#7EC5FF';
|
||||
$config->project->kanbanSetting->colorList['doing'] = '#0991FF';
|
||||
$config->project->kanbanSetting->colorList['pause'] = '#fdc137';
|
||||
$config->project->kanbanSetting->colorList['done'] = '#0BD986';
|
||||
$config->project->kanbanSetting->colorList['cancel'] = '#CBD0DB';
|
||||
$config->project->kanbanSetting->colorList['closed'] = '#838A9D';
|
||||
$config->execution->kanbanSetting = new stdclass();
|
||||
$config->execution->kanbanSetting->colorList['wait'] = '#7EC5FF';
|
||||
$config->execution->kanbanSetting->colorList['doing'] = '#0991FF';
|
||||
$config->execution->kanbanSetting->colorList['pause'] = '#fdc137';
|
||||
$config->execution->kanbanSetting->colorList['done'] = '#0BD986';
|
||||
$config->execution->kanbanSetting->colorList['cancel'] = '#CBD0DB';
|
||||
$config->execution->kanbanSetting->colorList['closed'] = '#838A9D';
|
||||
|
||||
+317
-313
@@ -1,102 +1,102 @@
|
||||
<?php
|
||||
/**
|
||||
* The project module English file of ZenTaoPMS.
|
||||
* The execution module English file 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 project
|
||||
* @package execution
|
||||
* @version $Id: en.php 5094 2013-07-10 08:46:15Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
/* Fields. */
|
||||
$lang->project->common = $lang->executionCommon;
|
||||
$lang->project->allProjects = 'All ' . $lang->executionCommon . 's';
|
||||
$lang->project->id = $lang->executionCommon . ' ID';
|
||||
$lang->project->type = 'Type';
|
||||
$lang->project->name = "{$lang->executionCommon} Name";
|
||||
$lang->project->code = 'Code';
|
||||
$lang->project->statge = 'Stage';
|
||||
$lang->project->pri = 'Priority';
|
||||
$lang->project->openedBy = 'OpenedBy';
|
||||
$lang->project->openedDate = 'OpenedDate';
|
||||
$lang->project->closedBy = 'ClosedBy';
|
||||
$lang->project->closedDate = 'ClosedDate';
|
||||
$lang->project->canceledBy = 'CanceledBy';
|
||||
$lang->project->canceledDate = 'CanceledDate';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->dateRange = 'Duration';
|
||||
$lang->project->to = 'To';
|
||||
$lang->project->days = 'Available Days';
|
||||
$lang->project->day = ' Days';
|
||||
$lang->project->workHour = ' Hours';
|
||||
$lang->project->workHourUnit = 'H';
|
||||
$lang->project->totalHours = 'Available Hours';
|
||||
$lang->project->totalDays = 'Available Days';
|
||||
$lang->project->status = 'Status';
|
||||
$lang->project->subStatus = 'Sub Status';
|
||||
$lang->project->desc = 'Description';
|
||||
$lang->project->owner = 'Owner';
|
||||
$lang->project->PO = "{$lang->executionCommon} Owner";
|
||||
$lang->project->PM = "{$lang->executionCommon} Manager";
|
||||
$lang->project->QD = 'Test Manager';
|
||||
$lang->project->RD = 'Release Manager';
|
||||
$lang->project->qa = 'Test';
|
||||
$lang->project->release = 'Release';
|
||||
$lang->project->acl = 'Access Control';
|
||||
$lang->project->teamname = 'Team Name';
|
||||
$lang->project->order = "Rank {$lang->executionCommon}";
|
||||
$lang->project->orderAB = "Rank";
|
||||
$lang->project->products = "Link {$lang->productCommon}";
|
||||
$lang->project->whitelist = 'Whitelist';
|
||||
$lang->project->addWhitelist = 'Add Whitelist';
|
||||
$lang->project->unbindWhielist = 'Remove Whitelist';
|
||||
$lang->project->totalEstimate = 'Estimates';
|
||||
$lang->project->totalConsumed = 'Cost';
|
||||
$lang->project->totalLeft = 'Left';
|
||||
$lang->project->progress = ' Progress';
|
||||
$lang->project->hours = 'Estimates: %s, Cost: %s, Left: %s.';
|
||||
$lang->project->viewBug = 'Bugs';
|
||||
$lang->project->noProduct = "No {$lang->productCommon} yet.";
|
||||
$lang->project->createStory = "Create Story";
|
||||
$lang->project->storyTitle = "Story Name";
|
||||
$lang->project->all = "All {$lang->executionCommon}s";
|
||||
$lang->project->undone = 'Unfinished ';
|
||||
$lang->project->unclosed = 'Unclosed';
|
||||
$lang->project->typeDesc = "OPS {$lang->executionCommon} has no {$lang->SRCommon}, Bug, Build, or Test features.";
|
||||
$lang->project->mine = 'Mine: ';
|
||||
$lang->project->other = 'Others:';
|
||||
$lang->project->deleted = 'Deleted';
|
||||
$lang->project->delayed = 'Delayed';
|
||||
$lang->project->product = $lang->project->products;
|
||||
$lang->project->readjustTime = "Adjust {$lang->executionCommon} Begin and End";
|
||||
$lang->project->readjustTask = 'Adjust Task Begin and End';
|
||||
$lang->project->effort = 'Effort';
|
||||
$lang->project->relatedMember = 'Team';
|
||||
$lang->project->watermark = 'Exported by ZenTao';
|
||||
$lang->project->burnXUnit = '(Date)';
|
||||
$lang->project->burnYUnit = '(Hours)';
|
||||
$lang->project->waitTasks = 'Waiting Tasks';
|
||||
$lang->project->viewByUser = 'By User';
|
||||
$lang->project->oneProduct = "Only one stage can be linked {$lang->productCommon}";
|
||||
$lang->project->noLinkProduct = "Stage not linked {$lang->productCommon}";
|
||||
$lang->project->recent = 'Recent visits: ';
|
||||
$lang->execution->common = $lang->executionCommon;
|
||||
$lang->execution->allProjects = 'All ' . $lang->executionCommon . 's';
|
||||
$lang->execution->id = $lang->executionCommon . ' ID';
|
||||
$lang->execution->type = 'Type';
|
||||
$lang->execution->name = "{$lang->executionCommon} Name";
|
||||
$lang->execution->code = 'Code';
|
||||
$lang->execution->statge = 'Stage';
|
||||
$lang->execution->pri = 'Priority';
|
||||
$lang->execution->openedBy = 'OpenedBy';
|
||||
$lang->execution->openedDate = 'OpenedDate';
|
||||
$lang->execution->closedBy = 'ClosedBy';
|
||||
$lang->execution->closedDate = 'ClosedDate';
|
||||
$lang->execution->canceledBy = 'CanceledBy';
|
||||
$lang->execution->canceledDate = 'CanceledDate';
|
||||
$lang->execution->begin = 'Begin';
|
||||
$lang->execution->end = 'End';
|
||||
$lang->execution->dateRange = 'Duration';
|
||||
$lang->execution->to = 'To';
|
||||
$lang->execution->days = 'Available Days';
|
||||
$lang->execution->day = ' Days';
|
||||
$lang->execution->workHour = ' Hours';
|
||||
$lang->execution->workHourUnit = 'H';
|
||||
$lang->execution->totalHours = 'Available Hours';
|
||||
$lang->execution->totalDays = 'Available Days';
|
||||
$lang->execution->status = 'Status';
|
||||
$lang->execution->subStatus = 'Sub Status';
|
||||
$lang->execution->desc = 'Description';
|
||||
$lang->execution->owner = 'Owner';
|
||||
$lang->execution->PO = "{$lang->executionCommon} Owner";
|
||||
$lang->execution->PM = "{$lang->executionCommon} Manager";
|
||||
$lang->execution->QD = 'Test Manager';
|
||||
$lang->execution->RD = 'Release Manager';
|
||||
$lang->execution->qa = 'Test';
|
||||
$lang->execution->release = 'Release';
|
||||
$lang->execution->acl = 'Access Control';
|
||||
$lang->execution->teamname = 'Team Name';
|
||||
$lang->execution->order = "Rank {$lang->executionCommon}";
|
||||
$lang->execution->orderAB = "Rank";
|
||||
$lang->execution->products = "Link {$lang->productCommon}";
|
||||
$lang->execution->whitelist = 'Whitelist';
|
||||
$lang->execution->addWhitelist = 'Add Whitelist';
|
||||
$lang->execution->unbindWhielist = 'Remove Whitelist';
|
||||
$lang->execution->totalEstimate = 'Estimates';
|
||||
$lang->execution->totalConsumed = 'Cost';
|
||||
$lang->execution->totalLeft = 'Left';
|
||||
$lang->execution->progress = ' Progress';
|
||||
$lang->execution->hours = 'Estimates: %s, Cost: %s, Left: %s.';
|
||||
$lang->execution->viewBug = 'Bugs';
|
||||
$lang->execution->noProduct = "No {$lang->productCommon} yet.";
|
||||
$lang->execution->createStory = "Create Story";
|
||||
$lang->execution->storyTitle = "Story Name";
|
||||
$lang->execution->all = "All {$lang->executionCommon}s";
|
||||
$lang->execution->undone = 'Unfinished ';
|
||||
$lang->execution->unclosed = 'Unclosed';
|
||||
$lang->execution->typeDesc = "OPS {$lang->executionCommon} has no {$lang->SRCommon}, Bug, Build, or Test features.";
|
||||
$lang->execution->mine = 'Mine: ';
|
||||
$lang->execution->other = 'Others:';
|
||||
$lang->execution->deleted = 'Deleted';
|
||||
$lang->execution->delayed = 'Delayed';
|
||||
$lang->execution->product = $lang->execution->products;
|
||||
$lang->execution->readjustTime = "Adjust {$lang->executionCommon} Begin and End";
|
||||
$lang->execution->readjustTask = 'Adjust Task Begin and End';
|
||||
$lang->execution->effort = 'Effort';
|
||||
$lang->execution->relatedMember = 'Team';
|
||||
$lang->execution->watermark = 'Exported by ZenTao';
|
||||
$lang->execution->burnXUnit = '(Date)';
|
||||
$lang->execution->burnYUnit = '(Hours)';
|
||||
$lang->execution->waitTasks = 'Waiting Tasks';
|
||||
$lang->execution->viewByUser = 'By User';
|
||||
$lang->execution->oneProduct = "Only one stage can be linked {$lang->productCommon}";
|
||||
$lang->execution->noLinkProduct = "Stage not linked {$lang->productCommon}";
|
||||
$lang->execution->recent = 'Recent visits: ';
|
||||
|
||||
$lang->project->start = 'Start';
|
||||
$lang->project->activate = 'Activate';
|
||||
$lang->project->putoff = 'Delay';
|
||||
$lang->project->suspend = 'Suspend';
|
||||
$lang->project->close = 'Close';
|
||||
$lang->project->export = 'Export';
|
||||
$lang->execution->start = 'Start';
|
||||
$lang->execution->activate = 'Activate';
|
||||
$lang->execution->putoff = 'Delay';
|
||||
$lang->execution->suspend = 'Suspend';
|
||||
$lang->execution->close = 'Close';
|
||||
$lang->execution->export = 'Export';
|
||||
|
||||
$lang->project->endList[7] = '1 Week';
|
||||
$lang->project->endList[14] = '2 Weeks';
|
||||
$lang->project->endList[31] = '1 Month';
|
||||
$lang->project->endList[62] = '2 Months';
|
||||
$lang->project->endList[93] = '3 Months';
|
||||
$lang->project->endList[186] = '6 Months';
|
||||
$lang->project->endList[365] = '1 Year';
|
||||
$lang->execution->endList[7] = '1 Week';
|
||||
$lang->execution->endList[14] = '2 Weeks';
|
||||
$lang->execution->endList[31] = '1 Month';
|
||||
$lang->execution->endList[62] = '2 Months';
|
||||
$lang->execution->endList[93] = '3 Months';
|
||||
$lang->execution->endList[186] = '6 Months';
|
||||
$lang->execution->endList[365] = '1 Year';
|
||||
|
||||
$lang->team = new stdclass();
|
||||
$lang->team->account = 'User';
|
||||
@@ -110,245 +110,243 @@ $lang->team->limited = 'Limited User';
|
||||
$lang->team->limitedList['yes'] = 'Yes';
|
||||
$lang->team->limitedList['no'] = 'No';
|
||||
|
||||
$lang->project->basicInfo = 'Basic Information';
|
||||
$lang->project->otherInfo = 'Other Information';
|
||||
$lang->execution->basicInfo = 'Basic Information';
|
||||
$lang->execution->otherInfo = 'Other Information';
|
||||
|
||||
/* Field value list. */
|
||||
$lang->project->statusList['wait'] = 'Waiting';
|
||||
$lang->project->statusList['doing'] = 'Doing';
|
||||
$lang->project->statusList['suspended'] = 'Suspended';
|
||||
$lang->project->statusList['closed'] = 'Closed';
|
||||
$lang->execution->statusList['wait'] = 'Waiting';
|
||||
$lang->execution->statusList['doing'] = 'Doing';
|
||||
$lang->execution->statusList['suspended'] = 'Suspended';
|
||||
$lang->execution->statusList['closed'] = 'Closed';
|
||||
|
||||
global $config;
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->project->aclList['private'] = 'Private (for team members and project stakeholders)';
|
||||
$lang->project->aclList['open'] = 'Inherited Project ACL (for who can access the current project)';
|
||||
$lang->execution->aclList['private'] = 'Private (for team members and execution stakeholders)';
|
||||
$lang->execution->aclList['open'] = 'Inherited Project ACL (for who can access the current execution)';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lang->project->aclList['private'] = 'Private (for team members and project stakeholders)';
|
||||
$lang->project->aclList['open'] = "Public (Users who can visit {$lang->executionCommon} can access it.)";
|
||||
$lang->execution->aclList['private'] = 'Private (for team members and execution stakeholders)';
|
||||
$lang->execution->aclList['open'] = "Public (Users who can visit {$lang->executionCommon} can access it.)";
|
||||
}
|
||||
|
||||
$lang->project->storyPoint = 'Story Point';
|
||||
$lang->execution->storyPoint = 'Story Point';
|
||||
|
||||
$lang->project->burnByList['left'] = 'View by remaining hours';
|
||||
$lang->project->burnByList['estimate'] = "View by plan hours";
|
||||
$lang->project->burnByList['storyPoint'] = 'View by story point';
|
||||
$lang->execution->burnByList['left'] = 'View by remaining hours';
|
||||
$lang->execution->burnByList['estimate'] = "View by plan hours";
|
||||
$lang->execution->burnByList['storyPoint'] = 'View by story point';
|
||||
|
||||
/* Method list. */
|
||||
$lang->project->index = "{$lang->executionCommon} Home";
|
||||
$lang->project->task = 'Task List';
|
||||
$lang->project->groupTask = 'Group View';
|
||||
$lang->project->story = 'Story List';
|
||||
$lang->project->bug = 'Bug List';
|
||||
$lang->project->dynamic = 'Dynamics';
|
||||
$lang->project->latestDynamic = 'Dynamics';
|
||||
$lang->project->build = 'Build List';
|
||||
$lang->project->testtask = 'Request';
|
||||
$lang->project->burn = 'Burndown';
|
||||
$lang->project->computeBurn = 'Update';
|
||||
$lang->project->burnData = 'Burndown Data';
|
||||
$lang->project->fixFirst = 'Edit 1st-Day Estimates';
|
||||
$lang->project->team = 'Members';
|
||||
$lang->project->doc = 'Document';
|
||||
$lang->project->doclib = 'Docoment Library';
|
||||
$lang->project->manageProducts = 'Linked ' . $lang->productCommon . 's';
|
||||
$lang->project->linkStory = 'Link Stories';
|
||||
$lang->project->linkStoryByPlan = 'Link Stories By Plan';
|
||||
$lang->project->linkPlan = 'Linked Plan';
|
||||
$lang->project->unlinkStoryTasks = 'Unlink';
|
||||
$lang->project->linkedProducts = "Linked {$lang->productCommon}s";
|
||||
$lang->project->unlinkedProducts = "Unlinked {$lang->productCommon}s";
|
||||
$lang->project->view = "{$lang->executionCommon} Detail";
|
||||
$lang->project->startAction = "Start {$lang->executionCommon}";
|
||||
$lang->project->activateAction = "Activate {$lang->executionCommon}";
|
||||
$lang->project->delayAction = "Delay {$lang->executionCommon}";
|
||||
$lang->project->suspendAction = "Suspend {$lang->executionCommon}";
|
||||
$lang->project->closeAction = "Close {$lang->executionCommon}";
|
||||
$lang->project->testtaskAction = "{$lang->executionCommon} Request";
|
||||
$lang->project->teamAction = "{$lang->executionCommon} Members";
|
||||
$lang->project->kanbanAction = "{$lang->executionCommon} Kanban";
|
||||
$lang->project->printKanbanAction = "Print Kanban";
|
||||
$lang->project->treeAction = "{$lang->executionCommon} Tree View";
|
||||
$lang->project->exportAction = "Export {$lang->executionCommon}";
|
||||
$lang->project->computeBurnAction = "Update Burndown";
|
||||
$lang->project->create = "Create {$lang->executionCommon}";
|
||||
$lang->project->copy = "Copy {$lang->executionCommon}";
|
||||
$lang->project->delete = "Delete {$lang->executionCommon}";
|
||||
$lang->project->browse = "{$lang->executionCommon} List";
|
||||
$lang->project->list = "{$lang->executionCommon} List";
|
||||
$lang->project->edit = "Edit {$lang->executionCommon}";
|
||||
$lang->project->batchEdit = "Batch Edit";
|
||||
$lang->project->manageMembers = 'Manage Team';
|
||||
$lang->project->unlinkMember = 'Remove Member';
|
||||
$lang->project->unlinkStory = 'Unlink Story';
|
||||
$lang->project->unlinkStoryAB = 'Unlink';
|
||||
$lang->project->batchUnlinkStory = 'Batch Unlink Stories';
|
||||
$lang->project->importTask = 'Transfer Task';
|
||||
$lang->project->importPlanStories = 'Link Stories By Plan';
|
||||
$lang->project->importBug = 'Import Bug';
|
||||
$lang->project->updateOrder = "Rank {$lang->executionCommon}";
|
||||
$lang->project->tree = 'Tree';
|
||||
$lang->project->treeTask = 'Show Task Only';
|
||||
$lang->project->treeStory = 'Show Story Only';
|
||||
$lang->project->treeOnlyTask = 'Show Task Only';
|
||||
$lang->project->treeOnlyStory = 'Show Story Only';
|
||||
$lang->project->storyKanban = 'Story Kanban';
|
||||
$lang->project->storySort = 'Rank Story';
|
||||
$lang->project->importPlanStory = $lang->executionCommon . ' is created!\nDo you want to import stories that have been linked to the plan?';
|
||||
$lang->project->iteration = 'Iterations';
|
||||
$lang->project->iterationInfo = '%s Iterations';
|
||||
$lang->project->viewAll = 'View All';
|
||||
$lang->execution->index = "{$lang->executionCommon} Home";
|
||||
$lang->execution->task = 'Task List';
|
||||
$lang->execution->groupTask = 'Group View';
|
||||
$lang->execution->story = 'Story List';
|
||||
$lang->execution->bug = 'Bug List';
|
||||
$lang->execution->dynamic = 'Dynamics';
|
||||
$lang->execution->latestDynamic = 'Dynamics';
|
||||
$lang->execution->build = 'Build List';
|
||||
$lang->execution->testtask = 'Request';
|
||||
$lang->execution->burn = 'Burndown';
|
||||
$lang->execution->computeBurn = 'Update';
|
||||
$lang->execution->burnData = 'Burndown Data';
|
||||
$lang->execution->fixFirst = 'Edit 1st-Day Estimates';
|
||||
$lang->execution->team = 'Members';
|
||||
$lang->execution->doc = 'Document';
|
||||
$lang->execution->doclib = 'Docoment Library';
|
||||
$lang->execution->manageProducts = 'Linked ' . $lang->productCommon . 's';
|
||||
$lang->execution->linkStory = 'Link Stories';
|
||||
$lang->execution->linkStoryByPlan = 'Link Stories By Plan';
|
||||
$lang->execution->linkPlan = 'Linked Plan';
|
||||
$lang->execution->unlinkStoryTasks = 'Unlink';
|
||||
$lang->execution->linkedProducts = "Linked {$lang->productCommon}s";
|
||||
$lang->execution->unlinkedProducts = "Unlinked {$lang->productCommon}s";
|
||||
$lang->execution->view = "{$lang->executionCommon} Detail";
|
||||
$lang->execution->startAction = "Start {$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "Activate {$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "Delay {$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "Suspend {$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "Close {$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "{$lang->executionCommon} Request";
|
||||
$lang->execution->teamAction = "{$lang->executionCommon} Members";
|
||||
$lang->execution->kanbanAction = "{$lang->executionCommon} Kanban";
|
||||
$lang->execution->printKanbanAction = "Print Kanban";
|
||||
$lang->execution->treeAction = "{$lang->executionCommon} Tree View";
|
||||
$lang->execution->exportAction = "Export {$lang->executionCommon}";
|
||||
$lang->execution->computeBurnAction = "Update Burndown";
|
||||
$lang->execution->create = "Create {$lang->executionCommon}";
|
||||
$lang->execution->copy = "Copy {$lang->executionCommon}";
|
||||
$lang->execution->delete = "Delete {$lang->executionCommon}";
|
||||
$lang->execution->browse = "{$lang->executionCommon} List";
|
||||
$lang->execution->list = "{$lang->executionCommon} List";
|
||||
$lang->execution->edit = "Edit {$lang->executionCommon}";
|
||||
$lang->execution->batchEdit = "Batch Edit";
|
||||
$lang->execution->manageMembers = 'Manage Team';
|
||||
$lang->execution->unlinkMember = 'Remove Member';
|
||||
$lang->execution->unlinkStory = 'Unlink Story';
|
||||
$lang->execution->unlinkStoryAB = 'Unlink';
|
||||
$lang->execution->batchUnlinkStory = 'Batch Unlink Stories';
|
||||
$lang->execution->importTask = 'Transfer Task';
|
||||
$lang->execution->importPlanStories = 'Link Stories By Plan';
|
||||
$lang->execution->importBug = 'Import Bug';
|
||||
$lang->execution->updateOrder = "Rank {$lang->executionCommon}";
|
||||
$lang->execution->tree = 'Tree';
|
||||
$lang->execution->treeTask = 'Show Task Only';
|
||||
$lang->execution->treeStory = 'Show Story Only';
|
||||
$lang->execution->treeOnlyTask = 'Show Task Only';
|
||||
$lang->execution->treeOnlyStory = 'Show Story Only';
|
||||
$lang->execution->storyKanban = 'Story Kanban';
|
||||
$lang->execution->storySort = 'Rank Story';
|
||||
$lang->execution->importPlanStory = $lang->executionCommon . ' is created!\nDo you want to import stories that have been linked to the plan?';
|
||||
$lang->execution->iteration = 'Iterations';
|
||||
$lang->execution->iterationInfo = '%s Iterations';
|
||||
$lang->execution->viewAll = 'View All';
|
||||
|
||||
/* Group browsing. */
|
||||
$lang->project->allTasks = 'All';
|
||||
$lang->project->assignedToMe = 'My';
|
||||
$lang->project->myInvolved = 'Involved';
|
||||
$lang->execution->allTasks = 'All';
|
||||
$lang->execution->assignedToMe = 'My';
|
||||
$lang->execution->myInvolved = 'Involved';
|
||||
|
||||
$lang->project->statusSelects[''] = 'More';
|
||||
$lang->project->statusSelects['wait'] = 'Waiting';
|
||||
$lang->project->statusSelects['doing'] = 'Doing';
|
||||
$lang->project->statusSelects['undone'] = 'Unfinished';
|
||||
$lang->project->statusSelects['finishedbyme'] = 'FinishedByMe';
|
||||
$lang->project->statusSelects['done'] = 'Done';
|
||||
$lang->project->statusSelects['closed'] = 'Closed';
|
||||
$lang->project->statusSelects['cancel'] = 'Cancelled';
|
||||
$lang->execution->statusSelects[''] = 'More';
|
||||
$lang->execution->statusSelects['wait'] = 'Waiting';
|
||||
$lang->execution->statusSelects['doing'] = 'Doing';
|
||||
$lang->execution->statusSelects['undone'] = 'Unfinished';
|
||||
$lang->execution->statusSelects['finishedbyme'] = 'FinishedByMe';
|
||||
$lang->execution->statusSelects['done'] = 'Done';
|
||||
$lang->execution->statusSelects['closed'] = 'Closed';
|
||||
$lang->execution->statusSelects['cancel'] = 'Cancelled';
|
||||
|
||||
$lang->project->groups[''] = 'View by Groups';
|
||||
$lang->project->groups['story'] = 'Group by Story';
|
||||
$lang->project->groups['status'] = 'Group by Status';
|
||||
$lang->project->groups['pri'] = 'Group by Priority';
|
||||
$lang->project->groups['assignedTo'] = 'Group by AssignedTo';
|
||||
$lang->project->groups['finishedBy'] = 'Group by FinishedBy';
|
||||
$lang->project->groups['closedBy'] = 'Group by ClosedBy';
|
||||
$lang->project->groups['type'] = 'Group by Type';
|
||||
$lang->execution->groups[''] = 'View by Groups';
|
||||
$lang->execution->groups['story'] = 'Group by Story';
|
||||
$lang->execution->groups['status'] = 'Group by Status';
|
||||
$lang->execution->groups['pri'] = 'Group by Priority';
|
||||
$lang->execution->groups['assignedTo'] = 'Group by AssignedTo';
|
||||
$lang->execution->groups['finishedBy'] = 'Group by FinishedBy';
|
||||
$lang->execution->groups['closedBy'] = 'Group by ClosedBy';
|
||||
$lang->execution->groups['type'] = 'Group by Type';
|
||||
|
||||
$lang->project->groupFilter['story']['all'] = 'All';
|
||||
$lang->project->groupFilter['story']['linked'] = 'Tasks linked to stories';
|
||||
$lang->project->groupFilter['pri']['all'] = 'All';
|
||||
$lang->project->groupFilter['pri']['noset'] = 'Not Set';
|
||||
$lang->project->groupFilter['assignedTo']['undone'] = 'Unfinished';
|
||||
$lang->project->groupFilter['assignedTo']['all'] = 'All';
|
||||
$lang->execution->groupFilter['story']['all'] = 'All';
|
||||
$lang->execution->groupFilter['story']['linked'] = 'Tasks linked to stories';
|
||||
$lang->execution->groupFilter['pri']['all'] = 'All';
|
||||
$lang->execution->groupFilter['pri']['noset'] = 'Not Set';
|
||||
$lang->execution->groupFilter['assignedTo']['undone'] = 'Unfinished';
|
||||
$lang->execution->groupFilter['assignedTo']['all'] = 'All';
|
||||
|
||||
$lang->project->byQuery = 'Search';
|
||||
$lang->execution->byQuery = 'Search';
|
||||
|
||||
/* Query condition list. */
|
||||
$lang->project->allProject = "All {$lang->executionCommon}s";
|
||||
$lang->project->aboveAllProduct = "All the above {$lang->productCommon}s";
|
||||
$lang->project->aboveAllProject = "All the above {$lang->executionCommon}s";
|
||||
$lang->execution->allProject = "All {$lang->executionCommon}s";
|
||||
$lang->execution->aboveAllProduct = "All the above {$lang->productCommon}s";
|
||||
$lang->execution->aboveAllProject = "All the above {$lang->executionCommon}s";
|
||||
|
||||
/* Page prompt. */
|
||||
$lang->project->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
|
||||
$lang->project->selectProject = "Select {$lang->executionCommon}";
|
||||
$lang->project->selectExecution = "Select Stage/Sprint/Iteration";
|
||||
$lang->project->beginAndEnd = 'Duration';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->lblStats = 'Efforts';
|
||||
$lang->project->stats = 'Available: <strong>%s</strong>(h). Estimates: <strong>%s</strong>(h). Cost: <strong>%s</strong>(h). Left: <strong>%s</strong>(h).';
|
||||
$lang->project->taskSummary = "Total tasks on this page:<strong>%s</strong>. Waiting: <strong>%s</strong>. Doing: <strong>%s</strong>. Estimates: <strong>%s</strong>(h). Cost: <strong>%s</strong>(h). Left: <strong>%s</strong>(h).";
|
||||
$lang->project->pageSummary = "Total tasks: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>. Estimates: <strong>%estimate%</strong>(h). Cost: <strong>%consumed%</strong>(h). Left: <strong>%left%</strong>(h).";
|
||||
$lang->project->checkedSummary = "Selected: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>. Estimates: <strong>%estimate%</strong>(h). Cost: <strong>%consumed%</strong>(h). Left: <strong>%left%</strong>(h).";
|
||||
$lang->project->memberHoursAB = "%s has <strong>%s</ strong> hours.";
|
||||
$lang->project->memberHours = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">%s Available Hours</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->project->countSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">Tasks</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">Doing</div><div class="segment-value"><span class="label label-dot label-primary"></span> %s</div></div><div class="segment"><div class="segment-title">Waiting</div><div class="segment-value"><span class="label label-dot label-primary muted"></span> %s</div></div></div></div>';
|
||||
$lang->project->timeSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">Estimates</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">Cost</div><div class="segment-value text-red">%s</div></div><div class="segment"><div class="segment-title">Left</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->project->groupSummaryAB = "<div>Tasks <strong>%s :</strong><span class='text-muted'>Waiting</span> %s <span class='text-muted'>Doing</span> %s</div><div>Estimates <strong>%s :</strong><span class='text-muted'>Cost</span> %s <span class='text-muted'>Left</span> %s</div>";
|
||||
$lang->project->wbs = "Create Task";
|
||||
$lang->project->batchWBS = "Batch Create Tasks";
|
||||
$lang->project->howToUpdateBurn = "<a href='https://api.zentao.pm/goto.php?item=burndown' target='_blank' title='How to update the Burndown Chart?' class='btn btn-link'>Help <i class='icon icon-help'></i></a>";
|
||||
$lang->project->whyNoStories = "No story can be linked. Please check whether there is any story in {$lang->executionCommon} which is linked to {$lang->productCommon} and make sure it has been reviewed.";
|
||||
$lang->project->productStories = "Stories linked to {$lang->executionCommon} are the subeset of stories linked to {$lang->productCommon}. Stories can only be linked after they pass the review. <a href='%s'> Link Stories</a> now.";
|
||||
$lang->project->haveDraft = "%s stories in draft, so they can't be linked.";
|
||||
$lang->project->doneProjects = 'Finished';
|
||||
$lang->project->selectDept = 'Select Department';
|
||||
$lang->project->selectDeptTitle = 'Select User';
|
||||
$lang->project->copyTeam = 'Copy Team';
|
||||
$lang->project->copyFromTeam = "Copy from {$lang->executionCommon} Team: <strong>%s</strong>";
|
||||
$lang->project->noMatched = "No $lang->executionCommon including '%s'can be found.";
|
||||
$lang->project->copyTitle = "Choose a {$lang->executionCommon} to copy.";
|
||||
$lang->project->copyTeamTitle = "Choose a {$lang->executionCommon} Team to copy.";
|
||||
$lang->project->copyNoProject = "No {$lang->executionCommon} can be copied.";
|
||||
$lang->project->copyFromProject = "Copy from {$lang->executionCommon} <strong>%s</strong>";
|
||||
$lang->project->cancelCopy = 'Cancel Copy';
|
||||
$lang->project->byPeriod = 'By Time';
|
||||
$lang->project->byUser = 'By User';
|
||||
$lang->project->noProject = "No {$lang->executionCommon}. ";
|
||||
$lang->project->noMembers = 'No team members yet. ';
|
||||
$lang->project->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s";
|
||||
$lang->project->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the project)";
|
||||
$lang->project->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the project, and can be directly linked with {$lang->SRCommon} of the product linked with the sprint/stage)";
|
||||
$lang->execution->linkStoryByPlanTips = "This action will link all stories in this plan to the {$lang->executionCommon}.";
|
||||
$lang->execution->selectProject = "Select {$lang->executionCommon}";
|
||||
$lang->execution->selectExecution = "Select Stage/Sprint/Iteration";
|
||||
$lang->execution->beginAndEnd = 'Duration';
|
||||
$lang->execution->lblStats = 'Efforts';
|
||||
$lang->execution->stats = 'Available: <strong>%s</strong>(h). Estimates: <strong>%s</strong>(h). Cost: <strong>%s</strong>(h). Left: <strong>%s</strong>(h).';
|
||||
$lang->execution->taskSummary = "Total tasks on this page:<strong>%s</strong>. Waiting: <strong>%s</strong>. Doing: <strong>%s</strong>. Estimates: <strong>%s</strong>(h). Cost: <strong>%s</strong>(h). Left: <strong>%s</strong>(h).";
|
||||
$lang->execution->pageSummary = "Total tasks: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>. Estimates: <strong>%estimate%</strong>(h). Cost: <strong>%consumed%</strong>(h). Left: <strong>%left%</strong>(h).";
|
||||
$lang->execution->checkedSummary = "Selected: <strong>%total%</strong>. Waiting: <strong>%wait%</strong>. Doing: <strong>%doing%</strong>. Estimates: <strong>%estimate%</strong>(h). Cost: <strong>%consumed%</strong>(h). Left: <strong>%left%</strong>(h).";
|
||||
$lang->execution->memberHoursAB = "%s has <strong>%s</ strong> hours.";
|
||||
$lang->execution->memberHours = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">%s Available Hours</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->execution->countSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">Tasks</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">Doing</div><div class="segment-value"><span class="label label-dot label-primary"></span> %s</div></div><div class="segment"><div class="segment-title">Waiting</div><div class="segment-value"><span class="label label-dot label-primary muted"></span> %s</div></div></div></div>';
|
||||
$lang->execution->timeSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">Estimates</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">Cost</div><div class="segment-value text-red">%s</div></div><div class="segment"><div class="segment-title">Left</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->execution->groupSummaryAB = "<div>Tasks <strong>%s :</strong><span class='text-muted'>Waiting</span> %s <span class='text-muted'>Doing</span> %s</div><div>Estimates <strong>%s :</strong><span class='text-muted'>Cost</span> %s <span class='text-muted'>Left</span> %s</div>";
|
||||
$lang->execution->wbs = "Create Task";
|
||||
$lang->execution->batchWBS = "Batch Create Tasks";
|
||||
$lang->execution->howToUpdateBurn = "<a href='https://api.zentao.pm/goto.php?item=burndown' target='_blank' title='How to update the Burndown Chart?' class='btn btn-link'>Help <i class='icon icon-help'></i></a>";
|
||||
$lang->execution->whyNoStories = "No story can be linked. Please check whether there is any story in {$lang->executionCommon} which is linked to {$lang->productCommon} and make sure it has been reviewed.";
|
||||
$lang->execution->productStories = "Stories linked to {$lang->executionCommon} are the subeset of stories linked to {$lang->productCommon}. Stories can only be linked after they pass the review. <a href='%s'> Link Stories</a> now.";
|
||||
$lang->execution->haveDraft = "%s stories in draft, so they can't be linked.";
|
||||
$lang->execution->doneProjects = 'Finished';
|
||||
$lang->execution->selectDept = 'Select Department';
|
||||
$lang->execution->selectDeptTitle = 'Select User';
|
||||
$lang->execution->copyTeam = 'Copy Team';
|
||||
$lang->execution->copyFromTeam = "Copy from {$lang->executionCommon} Team: <strong>%s</strong>";
|
||||
$lang->execution->noMatched = "No $lang->executionCommon including '%s'can be found.";
|
||||
$lang->execution->copyTitle = "Choose a {$lang->executionCommon} to copy.";
|
||||
$lang->execution->copyTeamTitle = "Choose a {$lang->executionCommon} Team to copy.";
|
||||
$lang->execution->copyNoProject = "No {$lang->executionCommon} can be copied.";
|
||||
$lang->execution->copyFromProject = "Copy from {$lang->executionCommon} <strong>%s</strong>";
|
||||
$lang->execution->cancelCopy = 'Cancel Copy';
|
||||
$lang->execution->byPeriod = 'By Time';
|
||||
$lang->execution->byUser = 'By User';
|
||||
$lang->execution->noProject = "No {$lang->executionCommon}. ";
|
||||
$lang->execution->noMembers = 'No team members yet. ';
|
||||
$lang->execution->workloadTotal = "The cumulative workload ratio should not exceed 100, and the total workload under the current product is: %s";
|
||||
$lang->execution->linkPRJStoryTip = "(Link {$lang->SRCommon} comes from {$lang->SRCommon} linked under the execution)";
|
||||
$lang->execution->linkAllStoryTip = "({$lang->SRCommon} has never been linked under the execution, and can be directly linked with {$lang->SRCommon} of the product linked with the sprint/stage)";
|
||||
|
||||
/* Interactive prompts. */
|
||||
$lang->project->confirmDelete = "Do you want to delete the {$lang->executionCommon}[%s]?";
|
||||
$lang->project->confirmUnlinkMember = "Do you want to unlink this User from {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkStory = "Do you want to unlink this Story from {$lang->executionCommon}?";
|
||||
$lang->project->confirmUnlinkProjectStory = "Do you want to unlink this Story from the project?";
|
||||
$lang->project->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the project. Remove it from the {$lang->executionCommon}, then try again.";
|
||||
$lang->project->notAllowRemoveProducts = "The story of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
|
||||
$lang->project->errorNoLinkedProducts = "No {$lang->productCommon} is linked to {$lang->executionCommon}. You will be directed to {$lang->productCommon} page to link one.";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon} cannot be linked to the same {$lang->productCommon} twice.";
|
||||
$lang->project->accessDenied = "Your access to {$lang->executionCommon} is denied!";
|
||||
$lang->project->tips = 'Note';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon} is created. Next you can ";
|
||||
$lang->project->setTeam = 'Set Team';
|
||||
$lang->project->linkStory = 'Link Story';
|
||||
$lang->project->createTask = 'Create Task';
|
||||
$lang->project->goback = "Go Back";
|
||||
$lang->project->noweekend = 'Exclude Weekend';
|
||||
$lang->project->withweekend = 'Include Weekend';
|
||||
$lang->project->interval = 'Intervals ';
|
||||
$lang->project->fixFirstWithLeft = 'Update hours left too';
|
||||
$lang->project->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->project->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->project->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
$lang->execution->confirmDelete = "Do you want to delete the {$lang->executionCommon}[%s]?";
|
||||
$lang->execution->confirmUnlinkMember = "Do you want to unlink this User from {$lang->executionCommon}?";
|
||||
$lang->execution->confirmUnlinkStory = "Do you want to unlink this Story from {$lang->executionCommon}?";
|
||||
$lang->execution->confirmUnlinkProjectStory = "Do you want to unlink this Story from the execution?";
|
||||
$lang->execution->notAllowedUnlinkStory = "This {$lang->SRCommon} is linked to the {$lang->executionCommon} of the execution. Remove it from the {$lang->executionCommon}, then try again.";
|
||||
$lang->execution->notAllowRemoveProducts = "The story of this product is linked with the {$lang->executionCommon}. Unlink it before doing any action.";
|
||||
$lang->execution->errorNoLinkedProducts = "No {$lang->productCommon} is linked to {$lang->executionCommon}. You will be directed to {$lang->productCommon} page to link one.";
|
||||
$lang->execution->errorSameProducts = "{$lang->executionCommon} cannot be linked to the same {$lang->productCommon} twice.";
|
||||
$lang->execution->accessDenied = "Your access to {$lang->executionCommon} is denied!";
|
||||
$lang->execution->tips = 'Note';
|
||||
$lang->execution->afterInfo = "{$lang->executionCommon} is created. Next you can ";
|
||||
$lang->execution->setTeam = 'Set Team';
|
||||
$lang->execution->linkStory = 'Link Story';
|
||||
$lang->execution->createTask = 'Create Task';
|
||||
$lang->execution->goback = "Go Back";
|
||||
$lang->execution->noweekend = 'Exclude Weekend';
|
||||
$lang->execution->withweekend = 'Include Weekend';
|
||||
$lang->execution->interval = 'Intervals ';
|
||||
$lang->execution->fixFirstWithLeft = 'Update hours left too';
|
||||
$lang->execution->unfinishedProject = "This {$lang->executionCommon} has ";
|
||||
$lang->execution->unfinishedTask = "[%s] unfinished tasks. ";
|
||||
$lang->execution->unresolvedBug = "[%s] unresolved bugs. ";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, created by <strong>$actor</strong> . $extra' . "\n";
|
||||
$lang->project->action->managed = '$date, managed by <strong>$actor</strong> . $extra' . "\n";
|
||||
$lang->project->action->edited = '$date, edited by <strong>$actor</strong> . $extra' . "\n";
|
||||
$lang->project->action->extra = "The linked {$lang->productCommon}s are %s.";
|
||||
$lang->execution->action = new stdclass();
|
||||
$lang->execution->action->opened = '$date, created by <strong>$actor</strong> . $extra' . "\n";
|
||||
$lang->execution->action->managed = '$date, managed by <strong>$actor</strong> . $extra' . "\n";
|
||||
$lang->execution->action->edited = '$date, edited by <strong>$actor</strong> . $extra' . "\n";
|
||||
$lang->execution->action->extra = "The linked {$lang->productCommon}s are %s.";
|
||||
|
||||
/* Statistics. */
|
||||
$lang->project->charts = new stdclass();
|
||||
$lang->project->charts->burn = new stdclass();
|
||||
$lang->project->charts->burn->graph = new stdclass();
|
||||
$lang->project->charts->burn->graph->caption = " Burndown Chart";
|
||||
$lang->project->charts->burn->graph->xAxisName = "Date";
|
||||
$lang->project->charts->burn->graph->yAxisName = "Hour";
|
||||
$lang->project->charts->burn->graph->baseFontSize = 12;
|
||||
$lang->project->charts->burn->graph->formatNumber = 0;
|
||||
$lang->project->charts->burn->graph->animation = 0;
|
||||
$lang->project->charts->burn->graph->rotateNames = 1;
|
||||
$lang->project->charts->burn->graph->showValues = 0;
|
||||
$lang->project->charts->burn->graph->reference = 'Ideal';
|
||||
$lang->project->charts->burn->graph->actuality = 'Actual';
|
||||
$lang->execution->charts = new stdclass();
|
||||
$lang->execution->charts->burn = new stdclass();
|
||||
$lang->execution->charts->burn->graph = new stdclass();
|
||||
$lang->execution->charts->burn->graph->caption = " Burndown Chart";
|
||||
$lang->execution->charts->burn->graph->xAxisName = "Date";
|
||||
$lang->execution->charts->burn->graph->yAxisName = "Hour";
|
||||
$lang->execution->charts->burn->graph->baseFontSize = 12;
|
||||
$lang->execution->charts->burn->graph->formatNumber = 0;
|
||||
$lang->execution->charts->burn->graph->animation = 0;
|
||||
$lang->execution->charts->burn->graph->rotateNames = 1;
|
||||
$lang->execution->charts->burn->graph->showValues = 0;
|
||||
$lang->execution->charts->burn->graph->reference = 'Ideal';
|
||||
$lang->execution->charts->burn->graph->actuality = 'Actual';
|
||||
|
||||
$lang->project->placeholder = new stdclass();
|
||||
$lang->project->placeholder->code = "Abbreviation of {$lang->executionCommon} name";
|
||||
$lang->project->placeholder->totalLeft = "Hours estimated on the first day of the {$lang->executionCommon}.";
|
||||
$lang->execution->placeholder = new stdclass();
|
||||
$lang->execution->placeholder->code = "Abbreviation of {$lang->executionCommon} name";
|
||||
$lang->execution->placeholder->totalLeft = "Hours estimated on the first day of the {$lang->executionCommon}.";
|
||||
|
||||
$lang->project->selectGroup = new stdclass();
|
||||
$lang->project->selectGroup->done = '(Done)';
|
||||
$lang->execution->selectGroup = new stdclass();
|
||||
$lang->execution->selectGroup->done = '(Done)';
|
||||
|
||||
$lang->project->orderList['order_asc'] = "Story Rank Ascending";
|
||||
$lang->project->orderList['order_desc'] = "Story Rank Descending";
|
||||
$lang->project->orderList['pri_asc'] = "Story Priority Ascending";
|
||||
$lang->project->orderList['pri_desc'] = "Story Priority Descending";
|
||||
$lang->project->orderList['stage_asc'] = "Story Phase Ascending";
|
||||
$lang->project->orderList['stage_desc'] = "Story Phase Descending";
|
||||
$lang->execution->orderList['order_asc'] = "Story Rank Ascending";
|
||||
$lang->execution->orderList['order_desc'] = "Story Rank Descending";
|
||||
$lang->execution->orderList['pri_asc'] = "Story Priority Ascending";
|
||||
$lang->execution->orderList['pri_desc'] = "Story Priority Descending";
|
||||
$lang->execution->orderList['stage_asc'] = "Story Phase Ascending";
|
||||
$lang->execution->orderList['stage_desc'] = "Story Phase Descending";
|
||||
|
||||
$lang->project->kanban = "Kanban";
|
||||
$lang->project->kanbanSetting = "Settings";
|
||||
$lang->project->resetKanban = "Reset";
|
||||
$lang->project->printKanban = "Print";
|
||||
$lang->project->bugList = "Bugs";
|
||||
$lang->execution->kanban = "Kanban";
|
||||
$lang->execution->kanbanSetting = "Settings";
|
||||
$lang->execution->resetKanban = "Reset";
|
||||
$lang->execution->printKanban = "Print";
|
||||
$lang->execution->bugList = "Bugs";
|
||||
|
||||
$lang->project->kanbanHideCols = 'Closed & Cancelled Columns';
|
||||
$lang->project->kanbanShowOption = 'Unfold';
|
||||
$lang->project->kanbanColsColor = 'Customize Column Color';
|
||||
$lang->execution->kanbanHideCols = 'Closed & Cancelled Columns';
|
||||
$lang->execution->kanbanShowOption = 'Unfold';
|
||||
$lang->execution->kanbanColsColor = 'Customize Column Color';
|
||||
|
||||
$lang->kanbanSetting = new stdclass();
|
||||
$lang->kanbanSetting->noticeReset = 'Do you want to reset Kanban?';
|
||||
@@ -365,27 +363,33 @@ $lang->printKanban->taskStatus = 'Status';
|
||||
$lang->printKanban->typeList['all'] = 'All';
|
||||
$lang->printKanban->typeList['increment'] = 'Increment';
|
||||
|
||||
$lang->project->typeList[''] = '';
|
||||
$lang->project->typeList['stage'] = 'Stage';
|
||||
$lang->project->typeList['sprint'] = $lang->executionCommon;
|
||||
$lang->execution->typeList[''] = '';
|
||||
$lang->execution->typeList['stage'] = 'Stage';
|
||||
$lang->execution->typeList['sprint'] = $lang->executionCommon;
|
||||
|
||||
$lang->project->featureBar['task']['all'] = $lang->project->allTasks;
|
||||
$lang->project->featureBar['task']['unclosed'] = $lang->project->unclosed;
|
||||
$lang->project->featureBar['task']['assignedtome'] = $lang->project->assignedToMe;
|
||||
$lang->project->featureBar['task']['myinvolved'] = $lang->project->myInvolved;
|
||||
$lang->project->featureBar['task']['delayed'] = 'Delayed';
|
||||
$lang->project->featureBar['task']['needconfirm'] = 'Changed';
|
||||
$lang->project->featureBar['task']['status'] = $lang->project->statusSelects[''];
|
||||
$lang->execution->featureBar['task']['all'] = $lang->execution->allTasks;
|
||||
$lang->execution->featureBar['task']['unclosed'] = $lang->execution->unclosed;
|
||||
$lang->execution->featureBar['task']['assignedtome'] = $lang->execution->assignedToMe;
|
||||
$lang->execution->featureBar['task']['myinvolved'] = $lang->execution->myInvolved;
|
||||
$lang->execution->featureBar['task']['delayed'] = 'Delayed';
|
||||
$lang->execution->featureBar['task']['needconfirm'] = 'Changed';
|
||||
$lang->execution->featureBar['task']['status'] = $lang->execution->statusSelects[''];
|
||||
|
||||
$lang->project->featureBar['all']['all'] = $lang->project->all;
|
||||
$lang->project->featureBar['all']['undone'] = $lang->project->undone;
|
||||
$lang->project->featureBar['all']['wait'] = $lang->project->statusList['wait'];
|
||||
$lang->project->featureBar['all']['doing'] = $lang->project->statusList['doing'];
|
||||
$lang->project->featureBar['all']['suspended'] = $lang->project->statusList['suspended'];
|
||||
$lang->project->featureBar['all']['closed'] = $lang->project->statusList['closed'];
|
||||
$lang->execution->featureBar['all']['all'] = $lang->execution->all;
|
||||
$lang->execution->featureBar['all']['undone'] = $lang->execution->undone;
|
||||
$lang->execution->featureBar['all']['wait'] = $lang->execution->statusList['wait'];
|
||||
$lang->execution->featureBar['all']['doing'] = $lang->execution->statusList['doing'];
|
||||
$lang->execution->featureBar['all']['suspended'] = $lang->execution->statusList['suspended'];
|
||||
$lang->execution->featureBar['all']['closed'] = $lang->execution->statusList['closed'];
|
||||
|
||||
$lang->project->treeLevel = array();
|
||||
$lang->project->treeLevel['all'] = 'Expand All';
|
||||
$lang->project->treeLevel['root'] = 'Collapse All';
|
||||
$lang->project->treeLevel['task'] = 'Stories&Tasks';
|
||||
$lang->project->treeLevel['story'] = 'Only Stories';
|
||||
$lang->execution->treeLevel = array();
|
||||
$lang->execution->treeLevel['all'] = 'Expand All';
|
||||
$lang->execution->treeLevel['root'] = 'Collapse All';
|
||||
$lang->execution->treeLevel['task'] = 'Stories&Tasks';
|
||||
$lang->execution->treeLevel['story'] = 'Only Stories';
|
||||
|
||||
$lang->execution->action = new stdclass();
|
||||
$lang->execution->action->opened = '$date, created by <strong>$actor</strong>. $extra' . "\n";
|
||||
$lang->execution->action->managed = '$date, managed by <strong>$actor</strong>. $extra' . "\n";
|
||||
$lang->execution->action->edited = '$date, edited by <strong>$actor</strong>. $extra' . "\n";
|
||||
$lang->execution->action->extra = 'Linked products is %s.';
|
||||
|
||||
+309
-311
@@ -10,93 +10,93 @@
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
/* 字段列表。*/
|
||||
$lang->project->common = $lang->executionCommon . '视图';
|
||||
$lang->project->allProjects = '所有' . $lang->executionCommon;
|
||||
$lang->project->id = $lang->executionCommon . '编号';
|
||||
$lang->project->type = $lang->executionCommon . '类型';
|
||||
$lang->project->name = $lang->executionCommon . '名称';
|
||||
$lang->project->code = $lang->executionCommon . '代号';
|
||||
$lang->project->statge = '阶段';
|
||||
$lang->project->pri = '优先级';
|
||||
$lang->project->openedBy = '由谁创建';
|
||||
$lang->project->openedDate = '创建日期';
|
||||
$lang->project->closedBy = '由谁关闭';
|
||||
$lang->project->closedDate = '关闭日期';
|
||||
$lang->project->canceledBy = '由谁取消';
|
||||
$lang->project->canceledDate = '取消日期';
|
||||
$lang->project->begin = '开始日期';
|
||||
$lang->project->end = '结束日期';
|
||||
$lang->project->dateRange = '起始日期';
|
||||
$lang->project->to = '至';
|
||||
$lang->project->days = '可用工作日';
|
||||
$lang->project->day = '天';
|
||||
$lang->project->workHour = '工时';
|
||||
$lang->project->workHourUnit = 'H';
|
||||
$lang->project->totalHours = '可用工时';
|
||||
$lang->project->totalDays = '可用工日';
|
||||
$lang->project->status = $lang->executionCommon . '状态';
|
||||
$lang->project->subStatus = '子状态';
|
||||
$lang->project->desc = $lang->executionCommon . '描述';
|
||||
$lang->project->owner = '负责人';
|
||||
$lang->project->PO = $lang->productCommon . '负责人';
|
||||
$lang->project->PM = $lang->executionCommon . '负责人';
|
||||
$lang->project->QD = '测试负责人';
|
||||
$lang->project->RD = '发布负责人';
|
||||
$lang->project->qa = '测试';
|
||||
$lang->project->release = '发布';
|
||||
$lang->project->acl = '访问控制';
|
||||
$lang->project->teamname = '团队名称';
|
||||
$lang->project->order = $lang->executionCommon . '排序';
|
||||
$lang->project->orderAB = '排序';
|
||||
$lang->project->products = '相关' . $lang->productCommon;
|
||||
$lang->project->whitelist = '白名单';
|
||||
$lang->project->addWhitelist = '添加白名单';
|
||||
$lang->project->unbindWhielist = '删除白名单';
|
||||
$lang->project->totalEstimate = '预计';
|
||||
$lang->project->totalConsumed = '消耗';
|
||||
$lang->project->totalLeft = '剩余';
|
||||
$lang->project->progress = '进度';
|
||||
$lang->project->hours = '预计 %s 消耗 %s 剩余 %s';
|
||||
$lang->project->viewBug = '查看bug';
|
||||
$lang->project->noProduct = "无{$lang->executionCommon}";
|
||||
$lang->project->createStory = "添加{$lang->SRCommon}";
|
||||
$lang->project->storyTitle = "{$lang->SRCommon}名称";
|
||||
$lang->project->all = '所有';
|
||||
$lang->project->undone = '未完成';
|
||||
$lang->project->unclosed = '未关闭';
|
||||
$lang->project->typeDesc = "运维{$lang->executionCommon}没有{$lang->SRCommon}、bug、版本、测试功能。";
|
||||
$lang->project->mine = '我负责:';
|
||||
$lang->project->other = '其他:';
|
||||
$lang->project->deleted = '已删除';
|
||||
$lang->project->delayed = '已延期';
|
||||
$lang->project->product = $lang->project->products;
|
||||
$lang->project->readjustTime = "调整{$lang->executionCommon}起止时间";
|
||||
$lang->project->readjustTask = '顺延任务的起止时间';
|
||||
$lang->project->effort = '日志';
|
||||
$lang->project->relatedMember = '相关成员';
|
||||
$lang->project->watermark = '由禅道导出';
|
||||
$lang->project->burnXUnit = '(日期)';
|
||||
$lang->project->burnYUnit = '(工时)';
|
||||
$lang->project->waitTasks = '待处理';
|
||||
$lang->project->viewByUser = '按用户查看';
|
||||
$lang->project->oneProduct = "阶段只能关联一个{$lang->productCommon}";
|
||||
$lang->project->noLinkProduct = "阶段没有关联{$lang->productCommon}";
|
||||
$lang->project->recent = '近期访问:';
|
||||
$lang->execution->common = $lang->executionCommon . '视图';
|
||||
$lang->execution->allProjects = '所有' . $lang->executionCommon;
|
||||
$lang->execution->id = $lang->executionCommon . '编号';
|
||||
$lang->execution->type = $lang->executionCommon . '类型';
|
||||
$lang->execution->name = $lang->executionCommon . '名称';
|
||||
$lang->execution->code = $lang->executionCommon . '代号';
|
||||
$lang->execution->statge = '阶段';
|
||||
$lang->execution->pri = '优先级';
|
||||
$lang->execution->openedBy = '由谁创建';
|
||||
$lang->execution->openedDate = '创建日期';
|
||||
$lang->execution->closedBy = '由谁关闭';
|
||||
$lang->execution->closedDate = '关闭日期';
|
||||
$lang->execution->canceledBy = '由谁取消';
|
||||
$lang->execution->canceledDate = '取消日期';
|
||||
$lang->execution->begin = '开始日期';
|
||||
$lang->execution->end = '结束日期';
|
||||
$lang->execution->dateRange = '起始日期';
|
||||
$lang->execution->to = '至';
|
||||
$lang->execution->days = '可用工作日';
|
||||
$lang->execution->day = '天';
|
||||
$lang->execution->workHour = '工时';
|
||||
$lang->execution->workHourUnit = 'H';
|
||||
$lang->execution->totalHours = '可用工时';
|
||||
$lang->execution->totalDays = '可用工日';
|
||||
$lang->execution->status = $lang->executionCommon . '状态';
|
||||
$lang->execution->subStatus = '子状态';
|
||||
$lang->execution->desc = $lang->executionCommon . '描述';
|
||||
$lang->execution->owner = '负责人';
|
||||
$lang->execution->PO = $lang->productCommon . '负责人';
|
||||
$lang->execution->PM = $lang->executionCommon . '负责人';
|
||||
$lang->execution->QD = '测试负责人';
|
||||
$lang->execution->RD = '发布负责人';
|
||||
$lang->execution->qa = '测试';
|
||||
$lang->execution->release = '发布';
|
||||
$lang->execution->acl = '访问控制';
|
||||
$lang->execution->teamname = '团队名称';
|
||||
$lang->execution->order = $lang->executionCommon . '排序';
|
||||
$lang->execution->orderAB = '排序';
|
||||
$lang->execution->products = '相关' . $lang->productCommon;
|
||||
$lang->execution->whitelist = '白名单';
|
||||
$lang->execution->addWhitelist = '添加白名单';
|
||||
$lang->execution->unbindWhielist = '删除白名单';
|
||||
$lang->execution->totalEstimate = '预计';
|
||||
$lang->execution->totalConsumed = '消耗';
|
||||
$lang->execution->totalLeft = '剩余';
|
||||
$lang->execution->progress = '进度';
|
||||
$lang->execution->hours = '预计 %s 消耗 %s 剩余 %s';
|
||||
$lang->execution->viewBug = '查看bug';
|
||||
$lang->execution->noProduct = "无{$lang->executionCommon}";
|
||||
$lang->execution->createStory = "添加{$lang->SRCommon}";
|
||||
$lang->execution->storyTitle = "{$lang->SRCommon}名称";
|
||||
$lang->execution->all = '所有';
|
||||
$lang->execution->undone = '未完成';
|
||||
$lang->execution->unclosed = '未关闭';
|
||||
$lang->execution->typeDesc = "运维{$lang->executionCommon}没有{$lang->SRCommon}、bug、版本、测试功能。";
|
||||
$lang->execution->mine = '我负责:';
|
||||
$lang->execution->other = '其他:';
|
||||
$lang->execution->deleted = '已删除';
|
||||
$lang->execution->delayed = '已延期';
|
||||
$lang->execution->product = $lang->execution->products;
|
||||
$lang->execution->readjustTime = "调整{$lang->executionCommon}起止时间";
|
||||
$lang->execution->readjustTask = '顺延任务的起止时间';
|
||||
$lang->execution->effort = '日志';
|
||||
$lang->execution->relatedMember = '相关成员';
|
||||
$lang->execution->watermark = '由禅道导出';
|
||||
$lang->execution->burnXUnit = '(日期)';
|
||||
$lang->execution->burnYUnit = '(工时)';
|
||||
$lang->execution->waitTasks = '待处理';
|
||||
$lang->execution->viewByUser = '按用户查看';
|
||||
$lang->execution->oneProduct = "阶段只能关联一个{$lang->productCommon}";
|
||||
$lang->execution->noLinkProduct = "阶段没有关联{$lang->productCommon}";
|
||||
$lang->execution->recent = '近期访问:';
|
||||
|
||||
$lang->project->start = "开始";
|
||||
$lang->project->activate = "激活";
|
||||
$lang->project->putoff = "延期";
|
||||
$lang->project->suspend = "挂起";
|
||||
$lang->project->close = "关闭";
|
||||
$lang->project->export = "导出";
|
||||
$lang->execution->start = "开始";
|
||||
$lang->execution->activate = "激活";
|
||||
$lang->execution->putoff = "延期";
|
||||
$lang->execution->suspend = "挂起";
|
||||
$lang->execution->close = "关闭";
|
||||
$lang->execution->export = "导出";
|
||||
|
||||
$lang->project->endList[7] = '一星期';
|
||||
$lang->project->endList[14] = '两星期';
|
||||
$lang->project->endList[31] = '一个月';
|
||||
$lang->project->endList[62] = '两个月';
|
||||
$lang->project->endList[93] = '三个月';
|
||||
$lang->project->endList[186] = '半年';
|
||||
$lang->project->endList[365] = '一年';
|
||||
$lang->execution->endList[7] = '一星期';
|
||||
$lang->execution->endList[14] = '两星期';
|
||||
$lang->execution->endList[31] = '一个月';
|
||||
$lang->execution->endList[62] = '两个月';
|
||||
$lang->execution->endList[93] = '三个月';
|
||||
$lang->execution->endList[186] = '半年';
|
||||
$lang->execution->endList[365] = '一年';
|
||||
|
||||
$lang->team = new stdclass();
|
||||
$lang->team->account = '用户';
|
||||
@@ -110,244 +110,243 @@ $lang->team->limited = '受限用户';
|
||||
$lang->team->limitedList['yes'] = '是';
|
||||
$lang->team->limitedList['no'] = '否';
|
||||
|
||||
$lang->project->basicInfo = '基本信息';
|
||||
$lang->project->otherInfo = '其他信息';
|
||||
$lang->execution->basicInfo = '基本信息';
|
||||
$lang->execution->otherInfo = '其他信息';
|
||||
|
||||
/* 字段取值列表。*/
|
||||
$lang->project->statusList['wait'] = '未开始';
|
||||
$lang->project->statusList['doing'] = '进行中';
|
||||
$lang->project->statusList['suspended'] = '已挂起';
|
||||
$lang->project->statusList['closed'] = '已关闭';
|
||||
$lang->execution->statusList['wait'] = '未开始';
|
||||
$lang->execution->statusList['doing'] = '进行中';
|
||||
$lang->execution->statusList['suspended'] = '已挂起';
|
||||
$lang->execution->statusList['closed'] = '已关闭';
|
||||
|
||||
global $config;
|
||||
if($config->systemMode == 'new')
|
||||
{
|
||||
$lang->project->aclList['private'] = "私有(团队成员和项目负责人、干系人可访问)";
|
||||
$lang->project->aclList['open'] = "继承项目访问权限(能访问当前项目,即可访问)";
|
||||
$lang->execution->aclList['private'] = "私有(团队成员和项目负责人、干系人可访问)";
|
||||
$lang->execution->aclList['open'] = "继承项目访问权限(能访问当前项目,即可访问)";
|
||||
}
|
||||
else
|
||||
{
|
||||
$lang->project->aclList['private'] = "私有(团队成员和{$lang->executionCommon}负责人可访问)";
|
||||
$lang->project->aclList['open'] = "公开(有{$lang->executionCommon}视图权限即可访问)";
|
||||
$lang->execution->aclList['private'] = "私有(团队成员和{$lang->executionCommon}负责人可访问)";
|
||||
$lang->execution->aclList['open'] = "公开(有{$lang->executionCommon}视图权限即可访问)";
|
||||
}
|
||||
|
||||
$lang->project->storyPoint = '故事点';
|
||||
$lang->execution->storyPoint = '故事点';
|
||||
|
||||
$lang->project->burnByList['left'] = '按剩余工时查看';
|
||||
$lang->project->burnByList['estimate'] = "按计划工时查看";
|
||||
$lang->project->burnByList['storyPoint'] = '按故事点查看';
|
||||
$lang->execution->burnByList['left'] = '按剩余工时查看';
|
||||
$lang->execution->burnByList['estimate'] = "按计划工时查看";
|
||||
$lang->execution->burnByList['storyPoint'] = '按故事点查看';
|
||||
|
||||
/* 方法列表。*/
|
||||
$lang->project->index = "{$lang->executionCommon}主页";
|
||||
$lang->project->task = '任务列表';
|
||||
$lang->project->groupTask = '分组浏览任务';
|
||||
$lang->project->story = "{$lang->SRCommon}列表";
|
||||
$lang->project->bug = 'Bug列表';
|
||||
$lang->project->dynamic = '动态';
|
||||
$lang->project->latestDynamic = '最新动态';
|
||||
$lang->project->build = '所有版本';
|
||||
$lang->project->testtask = '测试单';
|
||||
$lang->project->burn = '燃尽图';
|
||||
$lang->project->computeBurn = '更新燃尽图';
|
||||
$lang->project->burnData = '燃尽图数据';
|
||||
$lang->project->fixFirst = '修改首天工时';
|
||||
$lang->project->team = '团队成员';
|
||||
$lang->project->doc = '文档列表';
|
||||
$lang->project->doclib = '文档库列表';
|
||||
$lang->project->manageProducts = '关联' . $lang->productCommon;
|
||||
$lang->project->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->project->linkStoryByPlan = "按照计划关联";
|
||||
$lang->project->linkPlan = "关联计划";
|
||||
$lang->project->unlinkStoryTasks = "未关联{$lang->SRCommon}任务";
|
||||
$lang->project->linkedProducts = '已关联';
|
||||
$lang->project->unlinkedProducts = '未关联';
|
||||
$lang->project->view = "{$lang->executionCommon}概况";
|
||||
$lang->project->startAction = "开始{$lang->executionCommon}";
|
||||
$lang->project->activateAction = "激活{$lang->executionCommon}";
|
||||
$lang->project->delayAction = "延期{$lang->executionCommon}";
|
||||
$lang->project->suspendAction = "挂起{$lang->executionCommon}";
|
||||
$lang->project->closeAction = "关闭{$lang->executionCommon}";
|
||||
$lang->project->testtaskAction = "{$lang->executionCommon}测试单";
|
||||
$lang->project->teamAction = "{$lang->executionCommon}团队";
|
||||
$lang->project->kanbanAction = "{$lang->executionCommon}看板";
|
||||
$lang->project->printKanbanAction = "打印看板";
|
||||
$lang->project->treeAction = "{$lang->executionCommon}树状图";
|
||||
$lang->project->exportAction = "导出{$lang->executionCommon}";
|
||||
$lang->project->computeBurnAction = "计算燃尽图";
|
||||
$lang->project->create = "添加{$lang->executionCommon}";
|
||||
$lang->project->copy = "复制{$lang->executionCommon}";
|
||||
$lang->project->delete = "删除{$lang->executionCommon}";
|
||||
$lang->project->browse = "浏览{$lang->executionCommon}";
|
||||
$lang->project->list = "{$lang->executionCommon}列表";
|
||||
$lang->project->edit = "编辑{$lang->executionCommon}";
|
||||
$lang->project->batchEdit = "批量编辑";
|
||||
$lang->project->manageMembers = '团队管理';
|
||||
$lang->project->unlinkMember = '移除成员';
|
||||
$lang->project->unlinkStory = "移除{$lang->SRCommon}";
|
||||
$lang->project->unlinkStoryAB = "移除{$lang->SRCommon}";
|
||||
$lang->project->batchUnlinkStory = "批量移除{$lang->SRCommon}";
|
||||
$lang->project->importTask = '转入任务';
|
||||
$lang->project->importPlanStories = "按计划关联{$lang->SRCommon}";
|
||||
$lang->project->importBug = '导入Bug';
|
||||
$lang->project->updateOrder = "{$lang->executionCommon}排序";
|
||||
$lang->project->tree = '树状图';
|
||||
$lang->project->treeTask = '只看任务';
|
||||
$lang->project->treeStory = "只看{$lang->SRCommon}";
|
||||
$lang->project->treeOnlyTask = '树状图只看任务';
|
||||
$lang->project->treeOnlyStory = "树状图只看{$lang->SRCommon}";
|
||||
$lang->project->storyKanban = "{$lang->SRCommon}看板";
|
||||
$lang->project->storySort = "{$lang->SRCommon}排序";
|
||||
$lang->project->importPlanStory = '创建' . $lang->executionCommon . '成功!\n是否导入计划关联的相关' . $lang->SRCommon . '?';
|
||||
$lang->project->iteration = '版本迭代';
|
||||
$lang->project->iterationInfo = '迭代%s次';
|
||||
$lang->project->viewAll = '查看所有';
|
||||
$lang->execution->index = "{$lang->executionCommon}主页";
|
||||
$lang->execution->task = '任务列表';
|
||||
$lang->execution->groupTask = '分组浏览任务';
|
||||
$lang->execution->story = "{$lang->SRCommon}列表";
|
||||
$lang->execution->bug = 'Bug列表';
|
||||
$lang->execution->dynamic = '动态';
|
||||
$lang->execution->latestDynamic = '最新动态';
|
||||
$lang->execution->build = '所有版本';
|
||||
$lang->execution->testtask = '测试单';
|
||||
$lang->execution->burn = '燃尽图';
|
||||
$lang->execution->computeBurn = '更新燃尽图';
|
||||
$lang->execution->burnData = '燃尽图数据';
|
||||
$lang->execution->fixFirst = '修改首天工时';
|
||||
$lang->execution->team = '团队成员';
|
||||
$lang->execution->doc = '文档列表';
|
||||
$lang->execution->doclib = '文档库列表';
|
||||
$lang->execution->manageProducts = '关联' . $lang->productCommon;
|
||||
$lang->execution->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->execution->linkStoryByPlan = "按照计划关联";
|
||||
$lang->execution->linkPlan = "关联计划";
|
||||
$lang->execution->unlinkStoryTasks = "未关联{$lang->SRCommon}任务";
|
||||
$lang->execution->linkedProducts = '已关联';
|
||||
$lang->execution->unlinkedProducts = '未关联';
|
||||
$lang->execution->view = "{$lang->executionCommon}概况";
|
||||
$lang->execution->startAction = "开始{$lang->executionCommon}";
|
||||
$lang->execution->activateAction = "激活{$lang->executionCommon}";
|
||||
$lang->execution->delayAction = "延期{$lang->executionCommon}";
|
||||
$lang->execution->suspendAction = "挂起{$lang->executionCommon}";
|
||||
$lang->execution->closeAction = "关闭{$lang->executionCommon}";
|
||||
$lang->execution->testtaskAction = "{$lang->executionCommon}测试单";
|
||||
$lang->execution->teamAction = "{$lang->executionCommon}团队";
|
||||
$lang->execution->kanbanAction = "{$lang->executionCommon}看板";
|
||||
$lang->execution->printKanbanAction = "打印看板";
|
||||
$lang->execution->treeAction = "{$lang->executionCommon}树状图";
|
||||
$lang->execution->exportAction = "导出{$lang->executionCommon}";
|
||||
$lang->execution->computeBurnAction = "计算燃尽图";
|
||||
$lang->execution->create = "添加{$lang->executionCommon}";
|
||||
$lang->execution->copy = "复制{$lang->executionCommon}";
|
||||
$lang->execution->delete = "删除{$lang->executionCommon}";
|
||||
$lang->execution->browse = "浏览{$lang->executionCommon}";
|
||||
$lang->execution->list = "{$lang->executionCommon}列表";
|
||||
$lang->execution->edit = "编辑{$lang->executionCommon}";
|
||||
$lang->execution->batchEdit = "批量编辑";
|
||||
$lang->execution->manageMembers = '团队管理';
|
||||
$lang->execution->unlinkMember = '移除成员';
|
||||
$lang->execution->unlinkStory = "移除{$lang->SRCommon}";
|
||||
$lang->execution->unlinkStoryAB = "移除{$lang->SRCommon}";
|
||||
$lang->execution->batchUnlinkStory = "批量移除{$lang->SRCommon}";
|
||||
$lang->execution->importTask = '转入任务';
|
||||
$lang->execution->importPlanStories = "按计划关联{$lang->SRCommon}";
|
||||
$lang->execution->importBug = '导入Bug';
|
||||
$lang->execution->updateOrder = "{$lang->executionCommon}排序";
|
||||
$lang->execution->tree = '树状图';
|
||||
$lang->execution->treeTask = '只看任务';
|
||||
$lang->execution->treeStory = "只看{$lang->SRCommon}";
|
||||
$lang->execution->treeOnlyTask = '树状图只看任务';
|
||||
$lang->execution->treeOnlyStory = "树状图只看{$lang->SRCommon}";
|
||||
$lang->execution->storyKanban = "{$lang->SRCommon}看板";
|
||||
$lang->execution->storySort = "{$lang->SRCommon}排序";
|
||||
$lang->execution->importPlanStory = '创建' . $lang->executionCommon . '成功!\n是否导入计划关联的相关' . $lang->SRCommon . '?';
|
||||
$lang->execution->iteration = '版本迭代';
|
||||
$lang->execution->iterationInfo = '迭代%s次';
|
||||
$lang->execution->viewAll = '查看所有';
|
||||
|
||||
/* 分组浏览。*/
|
||||
$lang->project->allTasks = '所有';
|
||||
$lang->project->assignedToMe = '指派给我';
|
||||
$lang->project->myInvolved = '由我参与';
|
||||
$lang->execution->allTasks = '所有';
|
||||
$lang->execution->assignedToMe = '指派给我';
|
||||
$lang->execution->myInvolved = '由我参与';
|
||||
|
||||
$lang->project->statusSelects[''] = '更多';
|
||||
$lang->project->statusSelects['wait'] = '未开始';
|
||||
$lang->project->statusSelects['doing'] = '进行中';
|
||||
$lang->project->statusSelects['undone'] = '未完成';
|
||||
$lang->project->statusSelects['finishedbyme'] = '我完成';
|
||||
$lang->project->statusSelects['done'] = '已完成';
|
||||
$lang->project->statusSelects['closed'] = '已关闭';
|
||||
$lang->project->statusSelects['cancel'] = '已取消';
|
||||
$lang->execution->statusSelects[''] = '更多';
|
||||
$lang->execution->statusSelects['wait'] = '未开始';
|
||||
$lang->execution->statusSelects['doing'] = '进行中';
|
||||
$lang->execution->statusSelects['undone'] = '未完成';
|
||||
$lang->execution->statusSelects['finishedbyme'] = '我完成';
|
||||
$lang->execution->statusSelects['done'] = '已完成';
|
||||
$lang->execution->statusSelects['closed'] = '已关闭';
|
||||
$lang->execution->statusSelects['cancel'] = '已取消';
|
||||
|
||||
$lang->project->groups[''] = '分组查看';
|
||||
$lang->project->groups['story'] = "{$lang->SRCommon}分组";
|
||||
$lang->project->groups['status'] = '状态分组';
|
||||
$lang->project->groups['pri'] = '优先级分组';
|
||||
$lang->project->groups['assignedTo'] = '指派给分组';
|
||||
$lang->project->groups['finishedBy'] = '完成者分组';
|
||||
$lang->project->groups['closedBy'] = '关闭者分组';
|
||||
$lang->project->groups['type'] = '类型分组';
|
||||
$lang->execution->groups[''] = '分组查看';
|
||||
$lang->execution->groups['story'] = "{$lang->SRCommon}分组";
|
||||
$lang->execution->groups['status'] = '状态分组';
|
||||
$lang->execution->groups['pri'] = '优先级分组';
|
||||
$lang->execution->groups['assignedTo'] = '指派给分组';
|
||||
$lang->execution->groups['finishedBy'] = '完成者分组';
|
||||
$lang->execution->groups['closedBy'] = '关闭者分组';
|
||||
$lang->execution->groups['type'] = '类型分组';
|
||||
|
||||
$lang->project->groupFilter['story']['all'] = '所有';
|
||||
$lang->project->groupFilter['story']['linked'] = "已关联{$lang->SRCommon}的任务";
|
||||
$lang->project->groupFilter['pri']['all'] = '所有';
|
||||
$lang->project->groupFilter['pri']['noset'] = '未设置';
|
||||
$lang->project->groupFilter['assignedTo']['undone'] = '未完成';
|
||||
$lang->project->groupFilter['assignedTo']['all'] = '所有';
|
||||
$lang->execution->groupFilter['story']['all'] = '所有';
|
||||
$lang->execution->groupFilter['story']['linked'] = "已关联{$lang->SRCommon}的任务";
|
||||
$lang->execution->groupFilter['pri']['all'] = '所有';
|
||||
$lang->execution->groupFilter['pri']['noset'] = '未设置';
|
||||
$lang->execution->groupFilter['assignedTo']['undone'] = '未完成';
|
||||
$lang->execution->groupFilter['assignedTo']['all'] = '所有';
|
||||
|
||||
$lang->project->byQuery = '搜索';
|
||||
$lang->execution->byQuery = '搜索';
|
||||
|
||||
/* 查询条件列表。*/
|
||||
$lang->project->allProject = "所有{$lang->executionCommon}";
|
||||
$lang->project->aboveAllProduct = "以上所有{$lang->productCommon}";
|
||||
$lang->project->aboveAllProject = "以上所有{$lang->executionCommon}";
|
||||
$lang->execution->allProject = "所有{$lang->executionCommon}";
|
||||
$lang->execution->aboveAllProduct = "以上所有{$lang->productCommon}";
|
||||
$lang->execution->aboveAllProject = "以上所有{$lang->executionCommon}";
|
||||
|
||||
/* 页面提示。*/
|
||||
$lang->project->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->SRCommon}全部关联到此{$lang->executionCommon}中";
|
||||
$lang->project->selectProject = "请选择{$lang->executionCommon}";
|
||||
$lang->project->selectExecution = "请选择阶段/迭代/冲刺";
|
||||
$lang->project->beginAndEnd = '起止时间';
|
||||
$lang->project->end = '截止日期';
|
||||
$lang->project->lblStats = '工时统计';
|
||||
$lang->project->stats = '可用工时 <strong>%s</strong> 工时,总共预计 <strong>%s</strong> 工时,已经消耗 <strong>%s</strong> 工时,预计剩余 <strong>%s</strong> 工时';
|
||||
$lang->project->taskSummary = "本页共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>,总预计 <strong>%s</strong> 工时,已消耗 <strong>%s</strong> 工时,剩余 <strong>%s</strong> 工时。";
|
||||
$lang->project->pageSummary = "本页共 <strong>%total%</strong> 个任务,未开始 <strong>%wait%</strong>,进行中 <strong>%doing%</strong>,总预计 <strong>%estimate%</strong> 工时,已消耗 <strong>%consumed%</strong> 工时,剩余 <strong>%left%</strong> 工时。";
|
||||
$lang->project->checkedSummary = "选中 <strong>%total%</strong> 个任务,未开始 <strong>%wait%</strong>,进行中 <strong>%doing%</strong>,总预计 <strong>%estimate%</strong> 工时,已消耗 <strong>%consumed%</strong> 工时,剩余 <strong>%left%</strong> 工时。";
|
||||
$lang->project->memberHoursAB = "<div>%s有 <strong>%s</strong> 工时</div>";
|
||||
$lang->project->memberHours = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">%s可用工时</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->project->countSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">总任务</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">进行中</div><div class="segment-value"><span class="label label-dot label-primary"></span> %s</div></div><div class="segment"><div class="segment-title">未开始</div><div class="segment-value"><span class="label label-dot label-primary muted"></span> %s</div></div></div></div>';
|
||||
$lang->project->timeSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">总预计</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">已消耗</div><div class="segment-value text-red">%s</div></div><div class="segment"><div class="segment-title">剩余</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->project->groupSummaryAB = "<div>总任务 <strong>%s : </strong><span class='text-muted'>未开始</span> %s <span class='text-muted'>进行中</span> %s</div><div>总预计 <strong>%s : </strong><span class='text-muted'>已消耗</span> %s <span class='text-muted'>剩余</span> %s</div>";
|
||||
$lang->project->wbs = "分解任务";
|
||||
$lang->project->batchWBS = "批量分解";
|
||||
$lang->project->howToUpdateBurn = "<a href='https://api.zentao.net/goto.php?item=burndown&lang=zh-cn' target='_blank' title='如何更新燃尽图?' class='btn btn-link'>帮助 <i class='icon icon-help'></i></a>";
|
||||
$lang->project->whyNoStories = "看起来没有{$lang->SRCommon}可以关联。请检查下{$lang->executionCommon}关联的{$lang->productCommon}中有没有{$lang->SRCommon},而且要确保它们已经审核通过。";
|
||||
$lang->project->productStories = "{$lang->executionCommon}关联的{$lang->SRCommon}是{$lang->productCommon}{$lang->SRCommon}的子集,并且只有评审通过的{$lang->SRCommon}才能关联。请<a href='%s'>关联{$lang->SRCommon}</a>。";
|
||||
$lang->project->haveDraft = "有%s条草稿状态的{$lang->SRCommon}无法关联到该{$lang->executionCommon}";
|
||||
$lang->project->doneProjects = '已结束';
|
||||
$lang->project->selectDept = '选择部门';
|
||||
$lang->project->selectDeptTitle = '选择一个部门的成员';
|
||||
$lang->project->copyTeam = '复制团队';
|
||||
$lang->project->copyFromTeam = "复制自{$lang->executionCommon}团队: <strong>%s</strong>";
|
||||
$lang->project->noMatched = "找不到包含'%s'的$lang->executionCommon";
|
||||
$lang->project->copyTitle = "请选择一个{$lang->executionCommon}来复制";
|
||||
$lang->project->copyTeamTitle = "选择一个{$lang->executionCommon}团队来复制";
|
||||
$lang->project->copyNoProject = "没有可用的{$lang->executionCommon}来复制";
|
||||
$lang->project->copyFromProject = "复制自{$lang->executionCommon} <strong>%s</strong>";
|
||||
$lang->project->cancelCopy = '取消复制';
|
||||
$lang->project->byPeriod = '按时间段';
|
||||
$lang->project->byUser = '按用户';
|
||||
$lang->project->noProject = "暂时没有{$lang->executionCommon}。";
|
||||
$lang->project->noMembers = '暂时没有团队成员。';
|
||||
$lang->project->workloadTotal = "工作量占比累计不应当超过100, 当前产品下的工作量之和为%s";
|
||||
$lang->project->linkPRJStoryTip = "(关联{$lang->SRCommon}来源于项目下所关联的{$lang->SRCommon})";
|
||||
$lang->project->linkAllStoryTip = "(项目下还未关联{$lang->SRCommon},可直接关联该迭代/阶段/冲刺所关联产品的{$lang->SRCommon})";
|
||||
$lang->execution->linkStoryByPlanTips = "此操作会将所选计划下面的{$lang->SRCommon}全部关联到此{$lang->executionCommon}中";
|
||||
$lang->execution->selectProject = "请选择{$lang->executionCommon}";
|
||||
$lang->execution->selectExecution = "请选择阶段/迭代/冲刺";
|
||||
$lang->execution->beginAndEnd = '起止时间';
|
||||
$lang->execution->lblStats = '工时统计';
|
||||
$lang->execution->stats = '可用工时 <strong>%s</strong> 工时,总共预计 <strong>%s</strong> 工时,已经消耗 <strong>%s</strong> 工时,预计剩余 <strong>%s</strong> 工时';
|
||||
$lang->execution->taskSummary = "本页共 <strong>%s</strong> 个任务,未开始 <strong>%s</strong>,进行中 <strong>%s</strong>,总预计 <strong>%s</strong> 工时,已消耗 <strong>%s</strong> 工时,剩余 <strong>%s</strong> 工时。";
|
||||
$lang->execution->pageSummary = "本页共 <strong>%total%</strong> 个任务,未开始 <strong>%wait%</strong>,进行中 <strong>%doing%</strong>,总预计 <strong>%estimate%</strong> 工时,已消耗 <strong>%consumed%</strong> 工时,剩余 <strong>%left%</strong> 工时。";
|
||||
$lang->execution->checkedSummary = "选中 <strong>%total%</strong> 个任务,未开始 <strong>%wait%</strong>,进行中 <strong>%doing%</strong>,总预计 <strong>%estimate%</strong> 工时,已消耗 <strong>%consumed%</strong> 工时,剩余 <strong>%left%</strong> 工时。";
|
||||
$lang->execution->memberHoursAB = "<div>%s有 <strong>%s</strong> 工时</div>";
|
||||
$lang->execution->memberHours = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">%s可用工时</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->execution->countSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">总任务</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">进行中</div><div class="segment-value"><span class="label label-dot label-primary"></span> %s</div></div><div class="segment"><div class="segment-title">未开始</div><div class="segment-value"><span class="label label-dot label-primary muted"></span> %s</div></div></div></div>';
|
||||
$lang->execution->timeSummary = '<div class="table-col"><div class="clearfix segments"><div class="segment"><div class="segment-title">总预计</div><div class="segment-value">%s</div></div><div class="segment"><div class="segment-title">已消耗</div><div class="segment-value text-red">%s</div></div><div class="segment"><div class="segment-title">剩余</div><div class="segment-value">%s</div></div></div></div>';
|
||||
$lang->execution->groupSummaryAB = "<div>总任务 <strong>%s : </strong><span class='text-muted'>未开始</span> %s <span class='text-muted'>进行中</span> %s</div><div>总预计 <strong>%s : </strong><span class='text-muted'>已消耗</span> %s <span class='text-muted'>剩余</span> %s</div>";
|
||||
$lang->execution->wbs = "分解任务";
|
||||
$lang->execution->batchWBS = "批量分解";
|
||||
$lang->execution->howToUpdateBurn = "<a href='https://api.zentao.net/goto.php?item=burndown&lang=zh-cn' target='_blank' title='如何更新燃尽图?' class='btn btn-link'>帮助 <i class='icon icon-help'></i></a>";
|
||||
$lang->execution->whyNoStories = "看起来没有{$lang->SRCommon}可以关联。请检查下{$lang->executionCommon}关联的{$lang->productCommon}中有没有{$lang->SRCommon},而且要确保它们已经审核通过。";
|
||||
$lang->execution->productStories = "{$lang->executionCommon}关联的{$lang->SRCommon}是{$lang->productCommon}{$lang->SRCommon}的子集,并且只有评审通过的{$lang->SRCommon}才能关联。请<a href='%s'>关联{$lang->SRCommon}</a>。";
|
||||
$lang->execution->haveDraft = "有%s条草稿状态的{$lang->SRCommon}无法关联到该{$lang->executionCommon}";
|
||||
$lang->execution->doneProjects = '已结束';
|
||||
$lang->execution->selectDept = '选择部门';
|
||||
$lang->execution->selectDeptTitle = '选择一个部门的成员';
|
||||
$lang->execution->copyTeam = '复制团队';
|
||||
$lang->execution->copyFromTeam = "复制自{$lang->executionCommon}团队: <strong>%s</strong>";
|
||||
$lang->execution->noMatched = "找不到包含'%s'的$lang->executionCommon";
|
||||
$lang->execution->copyTitle = "请选择一个{$lang->executionCommon}来复制";
|
||||
$lang->execution->copyTeamTitle = "选择一个{$lang->executionCommon}团队来复制";
|
||||
$lang->execution->copyNoProject = "没有可用的{$lang->executionCommon}来复制";
|
||||
$lang->execution->copyFromProject = "复制自{$lang->executionCommon} <strong>%s</strong>";
|
||||
$lang->execution->cancelCopy = '取消复制';
|
||||
$lang->execution->byPeriod = '按时间段';
|
||||
$lang->execution->byUser = '按用户';
|
||||
$lang->execution->noProject = "暂时没有{$lang->executionCommon}。";
|
||||
$lang->execution->noMembers = '暂时没有团队成员。';
|
||||
$lang->execution->workloadTotal = "工作量占比累计不应当超过100, 当前产品下的工作量之和为%s";
|
||||
$lang->execution->linkPRJStoryTip = "(关联{$lang->SRCommon}来源于项目下所关联的{$lang->SRCommon})";
|
||||
$lang->execution->linkAllStoryTip = "(项目下还未关联{$lang->SRCommon},可直接关联该迭代/阶段/冲刺所关联产品的{$lang->SRCommon})";
|
||||
|
||||
/* 交互提示。*/
|
||||
$lang->project->confirmDelete = "您确定删除{$lang->executionCommon}[%s]吗?";
|
||||
$lang->project->confirmUnlinkMember = "您确定从该{$lang->executionCommon}中移除该用户吗?";
|
||||
$lang->project->confirmUnlinkStory = "您确定从该{$lang->executionCommon}中移除该{$lang->SRCommon}吗?";
|
||||
$lang->project->confirmUnlinkProjectStory = "您确定从该项目中移除该{$lang->SRCommon}吗?";
|
||||
$lang->project->notAllowedUnlinkStory = "该{$lang->SRCommon}已经与项目下{$lang->executionCommon}相关联,请从{$lang->executionCommon}中移除后再操作。";
|
||||
$lang->project->notAllowRemoveProducts = "该{$lang->productCommon}中的{$lang->SRCommon}已与该{$lang->executionCommon}进行了关联,请取消关联后再操作。";
|
||||
$lang->project->errorNoLinkedProducts = "该{$lang->executionCommon}没有关联的{$lang->productCommon},系统将转到{$lang->productCommon}关联页面";
|
||||
$lang->project->errorSameProducts = "{$lang->executionCommon}不能关联多个相同的{$lang->productCommon}。";
|
||||
$lang->project->accessDenied = "您无权访问该{$lang->executionCommon}!";
|
||||
$lang->project->tips = '提示';
|
||||
$lang->project->afterInfo = "{$lang->executionCommon}添加成功,您现在可以进行以下操作:";
|
||||
$lang->project->setTeam = '设置团队';
|
||||
$lang->project->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->project->createTask = '创建任务';
|
||||
$lang->project->goback = "返回任务列表";
|
||||
$lang->project->noweekend = '去除周末';
|
||||
$lang->project->withweekend = '显示周末';
|
||||
$lang->project->interval = '间隔';
|
||||
$lang->project->fixFirstWithLeft = '修改剩余工时';
|
||||
$lang->project->unfinishedProject = "该{$lang->executionCommon}下还有";
|
||||
$lang->project->unfinishedTask = "[%s]个未完成的任务,";
|
||||
$lang->project->unresolvedBug = "[%s]个未解决的bug,";
|
||||
$lang->execution->confirmDelete = "您确定删除{$lang->executionCommon}[%s]吗?";
|
||||
$lang->execution->confirmUnlinkMember = "您确定从该{$lang->executionCommon}中移除该用户吗?";
|
||||
$lang->execution->confirmUnlinkStory = "您确定从该{$lang->executionCommon}中移除该{$lang->SRCommon}吗?";
|
||||
$lang->execution->confirmUnlinkProjectStory = "您确定从该项目中移除该{$lang->SRCommon}吗?";
|
||||
$lang->execution->notAllowedUnlinkStory = "该{$lang->SRCommon}已经与项目下{$lang->executionCommon}相关联,请从{$lang->executionCommon}中移除后再操作。";
|
||||
$lang->execution->notAllowRemoveProducts = "该{$lang->productCommon}中的{$lang->SRCommon}已与该{$lang->executionCommon}进行了关联,请取消关联后再操作。";
|
||||
$lang->execution->errorNoLinkedProducts = "该{$lang->executionCommon}没有关联的{$lang->productCommon},系统将转到{$lang->productCommon}关联页面";
|
||||
$lang->execution->errorSameProducts = "{$lang->executionCommon}不能关联多个相同的{$lang->productCommon}。";
|
||||
$lang->execution->accessDenied = "您无权访问该{$lang->executionCommon}!";
|
||||
$lang->execution->tips = '提示';
|
||||
$lang->execution->afterInfo = "{$lang->executionCommon}添加成功,您现在可以进行以下操作:";
|
||||
$lang->execution->setTeam = '设置团队';
|
||||
$lang->execution->linkStory = "关联{$lang->SRCommon}";
|
||||
$lang->execution->createTask = '创建任务';
|
||||
$lang->execution->goback = "返回任务列表";
|
||||
$lang->execution->noweekend = '去除周末';
|
||||
$lang->execution->withweekend = '显示周末';
|
||||
$lang->execution->interval = '间隔';
|
||||
$lang->execution->fixFirstWithLeft = '修改剩余工时';
|
||||
$lang->execution->unfinishedProject = "该{$lang->executionCommon}下还有";
|
||||
$lang->execution->unfinishedTask = "[%s]个未完成的任务,";
|
||||
$lang->execution->unresolvedBug = "[%s]个未解决的bug,";
|
||||
|
||||
$lang->project->action = new stdclass();
|
||||
$lang->project->action->opened = '$date, 由 <strong>$actor</strong> 创建。$extra' . "\n";
|
||||
$lang->project->action->managed = '$date, 由 <strong>$actor</strong> 维护。$extra' . "\n";
|
||||
$lang->project->action->edited = '$date, 由 <strong>$actor</strong> 编辑。$extra' . "\n";
|
||||
$lang->project->action->extra = '相关产品为 %s。';
|
||||
$lang->execution->action = new stdclass();
|
||||
$lang->execution->action->opened = '$date, 由 <strong>$actor</strong> 创建。$extra' . "\n";
|
||||
$lang->execution->action->managed = '$date, 由 <strong>$actor</strong> 维护。$extra' . "\n";
|
||||
$lang->execution->action->edited = '$date, 由 <strong>$actor</strong> 编辑。$extra' . "\n";
|
||||
$lang->execution->action->extra = '相关产品为 %s。';
|
||||
|
||||
/* 统计。*/
|
||||
$lang->project->charts = new stdclass();
|
||||
$lang->project->charts->burn = new stdclass();
|
||||
$lang->project->charts->burn->graph = new stdclass();
|
||||
$lang->project->charts->burn->graph->caption = "燃尽图";
|
||||
$lang->project->charts->burn->graph->xAxisName = "日期";
|
||||
$lang->project->charts->burn->graph->yAxisName = "HOUR";
|
||||
$lang->project->charts->burn->graph->baseFontSize = 12;
|
||||
$lang->project->charts->burn->graph->formatNumber = 0;
|
||||
$lang->project->charts->burn->graph->animation = 0;
|
||||
$lang->project->charts->burn->graph->rotateNames = 1;
|
||||
$lang->project->charts->burn->graph->showValues = 0;
|
||||
$lang->project->charts->burn->graph->reference = '参考';
|
||||
$lang->project->charts->burn->graph->actuality = '实际';
|
||||
$lang->execution->charts = new stdclass();
|
||||
$lang->execution->charts->burn = new stdclass();
|
||||
$lang->execution->charts->burn->graph = new stdclass();
|
||||
$lang->execution->charts->burn->graph->caption = "燃尽图";
|
||||
$lang->execution->charts->burn->graph->xAxisName = "日期";
|
||||
$lang->execution->charts->burn->graph->yAxisName = "HOUR";
|
||||
$lang->execution->charts->burn->graph->baseFontSize = 12;
|
||||
$lang->execution->charts->burn->graph->formatNumber = 0;
|
||||
$lang->execution->charts->burn->graph->animation = 0;
|
||||
$lang->execution->charts->burn->graph->rotateNames = 1;
|
||||
$lang->execution->charts->burn->graph->showValues = 0;
|
||||
$lang->execution->charts->burn->graph->reference = '参考';
|
||||
$lang->execution->charts->burn->graph->actuality = '实际';
|
||||
|
||||
$lang->project->placeholder = new stdclass();
|
||||
$lang->project->placeholder->code = '团队内部的简称';
|
||||
$lang->project->placeholder->totalLeft = "{$lang->executionCommon}开始时的总预计工时";
|
||||
$lang->execution->placeholder = new stdclass();
|
||||
$lang->execution->placeholder->code = '团队内部的简称';
|
||||
$lang->execution->placeholder->totalLeft = "{$lang->executionCommon}开始时的总预计工时";
|
||||
|
||||
$lang->project->selectGroup = new stdclass();
|
||||
$lang->project->selectGroup->done = '(已结束)';
|
||||
$lang->execution->selectGroup = new stdclass();
|
||||
$lang->execution->selectGroup->done = '(已结束)';
|
||||
|
||||
$lang->project->orderList['order_asc'] = "{$lang->SRCommon}排序正序";
|
||||
$lang->project->orderList['order_desc'] = "{$lang->SRCommon}排序倒序";
|
||||
$lang->project->orderList['pri_asc'] = "{$lang->SRCommon}优先级正序";
|
||||
$lang->project->orderList['pri_desc'] = "{$lang->SRCommon}优先级倒序";
|
||||
$lang->project->orderList['stage_asc'] = "{$lang->SRCommon}阶段正序";
|
||||
$lang->project->orderList['stage_desc'] = "{$lang->SRCommon}阶段倒序";
|
||||
$lang->execution->orderList['order_asc'] = "{$lang->SRCommon}排序正序";
|
||||
$lang->execution->orderList['order_desc'] = "{$lang->SRCommon}排序倒序";
|
||||
$lang->execution->orderList['pri_asc'] = "{$lang->SRCommon}优先级正序";
|
||||
$lang->execution->orderList['pri_desc'] = "{$lang->SRCommon}优先级倒序";
|
||||
$lang->execution->orderList['stage_asc'] = "{$lang->SRCommon}阶段正序";
|
||||
$lang->execution->orderList['stage_desc'] = "{$lang->SRCommon}阶段倒序";
|
||||
|
||||
$lang->project->kanban = "看板";
|
||||
$lang->project->kanbanSetting = "看板设置";
|
||||
$lang->project->resetKanban = "恢复默认";
|
||||
$lang->project->printKanban = "打印看板";
|
||||
$lang->project->bugList = "Bug列表";
|
||||
$lang->execution->kanban = "看板";
|
||||
$lang->execution->kanbanSetting = "看板设置";
|
||||
$lang->execution->resetKanban = "恢复默认";
|
||||
$lang->execution->printKanban = "打印看板";
|
||||
$lang->execution->bugList = "Bug列表";
|
||||
|
||||
$lang->project->kanbanHideCols = '看板隐藏已关闭、已取消列';
|
||||
$lang->project->kanbanShowOption = '显示折叠信息';
|
||||
$lang->project->kanbanColsColor = '看板列自定义颜色';
|
||||
$lang->execution->kanbanHideCols = '看板隐藏已关闭、已取消列';
|
||||
$lang->execution->kanbanShowOption = '显示折叠信息';
|
||||
$lang->execution->kanbanColsColor = '看板列自定义颜色';
|
||||
|
||||
$lang->kanbanSetting = new stdclass();
|
||||
$lang->kanbanSetting->noticeReset = '是否恢复看板默认设置?';
|
||||
@@ -364,34 +363,33 @@ $lang->printKanban->taskStatus = '状态';
|
||||
$lang->printKanban->typeList['all'] = '全部';
|
||||
$lang->printKanban->typeList['increment'] = '增量';
|
||||
|
||||
$lang->project->typeList[''] = '';
|
||||
$lang->project->typeList['stage'] = '阶段';
|
||||
$lang->project->typeList['sprint'] = $lang->executionCommon;
|
||||
$lang->execution->typeList[''] = '';
|
||||
$lang->execution->typeList['stage'] = '阶段';
|
||||
$lang->execution->typeList['sprint'] = $lang->executionCommon;
|
||||
|
||||
$lang->project->featureBar['task']['all'] = $lang->project->allTasks;
|
||||
$lang->project->featureBar['task']['unclosed'] = $lang->project->unclosed;
|
||||
$lang->project->featureBar['task']['assignedtome'] = $lang->project->assignedToMe;
|
||||
$lang->project->featureBar['task']['myinvolved'] = $lang->project->myInvolved;
|
||||
$lang->project->featureBar['task']['delayed'] = '已延期';
|
||||
$lang->project->featureBar['task']['needconfirm'] = "{$lang->SRCommon}变更";
|
||||
$lang->project->featureBar['task']['status'] = $lang->project->statusSelects[''];
|
||||
$lang->execution->featureBar['task']['all'] = $lang->execution->allTasks;
|
||||
$lang->execution->featureBar['task']['unclosed'] = $lang->execution->unclosed;
|
||||
$lang->execution->featureBar['task']['assignedtome'] = $lang->execution->assignedToMe;
|
||||
$lang->execution->featureBar['task']['myinvolved'] = $lang->execution->myInvolved;
|
||||
$lang->execution->featureBar['task']['delayed'] = '已延期';
|
||||
$lang->execution->featureBar['task']['needconfirm'] = "{$lang->SRCommon}变更";
|
||||
$lang->execution->featureBar['task']['status'] = $lang->execution->statusSelects[''];
|
||||
|
||||
$lang->project->featureBar['all']['all'] = $lang->project->all;
|
||||
$lang->project->featureBar['all']['undone'] = $lang->project->undone;
|
||||
$lang->project->featureBar['all']['wait'] = $lang->project->statusList['wait'];
|
||||
$lang->project->featureBar['all']['doing'] = $lang->project->statusList['doing'];
|
||||
$lang->project->featureBar['all']['suspended'] = $lang->project->statusList['suspended'];
|
||||
$lang->project->featureBar['all']['closed'] = $lang->project->statusList['closed'];
|
||||
$lang->execution->featureBar['all']['all'] = $lang->execution->all;
|
||||
$lang->execution->featureBar['all']['undone'] = $lang->execution->undone;
|
||||
$lang->execution->featureBar['all']['wait'] = $lang->execution->statusList['wait'];
|
||||
$lang->execution->featureBar['all']['doing'] = $lang->execution->statusList['doing'];
|
||||
$lang->execution->featureBar['all']['suspended'] = $lang->execution->statusList['suspended'];
|
||||
$lang->execution->featureBar['all']['closed'] = $lang->execution->statusList['closed'];
|
||||
|
||||
$lang->project->treeLevel = array();
|
||||
$lang->project->treeLevel['all'] = '全部展开';
|
||||
$lang->project->treeLevel['root'] = '全部折叠';
|
||||
$lang->project->treeLevel['task'] = '全部显示';
|
||||
$lang->project->treeLevel['story'] = "只看{$lang->SRCommon}";
|
||||
$lang->execution->treeLevel = array();
|
||||
$lang->execution->treeLevel['all'] = '全部展开';
|
||||
$lang->execution->treeLevel['root'] = '全部折叠';
|
||||
$lang->execution->treeLevel['task'] = '全部显示';
|
||||
$lang->execution->treeLevel['story'] = "只看{$lang->SRCommon}";
|
||||
|
||||
$lang->execution->action = new stdclass();
|
||||
$lang->execution->action->opened = '$date, 由 <strong>$actor</strong> 创建。$extra' . "\n";
|
||||
$lang->execution->action->managed = '$date, 由 <strong>$actor</strong> 维护。$extra' . "\n";
|
||||
$lang->execution->action->edited = '$date, 由 <strong>$actor</strong> 编辑。$extra' . "\n";
|
||||
$lang->execution->action->extra = '相关产品为 %s。';
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
class projectModel extends model
|
||||
class executionModel extends model
|
||||
{
|
||||
/* The members every linking. */
|
||||
const LINK_MEMBERS_ONE_TIME = 20;
|
||||
|
||||
+24
-154
@@ -15,6 +15,7 @@ class program extends control
|
||||
parent::__construct($moduleName, $methodName);
|
||||
$this->loadModel('project');
|
||||
$this->loadModel('group');
|
||||
$this->loadModel('execution');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,10 +43,9 @@ class program extends control
|
||||
*/
|
||||
public function browse($status = 'all', $orderBy = 'order_asc')
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->mainMenuAction = html::a('javascript:history.go(-1);', '<i class="icon icon-back"></i> ' . $this->lang->goback, '', "class='btn btn-link'");
|
||||
|
||||
if(common::hasPriv('program', 'create')) $this->lang->pageActions = html::a($this->createLink('program', 'create'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->program->PGMCreate, '', "class='btn btn-secondary'");
|
||||
if(common::hasPriv('program', 'create')) $this->lang->pageActions = html::a($this->createLink('program', 'create'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->program->create, '', "class='btn btn-secondary'");
|
||||
|
||||
$this->app->session->set('programList', $this->app->getURI(true));
|
||||
|
||||
@@ -68,8 +68,8 @@ class program extends control
|
||||
}
|
||||
$PMList = $this->loadModel('user')->getListByAccounts($accounts, 'account');
|
||||
|
||||
$this->view->title = $this->lang->program->PGMBrowse;
|
||||
$this->view->position[] = $this->lang->program->PGMBrowse;
|
||||
$this->view->title = $this->lang->program->browse;
|
||||
$this->view->position[] = $this->lang->program->browse;
|
||||
|
||||
$this->view->programs = $programs;
|
||||
$this->view->status = $status;
|
||||
@@ -101,7 +101,6 @@ class program extends control
|
||||
$program = $this->program->getPGMByID($programID);
|
||||
if(empty($program) || $program->type != 'program') die(js::error($this->lang->notFound) . js::locate('back'));
|
||||
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
|
||||
$this->lang->program->mainMenuAction = $this->program->getPGMMainAction();
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
@@ -118,8 +117,8 @@ class program extends control
|
||||
$programID = current($path);
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->program->PGMProduct;
|
||||
$this->view->position[] = $this->lang->program->PGMProduct;
|
||||
$this->view->title = $this->lang->program->product;
|
||||
$this->view->position[] = $this->lang->program->product;
|
||||
$this->view->program = $program;
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->orderBy = $orderBy;
|
||||
@@ -139,29 +138,27 @@ class program extends control
|
||||
*/
|
||||
public function create($parentProgramID = 0)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
|
||||
$parentProgram = $this->program->getPGMByID($parentProgramID);
|
||||
|
||||
if($_POST)
|
||||
{
|
||||
$projectID = $this->program->PGMCreate();
|
||||
$projectID = $this->program->create();
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$this->loadModel('action')->create('program', $projectID, 'opened');
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browse')));
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->program->PGMCreate;
|
||||
$this->view->position[] = $this->lang->program->PGMCreate;
|
||||
$this->view->title = $this->lang->program->create;
|
||||
$this->view->position[] = $this->lang->program->create;
|
||||
|
||||
$this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst');
|
||||
$this->view->poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst');
|
||||
$this->view->users = $this->user->getPairs('noclosed|nodeleted');
|
||||
$this->view->parentProgram = $parentProgram;
|
||||
$this->view->parents = $this->program->getParentPairs();
|
||||
$this->view->PGMList = $this->program->getPGMList();
|
||||
$this->view->budgetUnitList = $this->program->getBudgetUnitList();
|
||||
$this->view->programList = $this->program->getPGMList();
|
||||
$this->view->budgetUnitList = $this->project->getBudgetUnitList();
|
||||
$this->view->availableBudget = $this->program->getAvailableBudget($parentProgram);
|
||||
|
||||
$this->display();
|
||||
@@ -176,11 +173,9 @@ class program extends control
|
||||
*/
|
||||
public function edit($programID = 0)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
|
||||
if($_POST)
|
||||
{
|
||||
$changes = $this->program->PGMUpdate($programID);
|
||||
$changes = $this->program->update($programID);
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
if($changes)
|
||||
{
|
||||
@@ -188,7 +183,7 @@ class program extends control
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('PGMBrowse')));
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('browse')));
|
||||
}
|
||||
|
||||
$program = $this->program->getPGMByID($programID);
|
||||
@@ -196,15 +191,15 @@ class program extends control
|
||||
$parents = $this->program->getParentPairs();
|
||||
unset($parents[$programID]);
|
||||
|
||||
$this->view->title = $this->lang->program->PGMEdit;
|
||||
$this->view->position[] = $this->lang->program->PGMEdit;
|
||||
$this->view->title = $this->lang->program->edit;
|
||||
$this->view->position[] = $this->lang->program->edit;
|
||||
|
||||
$this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $program->PM);
|
||||
$this->view->poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst');
|
||||
$this->view->users = $this->user->getPairs('noclosed|nodeleted');
|
||||
$this->view->program = $program;
|
||||
$this->view->parents = $parents;
|
||||
$this->view->PGMList = $this->program->getPGMList();
|
||||
$this->view->programList = $this->program->getPGMList();
|
||||
$this->view->budgetUnitList = $this->program->getBudgetUnitList();
|
||||
$this->view->parentProgram = $parentProgram;
|
||||
$this->view->availableBudget = $this->program->getAvailableBudget($parentProgram) + (float)$program->budget;
|
||||
@@ -221,7 +216,6 @@ class program extends control
|
||||
*/
|
||||
public function close($programID)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->loadModel('action');
|
||||
$program = $this->program->getPGMByID($programID);
|
||||
|
||||
@@ -262,7 +256,6 @@ class program extends control
|
||||
*/
|
||||
public function start($programID)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->loadModel('action');
|
||||
|
||||
if(!empty($_POST))
|
||||
@@ -296,7 +289,6 @@ class program extends control
|
||||
*/
|
||||
public function activate($programID = 0)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->loadModel('action');
|
||||
$program = $this->program->getPGMByID($programID);
|
||||
|
||||
@@ -336,7 +328,6 @@ class program extends control
|
||||
*/
|
||||
public function suspend($programID)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->loadModel('action');
|
||||
|
||||
if(!empty($_POST))
|
||||
@@ -399,13 +390,12 @@ class program extends control
|
||||
public function project($programID = 0, $browseType = 'doing', $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$programID = $this->program->savePGMState($programID, $this->program->getPGMPairs());
|
||||
if(!$programID) $this->locate($this->createLink('program', 'PGMbrowse'));
|
||||
if(!$programID) $this->locate($this->createLink('program', 'browse'));
|
||||
setCookie("lastPGM", $programID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
|
||||
$this->app->session->set('PGMProject', $this->app->getURI(true));
|
||||
$this->app->session->set('projectList', $this->app->getURI(true));
|
||||
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
|
||||
$this->lang->program->mainMenuAction = $this->program->getPGMMainAction();
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
@@ -421,8 +411,8 @@ class program extends control
|
||||
$sortField = zget($this->config->program->sortFields, $order[0], 'id') . '_' . $order[1];
|
||||
$projectStats = $this->program->getPRJStats($programID, $browseType, 0, $sortField, $pager, $programTitle);
|
||||
|
||||
$this->view->title = $this->lang->program->PGMProject;
|
||||
$this->view->position[] = $this->lang->program->PGMProject;
|
||||
$this->view->title = $this->lang->program->project;
|
||||
$this->view->position[] = $this->lang->program->project;
|
||||
|
||||
$this->view->projectStats = $projectStats;
|
||||
$this->view->pager = $pager;
|
||||
@@ -448,7 +438,6 @@ class program extends control
|
||||
*/
|
||||
public function stakeholder($programID = 0, $orderBy = 't1.id_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
|
||||
$this->lang->program->mainMenuAction = $this->program->getPGMMainAction();
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
@@ -457,8 +446,8 @@ class program extends control
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager(0, $recPerPage, $pageID);
|
||||
|
||||
$this->view->title = $this->lang->program->PGMStakeholder;
|
||||
$this->view->position[] = $this->lang->program->PGMStakeholder;
|
||||
$this->view->title = $this->lang->program->stakeholder;
|
||||
$this->view->position[] = $this->lang->program->stakeholder;
|
||||
|
||||
$this->view->stakeholders = $this->program->getStakeholders($programID, $orderBy, $pager);
|
||||
$this->view->pager = $pager;
|
||||
@@ -482,11 +471,10 @@ class program extends control
|
||||
if($_POST)
|
||||
{
|
||||
$this->program->createStakeholder($programID);
|
||||
die(js::locate($this->createLink('program', 'PGMStakeholder', "programID=$programID"), 'parent'));
|
||||
die(js::locate($this->createLink('program', 'stakeholder', "programID=$programID"), 'parent'));
|
||||
}
|
||||
|
||||
$this->loadModel('user');
|
||||
$this->lang->navGroup->program = 'program';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
|
||||
$this->lang->program->mainMenuAction = $this->program->getPGMMainAction();
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
@@ -654,35 +642,6 @@ class program extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax get project drop menu.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $module
|
||||
* @param string $method
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxGetPRJDropMenu($projectID = 0, $module, $method)
|
||||
{
|
||||
$closedProjects = $this->program->getPRJList(0, 'closed', 0, 'id_desc');
|
||||
|
||||
$closedProjectNames = array();
|
||||
foreach($closedProjects as $project) $closedProjectNames = common::convert2Pinyin($closedProjectNames);
|
||||
|
||||
$closedProjectsHtml = '';
|
||||
foreach($closedProjects as $project) $closedProjectsHtml .= html::a($this->createLink('program', 'index', '', '', '', $project->id), '<i class="icon icon-menu-doc"></i>' . $project->name);
|
||||
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->module = $module;
|
||||
$this->view->method = $method;
|
||||
|
||||
$this->view->normalProjectsHtml = $this->program->getPRJTreeMenu(0, array('programmodel', 'createPRJManageLink'), 0, 'dropmenu');
|
||||
$this->view->closedProjectsHtml = $closedProjectsHtml;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax get projects.
|
||||
*
|
||||
@@ -742,31 +701,6 @@ class program extends control
|
||||
$this->send(array('result' => 'success'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Project index view.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function index($projectID = 0)
|
||||
{
|
||||
$this->lang->navGroup->program = 'project';
|
||||
$projectID = $this->program->savePRJState($projectID, $this->program->getPRJPairs());
|
||||
|
||||
$project = $this->program->getPRJByID($projectID);
|
||||
if(empty($project) || $project->type != 'project') die(js::error($this->lang->notFound) . js::locate('back'));
|
||||
|
||||
if(!$projectID) $this->locate($this->createLink('program', 'PRJbrowse'));
|
||||
setCookie("lastPRJ", $projectID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
|
||||
$this->view->title = $this->lang->program->common . $this->lang->colon . $this->lang->program->PRJIndex;
|
||||
$this->view->position[] = $this->lang->program->PRJIndex;
|
||||
$this->view->project = $project;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/*
|
||||
* Removing users from the white list.
|
||||
*
|
||||
@@ -775,9 +709,9 @@ class program extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function unbindWhielist($id = 0, $confirm = 'no')
|
||||
public function unbindWhitelist($id = 0, $confirm = 'no')
|
||||
{
|
||||
echo $this->fetch('personnel', 'unbindWhielist', "id=$id&confirm=$confirm");
|
||||
echo $this->fetch('personnel', 'unbindWhitelist', "id=$id&confirm=$confirm");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -794,68 +728,4 @@ class program extends control
|
||||
|
||||
echo $this->fetch('program', 'PGMProduct', "programID=$programID");
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX: Check products.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxCheckProduct($programID, $projectID)
|
||||
{
|
||||
/* Set vars. */
|
||||
$project = $this->program->getPRJByID($projectID);
|
||||
$oldTopPGM = $this->program->getTopPGMByID($project->parent);
|
||||
$newTopPGM = $this->program->getTopPGMByID($programID);
|
||||
|
||||
if($oldTopPGM == $newTopPGM) die();
|
||||
|
||||
$response = array();
|
||||
$response['result'] = true;
|
||||
$response['message'] = $this->lang->program->changeProgramTip;
|
||||
|
||||
$multiLinkedProducts = $this->program->getMultiLinkedProducts($projectID);
|
||||
if($multiLinkedProducts)
|
||||
{
|
||||
$multiLinkedProjects = array();
|
||||
foreach($multiLinkedProducts as $productID => $product)
|
||||
{
|
||||
$multiLinkedProjects[$productID] = $this->loadModel('product')->getProjectPairsByProduct($productID);
|
||||
}
|
||||
$response['result'] = false;
|
||||
$response['message'] = $multiLinkedProducts;
|
||||
$response['multiLinkedProjects'] = $multiLinkedProjects;
|
||||
}
|
||||
die(json_encode($response));
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjust the navigation.
|
||||
*
|
||||
* @param string $from
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function adjustNavigation($from = '', $programID = 0)
|
||||
{
|
||||
if($from == 'browse') $this->lang->navGroup->program = 'program';
|
||||
|
||||
if($from == 'PRJ')
|
||||
{
|
||||
$this->lang->navGroup->program = 'project';
|
||||
$this->lang->program->menu = $this->lang->scrum->setMenu;
|
||||
$moduleIndex = array_search('program', $this->lang->noMenuModule);
|
||||
if($moduleIndex !== false) unset($this->lang->noMenuModule[$moduleIndex]);
|
||||
}
|
||||
|
||||
if($from == 'project')
|
||||
{
|
||||
$this->app->rawMethod = 'project';
|
||||
$this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true);
|
||||
$this->program->setPGMViewMenu($programID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+66
-278
@@ -1,178 +1,62 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = 'Select Template';
|
||||
$lang->program->PRJIndex = 'Dashboard';
|
||||
$lang->program->PRJHome = 'Home';
|
||||
$lang->program->PRJCreate = 'Create Project';
|
||||
$lang->program->PRJEdit = 'Edit';
|
||||
$lang->program->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->program->PRJView = 'Project View';
|
||||
$lang->program->batchEdit = 'Batch Edit';
|
||||
$lang->program->PRJBrowse = 'Projects';
|
||||
$lang->program->PRJAll = 'All';
|
||||
$lang->program->PRJStart = 'Start';
|
||||
$lang->program->PRJFinish = 'Finish';
|
||||
$lang->program->PRJSuspend = 'Suspend';
|
||||
$lang->program->PRJDelete = 'Delete';
|
||||
$lang->program->PRJClose = 'Close';
|
||||
$lang->program->PRJActivate = 'Activate';
|
||||
$lang->program->PRJGroup = 'Privilege Group';
|
||||
$lang->program->PRJCreateGroup = 'Create Group';
|
||||
$lang->program->PRJEditGroup = 'Edit Group';
|
||||
$lang->program->PRJCopyGroup = 'Copy Group';
|
||||
$lang->program->PRJManageView = 'Manage View';
|
||||
$lang->program->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->program->PRJManageMembers = 'Manage Team';
|
||||
$lang->program->export = 'Export';
|
||||
$lang->program->addProduct = 'Add Product';
|
||||
$lang->program->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->program->PRJModuleSetting = 'List Settings';
|
||||
$lang->program->PRJModuleOpen = 'Program Name';
|
||||
$lang->program->PRJUpdateOrder = 'Order';
|
||||
$lang->program->PRJSort = 'Order';
|
||||
$lang->program->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->program->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->program->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->program->PRJManageProducts = 'Manage Products';
|
||||
$lang->program->view = 'Program Detail';
|
||||
$lang->program->copyTitle = 'Please select an project to copy';
|
||||
$lang->program->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->program->errorNoProducts = 'At least one product is associated';
|
||||
$lang->program->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->searchByName = 'Enter the project name to retrieve';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = 'Program';
|
||||
$lang->program->project = 'Project';
|
||||
$lang->program->stage = 'Stage';
|
||||
$lang->program->PM = 'Manager';
|
||||
$lang->program->PRJName = 'Name';
|
||||
$lang->program->PRJCategory = 'Category';
|
||||
$lang->program->PRJDesc = 'Description';
|
||||
$lang->program->PRJCode = 'Code';
|
||||
$lang->program->PRJCopy = 'Copy';
|
||||
$lang->program->begin = 'Begin';
|
||||
$lang->program->end = 'End';
|
||||
$lang->program->PRJStatus = 'Status';
|
||||
$lang->program->PRJPM = 'Manager';
|
||||
$lang->program->PRJBudget = 'Budget';
|
||||
$lang->program->PRJTemplate = 'Template';
|
||||
$lang->program->PRJEstimate = 'Estimates';
|
||||
$lang->program->PRJConsume = 'Cost';
|
||||
$lang->program->PRJSurplus = 'Left';
|
||||
$lang->program->PRJProgress = 'Progress';
|
||||
$lang->program->dateRange = 'Duration';
|
||||
$lang->program->to = ' to ';
|
||||
$lang->program->realEnd = 'Actual End';
|
||||
$lang->program->realBegan = 'Actual Began';
|
||||
$lang->program->bygrid = 'Kanban';
|
||||
$lang->program->bylist = 'List';
|
||||
$lang->program->mine = 'My';
|
||||
$lang->program->setPlanduration = 'Set Duration';
|
||||
$lang->program->auth = 'Access Control';
|
||||
$lang->program->durationEstimation = 'Estimated Workload';
|
||||
$lang->program->teamCount = 'Man';
|
||||
$lang->program->leftStories = 'Left Stories';
|
||||
$lang->program->leftTasks = 'Left Tasks';
|
||||
$lang->program->leftBugs = 'Left Bugs';
|
||||
$lang->program->PRJChildren = 'Child Project';
|
||||
$lang->program->PRJParent = 'Parent Project';
|
||||
$lang->program->allStories = 'All Stories';
|
||||
$lang->program->doneStories = 'Finished Stories';
|
||||
$lang->program->allInput = 'Total Input';
|
||||
$lang->program->weekly = 'Program Weekly';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = 'Team';
|
||||
$lang->program->PRJLongTime = 'Long-Term Project';
|
||||
$lang->program->future = 'TBD';
|
||||
$lang->program->morePRJ = 'More Project';
|
||||
$lang->program->name = 'Name';
|
||||
$lang->program->template = 'Template';
|
||||
$lang->program->category = 'Type';
|
||||
$lang->program->desc = 'Description';
|
||||
$lang->program->copy = 'Copy Program';
|
||||
$lang->program->status = 'Status';
|
||||
$lang->program->PM = 'Manager';
|
||||
$lang->program->budget = 'Budget';
|
||||
$lang->program->progress = 'Progress';
|
||||
$lang->program->children = 'Child';
|
||||
$lang->program->parent = 'Parent';
|
||||
$lang->program->allInput = 'Input';
|
||||
$lang->program->teamCount = 'Team';
|
||||
$lang->program->longTime = 'Long-Term';
|
||||
|
||||
$lang->program->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->program->existProductName = 'Product name already exists.';
|
||||
$lang->program->changeProgram = '%s > Change program';
|
||||
$lang->program->changeProgramTip = 'After modifying the program set, the products linked with the project will also modify the program set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->program->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->program->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
/* Actions. */
|
||||
$lang->program->common = 'Program';
|
||||
$lang->program->index = 'Home';
|
||||
$lang->program->create = 'Create Program';
|
||||
$lang->program->createGuide = 'Select Template';
|
||||
$lang->program->edit = 'Edit Program';
|
||||
$lang->program->browse = 'Programs';
|
||||
$lang->program->product = 'Products';
|
||||
$lang->program->project = 'Program Project List';
|
||||
$lang->program->all = 'All Programs';
|
||||
$lang->program->start = 'Start';
|
||||
$lang->program->finish = 'Finish';
|
||||
$lang->program->suspend = 'Suspend';
|
||||
$lang->program->delete = 'Delete';
|
||||
$lang->program->close = 'Close';
|
||||
$lang->program->activate = 'Activate';
|
||||
$lang->program->export = 'Export';
|
||||
$lang->program->stakeholder = 'Stakeholder';
|
||||
$lang->program->createStakeholder = 'Create Stakeholder';
|
||||
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->program->unlink = 'Unlink';
|
||||
$lang->program->moreProgram = 'More program';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->program->stakeholderType = 'Stakeholder type';
|
||||
$lang->program->isStakeholderKey = 'Key stakeholder';
|
||||
$lang->program->importStakeholder = 'Import program';
|
||||
$lang->program->manageMembers = 'Program Team';
|
||||
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
|
||||
$lang->program->parentBudget = 'Parent program surplus budget:';
|
||||
$lang->program->beginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->program->endGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$lang->program->beginGreateChild = "Child earliest begin: %s, parent begin date < = child earliest begin date.";
|
||||
$lang->program->endLetterChild = "Child latest end: %s, parent end date > = child latest end date.";
|
||||
$lang->program->closeErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
|
||||
$lang->program->tenThousand = '';
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
$lang->program->unitList['CNY'] = 'RMB';
|
||||
$lang->program->unitList['USD'] = 'USD';
|
||||
$lang->program->unitList['HKD'] = 'HKD';
|
||||
$lang->program->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->program->unitList['EUR'] = 'Euro';
|
||||
$lang->program->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->program->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->program->unitList['FRF'] = 'French Franc';
|
||||
$lang->program->unitList['GBP'] = 'Pound';
|
||||
$lang->program->unitList['NLG'] = 'Florin';
|
||||
$lang->program->unitList['CAD'] = 'Canadian';
|
||||
$lang->program->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->program->unitList['INR'] = 'Indian';
|
||||
$lang->program->unitList['AUD'] = 'Australian';
|
||||
$lang->program->unitList['NZD'] = 'New Zealand';
|
||||
$lang->program->unitList['THB'] = 'Thai Baht';
|
||||
$lang->program->unitList['SGD'] = 'Singapore';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "CMMI";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "Single product";
|
||||
$lang->program->PRJCategoryList['multiple'] = "Multiple products";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->program->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "DevOps";
|
||||
|
||||
$lang->program->featureBar['all'] = 'All';
|
||||
$lang->program->featureBar['doing'] = 'Going';
|
||||
$lang->program->featureBar['wait'] = 'Waiting';
|
||||
$lang->program->featureBar['suspended'] = 'Suspended';
|
||||
$lang->program->featureBar['closed'] = 'Closed';
|
||||
|
||||
$lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->program->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = 'Private';
|
||||
$lang->program->PRJAcls['open'] = "Open";
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->program->PGMPRJAclList['program'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "Private";
|
||||
$lang->program->PGMPRJAcls['program'] = "Public within the project set";
|
||||
$lang->program->PGMPRJAcls['open'] = "Full disclosure";
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
|
||||
$lang->program->statusList['wait'] = 'Waiting';
|
||||
$lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
$lang->program->noProgram = 'No program.';
|
||||
$lang->program->showClosed = 'Closed programs.';
|
||||
$lang->program->tips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
|
||||
$lang->program->endList[31] = 'One month';
|
||||
$lang->program->endList[93] = 'Trimester';
|
||||
@@ -180,115 +64,19 @@ $lang->program->endList[186] = 'Half yearly';
|
||||
$lang->program->endList[365] = 'One year';
|
||||
$lang->program->endList[999] = 'Longtime';
|
||||
|
||||
$lang->program->noPRJ = 'No project.';
|
||||
$lang->program->accessDenied = 'Access denied!';
|
||||
$lang->program->chooseProgramType = 'Select the project management model';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s men';
|
||||
$lang->program->lastIteration = 'Recent iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = 'CMMI';
|
||||
$lang->program->waterfallTitle = 'CMMI';
|
||||
$lang->program->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->program->emptyPM = 'No manager';
|
||||
$lang->program->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->program->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->program->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->program->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
$lang->program->aclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->aclList['open'] = "Default(user who can visit the program can access it)";
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
|
||||
$lang->program->PRJProgramTitle['end'] = 'End-level program only';
|
||||
$lang->program->subAclList['private'] = "Private (accessible to this program set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->subAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->program->subAclList['program'] = "Open within the program (accessible to all higher-level program directors and affiliates, as well as to this program director and affiliates)";
|
||||
|
||||
$lang->program->PRJAccessDenied = 'Access denied to this program';
|
||||
$lang->program->PRJChooseProgramType = 'Select management type';
|
||||
$lang->program->scrumTitle = 'Agile Development Management';
|
||||
$lang->program->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->program->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->program->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->program->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->program->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->program->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->program->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->program->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->program->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the program set.";
|
||||
$lang->program->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the program set.";
|
||||
$lang->program->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
$lang->program->authList['extend'] = 'Inherit(program privileges and company privileges)';
|
||||
$lang->program->authList['reset'] = 'Reset(program privileges only)';
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = 'Program';
|
||||
$lang->program->PGMIndex = 'Home';
|
||||
$lang->program->PGMCreate = 'Create Program';
|
||||
$lang->program->PGMCreateGuide = 'Select Template';
|
||||
$lang->program->PGMEdit = 'Edit Program';
|
||||
$lang->program->PGMBrowse = 'Programs';
|
||||
$lang->program->PGMProduct = 'Products';
|
||||
$lang->program->PGMProject = 'Program Project List';
|
||||
$lang->program->PGMAll = 'All Programs';
|
||||
$lang->program->PGMStart = 'Start';
|
||||
$lang->program->PGMFinish = 'Finish';
|
||||
$lang->program->PGMSuspend = 'Suspend';
|
||||
$lang->program->PGMDelete = 'Delete';
|
||||
$lang->program->PGMClose = 'Close';
|
||||
$lang->program->PGMActivate = 'Activate';
|
||||
$lang->program->PGMExport = 'Export';
|
||||
$lang->program->PGMStakeholder = 'Stakeholder';
|
||||
$lang->program->createStakeholder = 'Create Stakeholder';
|
||||
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->program->unlink = 'Unlink';
|
||||
$lang->program->morePGM = 'More program';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$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 surplus budget:';
|
||||
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
|
||||
$lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$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->PGMCloseErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->program->statusList['wait'] = 'Waiting';
|
||||
$lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = 'Name';
|
||||
$lang->program->PGMTemplate = 'Template';
|
||||
$lang->program->PGMCategory = 'Type';
|
||||
$lang->program->PGMDesc = 'Description';
|
||||
$lang->program->PGMCopy = 'Copy Program';
|
||||
$lang->program->PGMStatus = 'Status';
|
||||
$lang->program->PGMPM = 'Manager';
|
||||
$lang->program->PGMBudget = 'Budget';
|
||||
$lang->program->PGMProgress = 'Progress';
|
||||
$lang->program->PGMChildren = 'Child';
|
||||
$lang->program->PGMParent = 'Parent';
|
||||
$lang->program->PGMAllInput = 'Input';
|
||||
$lang->program->PGMTeamCount = 'Team';
|
||||
$lang->program->PGMLongTime = 'Long-Term';
|
||||
|
||||
$lang->program->noPGM = 'No program.';
|
||||
$lang->program->PGMShowClosed = 'Closed programs.';
|
||||
$lang->program->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->PGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "Private (accessible to this program set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->subPGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->program->subPGMAclList['program'] = "Open within the program (accessible to all higher-level program directors and affiliates, as well as to this program director and affiliates)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = 'Inherit(program privileges and company privileges)';
|
||||
$lang->program->PGMAuthList['reset'] = 'Reset(program privileges only)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = 'All';
|
||||
$lang->program->featureBar['all'] = 'All';
|
||||
|
||||
+66
-278
@@ -1,178 +1,62 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = '选择项目模板';
|
||||
$lang->program->PRJIndex = '项目仪表盘';
|
||||
$lang->program->PRJHome = '项目主页';
|
||||
$lang->program->PRJCreate = '创建项目';
|
||||
$lang->program->PRJEdit = '编辑项目';
|
||||
$lang->program->PRJBatchEdit = '批量编辑项目';
|
||||
$lang->program->PRJView = '项目概况';
|
||||
$lang->program->batchEdit = '批量编辑';
|
||||
$lang->program->PRJBrowse = '项目列表';
|
||||
$lang->program->PRJAll = '所有项目';
|
||||
$lang->program->PRJStart = '启动项目';
|
||||
$lang->program->PRJFinish = '完成项目';
|
||||
$lang->program->PRJSuspend = '挂起项目';
|
||||
$lang->program->PRJDelete = '删除项目';
|
||||
$lang->program->PRJClose = '关闭项目';
|
||||
$lang->program->PRJActivate = '激活项目';
|
||||
$lang->program->PRJGroup = '项目权限分组';
|
||||
$lang->program->PRJCreateGroup = '项目创建分组';
|
||||
$lang->program->PRJEditGroup = '项目编辑分组';
|
||||
$lang->program->PRJCopyGroup = '项目复制分组';
|
||||
$lang->program->PRJManageView = '项目维护视野';
|
||||
$lang->program->PRJManagePriv = '项目维护权限';
|
||||
$lang->program->PRJManageMembers = '项目团队';
|
||||
$lang->program->export = '导出';
|
||||
$lang->program->addProduct = '新建产品';
|
||||
$lang->program->PRJManageGroupMember = '维护分组用户';
|
||||
$lang->program->PRJModuleSetting = '列表设置';
|
||||
$lang->program->PRJModuleOpen = '显示项目集名';
|
||||
$lang->program->PRJUpdateOrder = '排序';
|
||||
$lang->program->PRJSort = '项目排序';
|
||||
$lang->program->PRJWhitelist = '项目白名单';
|
||||
$lang->program->PRJAddWhitelist = '项目添加白名单';
|
||||
$lang->program->unbindWhielist = '项目删除白名单';
|
||||
$lang->program->PRJManageProducts = '关联产品';
|
||||
$lang->program->view = '项目集详情';
|
||||
$lang->program->copyTitle = '请选择要复制的项目';
|
||||
$lang->program->errorSameProducts = '项目不能关联多个相同的产品。';
|
||||
$lang->program->errorNoProducts = '最少关联一个产品';
|
||||
$lang->program->copyNoProject = '没有可用的项目来复制';
|
||||
$lang->project->searchByName = '输入项目名称进行检索';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = '项目集';
|
||||
$lang->program->project = '项目';
|
||||
$lang->program->stage = '阶段';
|
||||
$lang->program->PM = '负责人';
|
||||
$lang->program->PRJName = '项目名称';
|
||||
$lang->program->PRJCategory = '项目类型';
|
||||
$lang->program->PRJDesc = '项目描述';
|
||||
$lang->program->PRJCode = '项目代号';
|
||||
$lang->program->PRJCopy = '复制项目';
|
||||
$lang->program->begin = '计划开始';
|
||||
$lang->program->end = '计划完成';
|
||||
$lang->program->PRJStatus = '项目状态';
|
||||
$lang->program->PRJPM = '项目负责人';
|
||||
$lang->program->PRJBudget = '项目预算';
|
||||
$lang->program->PRJTemplate = '项目模板';
|
||||
$lang->program->PRJEstimate = '预计';
|
||||
$lang->program->PRJConsume = '消耗';
|
||||
$lang->program->PRJSurplus = '剩余';
|
||||
$lang->program->PRJProgress = '进度';
|
||||
$lang->program->dateRange = '起止日期';
|
||||
$lang->program->to = '至';
|
||||
$lang->program->realEnd = '实际完成日期';
|
||||
$lang->program->realBegan = '实际开始日期';
|
||||
$lang->program->bygrid = '看板';
|
||||
$lang->program->bylist = '列表';
|
||||
$lang->program->mine = '我参与的';
|
||||
$lang->program->setPlanduration = '设置工期';
|
||||
$lang->program->auth = '权限控制';
|
||||
$lang->program->durationEstimation = '工作量估算';
|
||||
$lang->program->teamCount = '人数';
|
||||
$lang->program->leftStories = '剩余需求';
|
||||
$lang->program->leftTasks = '剩余任务';
|
||||
$lang->program->leftBugs = '剩余Bug';
|
||||
$lang->program->PRJChildren = '子项目';
|
||||
$lang->program->PRJParent = '父项目';
|
||||
$lang->program->allStories = '总需求';
|
||||
$lang->program->doneStories = '已完成';
|
||||
$lang->program->allInput = '项目总投入';
|
||||
$lang->program->weekly = '项目周报';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = '项目成员';
|
||||
$lang->program->PRJLongTime = '长期';
|
||||
$lang->program->future = '待定';
|
||||
$lang->program->morePRJ = '更多项目';
|
||||
$lang->program->name = '项目集名称';
|
||||
$lang->program->template = '项目集模板';
|
||||
$lang->program->category = '项目集类型';
|
||||
$lang->program->desc = '项目集描述';
|
||||
$lang->program->copy = '复制项目集';
|
||||
$lang->program->status = '状态';
|
||||
$lang->program->PM = '负责人';
|
||||
$lang->program->budget = '预算';
|
||||
$lang->program->progress = '项目进度';
|
||||
$lang->program->children = '子项目集';
|
||||
$lang->program->parent = '父项目集';
|
||||
$lang->program->allInput = '项目集总投入';
|
||||
$lang->program->teamCount = '项目集成员';
|
||||
$lang->program->longTime = '长期项目';
|
||||
|
||||
$lang->program->productNotEmpty = '请关联产品或创建产品。';
|
||||
$lang->program->existProductName = '产品名称已存在。';
|
||||
$lang->program->changeProgram = '%s > 修改项目集';
|
||||
$lang->program->changeProgramTip = '修改项目集后,该项目关联的产品也会同时修改所属项目集,请确认是否修改。';
|
||||
$lang->program->linkedProjectsTip = '关联的项目如下';
|
||||
$lang->program->multiLinkedProductsTip = '该项目关联的如下产品还关联了其他项目,请取消关联后再操作';
|
||||
/* Actions. */
|
||||
$lang->program->common = '项目集';
|
||||
$lang->program->index = '项目集主页';
|
||||
$lang->program->create = '添加项目集';
|
||||
$lang->program->createGuide = '选择项目模板';
|
||||
$lang->program->edit = '编辑项目集';
|
||||
$lang->program->browse = '项目集列表';
|
||||
$lang->program->product = '产品列表';
|
||||
$lang->program->project = '项目集项目列表';
|
||||
$lang->program->all = '所有项目集';
|
||||
$lang->program->start = '启动项目集';
|
||||
$lang->program->finish = '完成项目集';
|
||||
$lang->program->suspend = '挂起项目集';
|
||||
$lang->program->delete = '删除项目集';
|
||||
$lang->program->close = '关闭项目集';
|
||||
$lang->program->activate = '激活项目集';
|
||||
$lang->program->export = '导出';
|
||||
$lang->program->stakeholder = '干系人列表';
|
||||
$lang->program->createStakeholder = '添加干系人';
|
||||
$lang->program->unlinkStakeholder = '移除干系人';
|
||||
$lang->program->batchUnlinkStakeholders = '批量移除干系人';
|
||||
$lang->program->unlink = '移除';
|
||||
$lang->program->moreProgram = '更多项目集';
|
||||
$lang->program->confirmBatchUnlink = "您确定要批量移除这些干系人吗?";
|
||||
$lang->program->stakeholderType = '干系人类型';
|
||||
$lang->program->isStakeholderKey = '关键干系人';
|
||||
$lang->program->importStakeholder = '从父项目集导入';
|
||||
$lang->program->manageMembers = '项目集团队';
|
||||
$lang->program->beyondParentBudget = '已超出所属项目集的剩余预算';
|
||||
$lang->program->parentBudget = '所属项目集剩余预算:';
|
||||
$lang->program->beginLetterParent = "父项目集的开始日期:%s,开始日期不能小于父项目集的开始日期";
|
||||
$lang->program->endGreaterParent = "父项目集的完成日期:%s,完成日期不能大于父项目集的完成日期";
|
||||
$lang->program->beginGreateChild = "子项目集的最小开始日期:%s,父项目集的开始日期不能大于子项目集的最小开始日期";
|
||||
$lang->program->endLetterChild = "子项目的最大完成日期:%s,父项目的完成日期不能小于子项目的最大完成日期";
|
||||
$lang->program->closeErrorMessage = '存在子项目集或项目为未关闭状态';
|
||||
|
||||
$lang->program->tenThousand = '万';
|
||||
$lang->program->stakeholderTypeList['inside'] = '内部';
|
||||
$lang->program->stakeholderTypeList['outside'] = '外部';
|
||||
|
||||
$lang->program->unitList['CNY'] = '人民币';
|
||||
$lang->program->unitList['USD'] = '美元';
|
||||
$lang->program->unitList['HKD'] = '港元';
|
||||
$lang->program->unitList['NTD'] = '台元';
|
||||
$lang->program->unitList['EUR'] = '欧元';
|
||||
$lang->program->unitList['DEM'] = '马克';
|
||||
$lang->program->unitList['CHF'] = '瑞士法郎';
|
||||
$lang->program->unitList['FRF'] = '法国法郎';
|
||||
$lang->program->unitList['GBP'] = '英镑';
|
||||
$lang->program->unitList['NLG'] = '荷兰盾';
|
||||
$lang->program->unitList['CAD'] = '加拿大元';
|
||||
$lang->program->unitList['RUR'] = '卢布';
|
||||
$lang->program->unitList['INR'] = '卢比';
|
||||
$lang->program->unitList['AUD'] = '澳大利亚元';
|
||||
$lang->program->unitList['NZD'] = '新西兰元';
|
||||
$lang->program->unitList['THB'] = '泰国铢';
|
||||
$lang->program->unitList['SGD'] = '新加坡元';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "瀑布";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "单产品项目";
|
||||
$lang->program->PRJCategoryList['multiple'] = "多产品项目";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "短期";
|
||||
$lang->program->PRJLifeTimeList['long'] = "长期";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "运维";
|
||||
|
||||
$lang->program->featureBar['all'] = '所有';
|
||||
$lang->program->featureBar['doing'] = '进行中';
|
||||
$lang->program->featureBar['wait'] = '未开始';
|
||||
$lang->program->featureBar['suspended'] = '已挂起';
|
||||
$lang->program->featureBar['closed'] = '已关闭';
|
||||
|
||||
$lang->program->PRJAclList['private'] = "私有(只有项目团队成员和干系人可访问)";
|
||||
$lang->program->PRJAclList['open'] = "公开(有项目视图权限即可访问)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = "私有";
|
||||
$lang->program->PRJAcls['open'] = "公开";
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "私有(只有项目团队成员和干系人可访问)";
|
||||
$lang->program->PGMPRJAclList['program'] = "项目集内公开(所有上级项目集负责人和干系人,本项目团队成员和干系人可访问)";
|
||||
$lang->program->PGMPRJAclList['open'] = "全部公开(有项目视图权限即可访问)";
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "私有";
|
||||
$lang->program->PGMPRJAcls['program'] = "项目集内公开";
|
||||
$lang->program->PGMPRJAcls['open'] = "全部公开";
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = '继承(取系统权限与项目权限的合集)';
|
||||
$lang->program->PRJAuthList['reset'] = '重新定义(只取项目权限)';
|
||||
|
||||
$lang->program->statusList['wait'] = '未开始';
|
||||
$lang->program->statusList['doing'] = '进行中';
|
||||
$lang->program->statusList['suspended'] = '已挂起';
|
||||
$lang->program->statusList['closed'] = '已关闭';
|
||||
$lang->program->noProgram = '暂时没有项目集';
|
||||
$lang->program->showClosed = '显示已关闭';
|
||||
$lang->program->tips = '选择了父项目集,则可关联该父项目集下的产品。如果项目未选择任何项目集,则系统会默认创建一个和该项目同名的产品并关联该项目。';
|
||||
|
||||
$lang->program->endList[31] = '一个月';
|
||||
$lang->program->endList[93] = '三个月';
|
||||
@@ -180,115 +64,19 @@ $lang->program->endList[186] = '半年';
|
||||
$lang->program->endList[365] = '一年';
|
||||
$lang->program->endList[999] = '长期';
|
||||
|
||||
$lang->program->noPRJ = '暂时没有项目';
|
||||
$lang->program->accessDenied = '您无权访问该项目!';
|
||||
$lang->program->chooseProgramType = '选中项目管理模型';
|
||||
$lang->program->nextStep = '下一步';
|
||||
$lang->program->hoursUnit = "%s 工时";
|
||||
$lang->program->membersUnit = '%s人';
|
||||
$lang->program->lastIteration = '近期迭代';
|
||||
$lang->program->ongoingStage = '进行中的阶段';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = '瀑布';
|
||||
$lang->program->waterfallTitle = '瀑布式项目管理';
|
||||
$lang->program->cannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->program->hasChildren = '该项目集有子项目集或项目存在,不能删除。';
|
||||
$lang->program->confirmDelete = "您确定要删除吗?";
|
||||
$lang->program->emptyPM = '暂无';
|
||||
$lang->program->cannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->program->cannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
$lang->program->parentBeginEnd = "父项目起止时间:%s ~ %s";
|
||||
$lang->program->childLongTime = "子项目中有长期项目,父项目也应该是长期项目";
|
||||
$lang->program->readjustTime = '重新调整项目起止时间';
|
||||
$lang->program->notAllowRemoveProducts = '该产品中的需求已与项目进行了关联,请取消关联后再操作。';
|
||||
$lang->program->aclList['private'] = "私有(项目集负责人和干系人可访问,干系人可后续维护)";
|
||||
$lang->program->aclList['open'] = "公开(有项目集视图权限,即可访问)";
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = '不显示';
|
||||
$lang->program->PRJProgramTitle['base'] = '只显示一级项目集';
|
||||
$lang->program->PRJProgramTitle['end'] = '只显示最后一级项目集';
|
||||
$lang->program->subAclList['private'] = "私有(本项目集负责人和干系人可访问,干系人可后续维护)";
|
||||
$lang->program->subAclList['open'] = "全部公开(有项目集视图权限,即可访问)";
|
||||
$lang->program->subAclList['program'] = "项目集内公开 (所有上级项目集负责人和干系人、本项目集负责人和干系人可访问)";
|
||||
|
||||
$lang->program->PRJAccessDenied = '您无权访问该项目!';
|
||||
$lang->program->PRJChooseProgramType = '选择项目管理方式';
|
||||
$lang->program->scrumTitle = '敏捷开发全流程项目管理';
|
||||
$lang->program->PRJCannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->program->PRJHasChildren = '该项目有子项目存在,不能删除。';
|
||||
$lang->program->PRJConfirmDelete = "您确定删除项目[%s]吗?";
|
||||
$lang->program->PRJCannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->program->PRJCannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
$lang->program->PRJParentBeginEnd = "父项目起止时间:%s ~ %s";
|
||||
$lang->program->PRJParentBudget = "父项目预算:%s";
|
||||
$lang->program->PRJBeginLetterParent = "父项目的开始日期:%s,开始日期不能小于父项目的开始日期";
|
||||
$lang->program->PRJEndGreaterParent = "父项目的完成日期:%s,完成日期不能大于父项目的完成日期";
|
||||
$lang->program->PRJBeginGreateChild = "项目集的最小开始日期:%s,项目的开始日期不能小于项目集的最小开始日期";
|
||||
$lang->program->PRJEndLetterChild = "项目集的最大完成日期:%s,项目的完成日期不能大于项目集的最大完成日期";
|
||||
$lang->program->PRJChildLongTime = "子项目中有长期项目,父项目也应该是长期项目";
|
||||
$lang->program->authList['extend'] = '继承(取项目权限与组织权限的并集)';
|
||||
$lang->program->authList['reset'] = '重新定义(只取项目权限)';
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = '项目集';
|
||||
$lang->program->PGMIndex = '项目集主页';
|
||||
$lang->program->PGMCreate = '添加项目集';
|
||||
$lang->program->PGMCreateGuide = '选择项目模板';
|
||||
$lang->program->PGMEdit = '编辑项目集';
|
||||
$lang->program->PGMBrowse = '项目集列表';
|
||||
$lang->program->PGMProduct = '产品列表';
|
||||
$lang->program->PGMProject = '项目集项目列表';
|
||||
$lang->program->PGMAll = '所有项目集';
|
||||
$lang->program->PGMStart = '启动项目集';
|
||||
$lang->program->PGMFinish = '完成项目集';
|
||||
$lang->program->PGMSuspend = '挂起项目集';
|
||||
$lang->program->PGMDelete = '删除项目集';
|
||||
$lang->program->PGMClose = '关闭项目集';
|
||||
$lang->program->PGMActivate = '激活项目集';
|
||||
$lang->program->PGMExport = '导出';
|
||||
$lang->program->PGMStakeholder = '干系人列表';
|
||||
$lang->program->createStakeholder = '添加干系人';
|
||||
$lang->program->unlinkStakeholder = '移除干系人';
|
||||
$lang->program->batchUnlinkStakeholders = '批量移除干系人';
|
||||
$lang->program->unlink = '移除';
|
||||
$lang->program->morePGM = '更多项目集';
|
||||
$lang->program->confirmBatchUnlink = "您确定要批量移除这些干系人吗?";
|
||||
$lang->program->stakeholderType = '干系人类型';
|
||||
$lang->program->isStakeholderKey = '关键干系人';
|
||||
$lang->program->importStakeholder = '从父项目集导入';
|
||||
$lang->program->PGMManageMembers = '项目集团队';
|
||||
$lang->program->PGMParentBudget = '所属项目集剩余预算:';
|
||||
$lang->program->beyondParentBudget = '已超出所属项目集的剩余预算';
|
||||
$lang->program->PGMBeginLetterParent = "父项目集的开始日期:%s,开始日期不能小于父项目集的开始日期";
|
||||
$lang->program->PGMEndGreaterParent = "父项目集的完成日期:%s,完成日期不能大于父项目集的完成日期";
|
||||
$lang->program->PGMBeginGreateChild = "子项目集的最小开始日期:%s,父项目集的开始日期不能大于子项目集的最小开始日期";
|
||||
$lang->program->PGMEndLetterChild = "子项目的最大完成日期:%s,父项目的完成日期不能小于子项目的最大完成日期";
|
||||
$lang->program->PGMCloseErrorMessage = '存在子项目集或项目为未关闭状态';
|
||||
$lang->program->statusList['wait'] = '未开始';
|
||||
$lang->program->statusList['doing'] = '进行中';
|
||||
$lang->program->statusList['suspended'] = '已挂起';
|
||||
$lang->program->statusList['closed'] = '已关闭';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = '内部';
|
||||
$lang->program->stakeholderTypeList['outside'] = '外部';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = '项目集名称';
|
||||
$lang->program->PGMTemplate = '项目集模板';
|
||||
$lang->program->PGMCategory = '项目集类型';
|
||||
$lang->program->PGMDesc = '项目集描述';
|
||||
$lang->program->PGMCopy = '复制项目集';
|
||||
$lang->program->PGMStatus = '状态';
|
||||
$lang->program->PGMPM = '负责人';
|
||||
$lang->program->PGMBudget = '预算';
|
||||
$lang->program->PGMProgress = '项目进度';
|
||||
$lang->program->PGMChildren = '子项目集';
|
||||
$lang->program->PGMParent = '父项目集';
|
||||
$lang->program->PGMAllInput = '项目集总投入';
|
||||
$lang->program->PGMTeamCount = '项目集成员';
|
||||
$lang->program->PGMLongTime = '长期项目';
|
||||
|
||||
$lang->program->noPGM = '暂时没有项目集';
|
||||
$lang->program->PGMShowClosed = '显示已关闭';
|
||||
$lang->program->PGMTips = '选择了父项目集,则可关联该父项目集下的产品。如果项目未选择任何项目集,则系统会默认创建一个和该项目同名的产品并关联该项目。';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "私有(项目集负责人和干系人可访问,干系人可后续维护)";
|
||||
$lang->program->PGMAclList['open'] = "公开(有项目集视图权限,即可访问)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "私有(本项目集负责人和干系人可访问,干系人可后续维护)";
|
||||
$lang->program->subPGMAclList['open'] = "全部公开(有项目集视图权限,即可访问)";
|
||||
$lang->program->subPGMAclList['program'] = "项目集内公开 (所有上级项目集负责人和干系人、本项目集负责人和干系人可访问)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = '继承(取项目权限与组织权限的并集)';
|
||||
$lang->program->PGMAuthList['reset'] = '重新定义(只取项目权限)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = '所有';
|
||||
$lang->program->featureBar['all'] = '所有';
|
||||
|
||||
+52
-282
@@ -9,18 +9,18 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function savePGMState($programID = 0, $programs = array())
|
||||
public function saveState($programID = 0, $programs = array())
|
||||
{
|
||||
if($programID > 0) $this->session->set('PGM', (int)$programID);
|
||||
if($programID == 0 and $this->cookie->lastPGM) $this->session->set('PGM', (int)$this->cookie->lastPGM);
|
||||
if($programID == 0 and $this->session->PGM == '') $this->session->set('PGM', key($programs));
|
||||
if(!isset($programs[$this->session->PGM]))
|
||||
if($programID > 0) $this->session->set('program', (int)$programID);
|
||||
if($programID == 0 and $this->cookie->lastProgram) $this->session->set('program', (int)$this->cookie->lastProgram);
|
||||
if($programID == 0 and $this->session->program == '') $this->session->set('program', key($programs));
|
||||
if(!isset($programs[$this->session->program]))
|
||||
{
|
||||
$this->session->set('PGM', key($programs));
|
||||
if($programID && strpos(",{$this->app->user->view->programs},", ",{$this->session->PGM},") === false) $this->accessDenied();
|
||||
$this->session->set('program', key($programs));
|
||||
if($programID && strpos(",{$this->app->user->view->programs},", ",{$this->session->program},") === false) $this->accessDenied();
|
||||
}
|
||||
|
||||
return $this->session->PGM;
|
||||
return $this->session->program;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getPGMMainAction()
|
||||
public function getMainAction()
|
||||
{
|
||||
$link = html::a(helper::createLink('program', 'browse'), "<i class='icon icon-list'></i>", '', "style='border: none;'");
|
||||
$html = "<p style='padding-top:5px;'>" . $link . "</p>";
|
||||
@@ -43,7 +43,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPGMPairs($isQueryAll = false)
|
||||
public function getPairs($isQueryAll = false)
|
||||
{
|
||||
return $this->dao->select('id, name')->from(TABLE_PROGRAM)
|
||||
->where('type')->eq('program')
|
||||
@@ -61,12 +61,12 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPGMProductPairs($programID = 0, $mode = 'assign', $status = 'all')
|
||||
public function getProductPairs($programID = 0, $mode = 'assign', $status = 'all')
|
||||
{
|
||||
/* Get the top programID. */
|
||||
if($programID)
|
||||
{
|
||||
$program = $this->getPGMByID($programID);
|
||||
$program = $this->getByID($programID);
|
||||
$path = explode(',', $program->path);
|
||||
$path = array_filter($path);
|
||||
$programID = current($path);
|
||||
@@ -89,7 +89,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPGMByID($programID = 0)
|
||||
public function getByID($programID = 0)
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_PROGRAM)->where('id')->eq($programID)->andWhere('`type`')->eq('program')->fetch();
|
||||
}
|
||||
@@ -103,7 +103,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPGMList($status = 'all', $orderBy = 'id_asc', $pager = NULL)
|
||||
public function getList($status = 'all', $orderBy = 'id_asc', $pager = NULL)
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_PROGRAM)
|
||||
->where('type')->in('program,project')
|
||||
@@ -126,7 +126,7 @@ class programModel extends model
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
public function setPGMViewMenu($programID = 0)
|
||||
public function setViewMenu($programID = 0)
|
||||
{
|
||||
foreach($this->lang->program->viewMenu as $label => $menu)
|
||||
{
|
||||
@@ -148,7 +148,7 @@ class programModel extends model
|
||||
* @access private
|
||||
* @return int|bool
|
||||
*/
|
||||
public function PGMCreate()
|
||||
public function create()
|
||||
{
|
||||
$program = fixer::input('post')
|
||||
->setDefault('status', 'wait')
|
||||
@@ -160,7 +160,7 @@ class programModel extends model
|
||||
->setIF($this->post->budget != 0, 'budget', round($this->post->budget, 2))
|
||||
->add('type', 'program')
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->program->editor->pgmcreate['id'], $this->config->allowedTags)
|
||||
->stripTags($this->config->program->editor->create['id'], $this->config->allowedTags)
|
||||
->remove('delta,future')
|
||||
->get();
|
||||
|
||||
@@ -170,13 +170,13 @@ class programModel extends model
|
||||
if($parentProgram)
|
||||
{
|
||||
/* Child program begin cannot less than parent. */
|
||||
if($program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->PGMBeginLetterParent, $parentProgram->begin);
|
||||
if($program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->beginLetterParent, $parentProgram->begin);
|
||||
|
||||
/* When parent set end then child program end cannot greater than parent. */
|
||||
if($parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->PGMEndGreaterParent, $parentProgram->end);
|
||||
if($parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
|
||||
/* When parent set end then child program cannot set longTime. */
|
||||
if(empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->PGMEndGreaterParent, $parentProgram->end);
|
||||
if(empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
|
||||
/* The budget of a child program cannot beyond the remaining budget of the parent program. */
|
||||
$program->budgetUnit = $parentProgram->budgetUnit;
|
||||
@@ -191,16 +191,15 @@ class programModel extends model
|
||||
}
|
||||
|
||||
/* Redefines the language entries for the fields in the project table. */
|
||||
foreach(explode(',', $this->config->program->PGMCreate->requiredFields) as $fieldName)
|
||||
foreach(explode(',', $this->config->program->create->requiredFields) as $field)
|
||||
{
|
||||
$fieldKey = 'PGM' . ucfirst($fieldName);
|
||||
if(isset($this->lang->program->$fieldKey)) $this->lang->project->$fieldName = $this->lang->program->$fieldKey;
|
||||
if(isset($this->lang->program->$field)) $this->lang->project->$field = $this->lang->program->$field;
|
||||
}
|
||||
|
||||
$program = $this->loadModel('file')->processImgURL($program, $this->config->program->editor->pgmcreate['id'], $this->post->uid);
|
||||
$program = $this->loadModel('file')->processImgURL($program, $this->config->program->editor->create['id'], $this->post->uid);
|
||||
$this->dao->insert(TABLE_PROGRAM)->data($program)
|
||||
->autoCheck()
|
||||
->batchcheck($this->config->program->PGMCreate->requiredFields, 'notempty')
|
||||
->batchcheck($this->config->program->create->requiredFields, 'notempty')
|
||||
->checkIF($program->begin != '', 'begin', 'date')
|
||||
->checkIF($program->end != '', 'end', 'date')
|
||||
->checkIF($program->end != '', 'end', 'gt', $program->begin)
|
||||
@@ -252,7 +251,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array|bool
|
||||
*/
|
||||
public function PGMUpdate($programID)
|
||||
public function update($programID)
|
||||
{
|
||||
$programID = (int)$programID;
|
||||
$oldProgram = $this->dao->findById($programID)->from(TABLE_PROGRAM)->fetch();
|
||||
@@ -267,11 +266,11 @@ class programModel extends model
|
||||
->setIF($this->post->future, 'budget', 0)
|
||||
->setIF($this->post->budget != 0, 'budget', round($this->post->budget, 2))
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->program->editor->pgmedit['id'], $this->config->allowedTags)
|
||||
->stripTags($this->config->program->editor->edit['id'], $this->config->allowedTags)
|
||||
->remove('uid,delta,future')
|
||||
->get();
|
||||
|
||||
$program = $this->loadModel('file')->processImgURL($program, $this->config->program->editor->pgmedit['id'], $this->post->uid);
|
||||
$program = $this->loadModel('file')->processImgURL($program, $this->config->program->editor->edit['id'], $this->post->uid);
|
||||
$children = $this->getChildren($programID);
|
||||
|
||||
if($children > 0)
|
||||
@@ -279,8 +278,8 @@ class programModel extends model
|
||||
$minChildBegin = $this->dao->select('min(begin) as minBegin')->from(TABLE_PROGRAM)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->fetch('minBegin');
|
||||
$maxChildEnd = $this->dao->select('max(end) as maxEnd')->from(TABLE_PROGRAM)->where('id')->ne($programID)->andWhere('deleted')->eq(0)->andWhere('path')->like("%,{$programID},%")->andWhere('end')->ne('0000-00-00')->fetch('maxEnd');
|
||||
|
||||
if($minChildBegin and $program->begin > $minChildBegin) dao::$errors['begin'] = sprintf($this->lang->program->PGMBeginGreateChild, $minChildBegin);
|
||||
if($maxChildEnd and $program->end < $maxChildEnd and $this->post->delta != 999) dao::$errors['end'] = sprintf($this->lang->program->PGMEndLetterChild, $maxChildEnd);
|
||||
if($minChildBegin and $program->begin > $minChildBegin) dao::$errors['begin'] = sprintf($this->lang->program->beginGreateChild, $minChildBegin);
|
||||
if($maxChildEnd and $program->end < $maxChildEnd and $this->post->delta != 999) dao::$errors['end'] = sprintf($this->lang->program->endLetterChild, $maxChildEnd);
|
||||
}
|
||||
|
||||
if($program->parent)
|
||||
@@ -288,9 +287,9 @@ class programModel extends model
|
||||
$parentProgram = $this->dao->select('*')->from(TABLE_PROGRAM)->where('id')->eq($program->parent)->fetch();
|
||||
if($parentProgram)
|
||||
{
|
||||
if($program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->PGMBeginLetterParent, $parentProgram->begin);
|
||||
if($parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->PGMEndGreaterParent, $parentProgram->end);
|
||||
if(empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->PGMEndGreaterParent, $parentProgram->end);
|
||||
if($program->begin < $parentProgram->begin) dao::$errors['begin'] = sprintf($this->lang->program->beginLetterParent, $parentProgram->begin);
|
||||
if($parentProgram->end != '0000-00-00' and $program->end > $parentProgram->end) dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
if(empty($program->end) and $this->post->delta == 999 and $parentProgram->end != '0000-00-00') dao::$errors['end'] = sprintf($this->lang->program->endGreaterParent, $parentProgram->end);
|
||||
}
|
||||
|
||||
/* The budget of a child program cannot beyond the remaining budget of the parent program. */
|
||||
@@ -304,15 +303,14 @@ class programModel extends model
|
||||
if(dao::isError()) return false;
|
||||
|
||||
/* Redefines the language entries for the fields in the project table. */
|
||||
foreach(explode(',', $this->config->program->PGMCreate->requiredFields) as $fieldName)
|
||||
foreach(explode(',', $this->config->program->edit->requiredFields) as $field)
|
||||
{
|
||||
$fieldKey = 'PGM' . ucfirst($fieldName);
|
||||
if(isset($this->lang->program->$fieldKey)) $this->lang->project->$fieldName = $this->lang->program->$fieldKey;
|
||||
if(isset($this->lang->program->$field)) $this->lang->project->$field = $this->lang->program->$field;
|
||||
}
|
||||
|
||||
$this->dao->update(TABLE_PROGRAM)->data($program)
|
||||
->autoCheck($skipFields = 'begin,end')
|
||||
->batchcheck($this->config->program->PGMEdit->requiredFields, 'notempty')
|
||||
->batchcheck($this->config->program->edit->requiredFields, 'notempty')
|
||||
->checkIF($program->begin != '', 'begin', 'date')
|
||||
->checkIF($program->end != '', 'end', 'date')
|
||||
->checkIF($program->end != '', 'end', 'gt', $program->begin)
|
||||
@@ -342,7 +340,7 @@ class programModel extends model
|
||||
* @access private
|
||||
* @return string
|
||||
*/
|
||||
public function getPGMSwitcher($programID = 0)
|
||||
public function getSwitcher($programID = 0)
|
||||
{
|
||||
$currentProgramName = '';
|
||||
$currentModule = $this->app->moduleName;
|
||||
@@ -351,15 +349,15 @@ class programModel extends model
|
||||
if($programID)
|
||||
{
|
||||
setCookie("lastProgram", $programID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
$currentProgram = $this->getPGMById($programID);
|
||||
$currentProgram = $this->getById($programID);
|
||||
$currentProgramName = $currentProgram->name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$currentProgramName = $this->lang->program->PGMAll;
|
||||
$currentProgramName = $this->lang->program->all;
|
||||
}
|
||||
|
||||
$dropMenuLink = helper::createLink('program', 'ajaxGetPGMDropMenu', "objectID=$programID&module=$currentModule&method=$currentMethod");
|
||||
$dropMenuLink = helper::createLink('program', 'ajaxGetDropMenu', "objectID=$programID&module=$currentModule&method=$currentMethod");
|
||||
$output = "<div class='btn-group header-angle-btn' id='swapper'><button data-toggle='dropdown' type='button' class='btn' id='currentItem' title='{$currentProgramName}'><span class='text'><i class='icon icon-folder-open-o'></i> {$currentProgramName}</span> <span class='caret'></span></button><div id='dropMenu' class='dropdown-menu search-list' data-ride='searchList' data-url='$dropMenuLink'>";
|
||||
$output .= '<div class="input-control search-box has-icon-left has-icon-right search-example"><input type="search" class="form-control search-input" /><label class="input-control-icon-left search-icon"><i class="icon icon-search"></i></label><a class="input-control-icon-right search-clear-btn"><i class="icon icon-close icon-sm"></i></a></div>'; $output .= "</div></div>";
|
||||
|
||||
@@ -375,7 +373,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function getPGMTreeMenu($programID = 0, $from = 'program', $vars = '')
|
||||
public function getTreeMenu($programID = 0, $from = 'program', $vars = '')
|
||||
{
|
||||
$programMenu = array();
|
||||
$query = $this->dao->select('*')->from(TABLE_PROJECT)
|
||||
@@ -433,7 +431,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getTopPGMPairs($model = '', $mode = '')
|
||||
public function getTopPairs($model = '', $mode = '')
|
||||
{
|
||||
return $this->dao->select('id,name')->from(TABLE_PROGRAM)
|
||||
->where('type')->eq('program')
|
||||
@@ -453,44 +451,21 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getTopPGMByID($programID)
|
||||
public function getTopByID($programID)
|
||||
{
|
||||
if(empty($programID)) return 0;
|
||||
|
||||
$program = $this->getPGMByID($programID);
|
||||
$program = $this->getByID($programID);
|
||||
if(empty($program)) return 0;
|
||||
|
||||
$path = explode(',', trim($program->path, ','));
|
||||
return $path[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Multiple linked products for project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getMultiLinkedProducts($projectID)
|
||||
{
|
||||
$linkedProducts = $this->dao->select('product')->from(TABLE_PROJECTPRODUCT)->where('project')->eq($projectID)->fetchPairs();
|
||||
$multiLinkedProducts = $this->dao->select('t3.id,t3.name')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
|
||||
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product = t3.id')
|
||||
->where('t1.product')->in($linkedProducts)
|
||||
->andWhere('t1.project')->ne($projectID)
|
||||
->andWhere('t2.type')->eq('project')
|
||||
->andWhere('t2.deleted')->eq('0')
|
||||
->andWhere('t3.deleted')->eq('0')
|
||||
->fetchPairs('id', 'name');
|
||||
|
||||
return $multiLinkedProducts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get children by program id.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
@@ -518,41 +493,6 @@ class programModel extends model
|
||||
return $unfinished;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get stakeholders by program id.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param string $orderBy
|
||||
* @param object $paper
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
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,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')
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get stakeholders by program id list.
|
||||
*
|
||||
* @param string $programIdList
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getStakeholdersByPGMList($programIdList = 0)
|
||||
{
|
||||
return $this->dao->select('distinct user as account')->from(TABLE_STAKEHOLDER)
|
||||
->where('objectID')->in($programIdList)
|
||||
->andWhere('objectType')->eq('program')
|
||||
->fetchAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create stakeholder for a program.
|
||||
*
|
||||
@@ -600,24 +540,6 @@ class programModel extends model
|
||||
if(!empty($childProducts)) $this->user->updateUserView($childProducts, 'product', $changedAccounts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show accessDenied response.
|
||||
*
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
public function accessDenied()
|
||||
{
|
||||
echo(js::alert($this->lang->program->accessDenied));
|
||||
|
||||
if(!$this->server->http_referer) die(js::locate(helper::createLink('program', 'prjbrowse')));
|
||||
|
||||
$loginLink = $this->config->requestType == 'GET' ? "?{$this->config->moduleVar}=user&{$this->config->methodVar}=login" : "user{$this->config->requestFix}login";
|
||||
if(strpos($this->server->http_referer, $loginLink) !== false) die(js::locate(helper::createLink('program', 'browse')));
|
||||
|
||||
die(js::locate('back'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Judge an action is clickable or not.
|
||||
*
|
||||
@@ -633,48 +555,13 @@ class programModel extends model
|
||||
if(empty($program)) return true;
|
||||
if(!isset($program->type)) return true;
|
||||
|
||||
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';
|
||||
if($action == 'prjclose') return $program->status != 'closed';
|
||||
if($action == 'prjsuspend') return $program->status == 'wait' or $program->status == 'doing';
|
||||
if($action == 'prjactivate') return $program->status == 'done' or $program->status == 'closed';
|
||||
if($action == 'close') return $program->status != 'closed';
|
||||
if($action == 'activate') return $program->status == 'done' or $program->status == 'closed';
|
||||
if($action == 'suspend') return $program->status == 'wait' or $program->status == 'doing';
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check has content for program.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function checkHasContent($programID)
|
||||
{
|
||||
$count = 0;
|
||||
$count += (int)$this->dao->select('count(*) as count')->from(TABLE_PROGRAM)->where('parent')->eq($programID)->fetch('count');
|
||||
$count += (int)$this->dao->select('count(*) as count')->from(TABLE_TASK)->where('PRJ')->eq($programID)->fetch('count');
|
||||
|
||||
return $count > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check has children project.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function checkHasChildren($programID)
|
||||
{
|
||||
$count = $this->dao->select('count(*) as count')->from(TABLE_PROGRAM)->where('parent')->eq($programID)->fetch('count');
|
||||
return $count > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set program tree path.
|
||||
*
|
||||
@@ -697,36 +584,23 @@ class programModel extends model
|
||||
$path['grade'] = $parent->grade + 1;
|
||||
}
|
||||
$this->dao->update(TABLE_PROGRAM)->set('path')->eq($path['path'])->set('grade')->eq($path['grade'])->where('id')->eq($program->id)->exec();
|
||||
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get budget unit list.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getBudgetUnitList()
|
||||
{
|
||||
$budgetUnitList = array();
|
||||
foreach(explode(',', $this->config->program->unitList) as $unit) $budgetUnitList[$unit] = zget($this->lang->program->unitList, $unit, '');
|
||||
|
||||
return $budgetUnitList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get available budget.
|
||||
* Get budget left.
|
||||
*
|
||||
* @param object $parentProgram
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getAvailableBudget($parentProgram)
|
||||
public function getBudgetLeft($parentProgram)
|
||||
{
|
||||
if(empty($parentProgram)) return;
|
||||
|
||||
$childGrade = $parentProgram->grade + 1;
|
||||
$childSumBudget = $this->dao->select("sum(budget) as sumBudget")->from(TABLE_PROJECT)
|
||||
$childSumBudget = $this->dao->select("sum(budget) as sumBudget")->from(TABLE_PROGRAM)
|
||||
->where('path')->like("%{$parentProgram->id}%")
|
||||
->andWhere('grade')->eq($childGrade)
|
||||
->fetch('sumBudget');
|
||||
@@ -836,7 +710,7 @@ class programModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPRJStats($programID = 0, $browseType = 'undone', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $PRJMine = 0)
|
||||
public function getProjectStats($programID = 0, $browseType = 'undone', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $PRJMine = 0)
|
||||
{
|
||||
/* Init vars. */
|
||||
$projects = $this->getPRJList($programID, $browseType, $queryID, $orderBy, $pager, $programTitle, $PRJMine);
|
||||
@@ -908,108 +782,4 @@ class programModel extends model
|
||||
}
|
||||
return $stats;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a project by id.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getPRJByID($projectID)
|
||||
{
|
||||
$project = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($projectID)->andWhere('`type`')->eq('project')->fetch();
|
||||
if(!$project) return false;
|
||||
|
||||
if($project->end == '0000-00-00') $project->end = '';
|
||||
return $project;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get project list data.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param string $browseType
|
||||
* @param string $queryID
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @param int $programTitle
|
||||
* @param int $PRJMine
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
public function getPRJList($programID = 0, $browseType = 'all', $queryID = 0, $orderBy = 'id_desc', $pager = null, $programTitle = 0, $PRJMine = 0)
|
||||
{
|
||||
$path = '';
|
||||
if($programID)
|
||||
{
|
||||
$project = $this->getPGMByID($programID);
|
||||
$path = $project->path;
|
||||
}
|
||||
|
||||
$projectList = $this->dao->select('*')->from(TABLE_PROJECT)
|
||||
->where('deleted')->eq('0')
|
||||
->beginIF($this->config->systemMode == 'new')->andWhere('type')->eq('project')->fi()
|
||||
->beginIF($browseType != 'all')->andWhere('status')->eq($browseType)->fi()
|
||||
->beginIF($path)->andWhere('path')->like($path . '%')->fi()
|
||||
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('id')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF(!$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('id')->in($this->app->user->view->sprints)->fi()
|
||||
->beginIF($this->cookie->PRJMine or $PRJMine)
|
||||
->andWhere('openedBy', true)->eq($this->app->user->account)
|
||||
->orWhere('PM')->eq($this->app->user->account)
|
||||
->markRight(1)
|
||||
->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll('id');
|
||||
|
||||
/* Determine how to display the name of the project. */
|
||||
if($programTitle and $this->config->systemMode == 'new')
|
||||
{
|
||||
$projectList = $this->getPGMPairs();
|
||||
foreach($projectList as $id => $project)
|
||||
{
|
||||
$path = explode(',', $project->path);
|
||||
$path = array_filter($path);
|
||||
array_pop($path);
|
||||
$projectID = $programTitle == 'base' ? current($path) : end($path);
|
||||
if(empty($path) || $projectID == $id) continue;
|
||||
|
||||
$projectName = isset($projectList[$projectID]) ? $projectList[$projectID] : '';
|
||||
|
||||
$projectList[$id]->name = $projectName . '/' . $projectList[$id]->name;
|
||||
}
|
||||
}
|
||||
return $projectList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get program team member pairs.
|
||||
*
|
||||
* @param int $programID
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getPRJTeamMemberPairs($programID = 0)
|
||||
{
|
||||
$projectList = $this->loadModel('project')->getPRJPairs($programID);
|
||||
if(!$projectList) return array('' => '');
|
||||
|
||||
$users = $this->dao->select("t2.id, t2.account, t2.realname")->from(TABLE_TEAM)->alias('t1')
|
||||
->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account')
|
||||
->where('t1.root')->in(array_keys($projectList))
|
||||
->andWhere('t1.type')->eq('project')
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->fetchAll('account');
|
||||
if(!$users) return array('' => '');
|
||||
|
||||
foreach($users as $account => $user)
|
||||
{
|
||||
$firstLetter = ucfirst(substr($user->account, 0, 1)) . ':';
|
||||
if(!empty($this->config->isINT)) $firstLetter = '';
|
||||
$users[$account] = $firstLetter . ($user->realname ? $user->realname : $user->account);
|
||||
}
|
||||
|
||||
return array('' => '') + $users;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* The suspend file of program module of ZenTaoPMS.
|
||||
* The activate 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<wwccss@gmail.com>
|
||||
* @package program
|
||||
* @version $Id: suspend.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
|
||||
* @package program
|
||||
* @version $Id: activate.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
|
||||
@@ -18,21 +18,19 @@
|
||||
<?php endif;?>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class="btn-toolBar pull-left">
|
||||
<?php foreach($lang->program->PGMFeatureBar as $key => $label):?>
|
||||
<?php foreach($lang->program->featureBar as $key => $label):?>
|
||||
<?php $active = $status == $key ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
<?php echo html::a(inlink('browse', "status=$key&orderBy=$orderBy"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('showClosed', array('1' => $lang->program->PGMShowClosed), '', $this->cookie->showClosed ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('showClosed', array('1' => $lang->program->showClosed), '', $this->cookie->showClosed ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class='pull-right'>
|
||||
<?php if(isset($lang->pageActions)) echo $lang->pageActions;?>
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
<?php common::printLink('program', 'createGuide', "programID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php common::printLink('project', 'createGuide', "programID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->project->create, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php elseif($this->config->systemMode == 'new'):?>
|
||||
<?php common::printLink('program', 'prjcreate', "mode=scrum&programID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php else:?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'create', "mode=scrum&programID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->project->create, '', 'class="btn btn-primary"');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,8 +38,8 @@
|
||||
<?php if(empty($programs)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $lang->program->noPGM;?></span>
|
||||
<?php common::printLink('program', 'create', '', "<i class='icon icon-plus'></i> " . $lang->program->PGMCreate, '', "class='btn btn-info'");?>
|
||||
<span class="text-muted"><?php echo $lang->program->noProgram;?></span>
|
||||
<?php common::printLink('program', 'create', '', "<i class='icon icon-plus'></i> " . $lang->program->create, '', "class='btn btn-info'");?>
|
||||
</p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
<tr>
|
||||
<th class='table-nest-title'>
|
||||
<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;?>
|
||||
<?php echo $lang->program->name;?>
|
||||
</th>
|
||||
<th class='w-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PGMPM);?></th>
|
||||
<th class='text-right 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-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PM);?></th>
|
||||
<th class='text-right w-100px'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->project->budget);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->program->status);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->project->begin);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
|
||||
<th class='text-center w-180px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -56,30 +56,30 @@
|
||||
<?php $userID = isset($PMList[$program->PM]) ? $PMList[$program->PM]->id : ''?>
|
||||
<?php if(!empty($program->PM)) echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), zget($users, $program->PM), '', "data-toggle='modal' data-type='iframe' data-width='600'");?>
|
||||
</td>
|
||||
<?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) && $program->budget >= 10000 ? number_format($program->budget / 10000, 1) . $lang->program->tenThousand : number_format((float)$program->budget, 1);?>
|
||||
<td class='text-right'><?php echo $program->budget != 0 ? zget($lang->program->currencySymbol, $program->budgetUnit) . ' ' . $programBudget : $lang->program->future;?></td>
|
||||
<?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) && $program->budget >= 10000 ? number_format($program->budget / 10000, 1) . $lang->project->tenThousand : number_format((float)$program->budget, 1);?>
|
||||
<td class='text-right'><?php echo $program->budget != 0 ? zget($lang->project->currencySymbol, $program->budgetUnit) . ' ' . $programBudget : $lang->project->future;?></td>
|
||||
<td class='c-status'><span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status, '');?></span></td>
|
||||
<td><?php echo $program->begin;?></td>
|
||||
<td><?php echo $program->end == LONG_TIME ? $lang->program->PRJLongTime : $program->end;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php if($program->type == 'program'):?>
|
||||
<?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);?>
|
||||
<?php if($program->status == 'wait' || $program->status == 'suspended') common::printIcon('program', 'start', "programID=$program->id", $program, 'list', 'play', '', 'iframe', true, '', $this->lang->program->start);?>
|
||||
<?php if($program->status == 'doing') common::printIcon('program', 'close', "programID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
|
||||
<?php if($program->status == 'closed') common::printIcon('program', 'activate', "programID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
|
||||
|
||||
<?php if(common::hasPriv('program', 'PGMSuspend') || (common::hasPriv('program', 'PGMClose') && $program->status != 'doing') || (common::hasPriv('program', 'PGMActivate') && $program->status != 'closed')):?>
|
||||
<?php if(common::hasPriv('program', 'suspend') || (common::hasPriv('program', 'close') && $program->status != 'doing') || (common::hasPriv('program', 'activate') && $program->status != 'closed')):?>
|
||||
<div class='btn-group'>
|
||||
<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>" style="width: 16px; padding-left: 0px;"></button>
|
||||
<ul class='dropdown-menu pull-right text-center' role='menu' style="min-width:auto; padding: 5px 10px;">
|
||||
<?php common::printIcon('program', 'PGMSuspend', "programID=$program->id", $program, 'list', 'pause', '', 'iframe', true, '', $this->lang->program->PGMSuspend);?>
|
||||
<?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);?>
|
||||
<?php common::printIcon('program', 'suspend', "programID=$program->id", $program, 'list', 'pause', '', 'iframe', true, '', $this->lang->program->suspend);?>
|
||||
<?php if($program->status != 'doing') common::printIcon('program', 'close', "programID=$program->id", $program, 'list', 'off', '', 'iframe', true);?>
|
||||
<?php if($program->status != 'closed') common::printIcon('program', 'activate', "programID=$program->id", $program, 'list', 'magic', '', 'iframe', true);?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php common::printIcon('program', 'PGMEdit', "programID=$program->id", '', 'list', 'edit');?>
|
||||
<?php common::printIcon('program', 'PGMCreate', "programID=$program->id", '', 'list', 'split', '', '', '', '', $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 common::printIcon('program', 'edit', "programID=$program->id", '', 'list', 'edit');?>
|
||||
<?php common::printIcon('program', 'create', "programID=$program->id", '', 'list', 'split', '', '', '', '', $this->lang->program->children);?>
|
||||
<?php if(common::hasPriv('program', 'delete')) echo html::a($this->createLink("program", "delete", "programID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->program->delete}'");?>
|
||||
|
||||
<?php else:?>
|
||||
<?php if($program->status == 'wait' || $program->status == 'suspended') common::printIcon('project', 'start', "projectID=$program->id", $program, 'list', 'play', '', 'iframe', true);?>
|
||||
@@ -104,7 +104,7 @@
|
||||
<ul class='dropdown-menu pull-right text-center' role='menu'>
|
||||
<?php common::printIcon('project', 'manageProducts', "projectID=$program->id&programID=0&from=browse", $program, 'list', 'link', '', '', '', "data-group='program'", '', $program->id);?>
|
||||
<?php common::printIcon('project', 'whitelist', "projectID=$program->id&programID=0&module=program&from=browse", $program, 'list', 'shield-check', '', '', '', "data-group='program'", '', $program->id);?>
|
||||
<?php if(common::hasPriv('project','delete')) echo html::a($this->createLink("project", "delete", "projectID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->program->PRJDelete}' data-group='program'");?>
|
||||
<?php if(common::hasPriv('project','delete')) echo html::a($this->createLink("project", "delete", "projectID=$program->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->delete}' data-group='program'");?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -31,65 +31,65 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::import($jsRoot . 'misc/date.js');?>
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('holders', $lang->project->placeholder);?>
|
||||
<?php js::set('weekend', $config->execution->weekend);?>
|
||||
<?php js::set('holders', $lang->execution->placeholder);?>
|
||||
<?php js::set('errorSameProducts', $lang->project->errorSameProducts);?>
|
||||
<?php js::set('longTime', $lang->program->PRJLongTime);?>
|
||||
<?php js::set('currencySymbol', $lang->program->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->program->PGMParentBudget);?>
|
||||
<?php js::set('future', $lang->program->future);?>
|
||||
<?php js::set('longTime', $lang->program->longTime);?>
|
||||
<?php js::set('currencySymbol', $lang->project->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->program->parentBudget);?>
|
||||
<?php js::set('future', $lang->project->future);?>
|
||||
<?php js::set('PGMList', $PGMList);?>
|
||||
<?php $aclList = $parentProgram ? $lang->program->subPGMAclList : $lang->program->PGMAclList;?>
|
||||
<?php $requiredFields = $config->program->PGMCreate->requiredFields;?>
|
||||
<?php $aclList = $parentProgram ? $lang->program->subAclList : $lang->program->aclList;?>
|
||||
<?php $requiredFields = $config->program->create->requiredFields;?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->program->PGMCreate;?></h2>
|
||||
<h2><?php echo $lang->program->create;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMParent;?></th>
|
||||
<th><?php echo $lang->program->parent;?></th>
|
||||
<td><?php echo html::select('parent', $parents, isset($parentProgram->id) ? $parentProgram->id : 0, "class='form-control chosen' onchange=setBudgetTipsAndAclList(this.value)");?>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMName;?></th>
|
||||
<th class='w-120px'><?php echo $lang->program->name;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', '', "class='form-control' required");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMPM;?></th>
|
||||
<th><?php echo $lang->program->PM;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, '', "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMBudget;?></th>
|
||||
<th><?php echo $lang->program->budget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->PGMParentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->parentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . $placeholder);?>
|
||||
<?php if($parentProgram):?>
|
||||
<span class='input-group-addon fix-border'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
|
||||
<?php else:?>
|
||||
<span class='input-group-addon fix-border'></span>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $config->program->defaultCurrency, "class='form-control'");?>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $config->project->defaultCurrency, "class='form-control'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='checkbox-primary future w-70px'>
|
||||
<input type='checkbox' id='future' name='future' value='1' />
|
||||
<label for='future'><?php echo $lang->program->future;?></label>
|
||||
<label for='future'><?php echo $lang->project->future;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->dateRange;?></th>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', date('Y-m-d'), "class='form-control form-date' placeholder='" . $lang->program->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->program->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' placeholder='" . $lang->program->end . "' required");?>
|
||||
<?php echo html::input('begin', date('Y-m-d'), "class='form-control form-date' placeholder='" . $lang->project->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' placeholder='" . $lang->project->end . "' required");?>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->program->endList , '', "onclick='computeEndDate(this.value)'");?></td>
|
||||
@@ -103,7 +103,7 @@
|
||||
</tr>
|
||||
<?php $this->printExtendFields('', 'table');?>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMDesc;?></th>
|
||||
<th><?php echo $lang->program->desc;?></th>
|
||||
<td colspan='3'>
|
||||
<?php echo html::textarea('desc', '', "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
</td>
|
||||
|
||||
@@ -12,39 +12,39 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('longTime', $lang->program->PRJLongTime);?>
|
||||
<?php js::set('currencySymbol', $lang->program->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->program->PGMParentBudget);?>
|
||||
<?php js::set('future', $lang->program->future);?>
|
||||
<?php js::set('PGMList', $PGMList);?>
|
||||
<?php $aclList = $program->parent ? $lang->program->subPGMAclList : $lang->program->PGMAclList;?>
|
||||
<?php $requiredFields = $config->program->PGMEdit->requiredFields;?>
|
||||
<?php js::set('weekend', $config->execution->weekend);?>
|
||||
<?php js::set('longTime', $lang->program->longTime);?>
|
||||
<?php js::set('currencySymbol', $lang->project->currencySymbol);?>
|
||||
<?php js::set('parentBudget', $lang->program->parentBudget);?>
|
||||
<?php js::set('future', $lang->project->future);?>
|
||||
<?php js::set('programList', $programList);?>
|
||||
<?php $aclList = $program->parent ? $lang->program->subAclList : $lang->program->aclList;?>
|
||||
<?php $requiredFields = $config->program->edit->requiredFields;?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->program->PGMEdit;?></h2>
|
||||
<h2><?php echo $lang->program->edit;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMParent;?></th>
|
||||
<th class='w-120px'><?php echo $lang->program->parent;?></th>
|
||||
<td class="col-main"><?php echo html::select('parent', $parents, $program->parent, "class='form-control chosen' onchange=setBudgetTipsAndAclList(this.value)");?></td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMName;?></th>
|
||||
<th class='w-120px'><?php echo $lang->program->name;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', $program->name, "class='form-control' required");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMPM;?></th>
|
||||
<th><?php echo $lang->program->PM;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, $program->PM, "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMBudget;?></th>
|
||||
<th><?php echo $lang->program->budget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->PGMParentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->parentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', $program->budget != 0 ? $program->budget : '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . ($program->budget == 0 ? 'disabled ' : '') . $placeholder);?>
|
||||
<?php if($parentProgram):?>
|
||||
<span class='input-group-addon'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
|
||||
@@ -57,20 +57,20 @@
|
||||
<td>
|
||||
<div class='checkbox-primary future w-70px'>
|
||||
<input type='checkbox' id='future' name='future' value='1' <?php if($program->budget == 0) echo 'checked';?> />
|
||||
<label for='future'><?php echo $lang->program->future;?></label>
|
||||
<label for='future'><?php echo $lang->project->future;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->dateRange;?></th>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', $program->begin, "class='form-control form-date' placeholder='" . $lang->program->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->program->to;?></span>
|
||||
<?php echo html::input('begin', $program->begin, "class='form-control form-date' placeholder='" . $lang->project->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php
|
||||
$disabledEnd = $program->end == LONG_TIME ? 'disabled' : '';
|
||||
$end = $program->end == LONG_TIME ? $lang->program->PRJLongTime : $program->end;
|
||||
echo html::input('end', $end, "class='form-control form-date' $disabledEnd placeholder='" . $lang->program->end . "' required");
|
||||
$end = $program->end == LONG_TIME ? $lang->program->longTime : $program->end;
|
||||
echo html::input('end', $end, "class='form-control form-date' $disabledEnd placeholder='" . $lang->project->end . "' required");
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
@@ -78,11 +78,11 @@
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->program->endList , $endValue, "onclick='computeEndDate(this.value)'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->realBegan;?></th>
|
||||
<th><?php echo $lang->project->realBegan;?></th>
|
||||
<td><?php echo html::input('realBegan', $program->realBegan, "class='form-control form-date'");?></td><td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMDesc;?></th>
|
||||
<th><?php echo $lang->program->desc;?></th>
|
||||
<td colspan='3'>
|
||||
<?php echo html::textarea('desc', $program->desc, "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
</td>
|
||||
@@ -107,10 +107,10 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div id='PGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PGMAclList, $program->acl == 'program' ? 'private' : 'open', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<div id='acl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->aclList, $program->acl == 'program' ? 'private' : 'open', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<div id='subPGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->subPGMAclList, $program->acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<div id='subAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->subAclList, $program->acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<?php foreach($lang->product->featureBar['all'] as $key => $label):?>
|
||||
<?php $active = $key == $browseType ? 'btn-active-text' : '';?>
|
||||
<?php if($key == $browseType) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink("pgmproduct", "programID=$program->id&browseType=$key&orderBy=$orderBy"), "<span class='text'>{$label}</span>", '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink("product", "programID=$program->id&browseType=$key&orderBy=$orderBy"), "<span class='text'>{$label}</span>", '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
|
||||
@@ -21,17 +21,15 @@ js::set('browseType', $browseType);
|
||||
<?php $active = $browseType == $key ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
<?php if($browseType == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('PGMProject', "programID=$programID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink('project', "programID=$programID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('PRJMine', array('1' => $lang->program->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('involved ', array('1' => $lang->project->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
<?php common::printLink('project', 'createGuide', "programID=$programID&from=program", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php elseif($this->config->systemMode == 'new'):?>
|
||||
<?php common::printLink('project', 'create', "mode=scrum&programID=$programID&from=program", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php else:?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'create', "mode=scrum&programID=$programID&from=program", '<i class="icon icon-plus"></i>' . $lang->project->create, '', 'class="btn btn-primary"');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,8 +38,12 @@ js::set('browseType', $browseType);
|
||||
<?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"');?>
|
||||
<span class="text-muted"><?php echo $lang->project->empty;?></span>
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
<?php common::printLink('program', 'createGuide', "programID=$programID", '<i class="icon icon-plus"></i>' . $lang->project->create, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php elseif($this->config->systemMode == 'new'):?>
|
||||
<?php common::printLink('project', 'create', "mode=scrum&programID=$programID&from=program", '<i class="icon icon-plus"></i>' . $lang->project->create, '', 'class="btn btn-info btn-wide"');?>
|
||||
<?php endif;?>
|
||||
</p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('confirmDelete', $lang->program->confirmDelete);?>
|
||||
<?php js::set('confirmDelete', $lang->project->confirmDelete);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php echo html::a($this->createLink('program', 'pgmstakeholder', "programID=$programID"), '<span class="text">' . $lang->program->PGMStakeholder . '</span>', '', 'class="btn btn-link btn-active-text"');?>
|
||||
<?php echo html::a($this->createLink('program', 'stakeholder', "programID=$programID"), '<span class="text">' . $lang->program->stakeholder . '</span>', '', 'class="btn btn-link btn-active-text"');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php common::printLink('stakeholder', 'create', "programID=$programID", "<i class='icon icon-plus'></i>" . $lang->program->createStakeholder, '', "class='btn btn-primary'");?>
|
||||
|
||||
+89
-89
@@ -1,110 +1,110 @@
|
||||
<?php
|
||||
$config->program = new stdclass();
|
||||
$config->project = new stdclass();
|
||||
|
||||
$config->program->editor = new stdclass();
|
||||
$config->program->editor->pgmcreate = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->program->editor->pgmedit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->program->editor->pgmclose = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->pgmstart = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->pgmactivate = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->pgmfinish = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->pgmsuspend = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor = new stdclass();
|
||||
$config->project->editor->pgmcreate = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->project->editor->pgmedit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->project->editor->pgmclose = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->pgmstart = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->pgmactivate = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->pgmfinish = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->pgmsuspend = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
|
||||
$config->program->editor->prjcreate = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->program->editor->prjedit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->program->editor->prjclose = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->prjsuspend = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->prjstart = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->prjactivate = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->program->editor->prjview = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjcreate = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjedit = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjclose = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjsuspend = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjstart = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjactivate = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
$config->project->editor->prjview = array('id' => 'comment', 'tools' => 'simpleTools');
|
||||
|
||||
$config->program->list = new stdclass();
|
||||
$config->program->list->exportFields = 'id,name,code,template,product,status,begin,end,budget,PM,end,desc';
|
||||
$config->project->list = new stdclass();
|
||||
$config->project->list->exportFields = 'id,name,code,template,product,status,begin,end,budget,PM,end,desc';
|
||||
|
||||
$config->program->PGMCreate = new stdclass();
|
||||
$config->program->PGMEdit = new stdclass();
|
||||
$config->program->PGMCreate->requiredFields = 'name,begin,end';
|
||||
$config->program->PGMEdit->requiredFields = 'name,begin,end';
|
||||
$config->project->PGMCreate = new stdclass();
|
||||
$config->project->PGMEdit = new stdclass();
|
||||
$config->project->PGMCreate->requiredFields = 'name,begin,end';
|
||||
$config->project->PGMEdit->requiredFields = 'name,begin,end';
|
||||
|
||||
$config->program->PRJCreate = new stdclass();
|
||||
$config->program->PRJEdit = new stdclass();
|
||||
$config->program->PRJCreate->requiredFields = 'name,code,begin,end';
|
||||
$config->program->PRJEdit->requiredFields = 'name,code,begin,end';
|
||||
$config->project->PRJCreate = new stdclass();
|
||||
$config->project->PRJEdit = new stdclass();
|
||||
$config->project->PRJCreate->requiredFields = 'name,code,begin,end';
|
||||
$config->project->PRJEdit->requiredFields = 'name,code,begin,end';
|
||||
|
||||
$config->program->sortFields = new stdclass();
|
||||
$config->program->sortFields->id = 'id';
|
||||
$config->program->sortFields->begin = 'begin';
|
||||
$config->program->sortFields->end = 'end';
|
||||
$config->program->sortFields->PRJStatus = 'status';
|
||||
$config->program->sortFields->PRJBudget = 'budget';
|
||||
$config->project->sortFields = new stdclass();
|
||||
$config->project->sortFields->id = 'id';
|
||||
$config->project->sortFields->begin = 'begin';
|
||||
$config->project->sortFields->end = 'end';
|
||||
$config->project->sortFields->PRJStatus = 'status';
|
||||
$config->project->sortFields->PRJBudget = 'budget';
|
||||
|
||||
global $lang;
|
||||
$config->program->datatable = new stdclass();
|
||||
$config->program->datatable->defaultField = array('id', 'PRJName', 'PM', 'PRJStatus', 'begin', 'end', 'PRJBudget', 'teamCount','PRJEstimate','PRJConsume', 'PRJProgress', 'actions');
|
||||
$config->project->datatable = new stdclass();
|
||||
$config->project->datatable->defaultField = array('id', 'PRJName', 'PM', 'PRJStatus', 'begin', 'end', 'PRJBudget', 'teamCount','PRJEstimate','PRJConsume', 'PRJProgress', 'actions');
|
||||
|
||||
$config->program->datatable->fieldList['id']['title'] = 'ID';
|
||||
$config->program->datatable->fieldList['id']['fixed'] = 'left';
|
||||
$config->program->datatable->fieldList['id']['width'] = '60';
|
||||
$config->program->datatable->fieldList['id']['required'] = 'yes';
|
||||
$config->project->datatable->fieldList['id']['title'] = 'ID';
|
||||
$config->project->datatable->fieldList['id']['fixed'] = 'left';
|
||||
$config->project->datatable->fieldList['id']['width'] = '60';
|
||||
$config->project->datatable->fieldList['id']['required'] = 'yes';
|
||||
|
||||
$config->program->datatable->fieldList['PRJName']['title'] = 'PRJName';
|
||||
$config->program->datatable->fieldList['PRJName']['fixed'] = 'left';
|
||||
$config->program->datatable->fieldList['PRJName']['width'] = 'auto';
|
||||
$config->program->datatable->fieldList['PRJName']['required'] = 'yes';
|
||||
$config->program->datatable->fieldList['PRJName']['sort'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJName']['title'] = 'PRJName';
|
||||
$config->project->datatable->fieldList['PRJName']['fixed'] = 'left';
|
||||
$config->project->datatable->fieldList['PRJName']['width'] = 'auto';
|
||||
$config->project->datatable->fieldList['PRJName']['required'] = 'yes';
|
||||
$config->project->datatable->fieldList['PRJName']['sort'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['PM']['title'] = 'PM';
|
||||
$config->program->datatable->fieldList['PM']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['PM']['width'] = '80';
|
||||
$config->program->datatable->fieldList['PM']['required'] = 'yes';
|
||||
$config->program->datatable->fieldList['PM']['sort'] = 'no';
|
||||
$config->project->datatable->fieldList['PM']['title'] = 'PM';
|
||||
$config->project->datatable->fieldList['PM']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['PM']['width'] = '80';
|
||||
$config->project->datatable->fieldList['PM']['required'] = 'yes';
|
||||
$config->project->datatable->fieldList['PM']['sort'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['PRJStatus']['title'] = 'PRJStatus';
|
||||
$config->program->datatable->fieldList['PRJStatus']['fixed'] = 'left';
|
||||
$config->program->datatable->fieldList['PRJStatus']['width'] = '80';
|
||||
$config->program->datatable->fieldList['PRJStatus']['required'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJStatus']['sort'] = 'yes';
|
||||
$config->project->datatable->fieldList['PRJStatus']['title'] = 'PRJStatus';
|
||||
$config->project->datatable->fieldList['PRJStatus']['fixed'] = 'left';
|
||||
$config->project->datatable->fieldList['PRJStatus']['width'] = '80';
|
||||
$config->project->datatable->fieldList['PRJStatus']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJStatus']['sort'] = 'yes';
|
||||
|
||||
$config->program->datatable->fieldList['begin']['title'] = 'begin';
|
||||
$config->program->datatable->fieldList['begin']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['begin']['width'] = '100';
|
||||
$config->program->datatable->fieldList['begin']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['begin']['title'] = 'begin';
|
||||
$config->project->datatable->fieldList['begin']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['begin']['width'] = '100';
|
||||
$config->project->datatable->fieldList['begin']['required'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['end']['title'] = 'end';
|
||||
$config->program->datatable->fieldList['end']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['end']['width'] = '100';
|
||||
$config->program->datatable->fieldList['end']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['end']['title'] = 'end';
|
||||
$config->project->datatable->fieldList['end']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['end']['width'] = '100';
|
||||
$config->project->datatable->fieldList['end']['required'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['PRJBudget']['title'] = 'PRJBudget';
|
||||
$config->program->datatable->fieldList['PRJBudget']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJBudget']['width'] = '80';
|
||||
$config->program->datatable->fieldList['PRJBudget']['required'] = 'yes';
|
||||
$config->project->datatable->fieldList['PRJBudget']['title'] = 'PRJBudget';
|
||||
$config->project->datatable->fieldList['PRJBudget']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJBudget']['width'] = '80';
|
||||
$config->project->datatable->fieldList['PRJBudget']['required'] = 'yes';
|
||||
|
||||
$config->program->datatable->fieldList['teamCount']['title'] = 'teamCount';
|
||||
$config->program->datatable->fieldList['teamCount']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['teamCount']['width'] = '40';
|
||||
$config->program->datatable->fieldList['teamCount']['required'] = 'no';
|
||||
$config->program->datatable->fieldList['teamCount']['sort'] = 'no';
|
||||
$config->project->datatable->fieldList['teamCount']['title'] = 'teamCount';
|
||||
$config->project->datatable->fieldList['teamCount']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['teamCount']['width'] = '40';
|
||||
$config->project->datatable->fieldList['teamCount']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['teamCount']['sort'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['PRJEstimate']['title'] = 'PRJEstimate';
|
||||
$config->program->datatable->fieldList['PRJEstimate']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJEstimate']['width'] = '60';
|
||||
$config->program->datatable->fieldList['PRJEstimate']['required'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJEstimate']['sort'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJEstimate']['title'] = 'PRJEstimate';
|
||||
$config->project->datatable->fieldList['PRJEstimate']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJEstimate']['width'] = '60';
|
||||
$config->project->datatable->fieldList['PRJEstimate']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJEstimate']['sort'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['PRJConsume']['title'] = 'PRJConsume';
|
||||
$config->program->datatable->fieldList['PRJConsume']['fixed'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJConsume']['width'] = '60';
|
||||
$config->program->datatable->fieldList['PRJConsume']['required'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJConsume']['sort'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJConsume']['title'] = 'PRJConsume';
|
||||
$config->project->datatable->fieldList['PRJConsume']['fixed'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJConsume']['width'] = '60';
|
||||
$config->project->datatable->fieldList['PRJConsume']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJConsume']['sort'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['PRJProgress']['title'] = 'PRJProgress';
|
||||
$config->program->datatable->fieldList['PRJProgress']['fixed'] = 'right';
|
||||
$config->program->datatable->fieldList['PRJProgress']['width'] = '60';
|
||||
$config->program->datatable->fieldList['PRJProgress']['required'] = 'no';
|
||||
$config->program->datatable->fieldList['PRJProgress']['sort'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJProgress']['title'] = 'PRJProgress';
|
||||
$config->project->datatable->fieldList['PRJProgress']['fixed'] = 'right';
|
||||
$config->project->datatable->fieldList['PRJProgress']['width'] = '60';
|
||||
$config->project->datatable->fieldList['PRJProgress']['required'] = 'no';
|
||||
$config->project->datatable->fieldList['PRJProgress']['sort'] = 'no';
|
||||
|
||||
$config->program->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->program->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->program->datatable->fieldList['actions']['width'] = '180';
|
||||
$config->program->datatable->fieldList['actions']['required'] = 'yes';
|
||||
$config->project->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->project->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->project->datatable->fieldList['actions']['width'] = '180';
|
||||
$config->project->datatable->fieldList['actions']['required'] = 'yes';
|
||||
|
||||
+24
-590
@@ -13,7 +13,7 @@ class project extends control
|
||||
public function __construct($moduleName = '', $methodName = '')
|
||||
{
|
||||
parent::__construct($moduleName, $methodName);
|
||||
$this->loadModel('project');
|
||||
$this->loadModel('execution');
|
||||
$this->loadModel('group');
|
||||
}
|
||||
|
||||
@@ -32,554 +32,6 @@ class project extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Project home page.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMIndex()
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
|
||||
$this->view->title = $this->lang->project->PGMIndex;
|
||||
$this->view->position[] = $this->lang->project->PGMIndex;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Project list.
|
||||
*
|
||||
* @param varchar $status
|
||||
* @param varchar $orderBy
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMBrowse($status = 'all', $orderBy = 'order_asc')
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->mainMenuAction = html::a('javascript:history.go(-1);', '<i class="icon icon-back"></i> ' . $this->lang->goback, '', "class='btn btn-link'");
|
||||
|
||||
if(common::hasPriv('project', 'pgmcreate')) $this->lang->pageActions = html::a($this->createLink('project', 'pgmcreate'), "<i class='icon icon-sm icon-plus'></i> " . $this->lang->project->PGMCreate, '', "class='btn btn-secondary'");
|
||||
|
||||
$this->app->session->set('projectList', $this->app->getURI(true));
|
||||
|
||||
$projectType = $this->cookie->projectType ? $this->cookie->projectType : 'bylist';
|
||||
|
||||
if($projectType === 'bygrid')
|
||||
{
|
||||
$projects = $this->project->getProjectStats($status, 20, $orderBy);
|
||||
}
|
||||
else
|
||||
{
|
||||
$projects = $this->project->getPGMList($status, $orderBy, null, true);
|
||||
}
|
||||
|
||||
/* Get PM id list. */
|
||||
$accounts = array();
|
||||
foreach($projects as $project)
|
||||
{
|
||||
if(!empty($project->PM) and !in_array($project->PM, $accounts)) $accounts[] = $project->PM;
|
||||
}
|
||||
$PMList = $this->loadModel('user')->getListByAccounts($accounts, 'account');
|
||||
|
||||
$this->view->title = $this->lang->project->PGMBrowse;
|
||||
$this->view->position[] = $this->lang->project->PGMBrowse;
|
||||
|
||||
$this->view->projects = $projects;
|
||||
$this->view->status = $status;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->projectType = $projectType;
|
||||
$this->view->PMList = $PMList;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Project products list.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $browseType
|
||||
* @param string $orderBy
|
||||
* @param int $recTotal
|
||||
* @param int $recPerPage
|
||||
* @param int $pageID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMProduct($projectID = 0, $browseType = 'noclosed', $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$projectID = $this->project->savePGMState($projectID, $this->project->getPGMPairs());
|
||||
setCookie("lastPGM", $projectID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
|
||||
$project = $this->project->getPGMByID($projectID);
|
||||
if(empty($project) || $project->type != 'project') die(js::error($this->lang->notFound) . js::locate('back'));
|
||||
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->switcherMenu = $this->project->getPGMSwitcher($projectID, true);
|
||||
$this->lang->project->mainMenuAction = $this->project->getPGMMainAction();
|
||||
$this->project->setPGMViewMenu($projectID);
|
||||
|
||||
/* Load pager and get tasks. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
/* Get the top projectID. */
|
||||
if($projectID)
|
||||
{
|
||||
$path = explode(',', $project->path);
|
||||
$path = array_filter($path);
|
||||
$projectID = current($path);
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->project->PGMProduct;
|
||||
$this->view->position[] = $this->lang->project->PGMProduct;
|
||||
$this->view->project = $project;
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->products = $this->loadModel('product')->getStats($orderBy, $pager, $browseType, '', 'story', $projectID);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a project.
|
||||
*
|
||||
* @param int $parentProjectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMCreate($parentProjectID = 0)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
|
||||
$parentProject = $this->project->getPGMByID($parentProjectID);
|
||||
|
||||
if($_POST)
|
||||
{
|
||||
$projectID = $this->project->PGMCreate();
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$this->loadModel('action')->create('project', $projectID, 'opened');
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('pgmbrowse')));
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->project->PGMCreate;
|
||||
$this->view->position[] = $this->lang->project->PGMCreate;
|
||||
|
||||
$this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst');
|
||||
$this->view->poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst');
|
||||
$this->view->users = $this->user->getPairs('noclosed|nodeleted');
|
||||
$this->view->parentProject = $parentProject;
|
||||
$this->view->parents = $this->project->getParentPairs();
|
||||
$this->view->PGMList = $this->project->getPGMList();
|
||||
$this->view->budgetUnitList = $this->project->getBudgetUnitList();
|
||||
$this->view->availableBudget = $this->project->getAvailableBudget($parentProject);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit a project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMEdit($projectID = 0)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
|
||||
if($_POST)
|
||||
{
|
||||
$changes = $this->project->PGMUpdate($projectID);
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
if($changes)
|
||||
{
|
||||
$actionID = $this->loadModel('action')->create('project', $projectID, 'edited');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
|
||||
$this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('PGMBrowse')));
|
||||
}
|
||||
|
||||
$project = $this->project->getPGMByID($projectID);
|
||||
$parentProject = $project->parent ? $this->project->getPGMByID($project->parent) : '';
|
||||
$parents = $this->project->getParentPairs();
|
||||
unset($parents[$projectID]);
|
||||
|
||||
$this->view->title = $this->lang->project->PGMEdit;
|
||||
$this->view->position[] = $this->lang->project->PGMEdit;
|
||||
|
||||
$this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed|nodeleted|pmfirst', $project->PM);
|
||||
$this->view->poUsers = $this->user->getPairs('noclosed|nodeleted|pofirst');
|
||||
$this->view->users = $this->user->getPairs('noclosed|nodeleted');
|
||||
$this->view->project = $project;
|
||||
$this->view->parents = $parents;
|
||||
$this->view->PGMList = $this->project->getPGMList();
|
||||
$this->view->budgetUnitList = $this->project->getBudgetUnitList();
|
||||
$this->view->parentProject = $parentProject;
|
||||
$this->view->availableBudget = $this->project->getAvailableBudget($parentProject) + (float)$project->budget;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Close a project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMClose($projectID)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->loadModel('action');
|
||||
$project = $this->project->getPGMByID($projectID);
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
/* Only when all subprojects and subprojects are closed can the project be closed. */
|
||||
$hasUnfinished = $this->project->hasUnfinished($project);
|
||||
if($hasUnfinished) die(js::error($this->lang->project->PGMCloseErrorMessage));
|
||||
|
||||
$changes = $this->project->close($projectID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
if($this->post->comment != '' or !empty($changes))
|
||||
{
|
||||
$actionID = $this->action->create('project', $projectID, 'Closed', $this->post->comment);
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
|
||||
$this->executeHooks($projectID);
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->project->PGMClose;
|
||||
$this->view->position[] = $this->lang->project->PGMClose;
|
||||
$this->view->project = $project;
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->actions = $this->action->getList('project', $projectID);
|
||||
|
||||
$this->display('project', 'close');
|
||||
}
|
||||
|
||||
/**
|
||||
* Start project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMStart($projectID)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->loadModel('action');
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$changes = $this->project->start($projectID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
if($this->post->comment != '' or !empty($changes))
|
||||
{
|
||||
$actionID = $this->action->create('project', $projectID, 'Started', $this->post->comment);
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
$this->executeHooks($projectID);
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
$this->view->title = $this->lang->project->start;
|
||||
$this->view->position[] = $this->lang->project->start;
|
||||
$this->view->project = $this->project->getPGMByID($projectID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->actions = $this->action->getList('project', $projectID);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Activate a project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMActivate($projectID = 0)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->loadModel('action');
|
||||
$project = $this->project->getPGMByID($projectID);
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$changes = $this->project->activate($projectID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
if($this->post->comment != '' or !empty($changes))
|
||||
{
|
||||
$actionID = $this->action->create('project', $projectID, 'Activated', $this->post->comment);
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
$newBegin = date('Y-m-d');
|
||||
$dateDiff = helper::diffDate($newBegin, $project->begin);
|
||||
$newEnd = date('Y-m-d', strtotime($project->end) + $dateDiff * 24 * 3600);
|
||||
|
||||
$this->view->title = $this->lang->project->PGMActivate;
|
||||
$this->view->position[] = $this->lang->project->PGMActivate;
|
||||
$this->view->project = $project;
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter');
|
||||
$this->view->actions = $this->action->getList('project', $projectID);
|
||||
$this->view->newBegin = $newBegin;
|
||||
$this->view->newEnd = $newEnd;
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Suspend a project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMSuspend($projectID)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->loadModel('action');
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$changes = $this->project->suspend($projectID);
|
||||
if(dao::isError()) die(js::error(dao::getError()));
|
||||
|
||||
if($this->post->comment != '' or !empty($changes))
|
||||
{
|
||||
$actionID = $this->action->create('project', $projectID, 'Suspended', $this->post->comment);
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
$this->executeHooks($projectID);
|
||||
die(js::reload('parent.parent'));
|
||||
}
|
||||
|
||||
$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->action->getList('project', $projectID);
|
||||
$this->view->project = $this->project->getPGMByID($projectID);
|
||||
|
||||
$this->display('project', 'suspend');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a project.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $confirm yes|no
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMDelete($projectID, $confirm = 'no')
|
||||
{
|
||||
$childrenCount = $this->dao->select('count(*) as count')->from(TABLE_PROGRAM)->where('parent')->eq($projectID)->andWhere('deleted')->eq(0)->fetch('count');
|
||||
if($childrenCount) die(js::alert($this->lang->project->hasChildren));
|
||||
|
||||
$project = $this->dao->select('*')->from(TABLE_PROGRAM)->where('id')->eq($projectID)->fetch();
|
||||
if($confirm == 'no') die(js::confirm($this->lang->project->confirmDelete, $this->createLink('project', 'PGMDelete', "projectID=$projectID&confirm=yes")));
|
||||
|
||||
$this->dao->update(TABLE_PROGRAM)->set('deleted')->eq(1)->where('id')->eq($projectID)->exec();
|
||||
$this->loadModel('action')->create('project', $projectID, 'deleted', '', $extra = ACTIONMODEL::CAN_UNDELETED);
|
||||
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Project project list.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $browseType
|
||||
* @param string $orderBy
|
||||
* @param int $recTotal
|
||||
* @param int $recPerPage
|
||||
* @param int $pageID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMProject($projectID = 0, $browseType = 'doing', $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$projectID = $this->project->savePGMState($projectID, $this->project->getPGMPairs());
|
||||
if(!$projectID) $this->locate($this->createLink('project', 'PGMbrowse'));
|
||||
setCookie("lastPGM", $projectID, $this->config->cookieLife, $this->config->webRoot, '', false, true);
|
||||
|
||||
$this->app->session->set('PGMProject', $this->app->getURI(true));
|
||||
$this->app->session->set('projectList', $this->app->getURI(true));
|
||||
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->switcherMenu = $this->project->getPGMSwitcher($projectID, true);
|
||||
$this->lang->project->mainMenuAction = $this->project->getPGMMainAction();
|
||||
$this->project->setPGMViewMenu($projectID);
|
||||
|
||||
$this->loadModel('datatable');
|
||||
|
||||
/* Load pager and get tasks. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
|
||||
$projectTitle = $this->loadModel('setting')->getItem('owner=' . $this->app->user->account . '&module=project&key=PRJProjectTitle');
|
||||
$order = explode('_', $orderBy);
|
||||
$sortField = zget($this->config->project->sortFields, $order[0], 'id') . '_' . $order[1];
|
||||
$projectStats = $this->project->getPRJStats($projectID, $browseType, 0, $sortField, $pager, $projectTitle);
|
||||
|
||||
$this->view->title = $this->lang->project->PGMProject;
|
||||
$this->view->position[] = $this->lang->project->PGMProject;
|
||||
|
||||
$this->view->projectStats = $projectStats;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->project = $this->project->getPRJByID($projectID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|pofirst|nodeleted');
|
||||
$this->view->browseType = $browseType;
|
||||
$this->view->orderBy = $orderBy;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Project stakeholder list.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $orderBy
|
||||
* @param int $recTotal
|
||||
* @param int $recPerPage
|
||||
* @param int $pageID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PGMStakeholder($projectID = 0, $orderBy = 't1.id_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->switcherMenu = $this->project->getPGMSwitcher($projectID, true);
|
||||
$this->lang->project->mainMenuAction = $this->project->getPGMMainAction();
|
||||
$this->project->setPGMViewMenu($projectID);
|
||||
|
||||
/* Load pager and get tasks. */
|
||||
$this->app->loadClass('pager', $static = true);
|
||||
$pager = new pager(0, $recPerPage, $pageID);
|
||||
|
||||
$this->view->title = $this->lang->project->PGMStakeholder;
|
||||
$this->view->position[] = $this->lang->project->PGMStakeholder;
|
||||
|
||||
$this->view->stakeholders = $this->project->getStakeholders($projectID, $orderBy, $pager);
|
||||
$this->view->pager = $pager;
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->project = $this->project->getPRJByID($projectID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|pofirst|nodeleted');
|
||||
$this->view->orderBy = $orderBy;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create project stakeholder.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function createStakeholder($projectID = 0, $dept = '', $parentIdList = '')
|
||||
{
|
||||
if($_POST)
|
||||
{
|
||||
$this->project->createStakeholder($projectID);
|
||||
die(js::locate($this->createLink('project', 'PGMStakeholder', "projectID=$projectID"), 'parent'));
|
||||
}
|
||||
|
||||
$this->loadModel('user');
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->switcherMenu = $this->project->getPGMSwitcher($projectID, true);
|
||||
$this->lang->project->mainMenuAction = $this->project->getPGMMainAction();
|
||||
$this->project->setPGMViewMenu($projectID);
|
||||
|
||||
$this->loadModel('dept');
|
||||
$deptUsers = $dept === '' ? array() : $this->dept->getDeptUserPairs($dept);
|
||||
|
||||
$this->view->title = $this->lang->project->createStakeholder;
|
||||
$this->view->position[] = $this->lang->project->createStakeholder;
|
||||
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->project = $this->project->getPGMByID($projectID);
|
||||
$this->view->users = $this->loadModel('user')->getPairs('nodeleted|noclosed');
|
||||
$this->view->deptUsers = $deptUsers;
|
||||
$this->view->dept = $dept;
|
||||
$this->view->depts = array('' => '') + $this->dept->getOptionMenu();
|
||||
$this->view->stakeholders = $this->project->getStakeholders($projectID, 't1.id_desc');
|
||||
$this->view->parentStakeholders = $this->project->getStakeholdersByPGMList($parentIdList);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlink project stakeholder.
|
||||
*
|
||||
* @param int $stakeholderID
|
||||
* @param int $projectID
|
||||
* @param string $confirm
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function unlinkStakeholder($stakeholderID, $projectID, $confirm = 'no')
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
die(js::confirm($this->lang->project->confirmDelete, $this->inlink('unlinkStakeholder', "stakeholderID=$stakeholderID&projectID=$projectID&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
$account = $this->dao->select('user')->from(TABLE_STAKEHOLDER)->where('id')->eq($stakeholderID)->fetch('user');
|
||||
$this->dao->delete()->from(TABLE_STAKEHOLDER)->where('id')->eq($stakeholderID)->exec();
|
||||
|
||||
$this->loadModel('user')->updateUserView($projectID, 'project', array($account));
|
||||
$this->updateChildUserView($projectID, $account);
|
||||
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch unlink project stakeholders.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $stakeholderIDList
|
||||
* @param string $confirm
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function batchUnlinkStakeholders($projectID = 0, $stakeholderIDList = '', $confirm = 'no')
|
||||
{
|
||||
$stakeholderIDList = $stakeholderIDList ? $stakeholderIDList : implode(',', $this->post->stakeholderIDList);
|
||||
|
||||
if($confirm == 'no')
|
||||
{
|
||||
die(js::confirm($this->lang->project->confirmBatchUnlink, $this->inlink('batchUnlinkStakeholders', "projectID=$projectID&stakeholderIDList=$stakeholderIDList&confirm=yes")));
|
||||
}
|
||||
else
|
||||
{
|
||||
$account = $this->dao->select('user')->from(TABLE_STAKEHOLDER)->where('id')->in($stakeholderIDList)->fetchPairs('user');
|
||||
$this->dao->delete()->from(TABLE_STAKEHOLDER)->where('id')->in($stakeholderIDList)->exec();
|
||||
|
||||
$this->loadModel('user')->updateUserView($projectID, 'project', $account);
|
||||
$this->updateChildUserView($projectID, $account);
|
||||
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update children user view.
|
||||
*
|
||||
@@ -651,24 +103,6 @@ class project extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax get project drop menu.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $module
|
||||
* @param string $method
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxGetPGMDropMenu($projectID = 0, $module, $method)
|
||||
{
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->module = $module;
|
||||
$this->view->method = $method;
|
||||
$this->view->projects = $this->project->getPGMList('all');
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajax get project drop menu.
|
||||
*
|
||||
@@ -795,7 +229,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJBrowse($projectID = 0, $browseType = 'doing', $param = 0, $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
public function browse($projectID = 0, $browseType = 'doing', $param = 0, $orderBy = 'order_desc', $recTotal = 0, $recPerPage = 15, $pageID = 1)
|
||||
{
|
||||
$this->lang->project->menu = $this->lang->PRJ->menu;
|
||||
if($this->session->moreProjectLink) $this->lang->project->mainMenuAction = html::a($this->session->moreProjectLink, '<i class="icon icon-back"></i> ' . $this->lang->goback, '', "class='btn btn-link'");
|
||||
@@ -835,7 +269,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJProjectTitle()
|
||||
public function projectTitle()
|
||||
{
|
||||
$this->loadModel('setting');
|
||||
if($_POST)
|
||||
@@ -860,7 +294,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJCreate($model = 'waterfall', $projectID = 0, $from = 'PRJ', $copyProjectID = '')
|
||||
public function create($model = 'waterfall', $projectID = 0, $from = 'PRJ', $copyProjectID = '')
|
||||
{
|
||||
if($from == 'PRJ') $this->lang->project->menu = $this->lang->PRJ->menu;
|
||||
|
||||
@@ -955,7 +389,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJEdit($projectID = 0, $from = 'PRJ')
|
||||
public function edit($projectID = 0, $from = 'PRJ')
|
||||
{
|
||||
$this->app->loadLang('custom');
|
||||
$this->app->loadLang('project');
|
||||
@@ -1041,7 +475,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJBatchEdit($from = 'prjbrowse', $projectID = 0)
|
||||
public function batchEdit($from = 'prjbrowse', $projectID = 0)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
|
||||
@@ -1087,7 +521,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJView($projectID = 0)
|
||||
public function view($projectID = 0)
|
||||
{
|
||||
$this->app->loadLang('bug');
|
||||
$this->lang->navGroup->project = 'project';
|
||||
@@ -1133,7 +567,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJGroup($projectID = 0, $projectID = 0)
|
||||
public function group($projectID = 0, $projectID = 0)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->menu = $this->lang->scrum->setMenu;
|
||||
@@ -1165,7 +599,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJCreateGroup($projectID = 0, $projectID = 0)
|
||||
public function createGroup($projectID = 0, $projectID = 0)
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
@@ -1190,7 +624,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJManageView($groupID, $projectID, $projectID)
|
||||
public function manageView($groupID, $projectID, $projectID)
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->menu = $this->lang->scrum->setMenu;
|
||||
@@ -1228,7 +662,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJManagePriv($type = 'byGroup', $param = 0, $menu = '', $version = '')
|
||||
public function managePriv($type = 'byGroup', $param = 0, $menu = '', $version = '')
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->menu = $this->lang->scrum->setMenu;
|
||||
@@ -1298,7 +732,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJManageMembers($projectID, $dept = '')
|
||||
public function manageMembers($projectID, $dept = '')
|
||||
{
|
||||
$this->lang->navGroup->project = 'project';
|
||||
$this->lang->project->menu = $this->lang->scrum->setMenu;
|
||||
@@ -1342,7 +776,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJManageGroupMember($groupID, $deptID = 0)
|
||||
public function manageGroupMember($groupID, $deptID = 0)
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
@@ -1377,7 +811,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJCopyGroup($groupID)
|
||||
public function copyGroup($groupID)
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
@@ -1402,7 +836,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJEditGroup($groupID)
|
||||
public function editGroup($groupID)
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
@@ -1424,7 +858,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJStart($projectID)
|
||||
public function start($projectID)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
$project = $this->project->getPRJByID($projectID);
|
||||
@@ -1482,7 +916,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJSuspend($projectID)
|
||||
public function suspend($projectID)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
|
||||
@@ -1516,7 +950,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJClose($projectID)
|
||||
public function close($projectID)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
|
||||
@@ -1550,7 +984,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJActivate($projectID)
|
||||
public function activate($projectID)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
$project = $this->project->getPRJByID($projectID);
|
||||
@@ -1592,7 +1026,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJDelete($projectID, $confirm = 'no')
|
||||
public function delete($projectID, $confirm = 'no')
|
||||
{
|
||||
if($confirm == 'no')
|
||||
{
|
||||
@@ -1619,7 +1053,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJUpdateOrder()
|
||||
public function updateOrder()
|
||||
{
|
||||
$idList = explode(',', trim($this->post->projects, ','));
|
||||
$orderBy = $this->post->orderBy;
|
||||
@@ -1654,7 +1088,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJWhitelist($projectID = 0, $projectID = 0, $module = 'project', $from = 'PRJ', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
public function whitelist($projectID = 0, $projectID = 0, $module = 'project', $from = 'PRJ', $objectType = 'project', $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1)
|
||||
{
|
||||
if($from == 'PRJ')
|
||||
{
|
||||
@@ -1684,7 +1118,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJAddWhitelist($projectID = 0, $deptID = 0, $projectID = 0, $from = 'PRJ')
|
||||
public function addWhitelist($projectID = 0, $deptID = 0, $projectID = 0, $from = 'PRJ')
|
||||
{
|
||||
/* Navigation stay in project when enter from project list. */
|
||||
$this->adjustNavigation($from, $projectID);
|
||||
@@ -1714,7 +1148,7 @@ class project extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function PRJManageProducts($projectID, $projectID = 0, $from = 'PRJ')
|
||||
public function manageProducts($projectID, $projectID = 0, $from = 'PRJ')
|
||||
{
|
||||
/* Navigation stay in project when enter from project list. */
|
||||
$this->adjustNavigation($from, $projectID);
|
||||
|
||||
@@ -293,13 +293,13 @@ function setBudgetTipsAndAclList(parentProgramID)
|
||||
{
|
||||
if(parentProgramID != 0)
|
||||
{
|
||||
$.get(createLink('program', 'ajaxGetAvailableBudget', "parentProgramID=" + parentProgramID), function(availableBudget)
|
||||
$.get(createLink('project', 'ajaxGetAvailableBudget', "parentProgramID=" + parentProgramID), function(availableBudget)
|
||||
{
|
||||
parentProgram = PGMList[parentProgramID];
|
||||
programBudget = parentProgram.budget;
|
||||
projectBudget = parentProgram.budget;
|
||||
PGMBudgetUnit = currencySymbol[parentProgram.budgetUnit];
|
||||
|
||||
budgetNotes = programBudget != 0 ? (PGMParentBudget + PGMBudgetUnit + availableBudget) : '';
|
||||
budgetNotes = projectBudget != 0 ? (PGMParentBudget + PGMBudgetUnit + availableBudget) : '';
|
||||
$('#budget').attr('placeholder', budgetNotes);
|
||||
});
|
||||
$('.aclBox').html($('#subPGMAcl').html());
|
||||
|
||||
@@ -29,5 +29,5 @@ $(function()
|
||||
|
||||
function setCopyProject(copiedProgramID)
|
||||
{
|
||||
location.href = createLink('program', 'create', 'template=' + template + '&programID=' + parentProgramID + '©ProgramID=' + copiedProgramID);
|
||||
location.href = createLink('project', 'create', 'template=' + template + '&projectID=' + parentProgramID + '©ProgramID=' + copiedProgramID);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
function setDeptUsers(obj)
|
||||
{
|
||||
dept = $(obj).val();//Get dept ID.
|
||||
link = createLink('program', 'createstakeholder', 'programID=' + programID + '&dept=' + dept);
|
||||
link = createLink('project', 'createstakeholder', 'projectID=' + projectID + '&dept=' + dept);
|
||||
location.href=link;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@ $(function()
|
||||
$("select[name^='parents']").change(function()
|
||||
{
|
||||
var $this = $(this);
|
||||
var programID = $this.val();
|
||||
var projectID = $this.val();
|
||||
var projectID = $this.attr("data-id");
|
||||
var oldParent = $this.attr("data-parent");
|
||||
var title = changeProgram.replace('%s', $this.attr("data-name"));
|
||||
|
||||
/* Determine whether the project can change the program set. */
|
||||
link = createLink('program', 'ajaxCheckProduct', 'programID=' + programID + '&projectID=' + projectID);
|
||||
/* Determine whether the project can change the project set. */
|
||||
link = createLink('project', 'ajaxCheckProduct', 'projectID=' + projectID + '&projectID=' + projectID);
|
||||
$.getJSON(link, function(data)
|
||||
{
|
||||
var changed = true;
|
||||
|
||||
@@ -8,5 +8,5 @@ $(function()
|
||||
});
|
||||
});
|
||||
|
||||
$('#project' + programID).addClass('active');
|
||||
$('#project' + projectID).addClass('active');
|
||||
$(".tree .active").parent('li').addClass('active');
|
||||
|
||||
@@ -25,7 +25,7 @@ $(function()
|
||||
});
|
||||
|
||||
/**
|
||||
* Set parent program.
|
||||
* Set parent project.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
@@ -33,7 +33,7 @@ $(function()
|
||||
function setParentProgram()
|
||||
{
|
||||
var parentProgram = $("#parent").val();
|
||||
location.href = createLink('program', 'PRJCreate', 'model=' + model + '&programID=' + parentProgram + '&from=' + from);
|
||||
location.href = createLink('project', 'PRJCreate', 'model=' + model + '&projectID=' + parentProgram + '&from=' + from);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -45,7 +45,7 @@ function setParentProgram()
|
||||
*/
|
||||
function setCopyProject(copyProjectID)
|
||||
{
|
||||
location.href = createLink('program', 'PRJCreate', 'model=' + model + '&programID=' + programID + '&from=' + from + '©ProjectID=' + copyProjectID);
|
||||
location.href = createLink('project', 'PRJCreate', 'model=' + model + '&projectID=' + projectID + '&from=' + from + '©ProjectID=' + copyProjectID);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,13 +78,13 @@ function addNewProduct(obj)
|
||||
/**
|
||||
* Set access control box.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function setAclList(programID)
|
||||
function setAclList(projectID)
|
||||
{
|
||||
if(programID != 0)
|
||||
if(projectID != 0)
|
||||
{
|
||||
$('.aclBox').html($('#PGMAcl').html());
|
||||
}
|
||||
@@ -225,7 +225,7 @@ $('#projectName').on('keyup', function()
|
||||
{
|
||||
var name = $(this).val();
|
||||
name = name.replace(/\s+/g, '');
|
||||
link = createLink('program', 'ajaxGetCopyProjects');
|
||||
link = createLink('project', 'ajaxGetCopyProjects');
|
||||
$.post(link, {name: name, cpoyProjectID : copyProjectID}, function(data)
|
||||
{
|
||||
$('#copyProjects').html(data);
|
||||
|
||||
@@ -2,10 +2,10 @@ $(function()
|
||||
{
|
||||
$('#parent').change(function()
|
||||
{
|
||||
var programID = $(this).val();
|
||||
var projectID = $(this).val();
|
||||
|
||||
/* Determine whether the project can change the program set. */
|
||||
link = createLink('program', 'ajaxCheckProduct', 'programID=' + programID + '&projectID=' + projectID);
|
||||
/* Determine whether the project can change the project set. */
|
||||
link = createLink('project', 'ajaxCheckProduct', 'projectID=' + projectID + '&projectID=' + projectID);
|
||||
$.getJSON(link, function(data)
|
||||
{
|
||||
var changed = true;
|
||||
@@ -69,13 +69,13 @@ $(function()
|
||||
/**
|
||||
* Set aclList.
|
||||
*
|
||||
* @param int $programID
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function setAclList(programID)
|
||||
function setAclList(projectID)
|
||||
{
|
||||
if(programID != 0)
|
||||
if(projectID != 0)
|
||||
{
|
||||
$('.aclBox').html($('#PGMAcl').html());
|
||||
}
|
||||
|
||||
@@ -31,6 +31,6 @@ function deleteItem(obj)
|
||||
function setDeptUsers(obj)
|
||||
{
|
||||
dept = $(obj).val(); // Get dept ID.
|
||||
link = createLink('program', 'PRJManageMembers', 'projectID=' + projectID + '&dept=' + dept); // Create manageMembers link.
|
||||
link = createLink('project', 'PRJManageMembers', 'projectID=' + projectID + '&dept=' + dept); // Create manageMembers link.
|
||||
location.href=link;
|
||||
}
|
||||
|
||||
+261
-261
@@ -1,294 +1,294 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = 'Select Template';
|
||||
$lang->program->PRJIndex = 'Dashboard';
|
||||
$lang->program->PRJHome = 'Home';
|
||||
$lang->program->PRJCreate = 'Create Project';
|
||||
$lang->program->PRJEdit = 'Edit';
|
||||
$lang->program->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->program->PRJView = 'Project View';
|
||||
$lang->program->batchEdit = 'Batch Edit';
|
||||
$lang->program->PRJBrowse = 'Projects';
|
||||
$lang->program->PRJAll = 'All';
|
||||
$lang->program->PRJStart = 'Start';
|
||||
$lang->program->PRJFinish = 'Finish';
|
||||
$lang->program->PRJSuspend = 'Suspend';
|
||||
$lang->program->PRJDelete = 'Delete';
|
||||
$lang->program->PRJClose = 'Close';
|
||||
$lang->program->PRJActivate = 'Activate';
|
||||
$lang->program->PRJGroup = 'Privilege Group';
|
||||
$lang->program->PRJCreateGroup = 'Create Group';
|
||||
$lang->program->PRJEditGroup = 'Edit Group';
|
||||
$lang->program->PRJCopyGroup = 'Copy Group';
|
||||
$lang->program->PRJManageView = 'Manage View';
|
||||
$lang->program->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->program->PRJManageMembers = 'Manage Team';
|
||||
$lang->program->export = 'Export';
|
||||
$lang->program->addProduct = 'Add product';
|
||||
$lang->program->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->program->PRJModuleSetting = 'List Settings';
|
||||
$lang->program->PRJModuleOpen = 'Program Name';
|
||||
$lang->program->PRJUpdateOrder = 'Order';
|
||||
$lang->program->PRJSort = 'Order';
|
||||
$lang->program->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->program->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->program->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->program->PRJManageProducts = 'Manage Products';
|
||||
$lang->program->view = 'Program Detail';
|
||||
$lang->program->copyTitle = 'Please select an project to copy';
|
||||
$lang->program->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->program->errorNoProducts = 'At least one product is associated';
|
||||
$lang->program->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->createGuide = 'Select Template';
|
||||
$lang->project->PRJIndex = 'Dashboard';
|
||||
$lang->project->PRJHome = 'Home';
|
||||
$lang->project->PRJCreate = 'Create Project';
|
||||
$lang->project->PRJEdit = 'Edit';
|
||||
$lang->project->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->project->PRJView = 'Project View';
|
||||
$lang->project->batchEdit = 'Batch Edit';
|
||||
$lang->project->PRJBrowse = 'Projects';
|
||||
$lang->project->PRJAll = 'All';
|
||||
$lang->project->PRJStart = 'Start';
|
||||
$lang->project->PRJFinish = 'Finish';
|
||||
$lang->project->PRJSuspend = 'Suspend';
|
||||
$lang->project->PRJDelete = 'Delete';
|
||||
$lang->project->PRJClose = 'Close';
|
||||
$lang->project->PRJActivate = 'Activate';
|
||||
$lang->project->PRJGroup = 'Privilege Group';
|
||||
$lang->project->PRJCreateGroup = 'Create Group';
|
||||
$lang->project->PRJEditGroup = 'Edit Group';
|
||||
$lang->project->PRJCopyGroup = 'Copy Group';
|
||||
$lang->project->PRJManageView = 'Manage View';
|
||||
$lang->project->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->project->PRJManageMembers = 'Manage Team';
|
||||
$lang->project->export = 'Export';
|
||||
$lang->project->addProduct = 'Add product';
|
||||
$lang->project->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->project->PRJModuleSetting = 'List Settings';
|
||||
$lang->project->PRJModuleOpen = 'Program Name';
|
||||
$lang->project->PRJUpdateOrder = 'Order';
|
||||
$lang->project->PRJSort = 'Order';
|
||||
$lang->project->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->project->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->project->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->project->PRJManageProducts = 'Manage Products';
|
||||
$lang->project->view = 'Program Detail';
|
||||
$lang->project->copyTitle = 'Please select an project to copy';
|
||||
$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->project->errorNoProducts = 'At least one product is associated';
|
||||
$lang->project->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->searchByName = 'Enter the project name to retrieve';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = 'Program';
|
||||
$lang->program->project = 'Project';
|
||||
$lang->program->stage = 'Stage';
|
||||
$lang->program->PM = 'Manager';
|
||||
$lang->program->PRJName = 'Name';
|
||||
$lang->program->PRJCategory = 'Category';
|
||||
$lang->program->PRJDesc = 'Description';
|
||||
$lang->program->PRJCode = 'Code';
|
||||
$lang->program->PRJCopy = 'Copy';
|
||||
$lang->program->begin = 'Begin';
|
||||
$lang->program->end = 'End';
|
||||
$lang->program->PRJStatus = 'Status';
|
||||
$lang->program->PRJPM = 'Manager';
|
||||
$lang->program->PRJBudget = 'Budget';
|
||||
$lang->program->PRJTemplate = 'Template';
|
||||
$lang->program->PRJEstimate = 'Estimates';
|
||||
$lang->program->PRJConsume = 'Cost';
|
||||
$lang->program->PRJSurplus = 'Left';
|
||||
$lang->program->PRJProgress = 'Progress';
|
||||
$lang->program->dateRange = 'Duration';
|
||||
$lang->program->to = ' to ';
|
||||
$lang->program->realEnd = 'Actual End';
|
||||
$lang->program->realBegan = 'Actual Began';
|
||||
$lang->program->bygrid = 'Kanban';
|
||||
$lang->program->bylist = 'List';
|
||||
$lang->program->mine = 'My';
|
||||
$lang->program->setPlanduration = 'Set Duration';
|
||||
$lang->program->auth = 'Access Control';
|
||||
$lang->program->durationEstimation = 'Estimated Workload';
|
||||
$lang->program->teamCount = 'Man';
|
||||
$lang->program->leftStories = 'Left Stories';
|
||||
$lang->program->leftTasks = 'Left Tasks';
|
||||
$lang->program->leftBugs = 'Left Bugs';
|
||||
$lang->program->PRJChildren = 'Child Project';
|
||||
$lang->program->PRJParent = 'Parent Project';
|
||||
$lang->program->allStories = 'All Stories';
|
||||
$lang->program->doneStories = 'Finished Stories';
|
||||
$lang->program->allInput = 'Total Input';
|
||||
$lang->program->weekly = 'Program Weekly';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = 'Team';
|
||||
$lang->program->PRJLongTime = 'Long-Term Project';
|
||||
$lang->program->future = 'TBD';
|
||||
$lang->program->morePRJ = 'More Project';
|
||||
$lang->project->common = 'Program';
|
||||
$lang->project->project = 'Project';
|
||||
$lang->project->stage = 'Stage';
|
||||
$lang->project->PM = 'Manager';
|
||||
$lang->project->PRJName = 'Name';
|
||||
$lang->project->PRJCategory = 'Category';
|
||||
$lang->project->PRJDesc = 'Description';
|
||||
$lang->project->PRJCode = 'Code';
|
||||
$lang->project->PRJCopy = 'Copy';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->PRJStatus = 'Status';
|
||||
$lang->project->PRJPM = 'Manager';
|
||||
$lang->project->PRJBudget = 'Budget';
|
||||
$lang->project->PRJTemplate = 'Template';
|
||||
$lang->project->PRJEstimate = 'Estimates';
|
||||
$lang->project->PRJConsume = 'Cost';
|
||||
$lang->project->PRJSurplus = 'Left';
|
||||
$lang->project->PRJProgress = 'Progress';
|
||||
$lang->project->dateRange = 'Duration';
|
||||
$lang->project->to = ' to ';
|
||||
$lang->project->realEnd = 'Actual End';
|
||||
$lang->project->realBegan = 'Actual Began';
|
||||
$lang->project->bygrid = 'Kanban';
|
||||
$lang->project->bylist = 'List';
|
||||
$lang->project->mine = 'My';
|
||||
$lang->project->setPlanduration = 'Set Duration';
|
||||
$lang->project->auth = 'Access Control';
|
||||
$lang->project->durationEstimation = 'Estimated Workload';
|
||||
$lang->project->teamCount = 'Man';
|
||||
$lang->project->leftStories = 'Left Stories';
|
||||
$lang->project->leftTasks = 'Left Tasks';
|
||||
$lang->project->leftBugs = 'Left Bugs';
|
||||
$lang->project->PRJChildren = 'Child Project';
|
||||
$lang->project->PRJParent = 'Parent Project';
|
||||
$lang->project->allStories = 'All Stories';
|
||||
$lang->project->doneStories = 'Finished Stories';
|
||||
$lang->project->allInput = 'Total Input';
|
||||
$lang->project->weekly = 'Program Weekly';
|
||||
$lang->project->pv = 'PV';
|
||||
$lang->project->ev = 'EV';
|
||||
$lang->project->sv = 'SV%';
|
||||
$lang->project->ac = 'AC';
|
||||
$lang->project->cv = 'CV%';
|
||||
$lang->project->PRJTeamCount = 'Team';
|
||||
$lang->project->PRJLongTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->morePRJ = 'More Project';
|
||||
|
||||
$lang->program->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->program->existProductName = 'Product name already exists.';
|
||||
$lang->program->changeProgram = '%s > Change program';
|
||||
$lang->program->changeProgramTip = 'After modifying the program set, the products linked with the project will also modify the program set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->program->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->program->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
$lang->project->changeProgram = '%s > Change project';
|
||||
$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
|
||||
$lang->program->tenThousand = '';
|
||||
$lang->project->tenThousand = '';
|
||||
|
||||
$lang->program->unitList['CNY'] = 'RMB';
|
||||
$lang->program->unitList['USD'] = 'USD';
|
||||
$lang->program->unitList['HKD'] = 'HKD';
|
||||
$lang->program->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->program->unitList['EUR'] = 'Euro';
|
||||
$lang->program->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->program->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->program->unitList['FRF'] = 'French Franc';
|
||||
$lang->program->unitList['GBP'] = 'Pound';
|
||||
$lang->program->unitList['NLG'] = 'Florin';
|
||||
$lang->program->unitList['CAD'] = 'Canadian';
|
||||
$lang->program->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->program->unitList['INR'] = 'Indian';
|
||||
$lang->program->unitList['AUD'] = 'Australian';
|
||||
$lang->program->unitList['NZD'] = 'New Zealand';
|
||||
$lang->program->unitList['THB'] = 'Thai Baht';
|
||||
$lang->program->unitList['SGD'] = 'Singapore';
|
||||
$lang->project->unitList['CNY'] = 'RMB';
|
||||
$lang->project->unitList['USD'] = 'USD';
|
||||
$lang->project->unitList['HKD'] = 'HKD';
|
||||
$lang->project->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->project->unitList['EUR'] = 'Euro';
|
||||
$lang->project->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->project->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->project->unitList['FRF'] = 'French Franc';
|
||||
$lang->project->unitList['GBP'] = 'Pound';
|
||||
$lang->project->unitList['NLG'] = 'Florin';
|
||||
$lang->project->unitList['CAD'] = 'Canadian';
|
||||
$lang->project->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->project->unitList['INR'] = 'Indian';
|
||||
$lang->project->unitList['AUD'] = 'Australian';
|
||||
$lang->project->unitList['NZD'] = 'New Zealand';
|
||||
$lang->project->unitList['THB'] = 'Thai Baht';
|
||||
$lang->project->unitList['SGD'] = 'Singapore';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
$lang->project->currencySymbol['CNY'] = '¥';
|
||||
$lang->project->currencySymbol['USD'] = '$';
|
||||
$lang->project->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->project->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->project->currencySymbol['EUR'] = '€';
|
||||
$lang->project->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->project->currencySymbol['CHF'] = '₣';
|
||||
$lang->project->currencySymbol['FRF'] = '₣';
|
||||
$lang->project->currencySymbol['GBP'] = '£';
|
||||
$lang->project->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->project->currencySymbol['CAD'] = '$';
|
||||
$lang->project->currencySymbol['RUR'] = '₽';
|
||||
$lang->project->currencySymbol['INR'] = '₹';
|
||||
$lang->project->currencySymbol['AUD'] = 'A$';
|
||||
$lang->project->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->project->currencySymbol['THB'] = '฿';
|
||||
$lang->project->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "CMMI";
|
||||
$lang->project->modelList['scrum'] = "Scrum";
|
||||
$lang->project->modelList['waterfall'] = "CMMI";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "Single product";
|
||||
$lang->program->PRJCategoryList['multiple'] = "Multiple products";
|
||||
$lang->project->PRJCategoryList['single'] = "Single product";
|
||||
$lang->project->PRJCategoryList['multiple'] = "Multiple products";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->program->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "DevOps";
|
||||
$lang->project->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->project->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->project->PRJLifeTimeList['ops'] = "DevOps";
|
||||
|
||||
$lang->program->featureBar['all'] = 'All';
|
||||
$lang->program->featureBar['doing'] = 'Going';
|
||||
$lang->program->featureBar['wait'] = 'Waiting';
|
||||
$lang->program->featureBar['suspended'] = 'Suspended';
|
||||
$lang->program->featureBar['closed'] = 'Closed';
|
||||
$lang->project->featureBar['all'] = 'All';
|
||||
$lang->project->featureBar['doing'] = 'Going';
|
||||
$lang->project->featureBar['wait'] = 'Waiting';
|
||||
$lang->project->featureBar['suspended'] = 'Suspended';
|
||||
$lang->project->featureBar['closed'] = 'Closed';
|
||||
|
||||
$lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->program->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
$lang->project->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->project->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = 'Private';
|
||||
$lang->program->PRJAcls['open'] = "Open";
|
||||
$lang->project->PRJAcls['private'] = 'Private';
|
||||
$lang->project->PRJAcls['open'] = "Open";
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->program->PGMPRJAclList['program'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
$lang->project->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->project->PGMPRJAclList['project'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->project->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "Private";
|
||||
$lang->program->PGMPRJAcls['program'] = "Public within the project set";
|
||||
$lang->program->PGMPRJAcls['open'] = "Full disclosure";
|
||||
$lang->project->PGMPRJAcls['private'] = "Private";
|
||||
$lang->project->PGMPRJAcls['project'] = "Public within the project set";
|
||||
$lang->project->PGMPRJAcls['open'] = "Full disclosure";
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
$lang->project->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->project->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
|
||||
$lang->program->statusList['wait'] = 'Waiting';
|
||||
$lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
$lang->project->statusList['wait'] = 'Waiting';
|
||||
$lang->project->statusList['doing'] = 'Doing';
|
||||
$lang->project->statusList['suspended'] = 'Suspended';
|
||||
$lang->project->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->program->endList[31] = 'One month';
|
||||
$lang->program->endList[93] = 'Trimester';
|
||||
$lang->program->endList[186] = 'Half yearly';
|
||||
$lang->program->endList[365] = 'One year';
|
||||
$lang->program->endList[999] = 'Longtime';
|
||||
$lang->project->endList[31] = 'One month';
|
||||
$lang->project->endList[93] = 'Trimester';
|
||||
$lang->project->endList[186] = 'Half yearly';
|
||||
$lang->project->endList[365] = 'One year';
|
||||
$lang->project->endList[999] = 'Longtime';
|
||||
|
||||
$lang->program->noPRJ = 'No project.';
|
||||
$lang->program->accessDenied = 'Access denied!';
|
||||
$lang->program->chooseProgramType = 'Select the project management model';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s men';
|
||||
$lang->program->lastIteration = 'Recent iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = 'CMMI';
|
||||
$lang->program->waterfallTitle = 'CMMI';
|
||||
$lang->program->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->program->emptyPM = 'No manager';
|
||||
$lang->program->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->program->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->program->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->program->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
$lang->project->noPRJ = 'No project.';
|
||||
$lang->project->accessDenied = 'Access denied!';
|
||||
$lang->project->chooseProgramType = 'Select the project management model';
|
||||
$lang->project->nextStep = 'Next step';
|
||||
$lang->project->hoursUnit = '%s hours';
|
||||
$lang->project->membersUnit = '%s men';
|
||||
$lang->project->lastIteration = 'Recent iterations';
|
||||
$lang->project->ongoingStage = 'Ongoing stage';
|
||||
$lang->project->scrum = 'Scrum';
|
||||
$lang->project->waterfall = 'CMMI';
|
||||
$lang->project->waterfallTitle = 'CMMI';
|
||||
$lang->project->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->project->hasChildren = 'It has child projects or projects. You cannot delete it.';
|
||||
$lang->project->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->project->emptyPM = 'No manager';
|
||||
$lang->project->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->project->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->project->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->project->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->project->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
|
||||
$lang->program->PRJProgramTitle['end'] = 'End-level program only';
|
||||
$lang->project->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->project->PRJProgramTitle['base'] = 'Base-level project only';
|
||||
$lang->project->PRJProgramTitle['end'] = 'End-level project only';
|
||||
|
||||
$lang->program->PRJAccessDenied = 'Access denied to this program';
|
||||
$lang->program->PRJChooseProgramType = 'Select management type';
|
||||
$lang->program->scrumTitle = 'Agile Development Management';
|
||||
$lang->program->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->program->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->program->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->program->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->program->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->program->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->program->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->program->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->program->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the program set.";
|
||||
$lang->program->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the program set.";
|
||||
$lang->program->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
$lang->project->PRJAccessDenied = 'Access denied to this project';
|
||||
$lang->project->PRJChooseProgramType = 'Select management type';
|
||||
$lang->project->scrumTitle = 'Agile Development Management';
|
||||
$lang->project->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->project->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->project->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->project->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->project->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->project->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->project->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->project->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->project->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->project->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the project set.";
|
||||
$lang->project->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the project set.";
|
||||
$lang->project->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = 'Program';
|
||||
$lang->program->PGMIndex = 'Home';
|
||||
$lang->program->PGMCreate = 'Create Program';
|
||||
$lang->program->PGMCreateGuide = 'Select Template';
|
||||
$lang->program->PGMEdit = 'Edit Program';
|
||||
$lang->program->PGMBrowse = 'Programs';
|
||||
$lang->program->PGMProduct = 'Products';
|
||||
$lang->program->PGMProject = 'Program Project List';
|
||||
$lang->program->PGMAll = 'All Programs';
|
||||
$lang->program->PGMStart = 'Start';
|
||||
$lang->program->PGMFinish = 'Finish';
|
||||
$lang->program->PGMSuspend = 'Suspend';
|
||||
$lang->program->PGMDelete = 'Delete';
|
||||
$lang->program->PGMClose = 'Close';
|
||||
$lang->program->PGMActivate = 'Activate';
|
||||
$lang->program->PGMExport = 'Export';
|
||||
$lang->program->PGMStakeholder = 'Stakeholder';
|
||||
$lang->program->createStakeholder = 'Create Stakeholder';
|
||||
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->program->unlink = 'Unlink';
|
||||
$lang->program->morePGM = 'More Programs';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$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 surplus budget:';
|
||||
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
|
||||
$lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$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->PGMCloseErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->project->PGMCommon = 'Program';
|
||||
$lang->project->PGMIndex = 'Home';
|
||||
$lang->project->PGMCreate = 'Create Program';
|
||||
$lang->project->PGMCreateGuide = 'Select Template';
|
||||
$lang->project->PGMEdit = 'Edit Program';
|
||||
$lang->project->PGMBrowse = 'Programs';
|
||||
$lang->project->PGMProduct = 'Products';
|
||||
$lang->project->PGMProject = 'Program Project List';
|
||||
$lang->project->PGMAll = 'All Programs';
|
||||
$lang->project->PGMStart = 'Start';
|
||||
$lang->project->PGMFinish = 'Finish';
|
||||
$lang->project->PGMSuspend = 'Suspend';
|
||||
$lang->project->PGMDelete = 'Delete';
|
||||
$lang->project->PGMClose = 'Close';
|
||||
$lang->project->PGMActivate = 'Activate';
|
||||
$lang->project->PGMExport = 'Export';
|
||||
$lang->project->PGMStakeholder = 'Stakeholder';
|
||||
$lang->project->createStakeholder = 'Create Stakeholder';
|
||||
$lang->project->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->project->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->project->unlink = 'Unlink';
|
||||
$lang->project->morePGM = 'More Programs';
|
||||
$lang->project->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->project->stakeholderType = 'Stakeholder type';
|
||||
$lang->project->isStakeholderKey = 'Key stakeholder';
|
||||
$lang->project->importStakeholder = 'Import project';
|
||||
$lang->project->PGMManageMembers = 'Program Team';
|
||||
$lang->project->PGMParentBudget = 'Parent project surplus budget:';
|
||||
$lang->project->beyondParentBudget = 'The remaining budget of the owned project has been exceeded.';
|
||||
$lang->project->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->project->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$lang->project->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date < = child earliest begin date.";
|
||||
$lang->project->PGMEndLetterChild = "Child latest end: %s, parent end date > = child latest end date.";
|
||||
$lang->project->PGMCloseErrorMessage = 'There are subprojects or projects that are not closed';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
$lang->project->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->project->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = 'Name';
|
||||
$lang->program->PGMTemplate = 'Template';
|
||||
$lang->program->PGMCategory = 'Type';
|
||||
$lang->program->PGMDesc = 'Description';
|
||||
$lang->program->PGMCopy = 'Copy Program';
|
||||
$lang->program->PGMStatus = 'Status';
|
||||
$lang->program->PGMPM = 'Manager';
|
||||
$lang->program->PGMBudget = 'Budget';
|
||||
$lang->program->PGMProgress = 'Progress';
|
||||
$lang->program->PGMChildren = 'Child';
|
||||
$lang->program->PGMParent = 'Parent';
|
||||
$lang->program->PGMAllInput = 'Input';
|
||||
$lang->program->PGMTeamCount = 'Team';
|
||||
$lang->program->PGMLongTime = 'Long-Term';
|
||||
$lang->project->PGMName = 'Name';
|
||||
$lang->project->PGMTemplate = 'Template';
|
||||
$lang->project->PGMCategory = 'Type';
|
||||
$lang->project->PGMDesc = 'Description';
|
||||
$lang->project->PGMCopy = 'Copy Program';
|
||||
$lang->project->PGMStatus = 'Status';
|
||||
$lang->project->PGMPM = 'Manager';
|
||||
$lang->project->PGMBudget = 'Budget';
|
||||
$lang->project->PGMProgress = 'Progress';
|
||||
$lang->project->PGMChildren = 'Child';
|
||||
$lang->project->PGMParent = 'Parent';
|
||||
$lang->project->PGMAllInput = 'Input';
|
||||
$lang->project->PGMTeamCount = 'Team';
|
||||
$lang->project->PGMLongTime = 'Long-Term';
|
||||
|
||||
$lang->program->noPGM = 'No program.';
|
||||
$lang->program->PGMShowClosed = 'Closed programs.';
|
||||
$lang->program->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
$lang->project->noPGM = 'No project.';
|
||||
$lang->project->PGMShowClosed = 'Closed projects.';
|
||||
$lang->project->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->PGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->project->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->project->PGMAclList['open'] = "Default(user who can visit the project can access it)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "Private (accessible to this program set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->subPGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->program->subPGMAclList['program'] = "Open within the program (accessible to all higher-level program directors and affiliates, as well as to this program director and affiliates)";
|
||||
$lang->project->subPGMAclList['private'] = "Private (accessible to this project set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->project->subPGMAclList['open'] = "Default(user who can visit the project can access it)";
|
||||
$lang->project->subPGMAclList['project'] = "Open within the project (accessible to all higher-level project directors and affiliates, as well as to this project director and affiliates)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = 'Inherit(program privileges and company privileges)';
|
||||
$lang->program->PGMAuthList['reset'] = 'Reset(program privileges only)';
|
||||
$lang->project->PGMAuthList['extend'] = 'Inherit(project privileges and company privileges)';
|
||||
$lang->project->PGMAuthList['reset'] = 'Reset(project privileges only)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = 'All';
|
||||
$lang->project->PGMFeatureBar['all'] = 'All';
|
||||
|
||||
+196
-274
@@ -1,294 +1,216 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = 'Select Template';
|
||||
$lang->program->PRJIndex = 'Dashboard';
|
||||
$lang->program->PRJHome = 'Home';
|
||||
$lang->program->PRJCreate = 'Create Project';
|
||||
$lang->program->PRJEdit = 'Edit';
|
||||
$lang->program->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->program->PRJView = 'Project View';
|
||||
$lang->program->batchEdit = 'Batch Edit';
|
||||
$lang->program->PRJBrowse = 'Projects';
|
||||
$lang->program->PRJAll = 'All';
|
||||
$lang->program->PRJStart = 'Start';
|
||||
$lang->program->PRJFinish = 'Finish';
|
||||
$lang->program->PRJSuspend = 'Suspend';
|
||||
$lang->program->PRJDelete = 'Delete';
|
||||
$lang->program->PRJClose = 'Close';
|
||||
$lang->program->PRJActivate = 'Activate';
|
||||
$lang->program->PRJGroup = 'Privilege Group';
|
||||
$lang->program->PRJCreateGroup = 'Create Group';
|
||||
$lang->program->PRJEditGroup = 'Edit Group';
|
||||
$lang->program->PRJCopyGroup = 'Copy Group';
|
||||
$lang->program->PRJManageView = 'Manage View';
|
||||
$lang->program->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->program->PRJManageMembers = 'Manage Team';
|
||||
$lang->program->export = 'Export';
|
||||
$lang->program->addProduct = 'Add Product';
|
||||
$lang->program->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->program->PRJModuleSetting = 'List Settings';
|
||||
$lang->program->PRJModuleOpen = 'Program Name';
|
||||
$lang->program->PRJUpdateOrder = 'Order';
|
||||
$lang->program->PRJSort = 'Order';
|
||||
$lang->program->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->program->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->program->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->program->PRJManageProducts = 'Manage Products';
|
||||
$lang->program->view = 'Program Detail';
|
||||
$lang->program->copyTitle = 'Please select an project to copy';
|
||||
$lang->program->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->program->errorNoProducts = 'At least one product is associated';
|
||||
$lang->program->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->searchByName = 'Enter the project name to retrieve';
|
||||
$lang->project->createGuide = 'Select Template';
|
||||
$lang->project->index = 'Dashboard';
|
||||
$lang->project->home = 'Home';
|
||||
$lang->project->create = 'Create Project';
|
||||
$lang->project->edit = 'Edit';
|
||||
$lang->project->batchEdit = 'Batch Edit Projects';
|
||||
$lang->project->view = 'Project View';
|
||||
$lang->project->batchEdit = 'Batch Edit';
|
||||
$lang->project->browse = 'Projects';
|
||||
$lang->project->all = 'All';
|
||||
$lang->project->start = 'Start';
|
||||
$lang->project->finish = 'Finish';
|
||||
$lang->project->suspend = 'Suspend';
|
||||
$lang->project->delete = 'Delete';
|
||||
$lang->project->close = 'Close';
|
||||
$lang->project->activate = 'Activate';
|
||||
$lang->project->group = 'Privilege Group';
|
||||
$lang->project->createGroup = 'Create Group';
|
||||
$lang->project->editGroup = 'Edit Group';
|
||||
$lang->project->copyGroup = 'Copy Group';
|
||||
$lang->project->manageView = 'Manage View';
|
||||
$lang->project->managePriv = 'Manage Privilege';
|
||||
$lang->project->manageMembers = 'Manage Team';
|
||||
$lang->project->export = 'Export';
|
||||
$lang->project->addProduct = 'Add Product';
|
||||
$lang->project->manageGroupMember = 'Manage Group';
|
||||
$lang->project->moduleSetting = 'List Settings';
|
||||
$lang->project->moduleOpen = 'Program Name';
|
||||
$lang->project->updateOrder = 'Order';
|
||||
$lang->project->sort = 'Order';
|
||||
$lang->project->whitelist = 'Project Whitelist';
|
||||
$lang->project->addWhitelist = 'Project Add Whitelist';
|
||||
$lang->project->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->project->manageProducts = 'Manage Products';
|
||||
$lang->project->view = 'Program Detail';
|
||||
$lang->project->copyTitle = 'Please select an project to copy';
|
||||
$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->project->errorNoProducts = 'At least one product is associated';
|
||||
$lang->project->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->searchByName = 'Enter the project name to retrieve';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = 'Program';
|
||||
$lang->program->project = 'Project';
|
||||
$lang->program->stage = 'Stage';
|
||||
$lang->program->PM = 'Manager';
|
||||
$lang->program->PRJName = 'Name';
|
||||
$lang->program->PRJCategory = 'Category';
|
||||
$lang->program->PRJDesc = 'Description';
|
||||
$lang->program->PRJCode = 'Code';
|
||||
$lang->program->PRJCopy = 'Copy';
|
||||
$lang->program->begin = 'Begin';
|
||||
$lang->program->end = 'End';
|
||||
$lang->program->PRJStatus = 'Status';
|
||||
$lang->program->PRJPM = 'Manager';
|
||||
$lang->program->PRJBudget = 'Budget';
|
||||
$lang->program->PRJTemplate = 'Template';
|
||||
$lang->program->PRJEstimate = 'Estimates';
|
||||
$lang->program->PRJConsume = 'Cost';
|
||||
$lang->program->PRJSurplus = 'Left';
|
||||
$lang->program->PRJProgress = 'Progress';
|
||||
$lang->program->dateRange = 'Duration';
|
||||
$lang->program->to = ' to ';
|
||||
$lang->program->realEnd = 'Actual End';
|
||||
$lang->program->realBegan = 'Actual Began';
|
||||
$lang->program->bygrid = 'Kanban';
|
||||
$lang->program->bylist = 'List';
|
||||
$lang->program->mine = 'My';
|
||||
$lang->program->setPlanduration = 'Set Duration';
|
||||
$lang->program->auth = 'Access Control';
|
||||
$lang->program->durationEstimation = 'Estimated Workload';
|
||||
$lang->program->teamCount = 'Man';
|
||||
$lang->program->leftStories = 'Left Stories';
|
||||
$lang->program->leftTasks = 'Left Tasks';
|
||||
$lang->program->leftBugs = 'Left Bugs';
|
||||
$lang->program->PRJChildren = 'Child Project';
|
||||
$lang->program->PRJParent = 'Parent Project';
|
||||
$lang->program->allStories = 'All Stories';
|
||||
$lang->program->doneStories = 'Finished Stories';
|
||||
$lang->program->allInput = 'Total Input';
|
||||
$lang->program->weekly = 'Program Weekly';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = 'Team';
|
||||
$lang->program->PRJLongTime = 'Long-Term Project';
|
||||
$lang->program->future = 'TBD';
|
||||
$lang->program->morePRJ = 'More Project';
|
||||
$lang->project->common = 'Program';
|
||||
$lang->project->project = 'Project';
|
||||
$lang->project->stage = 'Stage';
|
||||
$lang->project->PM = 'Manager';
|
||||
$lang->project->name = 'Name';
|
||||
$lang->project->category = 'Category';
|
||||
$lang->project->desc = 'Description';
|
||||
$lang->project->code = 'Code';
|
||||
$lang->project->copy = 'Copy';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->status = 'Status';
|
||||
$lang->project->PM = 'Manager';
|
||||
$lang->project->budget = 'Budget';
|
||||
$lang->project->template = 'Template';
|
||||
$lang->project->estimate = 'Estimates';
|
||||
$lang->project->consume = 'Cost';
|
||||
$lang->project->surplus = 'Left';
|
||||
$lang->project->progress = 'Progress';
|
||||
$lang->project->dateRange = 'Duration';
|
||||
$lang->project->to = ' to ';
|
||||
$lang->project->realEnd = 'Actual End';
|
||||
$lang->project->realBegan = 'Actual Began';
|
||||
$lang->project->bygrid = 'Kanban';
|
||||
$lang->project->bylist = 'List';
|
||||
$lang->project->mine = 'My';
|
||||
$lang->project->acl = 'Access Control';
|
||||
$lang->project->setPlanduration = 'Set Duration';
|
||||
$lang->project->auth = 'Access Control';
|
||||
$lang->project->durationEstimation = 'Estimated Workload';
|
||||
$lang->project->teamCount = 'Man';
|
||||
$lang->project->leftStories = 'Left Stories';
|
||||
$lang->project->leftTasks = 'Left Tasks';
|
||||
$lang->project->leftBugs = 'Left Bugs';
|
||||
$lang->project->children = 'Child Project';
|
||||
$lang->project->parent = 'Parent Project';
|
||||
$lang->project->allStories = 'All Stories';
|
||||
$lang->project->doneStories = 'Finished Stories';
|
||||
$lang->project->allInput = 'Total Input';
|
||||
$lang->project->weekly = 'Program Weekly';
|
||||
$lang->project->pv = 'PV';
|
||||
$lang->project->ev = 'EV';
|
||||
$lang->project->sv = 'SV%';
|
||||
$lang->project->ac = 'AC';
|
||||
$lang->project->cv = 'CV%';
|
||||
$lang->project->teamCount = 'Team';
|
||||
$lang->project->longTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->moreProject = 'More Project';
|
||||
|
||||
$lang->program->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->program->existProductName = 'Product name already exists.';
|
||||
$lang->program->changeProgram = '%s > Change program';
|
||||
$lang->program->changeProgramTip = 'After modifying the program set, the products linked with the project will also modify the program set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->program->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->program->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
$lang->project->changeProgram = '%s > Change project';
|
||||
$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
|
||||
$lang->program->tenThousand = '';
|
||||
$lang->project->tenThousand = '';
|
||||
|
||||
$lang->program->unitList['CNY'] = 'RMB';
|
||||
$lang->program->unitList['USD'] = 'USD';
|
||||
$lang->program->unitList['HKD'] = 'HKD';
|
||||
$lang->program->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->program->unitList['EUR'] = 'Euro';
|
||||
$lang->program->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->program->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->program->unitList['FRF'] = 'French Franc';
|
||||
$lang->program->unitList['GBP'] = 'Pound';
|
||||
$lang->program->unitList['NLG'] = 'Florin';
|
||||
$lang->program->unitList['CAD'] = 'Canadian';
|
||||
$lang->program->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->program->unitList['INR'] = 'Indian';
|
||||
$lang->program->unitList['AUD'] = 'Australian';
|
||||
$lang->program->unitList['NZD'] = 'New Zealand';
|
||||
$lang->program->unitList['THB'] = 'Thai Baht';
|
||||
$lang->program->unitList['SGD'] = 'Singapore';
|
||||
$lang->project->unitList['CNY'] = 'RMB';
|
||||
$lang->project->unitList['USD'] = 'USD';
|
||||
$lang->project->unitList['HKD'] = 'HKD';
|
||||
$lang->project->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->project->unitList['EUR'] = 'Euro';
|
||||
$lang->project->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->project->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->project->unitList['FRF'] = 'French Franc';
|
||||
$lang->project->unitList['GBP'] = 'Pound';
|
||||
$lang->project->unitList['NLG'] = 'Florin';
|
||||
$lang->project->unitList['CAD'] = 'Canadian';
|
||||
$lang->project->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->project->unitList['INR'] = 'Indian';
|
||||
$lang->project->unitList['AUD'] = 'Australian';
|
||||
$lang->project->unitList['NZD'] = 'New Zealand';
|
||||
$lang->project->unitList['THB'] = 'Thai Baht';
|
||||
$lang->project->unitList['SGD'] = 'Singapore';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
$lang->project->currencySymbol['CNY'] = '¥';
|
||||
$lang->project->currencySymbol['USD'] = '$';
|
||||
$lang->project->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->project->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->project->currencySymbol['EUR'] = '€';
|
||||
$lang->project->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->project->currencySymbol['CHF'] = '₣';
|
||||
$lang->project->currencySymbol['FRF'] = '₣';
|
||||
$lang->project->currencySymbol['GBP'] = '£';
|
||||
$lang->project->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->project->currencySymbol['CAD'] = '$';
|
||||
$lang->project->currencySymbol['RUR'] = '₽';
|
||||
$lang->project->currencySymbol['INR'] = '₹';
|
||||
$lang->project->currencySymbol['AUD'] = 'A$';
|
||||
$lang->project->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->project->currencySymbol['THB'] = '฿';
|
||||
$lang->project->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "CMMI";
|
||||
$lang->project->modelList['scrum'] = "Scrum";
|
||||
$lang->project->modelList['waterfall'] = "CMMI";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "Single product";
|
||||
$lang->program->PRJCategoryList['multiple'] = "Multiple products";
|
||||
$lang->project->categoryList['single'] = "Single product";
|
||||
$lang->project->categoryList['multiple'] = "Multiple products";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->program->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "DevOps";
|
||||
$lang->project->lifeTimeList['short'] = "Short-Term";
|
||||
$lang->project->lifeTimeList['long'] = "Long-Term";
|
||||
$lang->project->lifeTimeList['ops'] = "DevOps";
|
||||
|
||||
$lang->program->featureBar['all'] = 'All';
|
||||
$lang->program->featureBar['doing'] = 'Going';
|
||||
$lang->program->featureBar['wait'] = 'Waiting';
|
||||
$lang->program->featureBar['suspended'] = 'Suspended';
|
||||
$lang->program->featureBar['closed'] = 'Closed';
|
||||
$lang->project->featureBar['all'] = 'All';
|
||||
$lang->project->featureBar['doing'] = 'Going';
|
||||
$lang->project->featureBar['wait'] = 'Waiting';
|
||||
$lang->project->featureBar['suspended'] = 'Suspended';
|
||||
$lang->project->featureBar['closed'] = 'Closed';
|
||||
|
||||
$lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->program->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
$lang->project->aclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->project->aclList['open'] = "Open (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = 'Private';
|
||||
$lang->program->PRJAcls['open'] = "Open";
|
||||
$lang->project->acls['private'] = 'Private';
|
||||
$lang->project->acls['open'] = 'Open';
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->program->PGMPRJAclList['program'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
$lang->project->authList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->project->authList['reset'] = 'Reset (project privilege only)';
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "Private";
|
||||
$lang->program->PGMPRJAcls['program'] = "Public within the project set";
|
||||
$lang->program->PGMPRJAcls['open'] = "Full disclosure";
|
||||
$lang->project->statusList['wait'] = 'Waiting';
|
||||
$lang->project->statusList['doing'] = 'Doing';
|
||||
$lang->project->statusList['suspended'] = 'Suspended';
|
||||
$lang->project->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
$lang->project->endList[31] = 'One month';
|
||||
$lang->project->endList[93] = 'Trimester';
|
||||
$lang->project->endList[186] = 'Half yearly';
|
||||
$lang->project->endList[365] = 'One year';
|
||||
$lang->project->endList[999] = 'Longtime';
|
||||
|
||||
$lang->program->statusList['wait'] = 'Waiting';
|
||||
$lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
$lang->project->empty = 'No project.';
|
||||
$lang->project->accessDenied = 'Access denied!';
|
||||
$lang->project->chooseProgramType = 'Select the project management model';
|
||||
$lang->project->nextStep = 'Next step';
|
||||
$lang->project->hoursUnit = '%s hours';
|
||||
$lang->project->membersUnit = '%s men';
|
||||
$lang->project->lastIteration = 'Recent iterations';
|
||||
$lang->project->ongoingStage = 'Ongoing stage';
|
||||
$lang->project->scrum = 'Scrum';
|
||||
$lang->project->waterfall = 'CMMI';
|
||||
$lang->project->waterfallTitle = 'CMMI';
|
||||
$lang->project->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->project->hasChildren = 'It has child projects or projects. You cannot delete it.';
|
||||
$lang->project->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->project->emptyPM = 'No manager';
|
||||
$lang->project->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->project->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->project->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->project->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->project->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
|
||||
$lang->program->endList[31] = 'One month';
|
||||
$lang->program->endList[93] = 'Trimester';
|
||||
$lang->program->endList[186] = 'Half yearly';
|
||||
$lang->program->endList[365] = 'One year';
|
||||
$lang->program->endList[999] = 'Longtime';
|
||||
$lang->project->programTitle['0'] = 'Hidden';
|
||||
$lang->project->programTitle['base'] = 'Base-level project only';
|
||||
$lang->project->programTitle['end'] = 'End-level project only';
|
||||
|
||||
$lang->program->noPRJ = 'No project.';
|
||||
$lang->program->accessDenied = 'Access denied!';
|
||||
$lang->program->chooseProgramType = 'Select the project management model';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s men';
|
||||
$lang->program->lastIteration = 'Recent iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = 'CMMI';
|
||||
$lang->program->waterfallTitle = 'CMMI';
|
||||
$lang->program->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->program->emptyPM = 'No manager';
|
||||
$lang->program->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->program->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->program->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->program->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
|
||||
$lang->program->PRJProgramTitle['end'] = 'End-level program only';
|
||||
|
||||
$lang->program->PRJAccessDenied = 'Access denied to this program';
|
||||
$lang->program->PRJChooseProgramType = 'Select management type';
|
||||
$lang->program->scrumTitle = 'Agile Development Management';
|
||||
$lang->program->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->program->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->program->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->program->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->program->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->program->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->program->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->program->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->program->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the program set.";
|
||||
$lang->program->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the program set.";
|
||||
$lang->program->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = 'Program';
|
||||
$lang->program->PGMIndex = 'Home';
|
||||
$lang->program->PGMCreate = 'Create Program';
|
||||
$lang->program->PGMCreateGuide = 'Select Template';
|
||||
$lang->program->PGMEdit = 'Edit Program';
|
||||
$lang->program->PGMBrowse = 'Programs';
|
||||
$lang->program->PGMProduct = 'Products';
|
||||
$lang->program->PGMProject = 'Program Project List';
|
||||
$lang->program->PGMAll = 'All Programs';
|
||||
$lang->program->PGMStart = 'Start';
|
||||
$lang->program->PGMFinish = 'Finish';
|
||||
$lang->program->PGMSuspend = 'Suspend';
|
||||
$lang->program->PGMDelete = 'Delete';
|
||||
$lang->program->PGMClose = 'Close';
|
||||
$lang->program->PGMActivate = 'Activate';
|
||||
$lang->program->PGMExport = 'Export';
|
||||
$lang->program->PGMStakeholder = 'Stakeholder';
|
||||
$lang->program->createStakeholder = 'Create Stakeholder';
|
||||
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->program->unlink = 'Unlink';
|
||||
$lang->program->morePGM = 'More program';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$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 surplus budget:';
|
||||
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
|
||||
$lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$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->PGMCloseErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = 'Name';
|
||||
$lang->program->PGMTemplate = 'Template';
|
||||
$lang->program->PGMCategory = 'Type';
|
||||
$lang->program->PGMDesc = 'Description';
|
||||
$lang->program->PGMCopy = 'Copy Program';
|
||||
$lang->program->PGMStatus = 'Status';
|
||||
$lang->program->PGMPM = 'Manager';
|
||||
$lang->program->PGMBudget = 'Budget';
|
||||
$lang->program->PGMProgress = 'Progress';
|
||||
$lang->program->PGMChildren = 'Child';
|
||||
$lang->program->PGMParent = 'Parent';
|
||||
$lang->program->PGMAllInput = 'Input';
|
||||
$lang->program->PGMTeamCount = 'Team';
|
||||
$lang->program->PGMLongTime = 'Long-Term';
|
||||
|
||||
$lang->program->noPGM = 'No program.';
|
||||
$lang->program->PGMShowClosed = 'Closed programs.';
|
||||
$lang->program->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->PGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "Private (accessible to this program set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->subPGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->program->subPGMAclList['program'] = "Open within the program (accessible to all higher-level program directors and affiliates, as well as to this program director and affiliates)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = 'Inherit(program privileges and company privileges)';
|
||||
$lang->program->PGMAuthList['reset'] = 'Reset(program privileges only)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = 'All';
|
||||
$lang->project->accessDenied = 'Access denied to this project';
|
||||
$lang->project->chooseProgramType = 'Select management type';
|
||||
$lang->project->scrumTitle = 'Agile Development Management';
|
||||
$lang->project->cannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->project->hasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->project->confirmDelete = 'Do you want to delete this project?';
|
||||
$lang->project->cannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->project->cannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->project->parentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->project->parentBudget = "The budget of the parent project: %s";
|
||||
$lang->project->beginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->project->endGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->project->beginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the project set.";
|
||||
$lang->project->endLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the project set.";
|
||||
$lang->project->childLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
|
||||
+261
-261
@@ -1,294 +1,294 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = 'Select Template';
|
||||
$lang->program->PRJIndex = 'Dashboard';
|
||||
$lang->program->PRJHome = 'Home';
|
||||
$lang->program->PRJCreate = 'Create Project';
|
||||
$lang->program->PRJEdit = 'Edit';
|
||||
$lang->program->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->program->PRJView = 'Project View';
|
||||
$lang->program->batchEdit = 'Batch Edit';
|
||||
$lang->program->PRJBrowse = 'Projects';
|
||||
$lang->program->PRJAll = 'All';
|
||||
$lang->program->PRJStart = 'Start';
|
||||
$lang->program->PRJFinish = 'Finish';
|
||||
$lang->program->PRJSuspend = 'Suspend';
|
||||
$lang->program->PRJDelete = 'Delete';
|
||||
$lang->program->PRJClose = 'Close';
|
||||
$lang->program->PRJActivate = 'Activate';
|
||||
$lang->program->PRJGroup = 'Privilege Group';
|
||||
$lang->program->PRJCreateGroup = 'Create Group';
|
||||
$lang->program->PRJEditGroup = 'Edit Group';
|
||||
$lang->program->PRJCopyGroup = 'Copy Group';
|
||||
$lang->program->PRJManageView = 'Manage View';
|
||||
$lang->program->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->program->PRJManageMembers = 'Manage Team';
|
||||
$lang->program->export = 'Export';
|
||||
$lang->program->addProduct = 'Add product';
|
||||
$lang->program->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->program->PRJModuleSetting = 'List Settings';
|
||||
$lang->program->PRJModuleOpen = 'Program Name';
|
||||
$lang->program->PRJUpdateOrder = 'Order';
|
||||
$lang->program->PRJSort = 'Order';
|
||||
$lang->program->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->program->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->program->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->program->PRJManageProducts = 'Manage Products';
|
||||
$lang->program->view = 'Program Detail';
|
||||
$lang->program->copyTitle = 'Please select an project to copy';
|
||||
$lang->program->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->program->errorNoProducts = 'At least one product is associated';
|
||||
$lang->program->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->createGuide = 'Select Template';
|
||||
$lang->project->PRJIndex = 'Dashboard';
|
||||
$lang->project->PRJHome = 'Home';
|
||||
$lang->project->PRJCreate = 'Create Project';
|
||||
$lang->project->PRJEdit = 'Edit';
|
||||
$lang->project->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->project->PRJView = 'Project View';
|
||||
$lang->project->batchEdit = 'Batch Edit';
|
||||
$lang->project->PRJBrowse = 'Projects';
|
||||
$lang->project->PRJAll = 'All';
|
||||
$lang->project->PRJStart = 'Start';
|
||||
$lang->project->PRJFinish = 'Finish';
|
||||
$lang->project->PRJSuspend = 'Suspend';
|
||||
$lang->project->PRJDelete = 'Delete';
|
||||
$lang->project->PRJClose = 'Close';
|
||||
$lang->project->PRJActivate = 'Activate';
|
||||
$lang->project->PRJGroup = 'Privilege Group';
|
||||
$lang->project->PRJCreateGroup = 'Create Group';
|
||||
$lang->project->PRJEditGroup = 'Edit Group';
|
||||
$lang->project->PRJCopyGroup = 'Copy Group';
|
||||
$lang->project->PRJManageView = 'Manage View';
|
||||
$lang->project->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->project->PRJManageMembers = 'Manage Team';
|
||||
$lang->project->export = 'Export';
|
||||
$lang->project->addProduct = 'Add product';
|
||||
$lang->project->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->project->PRJModuleSetting = 'List Settings';
|
||||
$lang->project->PRJModuleOpen = 'Program Name';
|
||||
$lang->project->PRJUpdateOrder = 'Order';
|
||||
$lang->project->PRJSort = 'Order';
|
||||
$lang->project->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->project->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->project->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->project->PRJManageProducts = 'Manage Products';
|
||||
$lang->project->view = 'Program Detail';
|
||||
$lang->project->copyTitle = 'Please select an project to copy';
|
||||
$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->project->errorNoProducts = 'At least one product is associated';
|
||||
$lang->project->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->searchByName = 'Enter the project name to retrieve';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = 'Program';
|
||||
$lang->program->project = 'Project';
|
||||
$lang->program->stage = 'Stage';
|
||||
$lang->program->PM = 'Manager';
|
||||
$lang->program->PRJName = 'Name';
|
||||
$lang->program->PRJCategory = 'Category';
|
||||
$lang->program->PRJDesc = 'Description';
|
||||
$lang->program->PRJCode = 'Code';
|
||||
$lang->program->PRJCopy = 'Copy';
|
||||
$lang->program->begin = 'Begin';
|
||||
$lang->program->end = 'End';
|
||||
$lang->program->PRJStatus = 'Status';
|
||||
$lang->program->PRJPM = 'Manager';
|
||||
$lang->program->PRJBudget = 'Budget';
|
||||
$lang->program->PRJTemplate = 'Template';
|
||||
$lang->program->PRJEstimate = 'Estimates';
|
||||
$lang->program->PRJConsume = 'Cost';
|
||||
$lang->program->PRJSurplus = 'Left';
|
||||
$lang->program->PRJProgress = 'Progress';
|
||||
$lang->program->dateRange = 'Duration';
|
||||
$lang->program->to = ' to ';
|
||||
$lang->program->realEnd = 'Actual End';
|
||||
$lang->program->realBegan = 'Actual Began';
|
||||
$lang->program->bygrid = 'Kanban';
|
||||
$lang->program->bylist = 'List';
|
||||
$lang->program->mine = 'My';
|
||||
$lang->program->setPlanduration = 'Set Duration';
|
||||
$lang->program->auth = 'Access Control';
|
||||
$lang->program->durationEstimation = 'Estimated Workload';
|
||||
$lang->program->teamCount = 'Man';
|
||||
$lang->program->leftStories = 'Left Stories';
|
||||
$lang->program->leftTasks = 'Left Tasks';
|
||||
$lang->program->leftBugs = 'Left Bugs';
|
||||
$lang->program->PRJChildren = 'Child Project';
|
||||
$lang->program->PRJParent = 'Parent Project';
|
||||
$lang->program->allStories = 'All Stories';
|
||||
$lang->program->doneStories = 'Finished Stories';
|
||||
$lang->program->allInput = 'Total Input';
|
||||
$lang->program->weekly = 'Program Weekly';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = 'Team';
|
||||
$lang->program->PRJLongTime = 'Long-Term Project';
|
||||
$lang->program->future = 'TBD';
|
||||
$lang->program->morePRJ = 'More Projects';
|
||||
$lang->project->common = 'Program';
|
||||
$lang->project->project = 'Project';
|
||||
$lang->project->stage = 'Stage';
|
||||
$lang->project->PM = 'Manager';
|
||||
$lang->project->PRJName = 'Name';
|
||||
$lang->project->PRJCategory = 'Category';
|
||||
$lang->project->PRJDesc = 'Description';
|
||||
$lang->project->PRJCode = 'Code';
|
||||
$lang->project->PRJCopy = 'Copy';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->PRJStatus = 'Status';
|
||||
$lang->project->PRJPM = 'Manager';
|
||||
$lang->project->PRJBudget = 'Budget';
|
||||
$lang->project->PRJTemplate = 'Template';
|
||||
$lang->project->PRJEstimate = 'Estimates';
|
||||
$lang->project->PRJConsume = 'Cost';
|
||||
$lang->project->PRJSurplus = 'Left';
|
||||
$lang->project->PRJProgress = 'Progress';
|
||||
$lang->project->dateRange = 'Duration';
|
||||
$lang->project->to = ' to ';
|
||||
$lang->project->realEnd = 'Actual End';
|
||||
$lang->project->realBegan = 'Actual Began';
|
||||
$lang->project->bygrid = 'Kanban';
|
||||
$lang->project->bylist = 'List';
|
||||
$lang->project->mine = 'My';
|
||||
$lang->project->setPlanduration = 'Set Duration';
|
||||
$lang->project->auth = 'Access Control';
|
||||
$lang->project->durationEstimation = 'Estimated Workload';
|
||||
$lang->project->teamCount = 'Man';
|
||||
$lang->project->leftStories = 'Left Stories';
|
||||
$lang->project->leftTasks = 'Left Tasks';
|
||||
$lang->project->leftBugs = 'Left Bugs';
|
||||
$lang->project->PRJChildren = 'Child Project';
|
||||
$lang->project->PRJParent = 'Parent Project';
|
||||
$lang->project->allStories = 'All Stories';
|
||||
$lang->project->doneStories = 'Finished Stories';
|
||||
$lang->project->allInput = 'Total Input';
|
||||
$lang->project->weekly = 'Program Weekly';
|
||||
$lang->project->pv = 'PV';
|
||||
$lang->project->ev = 'EV';
|
||||
$lang->project->sv = 'SV%';
|
||||
$lang->project->ac = 'AC';
|
||||
$lang->project->cv = 'CV%';
|
||||
$lang->project->PRJTeamCount = 'Team';
|
||||
$lang->project->PRJLongTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->morePRJ = 'More Projects';
|
||||
|
||||
$lang->program->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->program->existProductName = 'Product name already exists.';
|
||||
$lang->program->changeProgram = '%s > Change program';
|
||||
$lang->program->changeProgramTip = 'After modifying the program set, the products linked with the project will also modify the program set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->program->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->program->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
$lang->project->changeProgram = '%s > Change project';
|
||||
$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
|
||||
$lang->program->tenThousand = '';
|
||||
$lang->project->tenThousand = '';
|
||||
|
||||
$lang->program->unitList['CNY'] = 'RMB';
|
||||
$lang->program->unitList['USD'] = 'USD';
|
||||
$lang->program->unitList['HKD'] = 'HKD';
|
||||
$lang->program->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->program->unitList['EUR'] = 'Euro';
|
||||
$lang->program->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->program->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->program->unitList['FRF'] = 'French Franc';
|
||||
$lang->program->unitList['GBP'] = 'Pound';
|
||||
$lang->program->unitList['NLG'] = 'Florin';
|
||||
$lang->program->unitList['CAD'] = 'Canadian';
|
||||
$lang->program->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->program->unitList['INR'] = 'Indian';
|
||||
$lang->program->unitList['AUD'] = 'Australian';
|
||||
$lang->program->unitList['NZD'] = 'New Zealand';
|
||||
$lang->program->unitList['THB'] = 'Thai Baht';
|
||||
$lang->program->unitList['SGD'] = 'Singapore';
|
||||
$lang->project->unitList['CNY'] = 'RMB';
|
||||
$lang->project->unitList['USD'] = 'USD';
|
||||
$lang->project->unitList['HKD'] = 'HKD';
|
||||
$lang->project->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->project->unitList['EUR'] = 'Euro';
|
||||
$lang->project->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->project->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->project->unitList['FRF'] = 'French Franc';
|
||||
$lang->project->unitList['GBP'] = 'Pound';
|
||||
$lang->project->unitList['NLG'] = 'Florin';
|
||||
$lang->project->unitList['CAD'] = 'Canadian';
|
||||
$lang->project->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->project->unitList['INR'] = 'Indian';
|
||||
$lang->project->unitList['AUD'] = 'Australian';
|
||||
$lang->project->unitList['NZD'] = 'New Zealand';
|
||||
$lang->project->unitList['THB'] = 'Thai Baht';
|
||||
$lang->project->unitList['SGD'] = 'Singapore';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
$lang->project->currencySymbol['CNY'] = '¥';
|
||||
$lang->project->currencySymbol['USD'] = '$';
|
||||
$lang->project->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->project->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->project->currencySymbol['EUR'] = '€';
|
||||
$lang->project->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->project->currencySymbol['CHF'] = '₣';
|
||||
$lang->project->currencySymbol['FRF'] = '₣';
|
||||
$lang->project->currencySymbol['GBP'] = '£';
|
||||
$lang->project->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->project->currencySymbol['CAD'] = '$';
|
||||
$lang->project->currencySymbol['RUR'] = '₽';
|
||||
$lang->project->currencySymbol['INR'] = '₹';
|
||||
$lang->project->currencySymbol['AUD'] = 'A$';
|
||||
$lang->project->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->project->currencySymbol['THB'] = '฿';
|
||||
$lang->project->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "CMMI";
|
||||
$lang->project->modelList['scrum'] = "Scrum";
|
||||
$lang->project->modelList['waterfall'] = "CMMI";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "Single product";
|
||||
$lang->program->PRJCategoryList['multiple'] = "Multiple products";
|
||||
$lang->project->PRJCategoryList['single'] = "Single product";
|
||||
$lang->project->PRJCategoryList['multiple'] = "Multiple products";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->program->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "DevOps";
|
||||
$lang->project->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->project->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->project->PRJLifeTimeList['ops'] = "DevOps";
|
||||
|
||||
$lang->program->featureBar['all'] = 'All';
|
||||
$lang->program->featureBar['doing'] = 'Going';
|
||||
$lang->program->featureBar['wait'] = 'Waiting';
|
||||
$lang->program->featureBar['suspended'] = 'Suspended';
|
||||
$lang->program->featureBar['closed'] = 'Closed';
|
||||
$lang->project->featureBar['all'] = 'All';
|
||||
$lang->project->featureBar['doing'] = 'Going';
|
||||
$lang->project->featureBar['wait'] = 'Waiting';
|
||||
$lang->project->featureBar['suspended'] = 'Suspended';
|
||||
$lang->project->featureBar['closed'] = 'Closed';
|
||||
|
||||
$lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->program->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
$lang->project->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->project->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = 'Private';
|
||||
$lang->program->PRJAcls['open'] = "Open";
|
||||
$lang->project->PRJAcls['private'] = 'Private';
|
||||
$lang->project->PRJAcls['open'] = "Open";
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->program->PGMPRJAclList['program'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
$lang->project->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->project->PGMPRJAclList['project'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->project->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "Private";
|
||||
$lang->program->PGMPRJAcls['program'] = "Public within the project set";
|
||||
$lang->program->PGMPRJAcls['open'] = "Full disclosure";
|
||||
$lang->project->PGMPRJAcls['private'] = "Private";
|
||||
$lang->project->PGMPRJAcls['project'] = "Public within the project set";
|
||||
$lang->project->PGMPRJAcls['open'] = "Full disclosure";
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
$lang->project->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->project->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
|
||||
$lang->program->statusList['wait'] = 'Waiting';
|
||||
$lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
$lang->project->statusList['wait'] = 'Waiting';
|
||||
$lang->project->statusList['doing'] = 'Doing';
|
||||
$lang->project->statusList['suspended'] = 'Suspended';
|
||||
$lang->project->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->program->endList[31] = 'One month';
|
||||
$lang->program->endList[93] = 'Trimester';
|
||||
$lang->program->endList[186] = 'Half yearly';
|
||||
$lang->program->endList[365] = 'One year';
|
||||
$lang->program->endList[999] = 'Longtime';
|
||||
$lang->project->endList[31] = 'One month';
|
||||
$lang->project->endList[93] = 'Trimester';
|
||||
$lang->project->endList[186] = 'Half yearly';
|
||||
$lang->project->endList[365] = 'One year';
|
||||
$lang->project->endList[999] = 'Longtime';
|
||||
|
||||
$lang->program->noPRJ = 'No project.';
|
||||
$lang->program->accessDenied = 'Access denied!';
|
||||
$lang->program->chooseProgramType = 'Select the project management model';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s men';
|
||||
$lang->program->lastIteration = 'Recent iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = 'CMMI';
|
||||
$lang->program->waterfallTitle = 'CMMI';
|
||||
$lang->program->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->program->emptyPM = 'No manager';
|
||||
$lang->program->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->program->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->program->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->program->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
$lang->project->noPRJ = 'No project.';
|
||||
$lang->project->accessDenied = 'Access denied!';
|
||||
$lang->project->chooseProgramType = 'Select the project management model';
|
||||
$lang->project->nextStep = 'Next step';
|
||||
$lang->project->hoursUnit = '%s hours';
|
||||
$lang->project->membersUnit = '%s men';
|
||||
$lang->project->lastIteration = 'Recent iterations';
|
||||
$lang->project->ongoingStage = 'Ongoing stage';
|
||||
$lang->project->scrum = 'Scrum';
|
||||
$lang->project->waterfall = 'CMMI';
|
||||
$lang->project->waterfallTitle = 'CMMI';
|
||||
$lang->project->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->project->hasChildren = 'It has child projects or projects. You cannot delete it.';
|
||||
$lang->project->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->project->emptyPM = 'No manager';
|
||||
$lang->project->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->project->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->project->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->project->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->project->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
|
||||
$lang->program->PRJProgramTitle['end'] = 'End-level program only';
|
||||
$lang->project->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->project->PRJProgramTitle['base'] = 'Base-level project only';
|
||||
$lang->project->PRJProgramTitle['end'] = 'End-level project only';
|
||||
|
||||
$lang->program->PRJAccessDenied = 'Access denied to this program';
|
||||
$lang->program->PRJChooseProgramType = 'Select management type';
|
||||
$lang->program->scrumTitle = 'Agile Development Management';
|
||||
$lang->program->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->program->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->program->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->program->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->program->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->program->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->program->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->program->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->program->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the program set.";
|
||||
$lang->program->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the program set.";
|
||||
$lang->program->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
$lang->project->PRJAccessDenied = 'Access denied to this project';
|
||||
$lang->project->PRJChooseProgramType = 'Select management type';
|
||||
$lang->project->scrumTitle = 'Agile Development Management';
|
||||
$lang->project->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->project->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->project->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->project->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->project->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->project->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->project->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->project->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->project->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->project->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the project set.";
|
||||
$lang->project->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the project set.";
|
||||
$lang->project->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = 'Program';
|
||||
$lang->program->PGMIndex = 'Home';
|
||||
$lang->program->PGMCreate = 'Create Program';
|
||||
$lang->program->PGMCreateGuide = 'Select Template';
|
||||
$lang->program->PGMEdit = 'Edit Program';
|
||||
$lang->program->PGMBrowse = 'Programs';
|
||||
$lang->program->PGMProduct = 'Products';
|
||||
$lang->program->PGMProject = 'Program Project List';
|
||||
$lang->program->PGMAll = 'All Programs';
|
||||
$lang->program->PGMStart = 'Start';
|
||||
$lang->program->PGMFinish = 'Finish';
|
||||
$lang->program->PGMSuspend = 'Suspend';
|
||||
$lang->program->PGMDelete = 'Delete';
|
||||
$lang->program->PGMClose = 'Close';
|
||||
$lang->program->PGMActivate = 'Activate';
|
||||
$lang->program->PGMExport = 'Export';
|
||||
$lang->program->PGMStakeholder = 'Stakeholder';
|
||||
$lang->program->createStakeholder = 'Create Stakeholder';
|
||||
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->program->unlink = 'Unlink';
|
||||
$lang->program->morePGM = 'More Programs';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$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 surplus budget:';
|
||||
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
|
||||
$lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$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->PGMCloseErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->project->PGMCommon = 'Program';
|
||||
$lang->project->PGMIndex = 'Home';
|
||||
$lang->project->PGMCreate = 'Create Program';
|
||||
$lang->project->PGMCreateGuide = 'Select Template';
|
||||
$lang->project->PGMEdit = 'Edit Program';
|
||||
$lang->project->PGMBrowse = 'Programs';
|
||||
$lang->project->PGMProduct = 'Products';
|
||||
$lang->project->PGMProject = 'Program Project List';
|
||||
$lang->project->PGMAll = 'All Programs';
|
||||
$lang->project->PGMStart = 'Start';
|
||||
$lang->project->PGMFinish = 'Finish';
|
||||
$lang->project->PGMSuspend = 'Suspend';
|
||||
$lang->project->PGMDelete = 'Delete';
|
||||
$lang->project->PGMClose = 'Close';
|
||||
$lang->project->PGMActivate = 'Activate';
|
||||
$lang->project->PGMExport = 'Export';
|
||||
$lang->project->PGMStakeholder = 'Stakeholder';
|
||||
$lang->project->createStakeholder = 'Create Stakeholder';
|
||||
$lang->project->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->project->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->project->unlink = 'Unlink';
|
||||
$lang->project->morePGM = 'More Programs';
|
||||
$lang->project->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->project->stakeholderType = 'Stakeholder type';
|
||||
$lang->project->isStakeholderKey = 'Key stakeholder';
|
||||
$lang->project->importStakeholder = 'Import project';
|
||||
$lang->project->PGMManageMembers = 'Program Team';
|
||||
$lang->project->PGMParentBudget = 'Parent project surplus budget:';
|
||||
$lang->project->beyondParentBudget = 'The remaining budget of the owned project has been exceeded.';
|
||||
$lang->project->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->project->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$lang->project->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date < = child earliest begin date.";
|
||||
$lang->project->PGMEndLetterChild = "Child latest end: %s, parent end date > = child latest end date.";
|
||||
$lang->project->PGMCloseErrorMessage = 'There are subprojects or projects that are not closed';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
$lang->project->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->project->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = 'Name';
|
||||
$lang->program->PGMTemplate = 'Template';
|
||||
$lang->program->PGMCategory = 'Type';
|
||||
$lang->program->PGMDesc = 'Description';
|
||||
$lang->program->PGMCopy = 'Copy Program';
|
||||
$lang->program->PGMStatus = 'Status';
|
||||
$lang->program->PGMPM = 'Manager';
|
||||
$lang->program->PGMBudget = 'Budget';
|
||||
$lang->program->PGMProgress = 'Progress';
|
||||
$lang->program->PGMChildren = 'Child';
|
||||
$lang->program->PGMParent = 'Parent';
|
||||
$lang->program->PGMAllInput = 'Input';
|
||||
$lang->program->PGMTeamCount = 'Team';
|
||||
$lang->program->PGMLongTime = 'Long-Term';
|
||||
$lang->project->PGMName = 'Name';
|
||||
$lang->project->PGMTemplate = 'Template';
|
||||
$lang->project->PGMCategory = 'Type';
|
||||
$lang->project->PGMDesc = 'Description';
|
||||
$lang->project->PGMCopy = 'Copy Program';
|
||||
$lang->project->PGMStatus = 'Status';
|
||||
$lang->project->PGMPM = 'Manager';
|
||||
$lang->project->PGMBudget = 'Budget';
|
||||
$lang->project->PGMProgress = 'Progress';
|
||||
$lang->project->PGMChildren = 'Child';
|
||||
$lang->project->PGMParent = 'Parent';
|
||||
$lang->project->PGMAllInput = 'Input';
|
||||
$lang->project->PGMTeamCount = 'Team';
|
||||
$lang->project->PGMLongTime = 'Long-Term';
|
||||
|
||||
$lang->program->noPGM = 'No program.';
|
||||
$lang->program->PGMShowClosed = 'Closed programs.';
|
||||
$lang->program->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
$lang->project->noPGM = 'No project.';
|
||||
$lang->project->PGMShowClosed = 'Closed projects.';
|
||||
$lang->project->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->PGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->project->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->project->PGMAclList['open'] = "Default(user who can visit the project can access it)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "Private (accessible to this program set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->subPGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->program->subPGMAclList['program'] = "Open within the program (accessible to all higher-level program directors and affiliates, as well as to this program director and affiliates)";
|
||||
$lang->project->subPGMAclList['private'] = "Private (accessible to this project set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->project->subPGMAclList['open'] = "Default(user who can visit the project can access it)";
|
||||
$lang->project->subPGMAclList['project'] = "Open within the project (accessible to all higher-level project directors and affiliates, as well as to this project director and affiliates)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = 'Inherit(program privileges and company privileges)';
|
||||
$lang->program->PGMAuthList['reset'] = 'Reset(program privileges only)';
|
||||
$lang->project->PGMAuthList['extend'] = 'Inherit(project privileges and company privileges)';
|
||||
$lang->project->PGMAuthList['reset'] = 'Reset(project privileges only)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = 'All';
|
||||
$lang->project->PGMFeatureBar['all'] = 'All';
|
||||
|
||||
+261
-261
@@ -1,294 +1,294 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = 'Select Template';
|
||||
$lang->program->PRJIndex = 'Dashboard';
|
||||
$lang->program->PRJHome = 'Home';
|
||||
$lang->program->PRJCreate = 'Create Project';
|
||||
$lang->program->PRJEdit = 'Edit';
|
||||
$lang->program->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->program->PRJView = 'Project View';
|
||||
$lang->program->batchEdit = 'Batch Edit';
|
||||
$lang->program->PRJBrowse = 'Projects';
|
||||
$lang->program->PRJAll = 'All';
|
||||
$lang->program->PRJStart = 'Start';
|
||||
$lang->program->PRJFinish = 'Finish';
|
||||
$lang->program->PRJSuspend = 'Suspend';
|
||||
$lang->program->PRJDelete = 'Delete';
|
||||
$lang->program->PRJClose = 'Close';
|
||||
$lang->program->PRJActivate = 'Activate';
|
||||
$lang->program->PRJGroup = 'Privilege Group';
|
||||
$lang->program->PRJCreateGroup = 'Create Group';
|
||||
$lang->program->PRJEditGroup = 'Edit Group';
|
||||
$lang->program->PRJCopyGroup = 'Copy Group';
|
||||
$lang->program->PRJManageView = 'Manage View';
|
||||
$lang->program->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->program->PRJManageMembers = 'Manage Team';
|
||||
$lang->program->export = 'Export';
|
||||
$lang->program->addProduct = 'Add product';
|
||||
$lang->program->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->program->PRJModuleSetting = 'List Settings';
|
||||
$lang->program->PRJModuleOpen = 'Program Name';
|
||||
$lang->program->PRJUpdateOrder = 'Order';
|
||||
$lang->program->PRJSort = 'Order';
|
||||
$lang->program->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->program->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->program->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->program->PRJManageProducts = 'Manage Products';
|
||||
$lang->program->view = 'Program Detail';
|
||||
$lang->program->copyTitle = 'Please select an project to copy';
|
||||
$lang->program->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->program->errorNoProducts = 'At least one product is associated';
|
||||
$lang->program->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->createGuide = 'Select Template';
|
||||
$lang->project->PRJIndex = 'Dashboard';
|
||||
$lang->project->PRJHome = 'Home';
|
||||
$lang->project->PRJCreate = 'Create Project';
|
||||
$lang->project->PRJEdit = 'Edit';
|
||||
$lang->project->PRJBatchEdit = 'Batch Edit Projects';
|
||||
$lang->project->PRJView = 'Project View';
|
||||
$lang->project->batchEdit = 'Batch Edit';
|
||||
$lang->project->PRJBrowse = 'Projects';
|
||||
$lang->project->PRJAll = 'All';
|
||||
$lang->project->PRJStart = 'Start';
|
||||
$lang->project->PRJFinish = 'Finish';
|
||||
$lang->project->PRJSuspend = 'Suspend';
|
||||
$lang->project->PRJDelete = 'Delete';
|
||||
$lang->project->PRJClose = 'Close';
|
||||
$lang->project->PRJActivate = 'Activate';
|
||||
$lang->project->PRJGroup = 'Privilege Group';
|
||||
$lang->project->PRJCreateGroup = 'Create Group';
|
||||
$lang->project->PRJEditGroup = 'Edit Group';
|
||||
$lang->project->PRJCopyGroup = 'Copy Group';
|
||||
$lang->project->PRJManageView = 'Manage View';
|
||||
$lang->project->PRJManagePriv = 'Manage Privilege';
|
||||
$lang->project->PRJManageMembers = 'Manage Team';
|
||||
$lang->project->export = 'Export';
|
||||
$lang->project->addProduct = 'Add product';
|
||||
$lang->project->PRJManageGroupMember = 'Manage Group';
|
||||
$lang->project->PRJModuleSetting = 'List Settings';
|
||||
$lang->project->PRJModuleOpen = 'Program Name';
|
||||
$lang->project->PRJUpdateOrder = 'Order';
|
||||
$lang->project->PRJSort = 'Order';
|
||||
$lang->project->PRJWhitelist = 'Project Whitelist';
|
||||
$lang->project->PRJAddWhitelist = 'Project Add Whitelist';
|
||||
$lang->project->unbindWhielist = 'Project Remove Whitelist';
|
||||
$lang->project->PRJManageProducts = 'Manage Products';
|
||||
$lang->project->view = 'Program Detail';
|
||||
$lang->project->copyTitle = 'Please select an project to copy';
|
||||
$lang->project->errorSameProducts = 'Project cannot be associated with multiple identical products.';
|
||||
$lang->project->errorNoProducts = 'At least one product is associated';
|
||||
$lang->project->copyNoProject = 'There are no items available to copy.';
|
||||
$lang->project->searchByName = 'Enter the project name to retrieve';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = 'Program';
|
||||
$lang->program->project = 'Project';
|
||||
$lang->program->stage = 'Stage';
|
||||
$lang->program->PM = 'Manager';
|
||||
$lang->program->PRJName = 'Name';
|
||||
$lang->program->PRJCategory = 'Category';
|
||||
$lang->program->PRJDesc = 'Description';
|
||||
$lang->program->PRJCode = 'Code';
|
||||
$lang->program->PRJCopy = 'Copy';
|
||||
$lang->program->begin = 'Begin';
|
||||
$lang->program->end = 'End';
|
||||
$lang->program->PRJStatus = 'Status';
|
||||
$lang->program->PRJPM = 'Manager';
|
||||
$lang->program->PRJBudget = 'Budget';
|
||||
$lang->program->PRJTemplate = 'Template';
|
||||
$lang->program->PRJEstimate = 'Estimates';
|
||||
$lang->program->PRJConsume = 'Cost';
|
||||
$lang->program->PRJSurplus = 'Left';
|
||||
$lang->program->PRJProgress = 'Progress';
|
||||
$lang->program->dateRange = 'Duration';
|
||||
$lang->program->to = ' to ';
|
||||
$lang->program->realEnd = 'Actual End';
|
||||
$lang->program->realBegan = 'Actual Began';
|
||||
$lang->program->bygrid = 'Kanban';
|
||||
$lang->program->bylist = 'List';
|
||||
$lang->program->mine = 'My';
|
||||
$lang->program->setPlanduration = 'Set Duration';
|
||||
$lang->program->auth = 'Access Control';
|
||||
$lang->program->durationEstimation = 'Estimated Workload';
|
||||
$lang->program->teamCount = 'Man';
|
||||
$lang->program->leftStories = 'Left Stories';
|
||||
$lang->program->leftTasks = 'Left Tasks';
|
||||
$lang->program->leftBugs = 'Left Bugs';
|
||||
$lang->program->PRJChildren = 'Child Project';
|
||||
$lang->program->PRJParent = 'Parent Project';
|
||||
$lang->program->allStories = 'All Stories';
|
||||
$lang->program->doneStories = 'Finished Stories';
|
||||
$lang->program->allInput = 'Total Input';
|
||||
$lang->program->weekly = 'Program Weekly';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = 'Team';
|
||||
$lang->program->PRJLongTime = 'Long-Term Project';
|
||||
$lang->program->future = 'TBD';
|
||||
$lang->program->morePRJ = 'More Projects';
|
||||
$lang->project->common = 'Program';
|
||||
$lang->project->project = 'Project';
|
||||
$lang->project->stage = 'Stage';
|
||||
$lang->project->PM = 'Manager';
|
||||
$lang->project->PRJName = 'Name';
|
||||
$lang->project->PRJCategory = 'Category';
|
||||
$lang->project->PRJDesc = 'Description';
|
||||
$lang->project->PRJCode = 'Code';
|
||||
$lang->project->PRJCopy = 'Copy';
|
||||
$lang->project->begin = 'Begin';
|
||||
$lang->project->end = 'End';
|
||||
$lang->project->PRJStatus = 'Status';
|
||||
$lang->project->PRJPM = 'Manager';
|
||||
$lang->project->PRJBudget = 'Budget';
|
||||
$lang->project->PRJTemplate = 'Template';
|
||||
$lang->project->PRJEstimate = 'Estimates';
|
||||
$lang->project->PRJConsume = 'Cost';
|
||||
$lang->project->PRJSurplus = 'Left';
|
||||
$lang->project->PRJProgress = 'Progress';
|
||||
$lang->project->dateRange = 'Duration';
|
||||
$lang->project->to = ' to ';
|
||||
$lang->project->realEnd = 'Actual End';
|
||||
$lang->project->realBegan = 'Actual Began';
|
||||
$lang->project->bygrid = 'Kanban';
|
||||
$lang->project->bylist = 'List';
|
||||
$lang->project->mine = 'My';
|
||||
$lang->project->setPlanduration = 'Set Duration';
|
||||
$lang->project->auth = 'Access Control';
|
||||
$lang->project->durationEstimation = 'Estimated Workload';
|
||||
$lang->project->teamCount = 'Man';
|
||||
$lang->project->leftStories = 'Left Stories';
|
||||
$lang->project->leftTasks = 'Left Tasks';
|
||||
$lang->project->leftBugs = 'Left Bugs';
|
||||
$lang->project->PRJChildren = 'Child Project';
|
||||
$lang->project->PRJParent = 'Parent Project';
|
||||
$lang->project->allStories = 'All Stories';
|
||||
$lang->project->doneStories = 'Finished Stories';
|
||||
$lang->project->allInput = 'Total Input';
|
||||
$lang->project->weekly = 'Program Weekly';
|
||||
$lang->project->pv = 'PV';
|
||||
$lang->project->ev = 'EV';
|
||||
$lang->project->sv = 'SV%';
|
||||
$lang->project->ac = 'AC';
|
||||
$lang->project->cv = 'CV%';
|
||||
$lang->project->PRJTeamCount = 'Team';
|
||||
$lang->project->PRJLongTime = 'Long-Term Project';
|
||||
$lang->project->future = 'TBD';
|
||||
$lang->project->morePRJ = 'More Projects';
|
||||
|
||||
$lang->program->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->program->existProductName = 'Product name already exists.';
|
||||
$lang->program->changeProgram = '%s > Change program';
|
||||
$lang->program->changeProgramTip = 'After modifying the program set, the products linked with the project will also modify the program set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->program->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->program->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
$lang->project->productNotEmpty = 'Please link products or create products.';
|
||||
$lang->project->existProductName = 'Product name already exists.';
|
||||
$lang->project->changeProgram = '%s > Change project';
|
||||
$lang->project->changeProgramTip = 'After modifying the project set, the products linked with the project will also modify the project set to which it belongs. Please confirm whether to modify it.';
|
||||
$lang->project->linkedProjectsTip = 'Linked projects are as follows';
|
||||
$lang->project->multiLinkedProductsTip = 'The following products linked to this project are also linked to other projects, please unlink before proceeding.';
|
||||
|
||||
$lang->program->tenThousand = '';
|
||||
$lang->project->tenThousand = '';
|
||||
|
||||
$lang->program->unitList['CNY'] = 'RMB';
|
||||
$lang->program->unitList['USD'] = 'USD';
|
||||
$lang->program->unitList['HKD'] = 'HKD';
|
||||
$lang->program->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->program->unitList['EUR'] = 'Euro';
|
||||
$lang->program->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->program->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->program->unitList['FRF'] = 'French Franc';
|
||||
$lang->program->unitList['GBP'] = 'Pound';
|
||||
$lang->program->unitList['NLG'] = 'Florin';
|
||||
$lang->program->unitList['CAD'] = 'Canadian';
|
||||
$lang->program->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->program->unitList['INR'] = 'Indian';
|
||||
$lang->program->unitList['AUD'] = 'Australian';
|
||||
$lang->program->unitList['NZD'] = 'New Zealand';
|
||||
$lang->program->unitList['THB'] = 'Thai Baht';
|
||||
$lang->program->unitList['SGD'] = 'Singapore';
|
||||
$lang->project->unitList['CNY'] = 'RMB';
|
||||
$lang->project->unitList['USD'] = 'USD';
|
||||
$lang->project->unitList['HKD'] = 'HKD';
|
||||
$lang->project->unitList['NTD'] = 'New Taiwan';
|
||||
$lang->project->unitList['EUR'] = 'Euro';
|
||||
$lang->project->unitList['DEM'] = 'Deutsche Mark';
|
||||
$lang->project->unitList['CHF'] = 'Swiss Franc';
|
||||
$lang->project->unitList['FRF'] = 'French Franc';
|
||||
$lang->project->unitList['GBP'] = 'Pound';
|
||||
$lang->project->unitList['NLG'] = 'Florin';
|
||||
$lang->project->unitList['CAD'] = 'Canadian';
|
||||
$lang->project->unitList['RUR'] = 'Russian Ruble';
|
||||
$lang->project->unitList['INR'] = 'Indian';
|
||||
$lang->project->unitList['AUD'] = 'Australian';
|
||||
$lang->project->unitList['NZD'] = 'New Zealand';
|
||||
$lang->project->unitList['THB'] = 'Thai Baht';
|
||||
$lang->project->unitList['SGD'] = 'Singapore';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
$lang->project->currencySymbol['CNY'] = '¥';
|
||||
$lang->project->currencySymbol['USD'] = '$';
|
||||
$lang->project->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->project->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->project->currencySymbol['EUR'] = '€';
|
||||
$lang->project->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->project->currencySymbol['CHF'] = '₣';
|
||||
$lang->project->currencySymbol['FRF'] = '₣';
|
||||
$lang->project->currencySymbol['GBP'] = '£';
|
||||
$lang->project->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->project->currencySymbol['CAD'] = '$';
|
||||
$lang->project->currencySymbol['RUR'] = '₽';
|
||||
$lang->project->currencySymbol['INR'] = '₹';
|
||||
$lang->project->currencySymbol['AUD'] = 'A$';
|
||||
$lang->project->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->project->currencySymbol['THB'] = '฿';
|
||||
$lang->project->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "CMMI";
|
||||
$lang->project->modelList['scrum'] = "Scrum";
|
||||
$lang->project->modelList['waterfall'] = "CMMI";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "Single product";
|
||||
$lang->program->PRJCategoryList['multiple'] = "Multiple products";
|
||||
$lang->project->PRJCategoryList['single'] = "Single product";
|
||||
$lang->project->PRJCategoryList['multiple'] = "Multiple products";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->program->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "DevOps";
|
||||
$lang->project->PRJLifeTimeList['short'] = "Short-Term";
|
||||
$lang->project->PRJLifeTimeList['long'] = "Long-Term";
|
||||
$lang->project->PRJLifeTimeList['ops'] = "DevOps";
|
||||
|
||||
$lang->program->featureBar['all'] = 'All';
|
||||
$lang->program->featureBar['doing'] = 'Going';
|
||||
$lang->program->featureBar['wait'] = 'Waiting';
|
||||
$lang->program->featureBar['suspended'] = 'Suspended';
|
||||
$lang->program->featureBar['closed'] = 'Closed';
|
||||
$lang->project->featureBar['all'] = 'All';
|
||||
$lang->project->featureBar['doing'] = 'Going';
|
||||
$lang->project->featureBar['wait'] = 'Waiting';
|
||||
$lang->project->featureBar['suspended'] = 'Suspended';
|
||||
$lang->project->featureBar['closed'] = 'Closed';
|
||||
|
||||
$lang->program->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->program->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
$lang->project->PRJAclList['private'] = 'Private (For team members and stakeholders only)';
|
||||
$lang->project->PRJAclList['open'] = "Open (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = 'Private';
|
||||
$lang->program->PRJAcls['open'] = "Open";
|
||||
$lang->project->PRJAcls['private'] = 'Private';
|
||||
$lang->project->PRJAcls['open'] = "Open";
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->program->PGMPRJAclList['program'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->program->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
$lang->project->PGMPRJAclList['private'] = "Private (For team members and stakeholders only)";
|
||||
$lang->project->PGMPRJAclList['project'] = "Public within the project set (accessible to all higher-level project set leaders and stakeholders, members of this project team and stakeholders)";
|
||||
$lang->project->PGMPRJAclList['open'] = "Full disclosure (accessible with project view permissions)";
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "Private";
|
||||
$lang->program->PGMPRJAcls['program'] = "Public within the project set";
|
||||
$lang->program->PGMPRJAcls['open'] = "Full disclosure";
|
||||
$lang->project->PGMPRJAcls['private'] = "Private";
|
||||
$lang->project->PGMPRJAcls['project'] = "Public within the project set";
|
||||
$lang->project->PGMPRJAcls['open'] = "Full disclosure";
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->program->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
$lang->project->PRJAuthList['extend'] = 'Inherit (system privilege and project privilege)';
|
||||
$lang->project->PRJAuthList['reset'] = 'Reset (project privilege only)';
|
||||
|
||||
$lang->program->statusList['wait'] = 'Waiting';
|
||||
$lang->program->statusList['doing'] = 'Doing';
|
||||
$lang->program->statusList['suspended'] = 'Suspended';
|
||||
$lang->program->statusList['closed'] = 'Closed';
|
||||
$lang->project->statusList['wait'] = 'Waiting';
|
||||
$lang->project->statusList['doing'] = 'Doing';
|
||||
$lang->project->statusList['suspended'] = 'Suspended';
|
||||
$lang->project->statusList['closed'] = 'Closed';
|
||||
|
||||
$lang->program->endList[31] = 'One month';
|
||||
$lang->program->endList[93] = 'Trimester';
|
||||
$lang->program->endList[186] = 'Half yearly';
|
||||
$lang->program->endList[365] = 'One year';
|
||||
$lang->program->endList[999] = 'Longtime';
|
||||
$lang->project->endList[31] = 'One month';
|
||||
$lang->project->endList[93] = 'Trimester';
|
||||
$lang->project->endList[186] = 'Half yearly';
|
||||
$lang->project->endList[365] = 'One year';
|
||||
$lang->project->endList[999] = 'Longtime';
|
||||
|
||||
$lang->program->noPRJ = 'No project.';
|
||||
$lang->program->accessDenied = 'Access denied!';
|
||||
$lang->program->chooseProgramType = 'Select the project management model';
|
||||
$lang->program->nextStep = 'Next step';
|
||||
$lang->program->hoursUnit = '%s hours';
|
||||
$lang->program->membersUnit = '%s men';
|
||||
$lang->program->lastIteration = 'Recent iterations';
|
||||
$lang->program->ongoingStage = 'Ongoing stage';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = 'CMMI';
|
||||
$lang->program->waterfallTitle = 'CMMI';
|
||||
$lang->program->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->program->hasChildren = 'It has child programs or projects. You cannot delete it.';
|
||||
$lang->program->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->program->emptyPM = 'No manager';
|
||||
$lang->program->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->program->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->program->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->program->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->program->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->program->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
$lang->project->noPRJ = 'No project.';
|
||||
$lang->project->accessDenied = 'Access denied!';
|
||||
$lang->project->chooseProgramType = 'Select the project management model';
|
||||
$lang->project->nextStep = 'Next step';
|
||||
$lang->project->hoursUnit = '%s hours';
|
||||
$lang->project->membersUnit = '%s men';
|
||||
$lang->project->lastIteration = 'Recent iterations';
|
||||
$lang->project->ongoingStage = 'Ongoing stage';
|
||||
$lang->project->scrum = 'Scrum';
|
||||
$lang->project->waterfall = 'CMMI';
|
||||
$lang->project->waterfallTitle = 'CMMI';
|
||||
$lang->project->cannotCreateChild = 'It is not empty, so you cannot add a child. You can add a parent for it, and then create a child.';
|
||||
$lang->project->hasChildren = 'It has child projects or projects. You cannot delete it.';
|
||||
$lang->project->confirmDelete = "Do you want to delete [%s]?";
|
||||
$lang->project->emptyPM = 'No manager';
|
||||
$lang->project->cannotChangeToCat = "It is not empty, so you cannot change it to a parent.";
|
||||
$lang->project->cannotCancelCat = "It has child projects, so you cannot unmark the parent.";
|
||||
$lang->project->parentBeginEnd = "Parent begin&end date: %s ~ %s";
|
||||
$lang->project->childLongTime = "If a child as long-term projects, the parent should be long-term too.";
|
||||
$lang->project->readjustTime = 'Change the project begin&end date.';
|
||||
$lang->project->notAllowRemoveProducts = 'The story of this product is linked with the project. Unlink it before doing any action.';
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->program->PRJProgramTitle['base'] = 'Base-level program only';
|
||||
$lang->program->PRJProgramTitle['end'] = 'End-level program only';
|
||||
$lang->project->PRJProgramTitle['0'] = 'Hide';
|
||||
$lang->project->PRJProgramTitle['base'] = 'Base-level project only';
|
||||
$lang->project->PRJProgramTitle['end'] = 'End-level project only';
|
||||
|
||||
$lang->program->PRJAccessDenied = 'Access denied to this program';
|
||||
$lang->program->PRJChooseProgramType = 'Select management type';
|
||||
$lang->program->scrumTitle = 'Agile Development Management';
|
||||
$lang->program->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->program->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->program->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->program->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->program->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->program->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->program->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->program->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->program->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->program->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the program set.";
|
||||
$lang->program->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the program set.";
|
||||
$lang->program->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
$lang->project->PRJAccessDenied = 'Access denied to this project';
|
||||
$lang->project->PRJChooseProgramType = 'Select management type';
|
||||
$lang->project->scrumTitle = 'Agile Development Management';
|
||||
$lang->project->PRJCannotCreateChild = 'The project has contents, so you cannot add a child project. You can create a parent project for this one and then add a child project for the parent project.';
|
||||
$lang->project->PRJHasChildren = 'This project has a child project, so it cannot be deleted.';
|
||||
$lang->project->PRJConfirmDelete = 'Do you want to delete this project?';
|
||||
$lang->project->PRJCannotChangeToCat = "The project has contents, so you cannot it to a parent project.";
|
||||
$lang->project->PRJCannotCancelCat = "There are child projects of this project. You cannot cancel the parent project mark.";
|
||||
$lang->project->PRJParentBeginEnd = "The begin and end date of the parent project: %s ~ %s";
|
||||
$lang->project->PRJParentBudget = "The budget of the parent project: %s";
|
||||
$lang->project->PRJBeginLetterParent = "The begin date of the parent project: %s. It cannot be < the begin date of its parent project.";
|
||||
$lang->project->PRJEndGreaterParent = "The end date of the parent project: %s. It cannot be > the end date of its parent project.";
|
||||
$lang->project->PRJBeginGreateChild = "The minimum start date of the project set: %s. The start date of the project cannot be less than the minimum start date of the project set.";
|
||||
$lang->project->PRJEndLetterChild = "The maximum finish date for the project set: %s. The completion date of a project cannot be greater than the maximum completion date of the project set.";
|
||||
$lang->project->PRJChildLongTime = "There are long-term projects in the child project, and the parent project should also be a long-term project.";
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = 'Program';
|
||||
$lang->program->PGMIndex = 'Home';
|
||||
$lang->program->PGMCreate = 'Create Program';
|
||||
$lang->program->PGMCreateGuide = 'Select Template';
|
||||
$lang->program->PGMEdit = 'Edit Program';
|
||||
$lang->program->PGMBrowse = 'Programs';
|
||||
$lang->program->PGMProduct = 'Products';
|
||||
$lang->program->PGMProject = 'Program Project List';
|
||||
$lang->program->PGMAll = 'All Programs';
|
||||
$lang->program->PGMStart = 'Start';
|
||||
$lang->program->PGMFinish = 'Finish';
|
||||
$lang->program->PGMSuspend = 'Suspend';
|
||||
$lang->program->PGMDelete = 'Delete';
|
||||
$lang->program->PGMClose = 'Close';
|
||||
$lang->program->PGMActivate = 'Activate';
|
||||
$lang->program->PGMExport = 'Export';
|
||||
$lang->program->PGMStakeholder = 'Stakeholder';
|
||||
$lang->program->createStakeholder = 'Create Stakeholder';
|
||||
$lang->program->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->program->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->program->unlink = 'Unlink';
|
||||
$lang->program->morePGM = 'More Programs';
|
||||
$lang->program->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$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 surplus budget:';
|
||||
$lang->program->beyondParentBudget = 'The remaining budget of the owned program has been exceeded.';
|
||||
$lang->program->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->program->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$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->PGMCloseErrorMessage = 'There are subprograms or projects that are not closed';
|
||||
$lang->project->PGMCommon = 'Program';
|
||||
$lang->project->PGMIndex = 'Home';
|
||||
$lang->project->PGMCreate = 'Create Program';
|
||||
$lang->project->PGMCreateGuide = 'Select Template';
|
||||
$lang->project->PGMEdit = 'Edit Program';
|
||||
$lang->project->PGMBrowse = 'Programs';
|
||||
$lang->project->PGMProduct = 'Products';
|
||||
$lang->project->PGMProject = 'Program Project List';
|
||||
$lang->project->PGMAll = 'All Programs';
|
||||
$lang->project->PGMStart = 'Start';
|
||||
$lang->project->PGMFinish = 'Finish';
|
||||
$lang->project->PGMSuspend = 'Suspend';
|
||||
$lang->project->PGMDelete = 'Delete';
|
||||
$lang->project->PGMClose = 'Close';
|
||||
$lang->project->PGMActivate = 'Activate';
|
||||
$lang->project->PGMExport = 'Export';
|
||||
$lang->project->PGMStakeholder = 'Stakeholder';
|
||||
$lang->project->createStakeholder = 'Create Stakeholder';
|
||||
$lang->project->unlinkStakeholder = 'Unlink Stakeholder';
|
||||
$lang->project->batchUnlinkStakeholders = 'Batch Remove Stakeholder';
|
||||
$lang->project->unlink = 'Unlink';
|
||||
$lang->project->morePGM = 'More Programs';
|
||||
$lang->project->confirmBatchUnlink = "Do you want to batch unlink these stakeholders?";
|
||||
$lang->project->stakeholderType = 'Stakeholder type';
|
||||
$lang->project->isStakeholderKey = 'Key stakeholder';
|
||||
$lang->project->importStakeholder = 'Import project';
|
||||
$lang->project->PGMManageMembers = 'Program Team';
|
||||
$lang->project->PGMParentBudget = 'Parent project surplus budget:';
|
||||
$lang->project->beyondParentBudget = 'The remaining budget of the owned project has been exceeded.';
|
||||
$lang->project->PGMBeginLetterParent = "Parent begin date: %s, begin date should be > = parent begin date.";
|
||||
$lang->project->PGMEndGreaterParent = "Parent end date: %s, end date should be < = parent end date.";
|
||||
$lang->project->PGMBeginGreateChild = "Child earliest begin: %s, parent begin date < = child earliest begin date.";
|
||||
$lang->project->PGMEndLetterChild = "Child latest end: %s, parent end date > = child latest end date.";
|
||||
$lang->project->PGMCloseErrorMessage = 'There are subprojects or projects that are not closed';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->program->stakeholderTypeList['outside'] = 'Outside';
|
||||
$lang->project->stakeholderTypeList['inside'] = 'Inside';
|
||||
$lang->project->stakeholderTypeList['outside'] = 'Outside';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = 'Name';
|
||||
$lang->program->PGMTemplate = 'Template';
|
||||
$lang->program->PGMCategory = 'Type';
|
||||
$lang->program->PGMDesc = 'Description';
|
||||
$lang->program->PGMCopy = 'Copy Program';
|
||||
$lang->program->PGMStatus = 'Status';
|
||||
$lang->program->PGMPM = 'Manager';
|
||||
$lang->program->PGMBudget = 'Budget';
|
||||
$lang->program->PGMProgress = 'Progress';
|
||||
$lang->program->PGMChildren = 'Child';
|
||||
$lang->program->PGMParent = 'Parent';
|
||||
$lang->program->PGMAllInput = 'Input';
|
||||
$lang->program->PGMTeamCount = 'Team';
|
||||
$lang->program->PGMLongTime = 'Long-Term';
|
||||
$lang->project->PGMName = 'Name';
|
||||
$lang->project->PGMTemplate = 'Template';
|
||||
$lang->project->PGMCategory = 'Type';
|
||||
$lang->project->PGMDesc = 'Description';
|
||||
$lang->project->PGMCopy = 'Copy Program';
|
||||
$lang->project->PGMStatus = 'Status';
|
||||
$lang->project->PGMPM = 'Manager';
|
||||
$lang->project->PGMBudget = 'Budget';
|
||||
$lang->project->PGMProgress = 'Progress';
|
||||
$lang->project->PGMChildren = 'Child';
|
||||
$lang->project->PGMParent = 'Parent';
|
||||
$lang->project->PGMAllInput = 'Input';
|
||||
$lang->project->PGMTeamCount = 'Team';
|
||||
$lang->project->PGMLongTime = 'Long-Term';
|
||||
|
||||
$lang->program->noPGM = 'No program.';
|
||||
$lang->program->PGMShowClosed = 'Closed programs.';
|
||||
$lang->program->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
$lang->project->noPGM = 'No project.';
|
||||
$lang->project->PGMShowClosed = 'Closed projects.';
|
||||
$lang->project->PGMTips = 'If a parent item set is selected, products under that parent item set can be associated. If no item set is selected, a product with the same name as the item is created by default and associated with that item.';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->PGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->project->PGMAclList['private'] = "Private (accessible to project portfolio holders and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->project->PGMAclList['open'] = "Default(user who can visit the project can access it)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "Private (accessible to this program set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->program->subPGMAclList['open'] = "Default(user who can visit the program can access it)";
|
||||
$lang->program->subPGMAclList['program'] = "Open within the program (accessible to all higher-level program directors and affiliates, as well as to this program director and affiliates)";
|
||||
$lang->project->subPGMAclList['private'] = "Private (accessible to this project set leader and stakeholders, stakeholders can follow up maintenance)";
|
||||
$lang->project->subPGMAclList['open'] = "Default(user who can visit the project can access it)";
|
||||
$lang->project->subPGMAclList['project'] = "Open within the project (accessible to all higher-level project directors and affiliates, as well as to this project director and affiliates)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = 'Inherit(program privileges and company privileges)';
|
||||
$lang->program->PGMAuthList['reset'] = 'Reset(program privileges only)';
|
||||
$lang->project->PGMAuthList['extend'] = 'Inherit(project privileges and company privileges)';
|
||||
$lang->project->PGMAuthList['reset'] = 'Reset(project privileges only)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = 'All';
|
||||
$lang->project->PGMFeatureBar['all'] = 'All';
|
||||
|
||||
+196
-274
@@ -1,294 +1,216 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = '选择项目模板';
|
||||
$lang->program->PRJIndex = '项目仪表盘';
|
||||
$lang->program->PRJHome = '项目主页';
|
||||
$lang->program->PRJCreate = '创建项目';
|
||||
$lang->program->PRJEdit = '编辑项目';
|
||||
$lang->program->PRJBatchEdit = '批量编辑项目';
|
||||
$lang->program->PRJView = '项目概况';
|
||||
$lang->program->batchEdit = '批量编辑';
|
||||
$lang->program->PRJBrowse = '项目列表';
|
||||
$lang->program->PRJAll = '所有项目';
|
||||
$lang->program->PRJStart = '启动项目';
|
||||
$lang->program->PRJFinish = '完成项目';
|
||||
$lang->program->PRJSuspend = '挂起项目';
|
||||
$lang->program->PRJDelete = '删除项目';
|
||||
$lang->program->PRJClose = '关闭项目';
|
||||
$lang->program->PRJActivate = '激活项目';
|
||||
$lang->program->PRJGroup = '项目权限分组';
|
||||
$lang->program->PRJCreateGroup = '项目创建分组';
|
||||
$lang->program->PRJEditGroup = '项目编辑分组';
|
||||
$lang->program->PRJCopyGroup = '项目复制分组';
|
||||
$lang->program->PRJManageView = '项目维护视野';
|
||||
$lang->program->PRJManagePriv = '项目维护权限';
|
||||
$lang->program->PRJManageMembers = '项目团队';
|
||||
$lang->program->export = '导出';
|
||||
$lang->program->addProduct = '新建产品';
|
||||
$lang->program->PRJManageGroupMember = '维护分组用户';
|
||||
$lang->program->PRJModuleSetting = '列表设置';
|
||||
$lang->program->PRJModuleOpen = '显示项目集名';
|
||||
$lang->program->PRJUpdateOrder = '排序';
|
||||
$lang->program->PRJSort = '项目排序';
|
||||
$lang->program->PRJWhitelist = '项目白名单';
|
||||
$lang->program->PRJAddWhitelist = '项目添加白名单';
|
||||
$lang->program->unbindWhielist = '项目删除白名单';
|
||||
$lang->program->PRJManageProducts = '关联产品';
|
||||
$lang->program->view = '项目集详情';
|
||||
$lang->program->copyTitle = '请选择要复制的项目';
|
||||
$lang->program->errorSameProducts = '项目不能关联多个相同的产品。';
|
||||
$lang->program->errorNoProducts = '最少关联一个产品';
|
||||
$lang->program->copyNoProject = '没有可用的项目来复制';
|
||||
$lang->project->searchByName = '输入项目名称进行检索';
|
||||
$lang->project->createGuide = '选择项目模板';
|
||||
$lang->project->index = '项目仪表盘';
|
||||
$lang->project->home = '项目主页';
|
||||
$lang->project->create = '创建项目';
|
||||
$lang->project->edit = '编辑项目';
|
||||
$lang->project->batchEdit = '批量编辑项目';
|
||||
$lang->project->view = '项目概况';
|
||||
$lang->project->batchEdit = '批量编辑';
|
||||
$lang->project->browse = '项目列表';
|
||||
$lang->project->all = '所有项目';
|
||||
$lang->project->start = '启动项目';
|
||||
$lang->project->finish = '完成项目';
|
||||
$lang->project->suspend = '挂起项目';
|
||||
$lang->project->delete = '删除项目';
|
||||
$lang->project->close = '关闭项目';
|
||||
$lang->project->activate = '激活项目';
|
||||
$lang->project->group = '项目权限分组';
|
||||
$lang->project->createGroup = '项目创建分组';
|
||||
$lang->project->editGroup = '项目编辑分组';
|
||||
$lang->project->copyGroup = '项目复制分组';
|
||||
$lang->project->manageView = '项目维护视野';
|
||||
$lang->project->managePriv = '项目维护权限';
|
||||
$lang->project->manageMembers = '项目团队';
|
||||
$lang->project->export = '导出';
|
||||
$lang->project->addProduct = '新建产品';
|
||||
$lang->project->manageGroupMember = '维护分组用户';
|
||||
$lang->project->moduleSetting = '列表设置';
|
||||
$lang->project->moduleOpen = '显示项目集名';
|
||||
$lang->project->updateOrder = '排序';
|
||||
$lang->project->sort = '项目排序';
|
||||
$lang->project->whitelist = '项目白名单';
|
||||
$lang->project->addWhitelist = '项目添加白名单';
|
||||
$lang->project->unbindWhielist = '项目删除白名单';
|
||||
$lang->project->manageProducts = '关联产品';
|
||||
$lang->project->view = '项目集详情';
|
||||
$lang->project->copyTitle = '请选择要复制的项目';
|
||||
$lang->project->errorSameProducts = '项目不能关联多个相同的产品。';
|
||||
$lang->project->errorNoProducts = '最少关联一个产品';
|
||||
$lang->project->copyNoProject = '没有可用的项目来复制';
|
||||
$lang->project->searchByName = '输入项目名称进行检索';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = '项目集';
|
||||
$lang->program->project = '项目';
|
||||
$lang->program->stage = '阶段';
|
||||
$lang->program->PM = '负责人';
|
||||
$lang->program->PRJName = '项目名称';
|
||||
$lang->program->PRJCategory = '项目类型';
|
||||
$lang->program->PRJDesc = '项目描述';
|
||||
$lang->program->PRJCode = '项目代号';
|
||||
$lang->program->PRJCopy = '复制项目';
|
||||
$lang->program->begin = '计划开始';
|
||||
$lang->program->end = '计划完成';
|
||||
$lang->program->PRJStatus = '项目状态';
|
||||
$lang->program->PRJPM = '项目负责人';
|
||||
$lang->program->PRJBudget = '项目预算';
|
||||
$lang->program->PRJTemplate = '项目模板';
|
||||
$lang->program->PRJEstimate = '预计';
|
||||
$lang->program->PRJConsume = '消耗';
|
||||
$lang->program->PRJSurplus = '剩余';
|
||||
$lang->program->PRJProgress = '进度';
|
||||
$lang->program->dateRange = '起止日期';
|
||||
$lang->program->to = '至';
|
||||
$lang->program->realEnd = '实际完成日期';
|
||||
$lang->program->realBegan = '实际开始日期';
|
||||
$lang->program->bygrid = '看板';
|
||||
$lang->program->bylist = '列表';
|
||||
$lang->program->mine = '我参与的';
|
||||
$lang->program->setPlanduration = '设置工期';
|
||||
$lang->program->auth = '权限控制';
|
||||
$lang->program->durationEstimation = '工作量估算';
|
||||
$lang->program->teamCount = '人数';
|
||||
$lang->program->leftStories = '剩余需求';
|
||||
$lang->program->leftTasks = '剩余任务';
|
||||
$lang->program->leftBugs = '剩余Bug';
|
||||
$lang->program->PRJChildren = '子项目';
|
||||
$lang->program->PRJParent = '父项目';
|
||||
$lang->program->allStories = '总需求';
|
||||
$lang->program->doneStories = '已完成';
|
||||
$lang->program->allInput = '项目总投入';
|
||||
$lang->program->weekly = '项目周报';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = '项目成员';
|
||||
$lang->program->PRJLongTime = '长期';
|
||||
$lang->program->future = '待定';
|
||||
$lang->program->morePRJ = '更多项目';
|
||||
$lang->project->common = '项目集';
|
||||
$lang->project->project = '项目';
|
||||
$lang->project->stage = '阶段';
|
||||
$lang->project->PM = '负责人';
|
||||
$lang->project->name = '项目名称';
|
||||
$lang->project->category = '项目类型';
|
||||
$lang->project->desc = '项目描述';
|
||||
$lang->project->code = '项目代号';
|
||||
$lang->project->copy = '复制项目';
|
||||
$lang->project->begin = '计划开始';
|
||||
$lang->project->end = '计划完成';
|
||||
$lang->project->status = '项目状态';
|
||||
$lang->project->PM = '项目负责人';
|
||||
$lang->project->budget = '项目预算';
|
||||
$lang->project->template = '项目模板';
|
||||
$lang->project->estimate = '预计';
|
||||
$lang->project->consume = '消耗';
|
||||
$lang->project->surplus = '剩余';
|
||||
$lang->project->progress = '进度';
|
||||
$lang->project->dateRange = '起止日期';
|
||||
$lang->project->to = '至';
|
||||
$lang->project->realEnd = '实际完成日期';
|
||||
$lang->project->realBegan = '实际开始日期';
|
||||
$lang->project->bygrid = '看板';
|
||||
$lang->project->bylist = '列表';
|
||||
$lang->project->mine = '我参与的';
|
||||
$lang->project->acl = '访问控制';
|
||||
$lang->project->setPlanduration = '设置工期';
|
||||
$lang->project->auth = '权限控制';
|
||||
$lang->project->durationEstimation = '工作量估算';
|
||||
$lang->project->teamCount = '人数';
|
||||
$lang->project->leftStories = '剩余需求';
|
||||
$lang->project->leftTasks = '剩余任务';
|
||||
$lang->project->leftBugs = '剩余Bug';
|
||||
$lang->project->children = '子项目';
|
||||
$lang->project->parent = '父项目';
|
||||
$lang->project->allStories = '总需求';
|
||||
$lang->project->doneStories = '已完成';
|
||||
$lang->project->allInput = '项目总投入';
|
||||
$lang->project->weekly = '项目周报';
|
||||
$lang->project->pv = 'PV';
|
||||
$lang->project->ev = 'EV';
|
||||
$lang->project->sv = 'SV%';
|
||||
$lang->project->ac = 'AC';
|
||||
$lang->project->cv = 'CV%';
|
||||
$lang->project->teamCount = '项目成员';
|
||||
$lang->project->longTime = '长期';
|
||||
$lang->project->future = '待定';
|
||||
$lang->project->moreProject = '更多项目';
|
||||
|
||||
$lang->program->productNotEmpty = '请关联产品或创建产品。';
|
||||
$lang->program->existProductName = '产品名称已存在。';
|
||||
$lang->program->changeProgram = '%s > 修改项目集';
|
||||
$lang->program->changeProgramTip = '修改项目集后,该项目关联的产品也会同时修改所属项目集,请确认是否修改。';
|
||||
$lang->program->linkedProjectsTip = '关联的项目如下';
|
||||
$lang->program->multiLinkedProductsTip = '该项目关联的如下产品还关联了其他项目,请取消关联后再操作';
|
||||
$lang->project->productNotEmpty = '请关联产品或创建产品。';
|
||||
$lang->project->existProductName = '产品名称已存在。';
|
||||
$lang->project->changeProgram = '%s > 修改项目集';
|
||||
$lang->project->changeProgramTip = '修改项目集后,该项目关联的产品也会同时修改所属项目集,请确认是否修改。';
|
||||
$lang->project->linkedProjectsTip = '关联的项目如下';
|
||||
$lang->project->multiLinkedProductsTip = '该项目关联的如下产品还关联了其他项目,请取消关联后再操作';
|
||||
|
||||
$lang->program->tenThousand = '万';
|
||||
$lang->project->tenThousand = '万';
|
||||
|
||||
$lang->program->unitList['CNY'] = '人民币';
|
||||
$lang->program->unitList['USD'] = '美元';
|
||||
$lang->program->unitList['HKD'] = '港元';
|
||||
$lang->program->unitList['NTD'] = '台元';
|
||||
$lang->program->unitList['EUR'] = '欧元';
|
||||
$lang->program->unitList['DEM'] = '马克';
|
||||
$lang->program->unitList['CHF'] = '瑞士法郎';
|
||||
$lang->program->unitList['FRF'] = '法国法郎';
|
||||
$lang->program->unitList['GBP'] = '英镑';
|
||||
$lang->program->unitList['NLG'] = '荷兰盾';
|
||||
$lang->program->unitList['CAD'] = '加拿大元';
|
||||
$lang->program->unitList['RUR'] = '卢布';
|
||||
$lang->program->unitList['INR'] = '卢比';
|
||||
$lang->program->unitList['AUD'] = '澳大利亚元';
|
||||
$lang->program->unitList['NZD'] = '新西兰元';
|
||||
$lang->program->unitList['THB'] = '泰国铢';
|
||||
$lang->program->unitList['SGD'] = '新加坡元';
|
||||
$lang->project->unitList['CNY'] = '人民币';
|
||||
$lang->project->unitList['USD'] = '美元';
|
||||
$lang->project->unitList['HKD'] = '港元';
|
||||
$lang->project->unitList['NTD'] = '台元';
|
||||
$lang->project->unitList['EUR'] = '欧元';
|
||||
$lang->project->unitList['DEM'] = '马克';
|
||||
$lang->project->unitList['CHF'] = '瑞士法郎';
|
||||
$lang->project->unitList['FRF'] = '法国法郎';
|
||||
$lang->project->unitList['GBP'] = '英镑';
|
||||
$lang->project->unitList['NLG'] = '荷兰盾';
|
||||
$lang->project->unitList['CAD'] = '加拿大元';
|
||||
$lang->project->unitList['RUR'] = '卢布';
|
||||
$lang->project->unitList['INR'] = '卢比';
|
||||
$lang->project->unitList['AUD'] = '澳大利亚元';
|
||||
$lang->project->unitList['NZD'] = '新西兰元';
|
||||
$lang->project->unitList['THB'] = '泰国铢';
|
||||
$lang->project->unitList['SGD'] = '新加坡元';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
$lang->project->currencySymbol['CNY'] = '¥';
|
||||
$lang->project->currencySymbol['USD'] = '$';
|
||||
$lang->project->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->project->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->project->currencySymbol['EUR'] = '€';
|
||||
$lang->project->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->project->currencySymbol['CHF'] = '₣';
|
||||
$lang->project->currencySymbol['FRF'] = '₣';
|
||||
$lang->project->currencySymbol['GBP'] = '£';
|
||||
$lang->project->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->project->currencySymbol['CAD'] = '$';
|
||||
$lang->project->currencySymbol['RUR'] = '₽';
|
||||
$lang->project->currencySymbol['INR'] = '₹';
|
||||
$lang->project->currencySymbol['AUD'] = 'A$';
|
||||
$lang->project->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->project->currencySymbol['THB'] = '฿';
|
||||
$lang->project->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "瀑布";
|
||||
$lang->project->modelList['scrum'] = "Scrum";
|
||||
$lang->project->modelList['waterfall'] = "瀑布";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "单产品项目";
|
||||
$lang->program->PRJCategoryList['multiple'] = "多产品项目";
|
||||
$lang->project->categoryList['single'] = "单产品项目";
|
||||
$lang->project->categoryList['multiple'] = "多产品项目";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "短期";
|
||||
$lang->program->PRJLifeTimeList['long'] = "长期";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "运维";
|
||||
$lang->project->lifeTimeList['short'] = "短期";
|
||||
$lang->project->lifeTimeList['long'] = "长期";
|
||||
$lang->project->lifeTimeList['ops'] = "运维";
|
||||
|
||||
$lang->program->featureBar['all'] = '所有';
|
||||
$lang->program->featureBar['doing'] = '进行中';
|
||||
$lang->program->featureBar['wait'] = '未开始';
|
||||
$lang->program->featureBar['suspended'] = '已挂起';
|
||||
$lang->program->featureBar['closed'] = '已关闭';
|
||||
$lang->project->featureBar['all'] = '所有';
|
||||
$lang->project->featureBar['doing'] = '进行中';
|
||||
$lang->project->featureBar['wait'] = '未开始';
|
||||
$lang->project->featureBar['suspended'] = '已挂起';
|
||||
$lang->project->featureBar['closed'] = '已关闭';
|
||||
|
||||
$lang->program->PRJAclList['private'] = "私有(只有项目团队成员和干系人可访问)";
|
||||
$lang->program->PRJAclList['open'] = "公开(有项目视图权限即可访问)";
|
||||
$lang->project->aclList['private'] = "私有(只有项目团队成员和干系人可访问)";
|
||||
$lang->project->aclList['open'] = "公开(有项目视图权限即可访问)";
|
||||
|
||||
$lang->program->PRJAcls['private'] = "私有";
|
||||
$lang->program->PRJAcls['open'] = "公开";
|
||||
$lang->project->acls['private'] = '私有';
|
||||
$lang->project->acls['open'] = '公开';
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "私有(只有项目团队成员和干系人可访问)";
|
||||
$lang->program->PGMPRJAclList['program'] = "项目集内公开(所有上级项目集负责人和干系人,本项目团队成员和干系人可访问)";
|
||||
$lang->program->PGMPRJAclList['open'] = "全部公开(有项目视图权限即可访问)";
|
||||
$lang->project->authList['extend'] = '继承(取系统权限与项目权限的合集)';
|
||||
$lang->project->authList['reset'] = '重新定义(只取项目权限)';
|
||||
|
||||
$lang->program->PGMPRJAcls['private'] = "私有";
|
||||
$lang->program->PGMPRJAcls['program'] = "项目集内公开";
|
||||
$lang->program->PGMPRJAcls['open'] = "全部公开";
|
||||
$lang->project->statusList['wait'] = '未开始';
|
||||
$lang->project->statusList['doing'] = '进行中';
|
||||
$lang->project->statusList['suspended'] = '已挂起';
|
||||
$lang->project->statusList['closed'] = '已关闭';
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = '继承(取系统权限与项目权限的合集)';
|
||||
$lang->program->PRJAuthList['reset'] = '重新定义(只取项目权限)';
|
||||
$lang->project->endList[31] = '一个月';
|
||||
$lang->project->endList[93] = '三个月';
|
||||
$lang->project->endList[186] = '半年';
|
||||
$lang->project->endList[365] = '一年';
|
||||
$lang->project->endList[999] = '长期';
|
||||
|
||||
$lang->program->statusList['wait'] = '未开始';
|
||||
$lang->program->statusList['doing'] = '进行中';
|
||||
$lang->program->statusList['suspended'] = '已挂起';
|
||||
$lang->program->statusList['closed'] = '已关闭';
|
||||
$lang->project->empty = '暂时没有项目';
|
||||
$lang->project->accessDenied = '您无权访问该项目!';
|
||||
$lang->project->chooseProgramType = '选中项目管理模型';
|
||||
$lang->project->nextStep = '下一步';
|
||||
$lang->project->hoursUnit = '%s 工时';
|
||||
$lang->project->membersUnit = '%s人';
|
||||
$lang->project->lastIteration = '近期迭代';
|
||||
$lang->project->ongoingStage = '进行中的阶段';
|
||||
$lang->project->scrum = 'Scrum';
|
||||
$lang->project->waterfall = '瀑布';
|
||||
$lang->project->waterfallTitle = '瀑布式项目管理';
|
||||
$lang->project->cannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->project->hasChildren = '该项目集有子项目集或项目存在,不能删除。';
|
||||
$lang->project->confirmDelete = "您确定要删除吗?";
|
||||
$lang->project->emptyPM = '暂无';
|
||||
$lang->project->cannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->project->cannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
$lang->project->parentBeginEnd = "父项目起止时间:%s ~ %s";
|
||||
$lang->project->childLongTime = "子项目中有长期项目,父项目也应该是长期项目";
|
||||
$lang->project->readjustTime = '重新调整项目起止时间';
|
||||
$lang->project->notAllowRemoveProducts = '该产品中的需求已与项目进行了关联,请取消关联后再操作。';
|
||||
|
||||
$lang->program->endList[31] = '一个月';
|
||||
$lang->program->endList[93] = '三个月';
|
||||
$lang->program->endList[186] = '半年';
|
||||
$lang->program->endList[365] = '一年';
|
||||
$lang->program->endList[999] = '长期';
|
||||
$lang->project->programTitle['0'] = '不显示';
|
||||
$lang->project->programTitle['base'] = '只显示一级项目集';
|
||||
$lang->project->programTitle['end'] = '只显示最后一级项目集';
|
||||
|
||||
$lang->program->noPRJ = '暂时没有项目';
|
||||
$lang->program->accessDenied = '您无权访问该项目!';
|
||||
$lang->program->chooseProgramType = '选中项目管理模型';
|
||||
$lang->program->nextStep = '下一步';
|
||||
$lang->program->hoursUnit = "%s 工时";
|
||||
$lang->program->membersUnit = '%s人';
|
||||
$lang->program->lastIteration = '近期迭代';
|
||||
$lang->program->ongoingStage = '进行中的阶段';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = '瀑布';
|
||||
$lang->program->waterfallTitle = '瀑布式项目管理';
|
||||
$lang->program->cannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->program->hasChildren = '该项目集有子项目集或项目存在,不能删除。';
|
||||
$lang->program->confirmDelete = "您确定要删除吗?";
|
||||
$lang->program->emptyPM = '暂无';
|
||||
$lang->program->cannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->program->cannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
$lang->program->parentBeginEnd = "父项目起止时间:%s ~ %s";
|
||||
$lang->program->childLongTime = "子项目中有长期项目,父项目也应该是长期项目";
|
||||
$lang->program->readjustTime = '重新调整项目起止时间';
|
||||
$lang->program->notAllowRemoveProducts = '该产品中的需求已与项目进行了关联,请取消关联后再操作。';
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = '不显示';
|
||||
$lang->program->PRJProgramTitle['base'] = '只显示一级项目集';
|
||||
$lang->program->PRJProgramTitle['end'] = '只显示最后一级项目集';
|
||||
|
||||
$lang->program->PRJAccessDenied = '您无权访问该项目!';
|
||||
$lang->program->PRJChooseProgramType = '选择项目管理方式';
|
||||
$lang->program->scrumTitle = '敏捷开发全流程项目管理';
|
||||
$lang->program->PRJCannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->program->PRJHasChildren = '该项目有子项目存在,不能删除。';
|
||||
$lang->program->PRJConfirmDelete = "您确定删除项目[%s]吗?";
|
||||
$lang->program->PRJCannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->program->PRJCannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
$lang->program->PRJParentBeginEnd = "父项目起止时间:%s ~ %s";
|
||||
$lang->program->PRJParentBudget = "父项目预算:%s";
|
||||
$lang->program->PRJBeginLetterParent = "父项目的开始日期:%s,开始日期不能小于父项目的开始日期";
|
||||
$lang->program->PRJEndGreaterParent = "父项目的完成日期:%s,完成日期不能大于父项目的完成日期";
|
||||
$lang->program->PRJBeginGreateChild = "项目集的最小开始日期:%s,项目的开始日期不能小于项目集的最小开始日期";
|
||||
$lang->program->PRJEndLetterChild = "项目集的最大完成日期:%s,项目的完成日期不能大于项目集的最大完成日期";
|
||||
$lang->program->PRJChildLongTime = "子项目中有长期项目,父项目也应该是长期项目";
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = '项目集';
|
||||
$lang->program->PGMIndex = '项目集主页';
|
||||
$lang->program->PGMCreate = '添加项目集';
|
||||
$lang->program->PGMCreateGuide = '选择项目模板';
|
||||
$lang->program->PGMEdit = '编辑项目集';
|
||||
$lang->program->PGMBrowse = '项目集列表';
|
||||
$lang->program->PGMProduct = '产品列表';
|
||||
$lang->program->PGMProject = '项目集项目列表';
|
||||
$lang->program->PGMAll = '所有项目集';
|
||||
$lang->program->PGMStart = '启动项目集';
|
||||
$lang->program->PGMFinish = '完成项目集';
|
||||
$lang->program->PGMSuspend = '挂起项目集';
|
||||
$lang->program->PGMDelete = '删除项目集';
|
||||
$lang->program->PGMClose = '关闭项目集';
|
||||
$lang->program->PGMActivate = '激活项目集';
|
||||
$lang->program->PGMExport = '导出';
|
||||
$lang->program->PGMStakeholder = '干系人列表';
|
||||
$lang->program->createStakeholder = '添加干系人';
|
||||
$lang->program->unlinkStakeholder = '移除干系人';
|
||||
$lang->program->batchUnlinkStakeholders = '批量移除干系人';
|
||||
$lang->program->unlink = '移除';
|
||||
$lang->program->morePGM = '更多项目集';
|
||||
$lang->program->confirmBatchUnlink = "您确定要批量移除这些干系人吗?";
|
||||
$lang->program->stakeholderType = '干系人类型';
|
||||
$lang->program->isStakeholderKey = '关键干系人';
|
||||
$lang->program->importStakeholder = '从父项目集导入';
|
||||
$lang->program->PGMManageMembers = '项目集团队';
|
||||
$lang->program->PGMParentBudget = '所属项目集剩余预算:';
|
||||
$lang->program->beyondParentBudget = '已超出所属项目集的剩余预算';
|
||||
$lang->program->PGMBeginLetterParent = "父项目集的开始日期:%s,开始日期不能小于父项目集的开始日期";
|
||||
$lang->program->PGMEndGreaterParent = "父项目集的完成日期:%s,完成日期不能大于父项目集的完成日期";
|
||||
$lang->program->PGMBeginGreateChild = "子项目集的最小开始日期:%s,父项目集的开始日期不能大于子项目集的最小开始日期";
|
||||
$lang->program->PGMEndLetterChild = "子项目的最大完成日期:%s,父项目的完成日期不能小于子项目的最大完成日期";
|
||||
$lang->program->PGMCloseErrorMessage = '存在子项目集或项目为未关闭状态';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = '内部';
|
||||
$lang->program->stakeholderTypeList['outside'] = '外部';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = '项目集名称';
|
||||
$lang->program->PGMTemplate = '项目集模板';
|
||||
$lang->program->PGMCategory = '项目集类型';
|
||||
$lang->program->PGMDesc = '项目集描述';
|
||||
$lang->program->PGMCopy = '复制项目集';
|
||||
$lang->program->PGMStatus = '状态';
|
||||
$lang->program->PGMPM = '负责人';
|
||||
$lang->program->PGMBudget = '预算';
|
||||
$lang->program->PGMProgress = '项目进度';
|
||||
$lang->program->PGMChildren = '子项目集';
|
||||
$lang->program->PGMParent = '父项目集';
|
||||
$lang->program->PGMAllInput = '项目集总投入';
|
||||
$lang->program->PGMTeamCount = '项目集成员';
|
||||
$lang->program->PGMLongTime = '长期项目';
|
||||
|
||||
$lang->program->noPGM = '暂时没有项目集';
|
||||
$lang->program->PGMShowClosed = '显示已关闭';
|
||||
$lang->program->PGMTips = '选择了父项目集,则可关联该父项目集下的产品。如果项目未选择任何项目集,则系统会默认创建一个和该项目同名的产品并关联该项目。';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "私有(项目集负责人和干系人可访问,干系人可后续维护)";
|
||||
$lang->program->PGMAclList['open'] = "公开(有项目集视图权限,即可访问)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "私有(本项目集负责人和干系人可访问,干系人可后续维护)";
|
||||
$lang->program->subPGMAclList['open'] = "全部公开(有项目集视图权限,即可访问)";
|
||||
$lang->program->subPGMAclList['program'] = "项目集内公开 (所有上级项目集负责人和干系人、本项目集负责人和干系人可访问)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = '继承(取项目权限与组织权限的并集)';
|
||||
$lang->program->PGMAuthList['reset'] = '重新定义(只取项目权限)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = '所有';
|
||||
$lang->project->accessDenied = '您无权访问该项目!';
|
||||
$lang->project->chooseProgramType = '选择项目管理方式';
|
||||
$lang->project->scrumTitle = '敏捷开发全流程项目管理';
|
||||
$lang->project->cannotCreateChild = '该项目已经有实际的内容,无法直接添加子项目。您可以为当前项目创建一个父项目,然后在新的父项目下面添加子项目。';
|
||||
$lang->project->hasChildren = '该项目有子项目存在,不能删除。';
|
||||
$lang->project->confirmDelete = "您确定删除项目[%s]吗?";
|
||||
$lang->project->cannotChangeToCat = "该项目已经有实际的内容,无法修改为父项目";
|
||||
$lang->project->cannotCancelCat = "该项目下已经有子项目,无法取消父项目标记";
|
||||
$lang->project->parentBeginEnd = "父项目起止时间:%s ~ %s";
|
||||
$lang->project->parentBudget = "父项目预算:%s";
|
||||
$lang->project->beginLetterParent = "父项目的开始日期:%s,开始日期不能小于父项目的开始日期";
|
||||
$lang->project->endGreaterParent = "父项目的完成日期:%s,完成日期不能大于父项目的完成日期";
|
||||
$lang->project->beginGreateChild = "项目集的最小开始日期:%s,项目的开始日期不能小于项目集的最小开始日期";
|
||||
$lang->project->endLetterChild = "项目集的最大完成日期:%s,项目的完成日期不能大于项目集的最大完成日期";
|
||||
$lang->project->childLongTime = "子项目中有长期项目,父项目也应该是长期项目";
|
||||
|
||||
+251
-251
@@ -1,282 +1,282 @@
|
||||
<?php
|
||||
/* Actions. */
|
||||
$lang->program->createGuide = '選擇項目模板';
|
||||
$lang->program->PRJIndex = '項目儀表盤';
|
||||
$lang->program->PRJHome = '項目主頁';
|
||||
$lang->program->PRJCreate = '創建項目';
|
||||
$lang->program->PRJEdit = '編輯項目';
|
||||
$lang->program->PRJView = '項目概況';
|
||||
$lang->program->batchEdit = '批量編輯';
|
||||
$lang->program->PRJBrowse = '項目列表';
|
||||
$lang->program->PRJAll = '所有項目';
|
||||
$lang->program->PRJStart = '啟動項目';
|
||||
$lang->program->PRJFinish = '完成項目';
|
||||
$lang->program->PRJSuspend = '掛起項目';
|
||||
$lang->program->PRJDelete = '刪除項目';
|
||||
$lang->program->PRJClose = '關閉項目';
|
||||
$lang->program->PRJActivate = '激活項目';
|
||||
$lang->program->PRJGroup = '項目權限分組';
|
||||
$lang->program->PRJCreateGroup = '項目創建分組';
|
||||
$lang->program->PRJEditGroup = '項目編輯分組';
|
||||
$lang->program->PRJCopyGroup = '項目複製分組';
|
||||
$lang->program->PRJManageView = '項目維護視野';
|
||||
$lang->program->PRJManagePriv = '項目維護權限';
|
||||
$lang->program->PRJManageMembers = '項目團隊';
|
||||
$lang->program->export = '導出';
|
||||
$lang->program->addProduct = '新建產品';
|
||||
$lang->program->PRJManageGroupMember = '維護分組用戶';
|
||||
$lang->program->PRJModuleSetting = '列表設置';
|
||||
$lang->program->PRJModuleOpen = '顯示項目集名';
|
||||
$lang->program->PRJUpdateOrder = '排序';
|
||||
$lang->program->PRJSort = '項目排序';
|
||||
$lang->program->PRJWhitelist = '項目白名單';
|
||||
$lang->program->PRJAddWhitelist = '項目添加白名單';
|
||||
$lang->program->unbindWhielist = '項目刪除白名單';
|
||||
$lang->program->PRJManageProducts = '關聯產品';
|
||||
$lang->program->view = '項目集詳情';
|
||||
$lang->program->copyTitle = '請選擇要複製的項目';
|
||||
$lang->program->errorSameProducts = '項目不能關聯多個相同的產品。';
|
||||
$lang->program->errorNoProducts = '最少關聯一個產品';
|
||||
$lang->program->copyNoProject = '沒有可用的項目來複制';
|
||||
$lang->project->createGuide = '選擇項目模板';
|
||||
$lang->project->PRJIndex = '項目儀表盤';
|
||||
$lang->project->PRJHome = '項目主頁';
|
||||
$lang->project->PRJCreate = '創建項目';
|
||||
$lang->project->PRJEdit = '編輯項目';
|
||||
$lang->project->PRJView = '項目概況';
|
||||
$lang->project->batchEdit = '批量編輯';
|
||||
$lang->project->PRJBrowse = '項目列表';
|
||||
$lang->project->PRJAll = '所有項目';
|
||||
$lang->project->PRJStart = '啟動項目';
|
||||
$lang->project->PRJFinish = '完成項目';
|
||||
$lang->project->PRJSuspend = '掛起項目';
|
||||
$lang->project->PRJDelete = '刪除項目';
|
||||
$lang->project->PRJClose = '關閉項目';
|
||||
$lang->project->PRJActivate = '激活項目';
|
||||
$lang->project->PRJGroup = '項目權限分組';
|
||||
$lang->project->PRJCreateGroup = '項目創建分組';
|
||||
$lang->project->PRJEditGroup = '項目編輯分組';
|
||||
$lang->project->PRJCopyGroup = '項目複製分組';
|
||||
$lang->project->PRJManageView = '項目維護視野';
|
||||
$lang->project->PRJManagePriv = '項目維護權限';
|
||||
$lang->project->PRJManageMembers = '項目團隊';
|
||||
$lang->project->export = '導出';
|
||||
$lang->project->addProduct = '新建產品';
|
||||
$lang->project->PRJManageGroupMember = '維護分組用戶';
|
||||
$lang->project->PRJModuleSetting = '列表設置';
|
||||
$lang->project->PRJModuleOpen = '顯示項目集名';
|
||||
$lang->project->PRJUpdateOrder = '排序';
|
||||
$lang->project->PRJSort = '項目排序';
|
||||
$lang->project->PRJWhitelist = '項目白名單';
|
||||
$lang->project->PRJAddWhitelist = '項目添加白名單';
|
||||
$lang->project->unbindWhielist = '項目刪除白名單';
|
||||
$lang->project->PRJManageProducts = '關聯產品';
|
||||
$lang->project->view = '項目集詳情';
|
||||
$lang->project->copyTitle = '請選擇要複製的項目';
|
||||
$lang->project->errorSameProducts = '項目不能關聯多個相同的產品。';
|
||||
$lang->project->errorNoProducts = '最少關聯一個產品';
|
||||
$lang->project->copyNoProject = '沒有可用的項目來複制';
|
||||
$lang->project->searchByName = '輸入項目名稱進行檢索';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->common = '項目集';
|
||||
$lang->program->project = '項目';
|
||||
$lang->program->stage = '階段';
|
||||
$lang->program->PM = '負責人';
|
||||
$lang->program->PRJName = '項目名稱';
|
||||
$lang->program->PRJCategory = '項目類型';
|
||||
$lang->program->PRJDesc = '項目描述';
|
||||
$lang->program->PRJCode = '項目代號';
|
||||
$lang->program->PRJCopy = '複製項目';
|
||||
$lang->program->begin = '計劃開始';
|
||||
$lang->program->end = '計劃完成';
|
||||
$lang->program->PRJStatus = '項目狀態';
|
||||
$lang->program->PRJPM = '項目負責人';
|
||||
$lang->program->PRJBudget = '項目預算';
|
||||
$lang->program->PRJTemplate = '項目模板';
|
||||
$lang->program->PRJEstimate = '預計';
|
||||
$lang->program->PRJConsume = '消耗';
|
||||
$lang->program->PRJSurplus = '剩餘';
|
||||
$lang->program->PRJProgress = '進度';
|
||||
$lang->program->dateRange = '起止日期';
|
||||
$lang->program->to = '至';
|
||||
$lang->program->realEnd = '實際完成日期';
|
||||
$lang->program->realBegan = '實際開始日期';
|
||||
$lang->program->bygrid = '看板';
|
||||
$lang->program->bylist = '列表';
|
||||
$lang->program->mine = '我參與的';
|
||||
$lang->program->setPlanduration = '設置工期';
|
||||
$lang->program->auth = '權限控制';
|
||||
$lang->program->durationEstimation = '工作量估算';
|
||||
$lang->program->teamCount = '人數';
|
||||
$lang->program->leftStories = '剩餘需求';
|
||||
$lang->program->leftTasks = '剩餘任務';
|
||||
$lang->program->leftBugs = '剩餘Bug';
|
||||
$lang->program->PRJChildren = '子項目';
|
||||
$lang->program->PRJParent = '父項目';
|
||||
$lang->program->allStories = '總需求';
|
||||
$lang->program->doneStories = '已完成';
|
||||
$lang->program->allInput = '項目總投入';
|
||||
$lang->program->weekly = '項目周報';
|
||||
$lang->program->pv = 'PV';
|
||||
$lang->program->ev = 'EV';
|
||||
$lang->program->sv = 'SV%';
|
||||
$lang->program->ac = 'AC';
|
||||
$lang->program->cv = 'CV%';
|
||||
$lang->program->PRJTeamCount = '項目成員';
|
||||
$lang->program->PRJLongTime = '長期';
|
||||
$lang->program->future = '待定';
|
||||
$lang->program->morePRJ = '更多項目';
|
||||
$lang->project->common = '項目集';
|
||||
$lang->project->project = '項目';
|
||||
$lang->project->stage = '階段';
|
||||
$lang->project->PM = '負責人';
|
||||
$lang->project->PRJName = '項目名稱';
|
||||
$lang->project->PRJCategory = '項目類型';
|
||||
$lang->project->PRJDesc = '項目描述';
|
||||
$lang->project->PRJCode = '項目代號';
|
||||
$lang->project->PRJCopy = '複製項目';
|
||||
$lang->project->begin = '計劃開始';
|
||||
$lang->project->end = '計劃完成';
|
||||
$lang->project->PRJStatus = '項目狀態';
|
||||
$lang->project->PRJPM = '項目負責人';
|
||||
$lang->project->PRJBudget = '項目預算';
|
||||
$lang->project->PRJTemplate = '項目模板';
|
||||
$lang->project->PRJEstimate = '預計';
|
||||
$lang->project->PRJConsume = '消耗';
|
||||
$lang->project->PRJSurplus = '剩餘';
|
||||
$lang->project->PRJProgress = '進度';
|
||||
$lang->project->dateRange = '起止日期';
|
||||
$lang->project->to = '至';
|
||||
$lang->project->realEnd = '實際完成日期';
|
||||
$lang->project->realBegan = '實際開始日期';
|
||||
$lang->project->bygrid = '看板';
|
||||
$lang->project->bylist = '列表';
|
||||
$lang->project->mine = '我參與的';
|
||||
$lang->project->setPlanduration = '設置工期';
|
||||
$lang->project->auth = '權限控制';
|
||||
$lang->project->durationEstimation = '工作量估算';
|
||||
$lang->project->teamCount = '人數';
|
||||
$lang->project->leftStories = '剩餘需求';
|
||||
$lang->project->leftTasks = '剩餘任務';
|
||||
$lang->project->leftBugs = '剩餘Bug';
|
||||
$lang->project->PRJChildren = '子項目';
|
||||
$lang->project->PRJParent = '父項目';
|
||||
$lang->project->allStories = '總需求';
|
||||
$lang->project->doneStories = '已完成';
|
||||
$lang->project->allInput = '項目總投入';
|
||||
$lang->project->weekly = '項目周報';
|
||||
$lang->project->pv = 'PV';
|
||||
$lang->project->ev = 'EV';
|
||||
$lang->project->sv = 'SV%';
|
||||
$lang->project->ac = 'AC';
|
||||
$lang->project->cv = 'CV%';
|
||||
$lang->project->PRJTeamCount = '項目成員';
|
||||
$lang->project->PRJLongTime = '長期';
|
||||
$lang->project->future = '待定';
|
||||
$lang->project->morePRJ = '更多項目';
|
||||
|
||||
$lang->program->productNotEmpty = '請關聯產品或創建產品。';
|
||||
$lang->program->existProductName = '產品名稱已存在。';
|
||||
$lang->project->productNotEmpty = '請關聯產品或創建產品。';
|
||||
$lang->project->existProductName = '產品名稱已存在。';
|
||||
|
||||
$lang->program->tenThousand = '萬';
|
||||
$lang->project->tenThousand = '萬';
|
||||
|
||||
$lang->program->unitList['CNY'] = '人民幣';
|
||||
$lang->program->unitList['USD'] = '美元';
|
||||
$lang->program->unitList['HKD'] = '港元';
|
||||
$lang->program->unitList['NTD'] = '台元';
|
||||
$lang->program->unitList['EUR'] = '歐元';
|
||||
$lang->program->unitList['DEM'] = '馬克';
|
||||
$lang->program->unitList['CHF'] = '瑞士法郎';
|
||||
$lang->program->unitList['FRF'] = '法國法郎';
|
||||
$lang->program->unitList['GBP'] = '英鎊';
|
||||
$lang->program->unitList['NLG'] = '荷蘭盾';
|
||||
$lang->program->unitList['CAD'] = '加拿大元';
|
||||
$lang->program->unitList['RUR'] = '盧布';
|
||||
$lang->program->unitList['INR'] = '盧比';
|
||||
$lang->program->unitList['AUD'] = '澳大利亞元';
|
||||
$lang->program->unitList['NZD'] = '新西蘭元';
|
||||
$lang->program->unitList['THB'] = '泰國銖';
|
||||
$lang->program->unitList['SGD'] = '新加坡元';
|
||||
$lang->project->unitList['CNY'] = '人民幣';
|
||||
$lang->project->unitList['USD'] = '美元';
|
||||
$lang->project->unitList['HKD'] = '港元';
|
||||
$lang->project->unitList['NTD'] = '台元';
|
||||
$lang->project->unitList['EUR'] = '歐元';
|
||||
$lang->project->unitList['DEM'] = '馬克';
|
||||
$lang->project->unitList['CHF'] = '瑞士法郎';
|
||||
$lang->project->unitList['FRF'] = '法國法郎';
|
||||
$lang->project->unitList['GBP'] = '英鎊';
|
||||
$lang->project->unitList['NLG'] = '荷蘭盾';
|
||||
$lang->project->unitList['CAD'] = '加拿大元';
|
||||
$lang->project->unitList['RUR'] = '盧布';
|
||||
$lang->project->unitList['INR'] = '盧比';
|
||||
$lang->project->unitList['AUD'] = '澳大利亞元';
|
||||
$lang->project->unitList['NZD'] = '新西蘭元';
|
||||
$lang->project->unitList['THB'] = '泰國銖';
|
||||
$lang->project->unitList['SGD'] = '新加坡元';
|
||||
|
||||
$lang->program->currencySymbol['CNY'] = '¥';
|
||||
$lang->program->currencySymbol['USD'] = '$';
|
||||
$lang->program->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->program->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->program->currencySymbol['EUR'] = '€';
|
||||
$lang->program->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->program->currencySymbol['CHF'] = '₣';
|
||||
$lang->program->currencySymbol['FRF'] = '₣';
|
||||
$lang->program->currencySymbol['GBP'] = '£';
|
||||
$lang->program->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->program->currencySymbol['CAD'] = '$';
|
||||
$lang->program->currencySymbol['RUR'] = '₽';
|
||||
$lang->program->currencySymbol['INR'] = '₹';
|
||||
$lang->program->currencySymbol['AUD'] = 'A$';
|
||||
$lang->program->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->program->currencySymbol['THB'] = '฿';
|
||||
$lang->program->currencySymbol['SGD'] = 'S$';
|
||||
$lang->project->currencySymbol['CNY'] = '¥';
|
||||
$lang->project->currencySymbol['USD'] = '$';
|
||||
$lang->project->currencySymbol['HKD'] = 'HK$';
|
||||
$lang->project->currencySymbol['NTD'] = 'NT$';
|
||||
$lang->project->currencySymbol['EUR'] = '€';
|
||||
$lang->project->currencySymbol['DEM'] = 'DEM';
|
||||
$lang->project->currencySymbol['CHF'] = '₣';
|
||||
$lang->project->currencySymbol['FRF'] = '₣';
|
||||
$lang->project->currencySymbol['GBP'] = '£';
|
||||
$lang->project->currencySymbol['NLG'] = 'ƒ';
|
||||
$lang->project->currencySymbol['CAD'] = '$';
|
||||
$lang->project->currencySymbol['RUR'] = '₽';
|
||||
$lang->project->currencySymbol['INR'] = '₹';
|
||||
$lang->project->currencySymbol['AUD'] = 'A$';
|
||||
$lang->project->currencySymbol['NZD'] = 'NZ$';
|
||||
$lang->project->currencySymbol['THB'] = '฿';
|
||||
$lang->project->currencySymbol['SGD'] = 'S$';
|
||||
|
||||
$lang->program->modelList['scrum'] = "Scrum";
|
||||
$lang->program->modelList['waterfall'] = "瀑布";
|
||||
$lang->project->modelList['scrum'] = "Scrum";
|
||||
$lang->project->modelList['waterfall'] = "瀑布";
|
||||
|
||||
$lang->program->PRJCategoryList['single'] = "單產品項目";
|
||||
$lang->program->PRJCategoryList['multiple'] = "多產品項目";
|
||||
$lang->project->PRJCategoryList['single'] = "單產品項目";
|
||||
$lang->project->PRJCategoryList['multiple'] = "多產品項目";
|
||||
|
||||
$lang->program->PRJLifeTimeList['short'] = "短期";
|
||||
$lang->program->PRJLifeTimeList['long'] = "長期";
|
||||
$lang->program->PRJLifeTimeList['ops'] = "運維";
|
||||
$lang->project->PRJLifeTimeList['short'] = "短期";
|
||||
$lang->project->PRJLifeTimeList['long'] = "長期";
|
||||
$lang->project->PRJLifeTimeList['ops'] = "運維";
|
||||
|
||||
$lang->program->featureBar['all'] = '所有';
|
||||
$lang->program->featureBar['doing'] = '進行中';
|
||||
$lang->program->featureBar['wait'] = '未開始';
|
||||
$lang->program->featureBar['suspended'] = '已掛起';
|
||||
$lang->program->featureBar['closed'] = '已關閉';
|
||||
$lang->project->featureBar['all'] = '所有';
|
||||
$lang->project->featureBar['doing'] = '進行中';
|
||||
$lang->project->featureBar['wait'] = '未開始';
|
||||
$lang->project->featureBar['suspended'] = '已掛起';
|
||||
$lang->project->featureBar['closed'] = '已關閉';
|
||||
|
||||
$lang->program->PRJAclList['private'] = "私有(只有項目團隊成員和干係人可訪問)";
|
||||
$lang->program->PRJAclList['open'] = "公開(有項目視圖權限即可訪問)";
|
||||
$lang->project->PRJAclList['private'] = "私有(只有項目團隊成員和干係人可訪問)";
|
||||
$lang->project->PRJAclList['open'] = "公開(有項目視圖權限即可訪問)";
|
||||
|
||||
$lang->program->PGMPRJAclList['private'] = "私有(只有項目團隊成員和干係人可訪問)";
|
||||
$lang->program->PGMPRJAclList['program'] = "項目集內公開(所有上級項目集負責人和干係人,本項目團隊成員和干係人可訪問)";
|
||||
$lang->program->PGMPRJAclList['open'] = "全部公開(有項目視圖權限即可訪問)";
|
||||
$lang->project->PGMPRJAclList['private'] = "私有(只有項目團隊成員和干係人可訪問)";
|
||||
$lang->project->PGMPRJAclList['project'] = "項目集內公開(所有上級項目集負責人和干係人,本項目團隊成員和干係人可訪問)";
|
||||
$lang->project->PGMPRJAclList['open'] = "全部公開(有項目視圖權限即可訪問)";
|
||||
|
||||
$lang->program->PRJAuthList['extend'] = '繼承(取系統權限與項目權限的合集)';
|
||||
$lang->program->PRJAuthList['reset'] = '重新定義(只取項目權限)';
|
||||
$lang->project->PRJAuthList['extend'] = '繼承(取系統權限與項目權限的合集)';
|
||||
$lang->project->PRJAuthList['reset'] = '重新定義(只取項目權限)';
|
||||
|
||||
$lang->program->statusList['wait'] = '未開始';
|
||||
$lang->program->statusList['doing'] = '進行中';
|
||||
$lang->program->statusList['suspended'] = '已掛起';
|
||||
$lang->program->statusList['closed'] = '已關閉';
|
||||
$lang->project->statusList['wait'] = '未開始';
|
||||
$lang->project->statusList['doing'] = '進行中';
|
||||
$lang->project->statusList['suspended'] = '已掛起';
|
||||
$lang->project->statusList['closed'] = '已關閉';
|
||||
|
||||
$lang->program->endList[31] = '一個月';
|
||||
$lang->program->endList[93] = '三個月';
|
||||
$lang->program->endList[186] = '半年';
|
||||
$lang->program->endList[365] = '一年';
|
||||
$lang->program->endList[999] = '長期';
|
||||
$lang->project->endList[31] = '一個月';
|
||||
$lang->project->endList[93] = '三個月';
|
||||
$lang->project->endList[186] = '半年';
|
||||
$lang->project->endList[365] = '一年';
|
||||
$lang->project->endList[999] = '長期';
|
||||
|
||||
$lang->program->noPRJ = '暫時沒有項目';
|
||||
$lang->program->accessDenied = '您無權訪問該項目!';
|
||||
$lang->program->chooseProgramType = '選中項目管理模型';
|
||||
$lang->program->nextStep = '下一步';
|
||||
$lang->program->hoursUnit = "%s 工時";
|
||||
$lang->program->membersUnit = '%s人';
|
||||
$lang->program->lastIteration = '近期迭代';
|
||||
$lang->program->ongoingStage = '進行中的階段';
|
||||
$lang->program->scrum = 'Scrum';
|
||||
$lang->program->waterfall = '瀑布';
|
||||
$lang->program->waterfallTitle = '瀑布式項目管理';
|
||||
$lang->program->cannotCreateChild = '該項目已經有實際的內容,無法直接添加子項目。您可以為當前項目創建一個父項目,然後在新的父項目下面添加子項目。';
|
||||
$lang->program->hasChildren = '該項目集有子項目集或項目存在,不能刪除。';
|
||||
$lang->program->confirmDelete = "您確定要刪除嗎?";
|
||||
$lang->program->emptyPM = '暫無';
|
||||
$lang->program->cannotChangeToCat = "該項目已經有實際的內容,無法修改為父項目";
|
||||
$lang->program->cannotCancelCat = "該項目下已經有子項目,無法取消父項目標記";
|
||||
$lang->program->parentBeginEnd = "父項目起止時間:%s ~ %s";
|
||||
$lang->program->childLongTime = "子項目中有長期項目,父項目也應該是長期項目";
|
||||
$lang->program->readjustTime = '重新調整項目起止時間';
|
||||
$lang->program->notAllowRemoveProducts = '該產品中的需求已與項目進行了關聯,請取消關聯後再操作。';
|
||||
$lang->project->noPRJ = '暫時沒有項目';
|
||||
$lang->project->accessDenied = '您無權訪問該項目!';
|
||||
$lang->project->chooseProgramType = '選中項目管理模型';
|
||||
$lang->project->nextStep = '下一步';
|
||||
$lang->project->hoursUnit = "%s 工時";
|
||||
$lang->project->membersUnit = '%s人';
|
||||
$lang->project->lastIteration = '近期迭代';
|
||||
$lang->project->ongoingStage = '進行中的階段';
|
||||
$lang->project->scrum = 'Scrum';
|
||||
$lang->project->waterfall = '瀑布';
|
||||
$lang->project->waterfallTitle = '瀑布式項目管理';
|
||||
$lang->project->cannotCreateChild = '該項目已經有實際的內容,無法直接添加子項目。您可以為當前項目創建一個父項目,然後在新的父項目下面添加子項目。';
|
||||
$lang->project->hasChildren = '該項目集有子項目集或項目存在,不能刪除。';
|
||||
$lang->project->confirmDelete = "您確定要刪除嗎?";
|
||||
$lang->project->emptyPM = '暫無';
|
||||
$lang->project->cannotChangeToCat = "該項目已經有實際的內容,無法修改為父項目";
|
||||
$lang->project->cannotCancelCat = "該項目下已經有子項目,無法取消父項目標記";
|
||||
$lang->project->parentBeginEnd = "父項目起止時間:%s ~ %s";
|
||||
$lang->project->childLongTime = "子項目中有長期項目,父項目也應該是長期項目";
|
||||
$lang->project->readjustTime = '重新調整項目起止時間';
|
||||
$lang->project->notAllowRemoveProducts = '該產品中的需求已與項目進行了關聯,請取消關聯後再操作。';
|
||||
|
||||
$lang->program->PRJProgramTitle['0'] = '不顯示';
|
||||
$lang->program->PRJProgramTitle['base'] = '只顯示一級項目集';
|
||||
$lang->program->PRJProgramTitle['end'] = '只顯示最後一級項目集';
|
||||
$lang->project->PRJProgramTitle['0'] = '不顯示';
|
||||
$lang->project->PRJProgramTitle['base'] = '只顯示一級項目集';
|
||||
$lang->project->PRJProgramTitle['end'] = '只顯示最後一級項目集';
|
||||
|
||||
$lang->program->PRJAccessDenied = '您無權訪問該項目!';
|
||||
$lang->program->PRJChooseProgramType = '選擇項目管理方式';
|
||||
$lang->program->scrumTitle = '敏捷開發全流程項目管理';
|
||||
$lang->program->PRJCannotCreateChild = '該項目已經有實際的內容,無法直接添加子項目。您可以為當前項目創建一個父項目,然後在新的父項目下面添加子項目。';
|
||||
$lang->program->PRJHasChildren = '該項目有子項目存在,不能刪除。';
|
||||
$lang->program->PRJConfirmDelete = "您確定刪除項目[%s]嗎?";
|
||||
$lang->program->PRJCannotChangeToCat = "該項目已經有實際的內容,無法修改為父項目";
|
||||
$lang->program->PRJCannotCancelCat = "該項目下已經有子項目,無法取消父項目標記";
|
||||
$lang->program->PRJParentBeginEnd = "父項目起止時間:%s ~ %s";
|
||||
$lang->program->PRJParentBudget = "父項目預算:%s";
|
||||
$lang->program->PRJBeginLetterParent = "父項目的開始日期:%s,開始日期不能小於父項目的開始日期";
|
||||
$lang->program->PRJEndGreaterParent = "父項目的完成日期:%s,完成日期不能大於父項目的完成日期";
|
||||
$lang->program->PRJBeginGreateChild = "項目集的最小開始日期:%s,項目的開始日期不能小於項目集的最小開始日期";
|
||||
$lang->program->PRJEndLetterChild = "項目集的最大完成日期:%s,項目的完成日期不能大於項目集的最大完成日期";
|
||||
$lang->program->PRJChildLongTime = "子項目中有長期項目,父項目也應該是長期項目";
|
||||
$lang->project->PRJAccessDenied = '您無權訪問該項目!';
|
||||
$lang->project->PRJChooseProgramType = '選擇項目管理方式';
|
||||
$lang->project->scrumTitle = '敏捷開發全流程項目管理';
|
||||
$lang->project->PRJCannotCreateChild = '該項目已經有實際的內容,無法直接添加子項目。您可以為當前項目創建一個父項目,然後在新的父項目下面添加子項目。';
|
||||
$lang->project->PRJHasChildren = '該項目有子項目存在,不能刪除。';
|
||||
$lang->project->PRJConfirmDelete = "您確定刪除項目[%s]嗎?";
|
||||
$lang->project->PRJCannotChangeToCat = "該項目已經有實際的內容,無法修改為父項目";
|
||||
$lang->project->PRJCannotCancelCat = "該項目下已經有子項目,無法取消父項目標記";
|
||||
$lang->project->PRJParentBeginEnd = "父項目起止時間:%s ~ %s";
|
||||
$lang->project->PRJParentBudget = "父項目預算:%s";
|
||||
$lang->project->PRJBeginLetterParent = "父項目的開始日期:%s,開始日期不能小於父項目的開始日期";
|
||||
$lang->project->PRJEndGreaterParent = "父項目的完成日期:%s,完成日期不能大於父項目的完成日期";
|
||||
$lang->project->PRJBeginGreateChild = "項目集的最小開始日期:%s,項目的開始日期不能小於項目集的最小開始日期";
|
||||
$lang->project->PRJEndLetterChild = "項目集的最大完成日期:%s,項目的完成日期不能大於項目集的最大完成日期";
|
||||
$lang->project->PRJChildLongTime = "子項目中有長期項目,父項目也應該是長期項目";
|
||||
|
||||
/* Actions. */
|
||||
$lang->program->PGMCommon = '項目集';
|
||||
$lang->program->PGMIndex = '項目集主頁';
|
||||
$lang->program->PGMCreate = '添加項目集';
|
||||
$lang->program->PGMCreateGuide = '選擇項目模板';
|
||||
$lang->program->PGMEdit = '編輯項目集';
|
||||
$lang->program->PGMBrowse = '項目集列表';
|
||||
$lang->program->PGMProduct = '產品列表';
|
||||
$lang->program->PGMProject = '項目集項目列表';
|
||||
$lang->program->PGMAll = '所有項目集';
|
||||
$lang->program->PGMStart = '啟動項目集';
|
||||
$lang->program->PGMFinish = '完成項目集';
|
||||
$lang->program->PGMSuspend = '掛起項目集';
|
||||
$lang->program->PGMDelete = '刪除項目集';
|
||||
$lang->program->PGMClose = '關閉項目集';
|
||||
$lang->program->PGMActivate = '激活項目集';
|
||||
$lang->program->PGMExport = '導出';
|
||||
$lang->program->PGMStakeholder = '干係人列表';
|
||||
$lang->program->createStakeholder = '添加干係人';
|
||||
$lang->program->unlinkStakeholder = '移除干係人';
|
||||
$lang->program->batchUnlinkStakeholders = '批量移除干係人';
|
||||
$lang->program->unlink = '移除';
|
||||
$lang->program->morePGM = '更多項目集';
|
||||
$lang->program->confirmBatchUnlink = "您確定要批量移除這些干係人嗎?";
|
||||
$lang->program->stakeholderType = '干係人類型';
|
||||
$lang->program->isStakeholderKey = '關鍵干係人';
|
||||
$lang->program->importStakeholder = '從父項目集導入';
|
||||
$lang->program->PGMManageMembers = '項目集團隊';
|
||||
$lang->program->PGMParentBudget = '所屬項目集剩餘預算:';
|
||||
$lang->program->beyondParentBudget = '已超出所屬項目集的剩餘預算';
|
||||
$lang->program->PGMBeginLetterParent = "父項目集的開始日期:%s,開始日期不能小於父項目集的開始日期";
|
||||
$lang->program->PGMEndGreaterParent = "父項目集的完成日期:%s,完成日期不能大於父項目集的完成日期";
|
||||
$lang->program->PGMBeginGreateChild = "子項目集的最小開始日期:%s,父項目集的開始日期不能大於子項目集的最小開始日期";
|
||||
$lang->program->PGMEndLetterChild = "子項目的最大完成日期:%s,父項目的完成日期不能小於子項目的最大完成日期";
|
||||
$lang->program->PGMCloseErrorMessage = '存在子項目集或項目為未關閉狀態';
|
||||
$lang->project->PGMCommon = '項目集';
|
||||
$lang->project->PGMIndex = '項目集主頁';
|
||||
$lang->project->PGMCreate = '添加項目集';
|
||||
$lang->project->PGMCreateGuide = '選擇項目模板';
|
||||
$lang->project->PGMEdit = '編輯項目集';
|
||||
$lang->project->PGMBrowse = '項目集列表';
|
||||
$lang->project->PGMProduct = '產品列表';
|
||||
$lang->project->PGMProject = '項目集項目列表';
|
||||
$lang->project->PGMAll = '所有項目集';
|
||||
$lang->project->PGMStart = '啟動項目集';
|
||||
$lang->project->PGMFinish = '完成項目集';
|
||||
$lang->project->PGMSuspend = '掛起項目集';
|
||||
$lang->project->PGMDelete = '刪除項目集';
|
||||
$lang->project->PGMClose = '關閉項目集';
|
||||
$lang->project->PGMActivate = '激活項目集';
|
||||
$lang->project->PGMExport = '導出';
|
||||
$lang->project->PGMStakeholder = '干係人列表';
|
||||
$lang->project->createStakeholder = '添加干係人';
|
||||
$lang->project->unlinkStakeholder = '移除干係人';
|
||||
$lang->project->batchUnlinkStakeholders = '批量移除干係人';
|
||||
$lang->project->unlink = '移除';
|
||||
$lang->project->morePGM = '更多項目集';
|
||||
$lang->project->confirmBatchUnlink = "您確定要批量移除這些干係人嗎?";
|
||||
$lang->project->stakeholderType = '干係人類型';
|
||||
$lang->project->isStakeholderKey = '關鍵干係人';
|
||||
$lang->project->importStakeholder = '從父項目集導入';
|
||||
$lang->project->PGMManageMembers = '項目集團隊';
|
||||
$lang->project->PGMParentBudget = '所屬項目集剩餘預算:';
|
||||
$lang->project->beyondParentBudget = '已超出所屬項目集的剩餘預算';
|
||||
$lang->project->PGMBeginLetterParent = "父項目集的開始日期:%s,開始日期不能小於父項目集的開始日期";
|
||||
$lang->project->PGMEndGreaterParent = "父項目集的完成日期:%s,完成日期不能大於父項目集的完成日期";
|
||||
$lang->project->PGMBeginGreateChild = "子項目集的最小開始日期:%s,父項目集的開始日期不能大於子項目集的最小開始日期";
|
||||
$lang->project->PGMEndLetterChild = "子項目的最大完成日期:%s,父項目的完成日期不能小於子項目的最大完成日期";
|
||||
$lang->project->PGMCloseErrorMessage = '存在子項目集或項目為未關閉狀態';
|
||||
|
||||
$lang->program->stakeholderTypeList['inside'] = '內部';
|
||||
$lang->program->stakeholderTypeList['outside'] = '外部';
|
||||
$lang->project->stakeholderTypeList['inside'] = '內部';
|
||||
$lang->project->stakeholderTypeList['outside'] = '外部';
|
||||
|
||||
/* Fields. */
|
||||
$lang->program->PGMName = '項目集名稱';
|
||||
$lang->program->PGMTemplate = '項目集模板';
|
||||
$lang->program->PGMCategory = '項目集類型';
|
||||
$lang->program->PGMDesc = '項目集描述';
|
||||
$lang->program->PGMCopy = '複製項目集';
|
||||
$lang->program->PGMStatus = '狀態';
|
||||
$lang->program->PGMPM = '負責人';
|
||||
$lang->program->PGMBudget = '預算';
|
||||
$lang->program->PGMProgress = '項目進度';
|
||||
$lang->program->PGMChildren = '子項目集';
|
||||
$lang->program->PGMParent = '父項目集';
|
||||
$lang->program->PGMAllInput = '項目集總投入';
|
||||
$lang->program->PGMTeamCount = '項目整合員';
|
||||
$lang->program->PGMLongTime = '長期項目';
|
||||
$lang->project->PGMName = '項目集名稱';
|
||||
$lang->project->PGMTemplate = '項目集模板';
|
||||
$lang->project->PGMCategory = '項目集類型';
|
||||
$lang->project->PGMDesc = '項目集描述';
|
||||
$lang->project->PGMCopy = '複製項目集';
|
||||
$lang->project->PGMStatus = '狀態';
|
||||
$lang->project->PGMPM = '負責人';
|
||||
$lang->project->PGMBudget = '預算';
|
||||
$lang->project->PGMProgress = '項目進度';
|
||||
$lang->project->PGMChildren = '子項目集';
|
||||
$lang->project->PGMParent = '父項目集';
|
||||
$lang->project->PGMAllInput = '項目集總投入';
|
||||
$lang->project->PGMTeamCount = '項目整合員';
|
||||
$lang->project->PGMLongTime = '長期項目';
|
||||
|
||||
$lang->program->noPGM = '暫時沒有項目集';
|
||||
$lang->program->PGMShowClosed = '顯示已關閉';
|
||||
$lang->program->PGMTips = '選擇了父項目集,則可關聯該父項目集下的產品。如果項目未選擇任何項目集,則系統會預設創建一個和該項目同名的產品並關聯該項目。';
|
||||
$lang->project->noPGM = '暫時沒有項目集';
|
||||
$lang->project->PGMShowClosed = '顯示已關閉';
|
||||
$lang->project->PGMTips = '選擇了父項目集,則可關聯該父項目集下的產品。如果項目未選擇任何項目集,則系統會預設創建一個和該項目同名的產品並關聯該項目。';
|
||||
|
||||
$lang->program->PGMAclList['private'] = "私有(項目集負責人和干係人可訪問,干係人可後續維護)";
|
||||
$lang->program->PGMAclList['open'] = "公開(有項目集視圖權限,即可訪問)";
|
||||
$lang->project->PGMAclList['private'] = "私有(項目集負責人和干係人可訪問,干係人可後續維護)";
|
||||
$lang->project->PGMAclList['open'] = "公開(有項目集視圖權限,即可訪問)";
|
||||
|
||||
$lang->program->subPGMAclList['private'] = "私有(本項目集負責人和干係人可訪問,干係人可後續維護)";
|
||||
$lang->program->subPGMAclList['open'] = "全部公開(有項目集視圖權限,即可訪問)";
|
||||
$lang->program->subPGMAclList['program'] = "項目集內公開 (所有上級項目集負責人和干係人、本項目集負責人和干係人可訪問)";
|
||||
$lang->project->subPGMAclList['private'] = "私有(本項目集負責人和干係人可訪問,干係人可後續維護)";
|
||||
$lang->project->subPGMAclList['open'] = "全部公開(有項目集視圖權限,即可訪問)";
|
||||
$lang->project->subPGMAclList['project'] = "項目集內公開 (所有上級項目集負責人和干係人、本項目集負責人和干係人可訪問)";
|
||||
|
||||
$lang->program->PGMAuthList['extend'] = '繼承(取項目權限與組織權限的並集)';
|
||||
$lang->program->PGMAuthList['reset'] = '重新定義(只取項目權限)';
|
||||
$lang->project->PGMAuthList['extend'] = '繼承(取項目權限與組織權限的並集)';
|
||||
$lang->project->PGMAuthList['reset'] = '重新定義(只取項目權限)';
|
||||
|
||||
$lang->program->PGMFeatureBar['all'] = '所有';
|
||||
$lang->project->PGMFeatureBar['all'] = '所有';
|
||||
|
||||
+80
-761
File diff suppressed because it is too large
Load Diff
@@ -1,61 +1,61 @@
|
||||
<?php js::set('programID', $programID);?>
|
||||
<?php js::set('projectID', $projectID);?>
|
||||
<?php js::set('module', $module);?>
|
||||
<?php js::set('method', $method);?>
|
||||
<?php
|
||||
foreach($programs as $program) $programNames[] = $program->name;
|
||||
$programsPinYin = common::convert2Pinyin($programNames);
|
||||
foreach($projects as $project) $projectNames[] = $project->name;
|
||||
$projectsPinYin = common::convert2Pinyin($projectNames);
|
||||
?>
|
||||
<div class="table-row">
|
||||
<div class="table-col col-left">
|
||||
<div class='list-group'>
|
||||
<?php
|
||||
echo $this->program->getPGMTreeMenu();
|
||||
echo $this->project->getPGMTreeMenu();
|
||||
?>
|
||||
</div>
|
||||
<div class="col-footer">
|
||||
<div class='pull-right'>
|
||||
<?php echo html::checkbox('showClosed', array('1' => $lang->program->PGMShowClosed), '', $this->cookie->showClosed ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('showClosed', array('1' => $lang->project->PGMShowClosed), '', $this->cookie->showClosed ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
.tree li.has-list.open:before {border-left: none;}
|
||||
#programTree li {padding: 0 0 0 8px;}
|
||||
#programTree li.has-list {padding-left: 20px;}
|
||||
#programTree li > a {display: block; padding: 5px 0; border-radius: 2px; padding-left: 6px; height: 30px;}
|
||||
#programTree li > a > span {display: inline-block;}
|
||||
#programTree li > a > span + span {margin-left: 8px;}
|
||||
#programTree li.selected > a {background-color: #E8F3FC;}
|
||||
#programTree li.selected > a > span.title {color: #006AF1;}
|
||||
#programTree .label-id {border-color: #cbd0db; color: #7d8599}
|
||||
#programTree .label.label-type {background: #fff; border: 1px solid #7d8599; color:#7d8599}
|
||||
#projectTree li {padding: 0 0 0 8px;}
|
||||
#projectTree li.has-list {padding-left: 20px;}
|
||||
#projectTree li > a {display: block; padding: 5px 0; border-radius: 2px; padding-left: 6px; height: 30px;}
|
||||
#projectTree li > a > span {display: inline-block;}
|
||||
#projectTree li > a > span + span {margin-left: 8px;}
|
||||
#projectTree li.selected > a {background-color: #E8F3FC;}
|
||||
#projectTree li.selected > a > span.title {color: #006AF1;}
|
||||
#projectTree .label-id {border-color: #cbd0db; color: #7d8599}
|
||||
#projectTree .label.label-type {background: #fff; border: 1px solid #7d8599; color:#7d8599}
|
||||
|
||||
#programTree li > a > span.title {color: #3C4353; white-space: nowrap; max-width: 60%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle;}
|
||||
#programTree li > a > span.user {color: #838a9d;}
|
||||
#programTree li > a > span.user > .icon-person {font-size: 14px; position: relative; top: -1px; color: #a6aab8}
|
||||
#projectTree li > a > span.title {color: #3C4353; white-space: nowrap; max-width: 60%; overflow: hidden; text-overflow: ellipsis; vertical-align: middle;}
|
||||
#projectTree li > a > span.user {color: #838a9d;}
|
||||
#projectTree li > a > span.user > .icon-person {font-size: 14px; position: relative; top: -1px; color: #a6aab8}
|
||||
|
||||
#programTree li > .list-toggle {transform: rotate(0deg); width: 16px; height: 16px; border: 4px solid #a6aab8; border-radius: 2px; top: 7px;}
|
||||
#programTree li > .list-toggle:before {content: ' '; display: block; position: absolute; border: 1px solid #a6aab8; top: 2px; left: -3px; right: -3px; bottom: 2px; min-width: 0; transition: all .2s;}
|
||||
#programTree li > .list-toggle:hover:before,
|
||||
#programTree li > .list-toggle:hover {border-color: #006AF1;}
|
||||
#programTree li.open > .list-toggle {width: 12px; height: 12px; top: 9px; background-color: #a6aab8; border-width: 3px; left: 3px;}
|
||||
#programTree li.open > .list-toggle:before {border: none; height: 2px; width: 6px; left: 0; top: 2px; background: #fff;}
|
||||
#programTree li.open > .list-toggle:hover {background: #006AF1;}
|
||||
#projectTree li > .list-toggle {transform: rotate(0deg); width: 16px; height: 16px; border: 4px solid #a6aab8; border-radius: 2px; top: 7px;}
|
||||
#projectTree li > .list-toggle:before {content: ' '; display: block; position: absolute; border: 1px solid #a6aab8; top: 2px; left: -3px; right: -3px; bottom: 2px; min-width: 0; transition: all .2s;}
|
||||
#projectTree li > .list-toggle:hover:before,
|
||||
#projectTree li > .list-toggle:hover {border-color: #006AF1;}
|
||||
#projectTree li.open > .list-toggle {width: 12px; height: 12px; top: 9px; background-color: #a6aab8; border-width: 3px; left: 3px;}
|
||||
#projectTree li.open > .list-toggle:before {border: none; height: 2px; width: 6px; left: 0; top: 2px; background: #fff;}
|
||||
#projectTree li.open > .list-toggle:hover {background: #006AF1;}
|
||||
|
||||
#programTree ul > li:after {display: block; position: absolute; content: ' '; border-top: 1px dashed #cbd0db; top: 14px; left: -12px; z-index: 1; width: 10px;}
|
||||
#programTree ul > li:before,
|
||||
#programTree ul > li.has-list:before {background: none; content: ' '; display: block; position: absolute; width: auto; height: auto; border: none; border-left: 1px dashed #cbd0db; top: -13px; bottom: 12px; left: -12px;}
|
||||
#programTree ul > li:last-child:before {bottom: auto; height: 29px;}
|
||||
#programTree ul > li:first-child:before {top: -9px;}
|
||||
#programTree ul > li.has-list:first-child:before {top: -13px;}
|
||||
#programTree ul > li.tree-single-item:before {height: 23px;}
|
||||
#programTree ul > li.has-list:after {width: 14px;}
|
||||
#programTree ul > li.item-meas a.selected{color: #0c64eb;}
|
||||
#projectTree ul > li:after {display: block; position: absolute; content: ' '; border-top: 1px dashed #cbd0db; top: 14px; left: -12px; z-index: 1; width: 10px;}
|
||||
#projectTree ul > li:before,
|
||||
#projectTree ul > li.has-list:before {background: none; content: ' '; display: block; position: absolute; width: auto; height: auto; border: none; border-left: 1px dashed #cbd0db; top: -13px; bottom: 12px; left: -12px;}
|
||||
#projectTree ul > li:last-child:before {bottom: auto; height: 29px;}
|
||||
#projectTree ul > li:first-child:before {top: -9px;}
|
||||
#projectTree ul > li.has-list:first-child:before {top: -13px;}
|
||||
#projectTree ul > li.tree-single-item:before {height: 23px;}
|
||||
#projectTree ul > li.has-list:after {width: 14px;}
|
||||
#projectTree ul > li.item-meas a.selected{color: #0c64eb;}
|
||||
#showClosed1 + label{color: #3c4353}
|
||||
</style>
|
||||
<script>
|
||||
$('#programTree').tree();
|
||||
$('#projectTree').tree();
|
||||
$(function()
|
||||
{
|
||||
$('input[name^="showClosed"]').click(function()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php js::set('programID', $projectID);?>
|
||||
<?php js::set('projectID', $projectID);?>
|
||||
<?php js::set('module', $module);?>
|
||||
<?php js::set('method', $method);?>
|
||||
<div class="table-row">
|
||||
@@ -7,7 +7,7 @@
|
||||
<?php echo $normalProjectsHtml;?>
|
||||
</div>
|
||||
<div class="col-footer">
|
||||
<?php echo html::a(helper::createLink('program', 'PRJBrowse', 'programID=0&status=all'), '<i class="icon icon-cards-view muted"></i> ' . $lang->project->all, '', 'class="not-list-item"'); ?>
|
||||
<?php echo html::a(helper::createLink('project', 'PRJBrowse', 'projectID=0&status=all'), '<i class="icon icon-cards-view muted"></i> ' . $lang->project->all, '', 'class="not-list-item"'); ?>
|
||||
<a class='pull-right toggle-right-col not-list-item'><?php echo $lang->project->doneProjects;?><i class='icon icon-angle-right'></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,29 +5,29 @@
|
||||
#guideDialog h3 {margin: 5px 0; font-size: 20px;}
|
||||
#guideDialog .modal-footer {border-top: none; text-align: center; padding-top: 10px; padding-bottom: 40px;}
|
||||
#guideDialog .modal-footer .btn + .btn {margin-left: 20px}
|
||||
#guideDialog .program-type {padding: 0 40px}
|
||||
#guideDialog .program-type-img {width: 280px; border: 1px solid #CBD0DB; border-radius: 2px; margin-bottom: 10px; cursor: pointer; margin-top: 1px}
|
||||
#guideDialog .program-type-img:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,0,.25);}
|
||||
#guideDialog .program-type.active img {border-color: #006AF1; border-width: 2px; margin-top: 0}
|
||||
#guideDialog .project-type {padding: 0 40px}
|
||||
#guideDialog .project-type-img {width: 280px; border: 1px solid #CBD0DB; border-radius: 2px; margin-bottom: 10px; cursor: pointer; margin-top: 1px}
|
||||
#guideDialog .project-type-img:hover {border-color: #006AF1; box-shadow: 0 0 10px 0 rgba(0,0,0,.25);}
|
||||
#guideDialog .project-type.active img {border-color: #006AF1; border-width: 2px; margin-top: 0}
|
||||
</style>
|
||||
<?php $group = $from == 'PGM' ? "data-group='program'" : "data-group='project'";?>
|
||||
<?php $group = $from == 'PGM' ? "data-group='project'" : "data-group='project'";?>
|
||||
<div class='modal-content'>
|
||||
<div class='modal-body'>
|
||||
<button class="close" data-dismiss="modal">x</button>
|
||||
<h2 class='text-center'><?php echo $lang->program->chooseProgramType; ?></h2>
|
||||
<h2 class='text-center'><?php echo $lang->project->chooseProgramType; ?></h2>
|
||||
<div class='row'>
|
||||
<div class='col-xs-6'>
|
||||
<div class='program-type text-center'>
|
||||
<?php echo html::a($this->createLink("program", "PRJCreate", "model=scrum&programID=$programID&from=$from"), "<img class='program-type-img' data-type='scrum' src='{$config->webRoot}theme/default/images/main/scrum.png'>", '', $group)?>
|
||||
<h3><?php echo $lang->program->scrum; ?></h3>
|
||||
<p><?php echo $lang->program->scrumTitle; ?></p>
|
||||
<div class='project-type text-center'>
|
||||
<?php echo html::a($this->createLink("project", "PRJCreate", "model=scrum&projectID=$projectID&from=$from"), "<img class='project-type-img' data-type='scrum' src='{$config->webRoot}theme/default/images/main/scrum.png'>", '', $group)?>
|
||||
<h3><?php echo $lang->project->scrum; ?></h3>
|
||||
<p><?php echo $lang->project->scrumTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-xs-6'>
|
||||
<div class='program-type text-center'>
|
||||
<?php echo html::a($this->createLink("program", "PRJCreate", "model=waterfall&programID=$programID&from=$from"), "<img class='program-type-img' data-type='waterfall' src='{$config->webRoot}theme/default/images/main/waterfall.png'>", '', $group)?>
|
||||
<h3><?php echo $lang->program->waterfall; ?></h3>
|
||||
<p><?php echo $lang->program->waterfallTitle; ?></p>
|
||||
<div class='project-type text-center'>
|
||||
<?php echo html::a($this->createLink("project", "PRJCreate", "model=waterfall&projectID=$projectID&from=$from"), "<img class='project-type-img' data-type='waterfall' src='{$config->webRoot}theme/default/images/main/waterfall.png'>", '', $group)?>
|
||||
<h3><?php echo $lang->project->waterfall; ?></h3>
|
||||
<p><?php echo $lang->project->waterfallTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* The create stakeholder view of program module of ZenTaoPMS.
|
||||
* The create stakeholder view of project 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)
|
||||
@@ -11,19 +11,19 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('programID', $programID);?>
|
||||
<?php $path = str_replace(",{$programID},", ',', "{$program->path}");?>
|
||||
<?php js::set('projectID', $projectID);?>
|
||||
<?php $path = str_replace(",{$projectID},", ',', "{$project->path}");?>
|
||||
<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('program', 'craetestakeholder', "programID={$programID}"), "<span class='text'> {$lang->program->createStakeholder}</span>");?>
|
||||
<?php echo html::a($this->createLink('project', 'craetestakeholder', "projectID={$projectID}"), "<span class='text'> {$lang->project->createStakeholder}</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>
|
||||
<?php if($program->parent):?>
|
||||
<?php echo html::a($this->createLink('program', 'createStakeholder', "programID=$programID&dept=&parent=$path"), $lang->program->importStakeholder, '', 'class="btn btn-primary"');?>
|
||||
<?php if($project->parent):?>
|
||||
<?php echo html::a($this->createLink('project', 'createStakeholder', "projectID=$projectID&dept=&parent=$path"), $lang->project->importStakeholder, '', 'class="btn btn-primary"');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php echo $this->fetch('block', 'dashboard', "module=program&type={$project->model}");?>
|
||||
<?php echo $this->fetch('block', 'dashboard', "module=project&type={$project->model}");?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The suspend file of program module of ZenTaoPMS.
|
||||
* The suspend file of project 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<wwccss@gmail.com>
|
||||
* @package program
|
||||
* @package project
|
||||
* @version $Id: suspend.html.php 935 2013-01-16 07:49:24Z wwccss@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -17,8 +17,8 @@
|
||||
<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('program', 'view', 'program=' . $program->id), $program->name, '_blank');?>
|
||||
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
|
||||
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
|
||||
<?php if(!isonlybody()):?>
|
||||
<small><?php echo $lang->arrow . $lang->project->activate;?></small>
|
||||
<?php endif;?>
|
||||
@@ -27,9 +27,9 @@
|
||||
<form class='load-indicator main-form' method='post' target='hiddenwin'>
|
||||
<table class='table table-form'>
|
||||
<tr style='height:50px;'>
|
||||
<th class='w-70px'><?php echo $lang->program->dateRange;?></th>
|
||||
<th class='w-70px'><?php echo $lang->project->dateRange;?></th>
|
||||
<td class='muted' colspan='2'>
|
||||
<div id='sourceTimeBox'><?php echo $program->begin . ' ~ ' . $program->end;?></div>
|
||||
<div id='sourceTimeBox'><?php echo $project->begin . ' ~ ' . $project->end;?></div>
|
||||
<div id='readjustTimeBox' class='hide'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', $newBegin, "class='form-control form-date'")?>
|
||||
@@ -41,16 +41,16 @@
|
||||
<td colspan='3'>
|
||||
<div class='clearfix row'>
|
||||
<div class='col-md-6 pull-left'>
|
||||
<div class="checkbox-primary"><input name="readjustTime" value="1" id="readjustTime" type="checkbox"><label for="readjustTime" class="no-margin"><?php echo $lang->program->readjustTime;?></label></div>
|
||||
<div class="checkbox-primary"><input name="readjustTime" value="1" id="readjustTime" type="checkbox"><label for="readjustTime" class="no-margin"><?php echo $lang->project->readjustTime;?></label></div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='hide'>
|
||||
<th><?php echo $lang->program->status;?></th>
|
||||
<th><?php echo $lang->project->status;?></th>
|
||||
<td><?php echo html::hidden('status', 'doing');?></td>
|
||||
</tr>
|
||||
<?php $this->printExtendFields($program, 'table', 'columns=5');?>
|
||||
<?php $this->printExtendFields($project, 'table', 'columns=5');?>
|
||||
<tr>
|
||||
<th><?php echo $lang->comment;?></th>
|
||||
<td colspan='5'><?php echo html::textarea('comment', '', "rows='6' class='form-control kindeditor' hidefocus='true'");?></td>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* The html template file of PGMBrowse method of program module of ZenTaoPMS.
|
||||
* The html template file of PGMBrowse method of project 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)
|
||||
@@ -13,41 +13,41 @@
|
||||
<?php include '../../common/view/sortable.html.php';?>
|
||||
<?php js::set('status', $status);?>
|
||||
<?php js::set('orderBy', $orderBy);?>
|
||||
<?php if($programType == 'bygrid'):?>
|
||||
<?php if($projectType == 'bygrid'):?>
|
||||
<style> #mainMenu{padding-left: 10px; padding-right: 10px;} </style>
|
||||
<?php endif;?>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class="btn-toolBar pull-left">
|
||||
<?php foreach($lang->program->PGMFeatureBar as $key => $label):?>
|
||||
<?php foreach($lang->project->PGMFeatureBar as $key => $label):?>
|
||||
<?php $active = $status == $key ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
<?php echo html::a(inlink('pgmbrowse', "status=$key&orderBy=$orderBy"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('showClosed', array('1' => $lang->program->PGMShowClosed), '', $this->cookie->showClosed ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('showClosed', array('1' => $lang->project->PGMShowClosed), '', $this->cookie->showClosed ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class='pull-right'>
|
||||
<?php if(isset($lang->pageActions)) echo $lang->pageActions;?>
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
<?php common::printLink('program', 'createGuide', "programID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php common::printLink('project', 'createGuide', "projectID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php elseif($this->config->systemMode == 'new'):?>
|
||||
<?php common::printLink('program', 'prjcreate', "mode=scrum&programID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'prjcreate', "mode=scrum&projectID=0&from=PGM", '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php else:?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-row'>
|
||||
<?php if(empty($programs)):?>
|
||||
<?php if(empty($projects)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $lang->program->noPGM;?></span>
|
||||
<?php common::printLink('program', 'pgmcreate', '', "<i class='icon icon-plus'></i> " . $lang->program->PGMCreate, '', "class='btn btn-info'");?>
|
||||
<span class="text-muted"><?php echo $lang->project->noPGM;?></span>
|
||||
<?php common::printLink('project', 'pgmcreate', '', "<i class='icon icon-plus'></i> " . $lang->project->PGMCreate, '', "class='btn btn-info'");?>
|
||||
</p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class='main-col'>
|
||||
<?php
|
||||
if($programType == 'bygrid')
|
||||
if($projectType == 'bygrid')
|
||||
{
|
||||
include 'pgmbrowsebygrid.html.php';
|
||||
}
|
||||
|
||||
@@ -1,53 +1,53 @@
|
||||
<div class='row cell' id='cards'>
|
||||
<?php foreach ($programs as $programID => $program):?>
|
||||
<div class='col' data-id='<?php echo $programID?>'>
|
||||
<div class='panel' data-url='<?php echo $this->createLink('program', 'index', "programID=$program->id", '', '', $program->id);?>'>
|
||||
<?php foreach ($projects as $projectID => $project):?>
|
||||
<div class='col' data-id='<?php echo $projectID?>'>
|
||||
<div class='panel' data-url='<?php echo $this->createLink('project', 'index', "projectID=$project->id", '', '', $project->id);?>'>
|
||||
<div class='panel-heading'>
|
||||
<strong class='program-name' title='<?php echo $program->name;?>'><?php echo $program->name;?></strong>
|
||||
<?php if($program->model === 'waterfall'): ?>
|
||||
<span class='program-type-label label label-warning label-outline'><?php echo $lang->program->waterfall; ?></span>
|
||||
<strong class='project-name' title='<?php echo $project->name;?>'><?php echo $project->name;?></strong>
|
||||
<?php if($project->model === 'waterfall'): ?>
|
||||
<span class='project-type-label label label-warning label-outline'><?php echo $lang->project->waterfall; ?></span>
|
||||
<?php else: ?>
|
||||
<span class='program-type-label label label-info label-outline'><?php echo $lang->program->scrum; ?></span>
|
||||
<span class='project-type-label label label-info label-outline'><?php echo $lang->project->scrum; ?></span>
|
||||
<?php endif; ?>
|
||||
<nav class='panel-actions nav nav-default'>
|
||||
<li class='dropdown'>
|
||||
<a href='javascript:;' data-toggle='dropdown' class='panel-action'><i class='icon icon-ellipsis-v'></i></a>
|
||||
<ul class='dropdown-menu pull-right'>
|
||||
<li><?php common::printIcon('program', 'group', "programID=$program->id", $program, 'button', 'group');?></li>
|
||||
<li><?php common::printIcon('program', 'manageMembers', "programID=$program->id", $program, 'button', 'persons');?></li>
|
||||
<li><?php common::printicon('program', 'activate', "programid=$program->id", $program, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php if(common::hasPriv('program', 'edit')) echo html::a($this->createLink("program", "edit", "programID=$program->id"), "<i class='icon-edit'></i> " . $lang->edit, '', "");?></li>
|
||||
<li><?php common::printIcon('program', 'start', "programID=$program->id", $program, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php common::printIcon('program', 'suspend', "programID=$program->id", $program, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php common::printIcon('program', 'close', "programID=$program->id", $program, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php if(common::hasPriv('program', 'delete')) echo html::a($this->createLink("program", "delete", "programID=$program->id"), "<i class='icon-trash'></i> " . $lang->delete, 'hiddenwin', "");?></li>
|
||||
<li><?php common::printIcon('project', 'group', "projectID=$project->id", $project, 'button', 'group');?></li>
|
||||
<li><?php common::printIcon('project', 'manageMembers', "projectID=$project->id", $project, 'button', 'persons');?></li>
|
||||
<li><?php common::printicon('project', 'activate', "projectid=$project->id", $project, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php if(common::hasPriv('project', 'edit')) echo html::a($this->createLink("project", "edit", "projectID=$project->id"), "<i class='icon-edit'></i> " . $lang->edit, '', "");?></li>
|
||||
<li><?php common::printIcon('project', 'start', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php common::printIcon('project', 'suspend', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php common::printIcon('project', 'close', "projectID=$project->id", $project, 'button', '', '', 'iframe', true);?></li>
|
||||
<li><?php if(common::hasPriv('project', 'delete')) echo html::a($this->createLink("project", "delete", "projectID=$project->id"), "<i class='icon-trash'></i> " . $lang->delete, 'hiddenwin', "");?></li>
|
||||
</ul>
|
||||
</li>
|
||||
</nav>
|
||||
</div>
|
||||
<div class='panel-body'>
|
||||
<div class='program-infos'>
|
||||
<span><i class='icon icon-group'></i> <?php printf($lang->program->membersUnit, $program->teamCount); ?></span>
|
||||
<span><i class='icon icon-clock'></i> <?php printf($lang->program->hoursUnit, $program->estimate); ?></span>
|
||||
<span><i class='icon icon-cost'></i> <?php echo $program->budget . '' . zget($lang->program->unitList, $program->budgetUnit);?></span>
|
||||
<div class='project-infos'>
|
||||
<span><i class='icon icon-group'></i> <?php printf($lang->project->membersUnit, $project->teamCount); ?></span>
|
||||
<span><i class='icon icon-clock'></i> <?php printf($lang->project->hoursUnit, $project->estimate); ?></span>
|
||||
<span><i class='icon icon-cost'></i> <?php echo $project->budget . '' . zget($lang->project->unitList, $project->budgetUnit);?></span>
|
||||
</div>
|
||||
<?php if($program->model === 'waterfall'): ?>
|
||||
<div class='program-detail program-stages'>
|
||||
<p class='text-muted'><?php echo $lang->program->ongoingStage; ?></p>
|
||||
<?php if($project->model === 'waterfall'): ?>
|
||||
<div class='project-detail project-stages'>
|
||||
<p class='text-muted'><?php echo $lang->project->ongoingStage; ?></p>
|
||||
<?php
|
||||
$programProjects = array();
|
||||
foreach($program->projects as $project)
|
||||
$projectProjects = array();
|
||||
foreach($project->projects as $project)
|
||||
{
|
||||
if(!$project->parent) $programProjects[] = $project;
|
||||
if(!$project->parent) $projectProjects[] = $project;
|
||||
}
|
||||
?>
|
||||
<?php if(empty($programProjects)): ?>
|
||||
<div class='label label-outline'><?php echo zget($lang->project->statusList, $program->status);?></div>
|
||||
<?php if(empty($projectProjects)): ?>
|
||||
<div class='label label-outline'><?php echo zget($lang->project->statusList, $project->status);?></div>
|
||||
<?php else: ?>
|
||||
<div class='program-stages-container scrollbar-hover'>
|
||||
<div class='program-stages-row'>
|
||||
<?php foreach ($programProjects as $project): ?>
|
||||
<div class='program-stage-item is-<?php echo $project->status;?><?php if($project->status !== 'wait') echo ' is-going'; ?>'>
|
||||
<div class='project-stages-container scrollbar-hover'>
|
||||
<div class='project-stages-row'>
|
||||
<?php foreach ($projectProjects as $project): ?>
|
||||
<div class='project-stage-item is-<?php echo $project->status;?><?php if($project->status !== 'wait') echo ' is-going'; ?>'>
|
||||
<div><?php echo $project->name; ?></div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
@@ -56,9 +56,9 @@
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<?php $project = $program->projects ? current($program->projects) : '';?>
|
||||
<div class='program-detail program-iteration'>
|
||||
<p class='text-muted'><?php echo $lang->program->lastIteration; ?></p>
|
||||
<?php $project = $project->projects ? current($project->projects) : '';?>
|
||||
<div class='project-detail project-iteration'>
|
||||
<p class='text-muted'><?php echo $lang->project->lastIteration; ?></p>
|
||||
<?php if($project):?>
|
||||
<div class='row'>
|
||||
<div class='col-xs-5'><?php echo $project->name; ?></div>
|
||||
@@ -95,27 +95,27 @@
|
||||
#cards .panel-actions .dropdown-menu > li > a {padding-left: 5px; text-align: left;}
|
||||
#cards .panel-actions .dropdown-menu > li > a > i {opacity: .5; display: inline-block; margin-right: 4px; width: 18px; text-align: center;}
|
||||
#cards .panel-actions .dropdown-menu > li > a:hover > i {opacity: 1;}
|
||||
#cards .program-type-label {padding: 1px 2px;}
|
||||
#cards .program-name {font-size: 16px; font-weight: normal; display: inline-block; max-width: 80%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle;}
|
||||
#cards .program-infos {font-size: 12px;}
|
||||
#cards .program-infos > span {display: inline-block; line-height: 12px;}
|
||||
#cards .program-infos > span > .icon {font-size: 12px; display: inline-block; position: relative; top: -1px}
|
||||
#cards .program-infos > span + span {margin-left: 15px;}
|
||||
#cards .program-detail {position: absolute; bottom: 16px; left: 16px; right: 16px; font-size: 12px;}
|
||||
#cards .program-detail > p {margin-bottom: 8px;}
|
||||
#cards .program-detail .progress {height: 4px;}
|
||||
#cards .program-detail .progress-text-left .progress-text {width: 50px; left: -50px;}
|
||||
#cards .project-type-label {padding: 1px 2px;}
|
||||
#cards .project-name {font-size: 16px; font-weight: normal; display: inline-block; max-width: 80%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle;}
|
||||
#cards .project-infos {font-size: 12px;}
|
||||
#cards .project-infos > span {display: inline-block; line-height: 12px;}
|
||||
#cards .project-infos > span > .icon {font-size: 12px; display: inline-block; position: relative; top: -1px}
|
||||
#cards .project-infos > span + span {margin-left: 15px;}
|
||||
#cards .project-detail {position: absolute; bottom: 16px; left: 16px; right: 16px; font-size: 12px;}
|
||||
#cards .project-detail > p {margin-bottom: 8px;}
|
||||
#cards .project-detail .progress {height: 4px;}
|
||||
#cards .project-detail .progress-text-left .progress-text {width: 50px; left: -50px;}
|
||||
#cards .pager {margin: 0; float: right;}
|
||||
#cards .pager .btn {border: none}
|
||||
#cards .program-stages-container {margin: 0 -16px -16px -16px; padding: 0 4px; height: 46px; overflow-x: auto; position: relative;}
|
||||
#cards .program-stages:after {content: ' '; width: 30px; display: block; right: -16px; top: 16px; bottom: -6px; z-index: 1; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); position: absolute;}
|
||||
#cards .program-stages-row {position: relative; height: 30px; z-index: 0;}
|
||||
#cards .program-stage-item {white-space: nowrap; position: absolute; top: 0; min-width: 48px; padding-top: 13px; color: #838A9D;}
|
||||
#cards .program-stage-item > div {white-space: nowrap; overflow: visible; text-align: center; text-overflow: ellipsis;}
|
||||
#cards .program-stage-item:before {content: ' '; display: block; width: 8px; height: 8px; border-radius: 50%; background: #D1D1D1; position: absolute; left: 50%; margin-left: -4px; top: 0; z-index: 1;}
|
||||
#cards .program-stage-item + .program-stage-item:after {content: ' '; display: block; left: -50%; right: 50%; height: 2px; background-color: #D1D1D1; top: 3px; position: absolute; z-index: 0;}
|
||||
#cards .program-stage-item.is-going {color: #333;}
|
||||
#cards .program-stage-item.is-going::before {background-color: #0C64EB;}
|
||||
#cards .project-stages-container {margin: 0 -16px -16px -16px; padding: 0 4px; height: 46px; overflow-x: auto; position: relative;}
|
||||
#cards .project-stages:after {content: ' '; width: 30px; display: block; right: -16px; top: 16px; bottom: -6px; z-index: 1; background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); position: absolute;}
|
||||
#cards .project-stages-row {position: relative; height: 30px; z-index: 0;}
|
||||
#cards .project-stage-item {white-space: nowrap; position: absolute; top: 0; min-width: 48px; padding-top: 13px; color: #838A9D;}
|
||||
#cards .project-stage-item > div {white-space: nowrap; overflow: visible; text-align: center; text-overflow: ellipsis;}
|
||||
#cards .project-stage-item:before {content: ' '; display: block; width: 8px; height: 8px; border-radius: 50%; background: #D1D1D1; position: absolute; left: 50%; margin-left: -4px; top: 0; z-index: 1;}
|
||||
#cards .project-stage-item + .project-stage-item:after {content: ' '; display: block; left: -50%; right: 50%; height: 2px; background-color: #D1D1D1; top: 3px; position: absolute; z-index: 0;}
|
||||
#cards .project-stage-item.is-going {color: #333;}
|
||||
#cards .project-stage-item.is-going::before {background-color: #0C64EB;}
|
||||
</style>
|
||||
<script>
|
||||
$(function()
|
||||
@@ -137,7 +137,7 @@ $(function()
|
||||
$(window).on('resize', resizeCards);
|
||||
|
||||
/* Auto resize stages */
|
||||
$cards.find('.program-stages-container').each(function()
|
||||
$cards.find('.project-stages-container').each(function()
|
||||
{
|
||||
var $container = $(this);
|
||||
var $row = $container.children();
|
||||
|
||||
@@ -1,110 +1,110 @@
|
||||
<?php $canOrder = (common::hasPriv('program', 'updateOrder') and strpos($orderBy, 'order') !== false)?>
|
||||
<form class='main-table' id='programForm' method='post' data-ride='table' data-nested='true' data-expand-nest-child='false' data-checkable='false'>
|
||||
<table class='table has-sort-head table-fixed table-nested' id='programList'>
|
||||
<?php $canOrder = (common::hasPriv('project', 'updateOrder') and strpos($orderBy, 'order') !== false)?>
|
||||
<form class='main-table' id='projectForm' method='post' data-ride='table' data-nested='true' data-expand-nest-child='false' data-checkable='false'>
|
||||
<table class='table has-sort-head table-fixed table-nested' id='projectList'>
|
||||
<?php $vars = "status=$status&orderBy=%s";?>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='table-nest-title'>
|
||||
<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;?>
|
||||
<?php echo $lang->project->PGMName;?>
|
||||
</th>
|
||||
<th class='w-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->program->PGMPM);?></th>
|
||||
<th class='text-right 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-100px'><?php common::printOrderLink('PM', $orderBy, $vars, $lang->project->PGMPM);?></th>
|
||||
<th class='text-right w-100px'><?php common::printOrderLink('budget', $orderBy, $vars, $lang->project->PGMBudget);?></th>
|
||||
<th class='w-90px'> <?php common::printOrderLink('status', $orderBy, $vars, $lang->project->PGMStatus);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('begin', $orderBy, $vars, $lang->project->begin);?></th>
|
||||
<th class='w-100px'><?php common::printOrderLink('end', $orderBy, $vars, $lang->project->end);?></th>
|
||||
<th class='text-center w-180px'><?php echo $lang->actions;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id='programTableList'>
|
||||
<tbody id='projectTableList'>
|
||||
<?php $originOrders = array(); ?>
|
||||
<?php foreach($programs as $program):?>
|
||||
<?php foreach($projects as $project):?>
|
||||
<?php
|
||||
$trClass = '';
|
||||
$trAttrs = "data-id='$program->id' data-order='$program->order' data-parent='$program->parent'";
|
||||
if($program->type == 'program')
|
||||
$trAttrs = "data-id='$project->id' data-order='$project->order' data-parent='$project->parent'";
|
||||
if($project->type == 'project')
|
||||
{
|
||||
$trAttrs .= " data-nested='true'";
|
||||
$trClass .= $program->parent == '0' ? ' is-top-level table-nest-child-hide' : ' table-nest-hide';
|
||||
$trClass .= $project->parent == '0' ? ' is-top-level table-nest-child-hide' : ' table-nest-hide';
|
||||
}
|
||||
|
||||
if($program->parent and isset($programs[$program->parent]))
|
||||
if($project->parent and isset($projects[$project->parent]))
|
||||
{
|
||||
if($program->type != 'program') $trClass .= ' is-nest-child';
|
||||
if(empty($program->path)) $program->path = $programs[$program->parent]->path . "$program->id,";
|
||||
if($project->type != 'project') $trClass .= ' is-nest-child';
|
||||
if(empty($project->path)) $project->path = $projects[$project->parent]->path . "$project->id,";
|
||||
$trClass .= ' table-nest-hide';
|
||||
$trAttrs .= " data-nest-parent='$program->parent' data-nest-path='$program->path'";
|
||||
$trAttrs .= " data-nest-parent='$project->parent' data-nest-path='$project->path'";
|
||||
}
|
||||
elseif($program->type != 'program')
|
||||
elseif($project->type != 'project')
|
||||
{
|
||||
$trClass .= ' no-nest';
|
||||
}
|
||||
$trAttrs .= " class='$trClass'";
|
||||
$originOrders[] = $program->order;
|
||||
$originOrders[] = $project->order;
|
||||
?>
|
||||
|
||||
<tr <?php echo $trAttrs;?>>
|
||||
<td class='c-name text-left <?php if($canOrder) echo 'sort-handler';?>' title='<?php echo $program->name?>'>
|
||||
<span class="table-nest-icon icon icon-<?php echo $program->type; ?>"></span>
|
||||
<?php if($program->type == 'program'):?>
|
||||
<?php echo html::a($this->createLink('program', 'pgmproduct', "programID=$program->id"), $program->name);?>
|
||||
<td class='c-name text-left <?php if($canOrder) echo 'sort-handler';?>' title='<?php echo $project->name?>'>
|
||||
<span class="table-nest-icon icon icon-<?php echo $project->type; ?>"></span>
|
||||
<?php if($project->type == 'project'):?>
|
||||
<?php echo html::a($this->createLink('project', 'pgmproduct', "projectID=$project->id"), $project->name);?>
|
||||
<?php else:?>
|
||||
<?php echo html::a($this->createLink('program', 'index', "programID=$program->id", '', '', $program->id), $program->name);?>
|
||||
<?php echo html::a($this->createLink('project', 'index', "projectID=$project->id", '', '', $project->id), $project->name);?>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
<td>
|
||||
<?php $userID = isset($PMList[$program->PM]) ? $PMList[$program->PM]->id : ''?>
|
||||
<?php if(!empty($program->PM)) echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), zget($users, $program->PM), '', "data-toggle='modal' data-type='iframe' data-width='600'");?>
|
||||
<?php $userID = isset($PMList[$project->PM]) ? $PMList[$project->PM]->id : ''?>
|
||||
<?php if(!empty($project->PM)) echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), zget($users, $project->PM), '', "data-toggle='modal' data-type='iframe' data-width='600'");?>
|
||||
</td>
|
||||
<?php $programBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) && $program->budget >= 10000 ? number_format($program->budget / 10000, 1) . $lang->program->tenThousand : number_format((float)$program->budget, 1);?>
|
||||
<td class='text-right'><?php echo $program->budget != 0 ? zget($lang->program->currencySymbol, $program->budgetUnit) . ' ' . $programBudget : $lang->program->future;?></td>
|
||||
<td class='c-status'><span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status, '');?></span></td>
|
||||
<td><?php echo $program->begin;?></td>
|
||||
<td><?php echo $program->end == LONG_TIME ? $lang->program->PRJLongTime : $program->end;?></td>
|
||||
<?php $projectBudget = in_array($this->app->getClientLang(), ['zh-cn','zh-tw']) && $project->budget >= 10000 ? number_format($project->budget / 10000, 1) . $lang->project->tenThousand : number_format((float)$project->budget, 1);?>
|
||||
<td class='text-right'><?php echo $project->budget != 0 ? zget($lang->project->currencySymbol, $project->budgetUnit) . ' ' . $projectBudget : $lang->project->future;?></td>
|
||||
<td class='c-status'><span class="status-project status-<?php echo $project->status?>"><?php echo zget($lang->project->statusList, $project->status, '');?></span></td>
|
||||
<td><?php echo $project->begin;?></td>
|
||||
<td><?php echo $project->end == LONG_TIME ? $lang->project->PRJLongTime : $project->end;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php if($program->type == 'program'):?>
|
||||
<?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);?>
|
||||
<?php if($project->type == 'project'):?>
|
||||
<?php if($project->status == 'wait' || $project->status == 'suspended') common::printIcon('project', 'PGMStart', "projectID=$project->id", $project, 'list', 'play', '', 'iframe', true, '', $this->lang->project->PGMStart);?>
|
||||
<?php if($project->status == 'doing') common::printIcon('project', 'PGMClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
|
||||
<?php if($project->status == 'closed') common::printIcon('project', 'PGMActivate', "projectID=$project->id", $project, 'list', 'magic', '', 'iframe', true);?>
|
||||
|
||||
<?php if(common::hasPriv('program', 'PGMSuspend') || (common::hasPriv('program', 'PGMClose') && $program->status != 'doing') || (common::hasPriv('program', 'PGMActivate') && $program->status != 'closed')):?>
|
||||
<?php if(common::hasPriv('project', 'PGMSuspend') || (common::hasPriv('project', 'PGMClose') && $project->status != 'doing') || (common::hasPriv('project', 'PGMActivate') && $project->status != 'closed')):?>
|
||||
<div class='btn-group'>
|
||||
<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>" style="width: 16px; padding-left: 0px;"></button>
|
||||
<ul class='dropdown-menu pull-right text-center' role='menu' style="min-width:auto; padding: 5px 10px;">
|
||||
<?php common::printIcon('program', 'PGMSuspend', "programID=$program->id", $program, 'list', 'pause', '', 'iframe', true, '', $this->lang->program->PGMSuspend);?>
|
||||
<?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);?>
|
||||
<?php common::printIcon('project', 'PGMSuspend', "projectID=$project->id", $project, 'list', 'pause', '', 'iframe', true, '', $this->lang->project->PGMSuspend);?>
|
||||
<?php if($project->status != 'doing') common::printIcon('project', 'PGMClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
|
||||
<?php if($project->status != 'closed') common::printIcon('project', 'PGMActivate', "projectID=$project->id", $project, 'list', 'magic', '', 'iframe', true);?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php common::printIcon('program', 'PGMEdit', "programID=$program->id", '', 'list', 'edit');?>
|
||||
<?php common::printIcon('program', 'PGMCreate', "programID=$program->id", '', 'list', 'split', '', '', '', '', $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 common::printIcon('project', 'PGMEdit', "projectID=$project->id", '', 'list', 'edit');?>
|
||||
<?php common::printIcon('project', 'PGMCreate', "projectID=$project->id", '', 'list', 'split', '', '', '', '', $this->lang->project->PGMChildren);?>
|
||||
<?php if(common::hasPriv('project', 'PGMDelete')) echo html::a($this->createLink("project", "PGMDelete", "projectID=$project->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->project->PGMDelete}'");?>
|
||||
|
||||
<?php else:?>
|
||||
<?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);?>
|
||||
<?php if(common::hasPriv('program', 'PRJSuspend') || (common::hasPriv('program', 'PRJClose') && $program->status != 'doing') || (common::hasPriv('program', 'PRJActivate') && $program->status != 'closed')):?>
|
||||
<?php if($project->status == 'wait' || $project->status == 'suspended') common::printIcon('project', 'PRJStart', "projectID=$project->id", $project, 'list', 'play', '', 'iframe', true);?>
|
||||
<?php if($project->status == 'doing') common::printIcon('project', 'PRJClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
|
||||
<?php if($project->status == 'closed') common::printIcon('project', 'PRJActivate', "projectID=$project->id", $project, 'list', 'magic', '', 'iframe', true);?>
|
||||
<?php if(common::hasPriv('project', 'PRJSuspend') || (common::hasPriv('project', 'PRJClose') && $project->status != 'doing') || (common::hasPriv('project', 'PRJActivate') && $project->status != 'closed')):?>
|
||||
<div class='btn-group'>
|
||||
<button type='button' class='btn icon-caret-down dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>" style="width: 16px; padding-left: 0px;"></button>
|
||||
<ul class='dropdown-menu pull-right text-center' role='menu' style="min-width:auto; padding: 5px 10px;">
|
||||
<?php common::printIcon('program', 'PRJSuspend', "projectID=$program->id", $program, 'list', 'pause', '', '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);?>
|
||||
<?php common::printIcon('project', 'PRJSuspend', "projectID=$project->id", $project, 'list', 'pause', '', 'iframe', true);?>
|
||||
<?php if($project->status != 'doing') common::printIcon('project', 'PRJClose', "projectID=$project->id", $project, 'list', 'off', '', 'iframe', true);?>
|
||||
<?php if($project->status != 'closed') common::printIcon('project', 'PRJActivate', "projectID=$project->id", $project, 'list', 'magic', '', 'iframe', true);?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<?php common::printIcon('program', 'PRJEdit', "projectID=$program->id&from=pgmbrowse", $program, 'list', 'edit', '', '', '', "data-group='program'", '', $program->id);?>
|
||||
<?php common::printIcon('program', 'PRJManageMembers', "projectID=$program->id", $program, 'list', 'group', '', '', '', 'data-group="program"', '', $program->id);?>
|
||||
<?php common::printIcon('program', 'PRJGroup', "projectID=$program->id", $program, 'list', 'lock', '', '', '', 'data-group="program"', '', $program->id);?>
|
||||
<?php if(common::hasPriv('program', 'PRJManageProducts') || common::hasPriv('program', 'PRJWhitelist') || common::hasPriv('program', 'PRJDelete')):?>
|
||||
<?php common::printIcon('project', 'PRJEdit', "projectID=$project->id&from=pgmbrowse", $project, 'list', 'edit', '', '', '', "data-group='project'", '', $project->id);?>
|
||||
<?php common::printIcon('project', 'PRJManageMembers', "projectID=$project->id", $project, 'list', 'group', '', '', '', 'data-group="project"', '', $project->id);?>
|
||||
<?php common::printIcon('project', 'PRJGroup', "projectID=$project->id", $project, 'list', 'lock', '', '', '', 'data-group="project"', '', $project->id);?>
|
||||
<?php if(common::hasPriv('project', 'PRJManageProducts') || common::hasPriv('project', 'PRJWhitelist') || common::hasPriv('project', 'PRJDelete')):?>
|
||||
<div class='btn-group'>
|
||||
<button type='button' class='btn dropdown-toggle' data-toggle='dropdown' title="<?php echo $this->lang->more;?>"><i class='icon-more-alt'></i></button>
|
||||
<ul class='dropdown-menu pull-right text-center' role='menu'>
|
||||
<?php common::printIcon('program', 'PRJManageProducts', "projectID=$program->id&programID=0&from=pgmbrowse", $program, 'list', 'link', '', '', '', "data-group='program'", '', $program->id);?>
|
||||
<?php common::printIcon('program', 'PRJWhitelist', "projectID=$program->id&programID=0&module=program&from=pgmbrowse", $program, 'list', 'shield-check', '', '', '', "data-group='program'", '', $program->id);?>
|
||||
<?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}' data-group='program'");?>
|
||||
<?php common::printIcon('project', 'PRJManageProducts', "projectID=$project->id&projectID=0&from=pgmbrowse", $project, 'list', 'link', '', '', '', "data-group='project'", '', $project->id);?>
|
||||
<?php common::printIcon('project', 'PRJWhitelist', "projectID=$project->id&projectID=0&module=project&from=pgmbrowse", $project, 'list', 'shield-check', '', '', '', "data-group='project'", '', $project->id);?>
|
||||
<?php if(common::hasPriv('project','PRJDelete')) echo html::a($this->createLink("project", "PRJDelete", "projectID=$project->id"), "<i class='icon-trash'></i>", 'hiddenwin', "class='btn' title='{$this->lang->project->PRJDelete}' data-group='project'");?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
@@ -116,13 +116,13 @@
|
||||
</table>
|
||||
</form>
|
||||
<style>
|
||||
#programTableList.sortable-sorting > tr {opacity: 0.7}
|
||||
#programTableList.sortable-sorting > tr.drag-row {opacity: 1;}
|
||||
#programTableList > tr.drop-not-allowed {opacity: 0.1!important}
|
||||
#programList .c-actions {overflow: visible;}
|
||||
#programTableList > tr:last-child .c-actions .dropdown-menu {top: auto; bottom: 100%; margin-bottom: -5px;}
|
||||
#programTableList .icon-project:before, #programTableList .no-nest .icon-program:before, #programTableList .is-nest-child .icon-program:before {content: '\e99c'; width: 22px; height: 22px; background: none; color: #16a8f8; top: 0; line-height: 22px; margin-right: 2px; font-size: 14px}
|
||||
#programTableList .no-nest .icon-program:before, #programTableList .is-nest-child .icon-program:before {content: '\e944'; color: #ffe066; font-size: 16px;}
|
||||
#projectTableList.sortable-sorting > tr {opacity: 0.7}
|
||||
#projectTableList.sortable-sorting > tr.drag-row {opacity: 1;}
|
||||
#projectTableList > tr.drop-not-allowed {opacity: 0.1!important}
|
||||
#projectList .c-actions {overflow: visible;}
|
||||
#projectTableList > tr:last-child .c-actions .dropdown-menu {top: auto; bottom: 100%; margin-bottom: -5px;}
|
||||
#projectTableList .icon-project:before, #projectTableList .no-nest .icon-project:before, #projectTableList .is-nest-child .icon-project:before {content: '\e99c'; width: 22px; height: 22px; background: none; color: #16a8f8; top: 0; line-height: 22px; margin-right: 2px; font-size: 14px}
|
||||
#projectTableList .no-nest .icon-project:before, #projectTableList .is-nest-child .icon-project:before {content: '\e944'; color: #ffe066; font-size: 16px;}
|
||||
</style>
|
||||
<?php js::set('originOrders', $originOrders);?>
|
||||
<script>
|
||||
@@ -133,7 +133,7 @@ $(function()
|
||||
for(var i = 0; i < originOrders.length; ++i) ordersList.push(parseInt(originOrders[i]));
|
||||
ordersList.sort(function(x, y){return x - y;});
|
||||
|
||||
var $list = $('#programTableList');
|
||||
var $list = $('#projectTableList');
|
||||
$list.addClass('sortable').sortable(
|
||||
{
|
||||
reverse: orderBy === 'order_desc',
|
||||
@@ -155,7 +155,7 @@ $(function()
|
||||
{
|
||||
projects += $(this.item).data('id') + ',' ;
|
||||
});
|
||||
$.post(createLink('program', 'PRJUpdateOrder'), {'projects' : projects, 'orderBy' : orderBy});
|
||||
$.post(createLink('project', 'PRJUpdateOrder'), {'projects' : projects, 'orderBy' : orderBy});
|
||||
|
||||
var $thead = $list.closest('table').children('thead');
|
||||
$thead.find('.headerSortDown, .headerSortUp').removeClass('headerSortDown headerSortUp').addClass('header');
|
||||
@@ -164,7 +164,7 @@ $(function()
|
||||
e.element.addClass('drop-success');
|
||||
setTimeout(function(){e.element.removeClass('drop-success');}, 800);
|
||||
$list.children('.drop-not-allowed').removeClass('drop-not-allowed');
|
||||
$('#programForm').table('initNestedList')
|
||||
$('#projectForm').table('initNestedList')
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -34,65 +34,65 @@
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('holders', $lang->project->placeholder);?>
|
||||
<?php js::set('errorSameProducts', $lang->project->errorSameProducts);?>
|
||||
<?php js::set('longTime', $lang->program->PRJLongTime);?>
|
||||
<?php js::set('currencySymbol', $lang->program->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->program->PGMParentBudget);?>
|
||||
<?php js::set('future', $lang->program->future);?>
|
||||
<?php js::set('longTime', $lang->project->PRJLongTime);?>
|
||||
<?php js::set('currencySymbol', $lang->project->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->project->PGMParentBudget);?>
|
||||
<?php js::set('future', $lang->project->future);?>
|
||||
<?php js::set('PGMList', $PGMList);?>
|
||||
<?php $aclList = $parentProgram ? $lang->program->subPGMAclList : $lang->program->PGMAclList;?>
|
||||
<?php $requiredFields = $config->program->PGMCreate->requiredFields;?>
|
||||
<?php $aclList = $parentProgram ? $lang->project->subPGMAclList : $lang->project->PGMAclList;?>
|
||||
<?php $requiredFields = $config->project->PGMCreate->requiredFields;?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->program->PGMCreate;?></h2>
|
||||
<h2><?php echo $lang->project->PGMCreate;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMParent;?></th>
|
||||
<th><?php echo $lang->project->PGMParent;?></th>
|
||||
<td><?php echo html::select('parent', $parents, isset($parentProgram->id) ? $parentProgram->id : 0, "class='form-control chosen' onchange=setBudgetTipsAndAclList(this.value)");?>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMName;?></th>
|
||||
<th class='w-120px'><?php echo $lang->project->PGMName;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', '', "class='form-control' required");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMPM;?></th>
|
||||
<th><?php echo $lang->project->PGMPM;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, '', "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMBudget;?></th>
|
||||
<th><?php echo $lang->project->PGMBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->PGMParentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->project->PGMParentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . $placeholder);?>
|
||||
<?php if($parentProgram):?>
|
||||
<span class='input-group-addon fix-border'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
|
||||
<?php else:?>
|
||||
<span class='input-group-addon fix-border'></span>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $config->program->defaultCurrency, "class='form-control'");?>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $config->project->defaultCurrency, "class='form-control'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='checkbox-primary future w-70px'>
|
||||
<input type='checkbox' id='future' name='future' value='1' />
|
||||
<label for='future'><?php echo $lang->program->future;?></label>
|
||||
<label for='future'><?php echo $lang->project->future;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->dateRange;?></th>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', date('Y-m-d'), "class='form-control form-date' placeholder='" . $lang->program->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->program->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' placeholder='" . $lang->program->end . "' required");?>
|
||||
<?php echo html::input('begin', date('Y-m-d'), "class='form-control form-date' placeholder='" . $lang->project->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' placeholder='" . $lang->project->end . "' required");?>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->program->endList , '', "onclick='computeEndDate(this.value)'");?></td>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->project->endList , '', "onclick='computeEndDate(this.value)'");?></td>
|
||||
</tr>
|
||||
<tr class='hide'>
|
||||
<th><?php echo $lang->project->status;?></th>
|
||||
@@ -103,7 +103,7 @@
|
||||
</tr>
|
||||
<?php $this->printExtendFields('', 'table');?>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMDesc;?></th>
|
||||
<th><?php echo $lang->project->PGMDesc;?></th>
|
||||
<td colspan='3'>
|
||||
<?php echo html::textarea('desc', '', "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
</td>
|
||||
@@ -135,14 +135,14 @@
|
||||
<h4 class='modal-title' id='myModalLabel'><?php echo $lang->project->copyTitle;?></h4>
|
||||
</div>
|
||||
<div class='modal-body'>
|
||||
<?php if(count($programs) == 1):?>
|
||||
<?php if(count($projects) == 1):?>
|
||||
<div class='alert with-icon'>
|
||||
<i class='icon-exclamation-sign'></i>
|
||||
<div class='content'><?php echo $lang->project->copyNoProject;?></div>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div id='copyProjects' class='row'>
|
||||
<?php foreach ($programs as $id => $name):?>
|
||||
<?php foreach ($projects as $id => $name):?>
|
||||
<?php if(empty($id)):?>
|
||||
<?php if($copyProgramID != 0):?>
|
||||
<div class='col-md-4 col-sm-6'><a href='javascript:;' data-id='' class='cancel'><?php echo html::icon($lang->icons['cancel']) . ' ' . $lang->project->cancelCopy;?></a></div>
|
||||
@@ -157,10 +157,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id='PGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PGMAclList, 'private', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->PGMAclList, 'private', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<div id='subPGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->subPGMAclList, 'private', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->subPGMAclList, 'private', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<?php js::set('parentProgramID', isset($parentProgram->id) ? $parentProgram->id : 0);?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The edit view of program module of ZenTaoPMS.
|
||||
* The edit view of project 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
|
||||
* @package project
|
||||
* @version $Id: create.html.php 4728 2013-05-03 06:14:34Z chencongzhi520@gmail.com $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -13,87 +13,87 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('longTime', $lang->program->PRJLongTime);?>
|
||||
<?php js::set('currencySymbol', $lang->program->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->program->PGMParentBudget);?>
|
||||
<?php js::set('future', $lang->program->future);?>
|
||||
<?php js::set('longTime', $lang->project->PRJLongTime);?>
|
||||
<?php js::set('currencySymbol', $lang->project->currencySymbol);?>
|
||||
<?php js::set('PGMParentBudget', $lang->project->PGMParentBudget);?>
|
||||
<?php js::set('future', $lang->project->future);?>
|
||||
<?php js::set('PGMList', $PGMList);?>
|
||||
<?php $aclList = $program->parent ? $lang->program->subPGMAclList : $lang->program->PGMAclList;?>
|
||||
<?php $requiredFields = $config->program->PGMEdit->requiredFields;?>
|
||||
<?php $aclList = $project->parent ? $lang->project->subPGMAclList : $lang->project->PGMAclList;?>
|
||||
<?php $requiredFields = $config->project->PGMEdit->requiredFields;?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->program->PGMEdit;?></h2>
|
||||
<h2><?php echo $lang->project->PGMEdit;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMParent;?></th>
|
||||
<td class="col-main"><?php echo html::select('parent', $parents, $program->parent, "class='form-control chosen' onchange=setBudgetTipsAndAclList(this.value)");?></td>
|
||||
<th class='w-120px'><?php echo $lang->project->PGMParent;?></th>
|
||||
<td class="col-main"><?php echo html::select('parent', $parents, $project->parent, "class='form-control chosen' onchange=setBudgetTipsAndAclList(this.value)");?></td>
|
||||
<td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMName;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', $program->name, "class='form-control' required");?></td>
|
||||
<th class='w-120px'><?php echo $lang->project->PGMName;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', $project->name, "class='form-control' required");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMPM;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, $program->PM, "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
<th><?php echo $lang->project->PGMPM;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, $project->PM, "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMBudget;?></th>
|
||||
<th><?php echo $lang->project->PGMBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->PGMParentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', $program->budget != 0 ? $program->budget : '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . ($program->budget == 0 ? 'disabled ' : '') . $placeholder);?>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->project->PGMParentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', $project->budget != 0 ? $project->budget : '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . ($project->budget == 0 ? 'disabled ' : '') . $placeholder);?>
|
||||
<?php if($parentProgram):?>
|
||||
<span class='input-group-addon'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
|
||||
<?php else:?>
|
||||
<span class='input-group-addon'></span>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $program->budgetUnit, "class='form-control'");?>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $project->budgetUnit, "class='form-control'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='checkbox-primary future w-70px'>
|
||||
<input type='checkbox' id='future' name='future' value='1' <?php if($program->budget == 0) echo 'checked';?> />
|
||||
<label for='future'><?php echo $lang->program->future;?></label>
|
||||
<input type='checkbox' id='future' name='future' value='1' <?php if($project->budget == 0) echo 'checked';?> />
|
||||
<label for='future'><?php echo $lang->project->future;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->dateRange;?></th>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', $program->begin, "class='form-control form-date' placeholder='" . $lang->program->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->program->to;?></span>
|
||||
<?php echo html::input('begin', $project->begin, "class='form-control form-date' placeholder='" . $lang->project->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php
|
||||
$disabledEnd = $program->end == LONG_TIME ? 'disabled' : '';
|
||||
$end = $program->end == LONG_TIME ? $lang->program->PRJLongTime : $program->end;
|
||||
echo html::input('end', $end, "class='form-control form-date' $disabledEnd placeholder='" . $lang->program->end . "' required");
|
||||
$disabledEnd = $project->end == LONG_TIME ? 'disabled' : '';
|
||||
$end = $project->end == LONG_TIME ? $lang->project->PRJLongTime : $project->end;
|
||||
echo html::input('end', $end, "class='form-control form-date' $disabledEnd placeholder='" . $lang->project->end . "' required");
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<?php $endValue = $program->end == LONG_TIME ? 999 : (strtotime($program->end) - strtotime($program->begin)) / 3600 / 24 + 1;?>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->program->endList , $endValue, "onclick='computeEndDate(this.value)'");?></td>
|
||||
<?php $endValue = $project->end == LONG_TIME ? 999 : (strtotime($project->end) - strtotime($project->begin)) / 3600 / 24 + 1;?>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->project->endList , $endValue, "onclick='computeEndDate(this.value)'");?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->realBegan;?></th>
|
||||
<td><?php echo html::input('realBegan', $program->realBegan, "class='form-control form-date'");?></td><td></td><td></td>
|
||||
<th><?php echo $lang->project->realBegan;?></th>
|
||||
<td><?php echo html::input('realBegan', $project->realBegan, "class='form-control form-date'");?></td><td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PGMDesc;?></th>
|
||||
<th><?php echo $lang->project->PGMDesc;?></th>
|
||||
<td colspan='3'>
|
||||
<?php echo html::textarea('desc', $program->desc, "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
<?php echo html::textarea('desc', $project->desc, "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->acl;?></th>
|
||||
<td colspan='3' class='aclBox'><?php echo nl2br(html::radio('acl', $aclList, $program->acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
<td colspan='3' class='aclBox'><?php echo nl2br(html::radio('acl', $aclList, $project->acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
</tr>
|
||||
<tr class="<?php if($program->acl == 'open') echo 'hidden';?>" id="whitelistBox">
|
||||
<tr class="<?php if($project->acl == 'open') echo 'hidden';?>" id="whitelistBox">
|
||||
<th><?php echo $lang->whitelist;?></th>
|
||||
<td><?php echo html::select('whitelist[]', $users, $program->whitelist, 'class="form-control chosen" multiple');?></td>
|
||||
<td><?php echo html::select('whitelist[]', $users, $project->whitelist, 'class="form-control chosen" multiple');?></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@@ -108,9 +108,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id='PGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PGMAclList, $program->acl == 'program' ? 'private' : 'open', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->PGMAclList, $project->acl == 'project' ? 'private' : 'open', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<div id='subPGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->subPGMAclList, $program->acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->subPGMAclList, $project->acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* The html product list file of pgmproduct method of program module of ZenTaoPMS.
|
||||
* The html product list file of pgmproduct method of project 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)
|
||||
@@ -17,11 +17,11 @@
|
||||
<?php foreach($lang->product->featureBar['all'] as $key => $label):?>
|
||||
<?php $active = $key == $browseType ? 'btn-active-text' : '';?>
|
||||
<?php if($key == $browseType) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink("pgmproduct", "programID=$program->id&browseType=$key&orderBy=$orderBy"), "<span class='text'>{$label}</span>", '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink("pgmproduct", "projectID=$project->id&browseType=$key&orderBy=$orderBy"), "<span class='text'>{$label}</span>", '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php common::printLink('product', 'create', "programID=$program->id", '<i class="icon icon-plus"></i>' . $lang->product->create, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('product', 'create', "projectID=$project->id", '<i class="icon icon-plus"></i>' . $lang->product->create, '', 'class="btn btn-primary"');?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
@@ -32,11 +32,11 @@
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class="main-col">
|
||||
<form class="main-table table-product" data-ride="table" id="productListForm" method="post" action='<?php echo $this->createLink('product', 'batchEdit', "programID=$program->id");?>'>
|
||||
<form class="main-table table-product" data-ride="table" id="productListForm" method="post" action='<?php echo $this->createLink('product', 'batchEdit', "projectID=$project->id");?>'>
|
||||
<?php $canOrder = common::hasPriv('product', 'updateOrder');?>
|
||||
<?php $canBatchEdit = common::hasPriv('product', 'batchEdit');?>
|
||||
<table id="productList" class="table has-sort-head table-bordered table-fixed">
|
||||
<?php $vars = "programID=$program->id&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
|
||||
<?php $vars = "projectID=$project->id&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
|
||||
<thead>
|
||||
<tr class="text-center">
|
||||
<th class='c-id text-left' rowspan='2'>
|
||||
@@ -96,7 +96,7 @@
|
||||
<td><?php echo $product->releases;?></td>
|
||||
<td><?php echo $product->plans;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php common::printIcon('product', 'edit', "product=$product->id&action=edit&extra=&programID=$program->id", $product, 'list', 'edit');?>
|
||||
<?php common::printIcon('product', 'edit', "product=$product->id&action=edit&extra=&projectID=$project->id", $product, 'list', 'edit');?>
|
||||
<?php if($canOrder):?>
|
||||
<span class='c-actions sort-handler'><i class="icon icon-move"></i></span>
|
||||
<?php endif;?>
|
||||
@@ -121,7 +121,7 @@
|
||||
<?php endif;?>
|
||||
</div>
|
||||
<?php js::set('orderBy', $orderBy)?>
|
||||
<?php js::set('programID', $program->id)?>
|
||||
<?php js::set('projectID', $project->id)?>
|
||||
<script>
|
||||
$(function()
|
||||
{
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
<?php
|
||||
/**
|
||||
* The pgmproject view file of program module of ZenTaoPMS.
|
||||
* The pgmproject view file of project 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
|
||||
* @package project
|
||||
* @version $Id: pgmproject.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php
|
||||
js::set('programID', $programID);
|
||||
js::set('projectID', $projectID);
|
||||
js::set('browseType', $browseType);
|
||||
?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolBar pull-left">
|
||||
<?php foreach($lang->program->featureBar as $key => $label):?>
|
||||
<?php foreach($lang->project->featureBar as $key => $label):?>
|
||||
<?php $active = $browseType == $key ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
<?php if($browseType == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('PGMProject', "programID=$programID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink('PGMProject', "projectID=$projectID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('PRJMine', array('1' => $lang->program->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('PRJMine', array('1' => $lang->project->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
<?php common::printLink('program', 'createGuide', "programID=$programID&from=PGM", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php common::printLink('project', 'createGuide', "projectID=$projectID&from=PGM", '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php elseif($this->config->systemMode == 'new'):?>
|
||||
<?php common::printLink('program', 'prjcreate', "mode=scrum&programID=$programID&from=PGM", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'prjcreate', "mode=scrum&projectID=$projectID&from=PGM", '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php else:?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,18 +40,18 @@ js::set('browseType', $browseType);
|
||||
<?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"');?>
|
||||
<span class="text-muted"><?php echo $lang->project->noPRJ;?></span>
|
||||
<?php common::printLink('project', 'createGuide', "projectID=$projectID", '<i class="icon icon-plus"></i>' . $lang->project->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
|
||||
$vars = "programID=$programID&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";
|
||||
$setting = $this->datatable->getSetting('program');
|
||||
$vars = "projectID=$projectID&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";
|
||||
$setting = $this->datatable->getSetting('project');
|
||||
?>
|
||||
<table class='table has-sort-head'>
|
||||
<?php $canBatchEdit = common::hasPriv('program', 'PRJBatchEdit');?>
|
||||
<?php $canBatchEdit = common::hasPriv('project', 'PRJBatchEdit');?>
|
||||
<thead>
|
||||
<tr>
|
||||
<?php
|
||||
@@ -67,7 +67,7 @@ js::set('browseType', $browseType);
|
||||
<?php foreach($projectStats as $project):?>
|
||||
<tr data-id="<?php echo $project->id;?>">
|
||||
<?php $project->from = 'pgmproject';?>
|
||||
<?php foreach($setting as $value) $this->program->printCell($value, $project, $users, $programID);?>
|
||||
<?php foreach($setting as $value) $this->project->printCell($value, $project, $users, $projectID);?>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
@@ -80,7 +80,7 @@ js::set('browseType', $browseType);
|
||||
<?php
|
||||
if($canBatchEdit)
|
||||
{
|
||||
$actionLink = $this->createLink('program', 'PRJBatchEdit', "from=pgmproject&programID=$programID");
|
||||
$actionLink = $this->createLink('project', 'PRJBatchEdit', "from=pgmproject&projectID=$projectID");
|
||||
$misc = "data-form-action='$actionLink'";
|
||||
echo html::commonButton($lang->edit, $misc);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* The stakeholder view of program module of ZenTaoPMS.
|
||||
* The stakeholder view of project 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)
|
||||
@@ -11,13 +11,13 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('confirmDelete', $lang->program->confirmDelete);?>
|
||||
<?php js::set('confirmDelete', $lang->project->confirmDelete);?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<div class="btn-toolbar pull-left">
|
||||
<?php echo html::a($this->createLink('program', 'pgmstakeholder', "programID=$programID"), '<span class="text">' . $lang->program->PGMStakeholder . '</span>', '', 'class="btn btn-link btn-active-text"');?>
|
||||
<?php echo html::a($this->createLink('project', 'pgmstakeholder', "projectID=$projectID"), '<span class="text">' . $lang->project->PGMStakeholder . '</span>', '', 'class="btn btn-link btn-active-text"');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php common::printLink('stakeholder', 'create', "programID=$programID", "<i class='icon icon-plus'></i>" . $lang->program->createStakeholder, '', "class='btn btn-primary'");?>
|
||||
<?php common::printLink('stakeholder', 'create', "projectID=$projectID", "<i class='icon icon-plus'></i>" . $lang->project->createStakeholder, '', "class='btn btn-primary'");?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-row fade'>
|
||||
@@ -32,7 +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-100px"><?php echo $lang->project->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>
|
||||
@@ -49,9 +49,9 @@
|
||||
<?php printf('%03d', $stakeholder->id);?>
|
||||
</td>
|
||||
<?php $isKey = $stakeholder->key ? " <i class='icon icon-star-empty'></i>" : '';?>
|
||||
<?php $title = $stakeholder->key ? $lang->program->isStakeholderKey : '';?>
|
||||
<?php $title = $stakeholder->key ? $lang->project->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 title='<?php echo zget($lang->project->stakeholderTypeList, $stakeholder->type, '');?>'><?php echo zget($lang->project->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>
|
||||
@@ -59,8 +59,8 @@
|
||||
<td title="<?php echo $stakeholder->email;?>"><?php echo $stakeholder->email;?></td>
|
||||
<td class='c-actions'>
|
||||
<?php
|
||||
$deleteClass = common::hasPriv('program', 'unlinkStakeholder') ? 'btn' : 'btn disabled';
|
||||
echo html::a($this->createLink('program', 'unlinkStakeholder', "id=$stakeholder->id&programID=$programID&confirm=no"), '<i class="icon-unlink"></i>', 'hiddenwin', "title='{$lang->program->unlinkStakeholder}' class='{$deleteClass}'");
|
||||
$deleteClass = common::hasPriv('project', 'unlinkStakeholder') ? 'btn' : 'btn disabled';
|
||||
echo html::a($this->createLink('project', 'unlinkStakeholder', "id=$stakeholder->id&projectID=$projectID&confirm=no"), '<i class="icon-unlink"></i>', 'hiddenwin', "title='{$lang->project->unlinkStakeholder}' class='{$deleteClass}'");
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -71,8 +71,8 @@
|
||||
<div class='table-footer'>
|
||||
<div class="checkbox-primary check-all"><label><?php echo $lang->selectAll?></label></div>
|
||||
<div class="table-actions">
|
||||
<?php $actionLink = $this->createLink('program', 'batchUnlinkStakeholders', "programID=$programID");?>
|
||||
<?php echo html::commonButton($lang->program->unlink, "onclick=\"setFormAction('$actionLink', 'hiddenwin')\"");?>
|
||||
<?php $actionLink = $this->createLink('project', 'batchUnlinkStakeholders', "projectID=$projectID");?>
|
||||
<?php echo html::commonButton($lang->project->unlink, "onclick=\"setFormAction('$actionLink', 'hiddenwin')\"");?>
|
||||
</div>
|
||||
<?php $pager->show('right', 'pagerjs');?>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjstart view file of program module of ZenTaoPMS.
|
||||
* The prjstart view file of project 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
|
||||
* @package project
|
||||
* @version $Id: prjstart.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -15,8 +15,8 @@
|
||||
<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');?>
|
||||
<span class='prefix label-id'><strong><?php echo $project->id;?></strong></span>
|
||||
<?php echo isonlybody() ? ("<span title='$project->name'>" . $project->name . '</span>') : html::a($this->createLink('project', 'view', 'project=' . $project->id), $project->name, '_blank');?>
|
||||
<?php if(!isonlybody()):?>
|
||||
<small><?php echo $lang->arrow . $lang->project->start;?></small>
|
||||
<?php endif;?>
|
||||
@@ -26,7 +26,7 @@
|
||||
<table class='table table-form'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->program->realBegan;?></th>
|
||||
<th class='w-100px'><?php echo $lang->project->realBegan;?></th>
|
||||
<td><?php echo html::input('realBegan', helper::today(), "class='form-control form-date'");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
@@ -1,53 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjbatchedit view file of program module of ZenTaoPMS.
|
||||
* The prjbatchedit view file of project module of ZenTaoPMS.
|
||||
*
|
||||
* @copyright Copyright 2009-2021 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
|
||||
* @license ZPL (http://zpl.pub/page/zplv12.html)
|
||||
* @author Shujie Tian <tianshujie@easycorp.ltd>
|
||||
* @package program
|
||||
* @package project
|
||||
* @version $Id: prjbatchedit.html.php 4769 2021-02-020 11:13:21Z $
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('linkedProjectsTip', $lang->program->linkedProjectsTip);?>
|
||||
<?php js::set('changeProgram', $lang->program->changeProgram);?>
|
||||
<?php $requiredFields = $config->program->PRJEdit->requiredFields;?>
|
||||
<?php js::set('linkedProjectsTip', $lang->project->linkedProjectsTip);?>
|
||||
<?php js::set('changeProgram', $lang->project->changeProgram);?>
|
||||
<?php $requiredFields = $config->project->PRJEdit->requiredFields;?>
|
||||
<div id="mainContent" class="main-content">
|
||||
<div class="main-header">
|
||||
<h2><?php echo $lang->program->PRJBatchEdit;?></h2>
|
||||
<h2><?php echo $lang->project->PRJBatchEdit;?></h2>
|
||||
</div>
|
||||
<form method='post' class='load-indicator main-form' enctype='multipart/form-data' target='hiddenwin' id="batchEditForm">
|
||||
<table class="table table-form">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-40px'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-200px'><?php echo $lang->program->PGMParent;?></th>
|
||||
<th class='c-name required'><?php echo $lang->program->PRJName;?></th>
|
||||
<th class="w-150px <?php echo strpos($requiredFields, 'PM') !== false ? 'required' : '';?>"> <?php echo $lang->program->PRJPM;?></th>
|
||||
<th class='w-120px required'><?php echo $lang->program->begin;?></th>
|
||||
<th class='w-120px required'><?php echo $lang->program->end;?></th>
|
||||
<th class='w-200px'><?php echo $lang->project->PGMParent;?></th>
|
||||
<th class='c-name required'><?php echo $lang->project->PRJName;?></th>
|
||||
<th class="w-150px <?php echo strpos($requiredFields, 'PM') !== false ? 'required' : '';?>"> <?php echo $lang->project->PRJPM;?></th>
|
||||
<th class='w-120px required'><?php echo $lang->project->begin;?></th>
|
||||
<th class='w-120px required'><?php echo $lang->project->end;?></th>
|
||||
<th class='w-250px'><?php echo $lang->project->acl;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($projects as $projectID => $project):?>
|
||||
<?php $aclList = $project->parent ? $lang->program->PGMPRJAcls : $lang->program->PRJAcls;?>
|
||||
<?php $aclList = $project->parent ? $lang->project->PGMPRJAcls : $lang->project->PRJAcls;?>
|
||||
<tr>
|
||||
<td><?php echo sprintf('%03d', $projectID) . html::hidden("projectIdList[$projectID]", $projectID);?></td>
|
||||
<td><?php echo html::select("parents[$projectID]", $programList, $project->parent, "class='form-control chosen' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}'");?></td>
|
||||
<td><?php echo html::select("parents[$projectID]", $projectList, $project->parent, "class='form-control chosen' data-id='$projectID' data-name='{$project->name}' data-parent='{$project->parent}'");?></td>
|
||||
<td title='<?php echo $project->name;?>'><?php echo html::input("names[$projectID]", $project->name, "class='form-control'");?></td>
|
||||
<td><?php echo html::select("PMs[$projectID]", $PMUsers, $project->PM, "class='form-control chosen'");?></td>
|
||||
<td>
|
||||
<?php echo html::input("begins[$projectID]", $project->begin, "class='form-control form-date' onchange='computeWorkDays(this.id);' placeholder='" . $lang->program->begin . "'");?>
|
||||
<?php echo html::input("begins[$projectID]", $project->begin, "class='form-control form-date' onchange='computeWorkDays(this.id);' placeholder='" . $lang->project->begin . "'");?>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
$disabledEnd = $project->end == LONG_TIME ? 'disabled' : '';
|
||||
$end = $project->end == LONG_TIME ? $lang->program->PRJLongTime : $project->end;
|
||||
echo html::input("ends[$projectID]", $end, "class='form-control form-date' $disabledEnd onchange='computeWorkDays(this.id);' placeholder='" . $lang->program->end . "'");
|
||||
$end = $project->end == LONG_TIME ? $lang->project->PRJLongTime : $project->end;
|
||||
echo html::input("ends[$projectID]", $end, "class='form-control form-date' $disabledEnd onchange='computeWorkDays(this.id);' placeholder='" . $lang->project->end . "'");
|
||||
echo html::hidden("dayses[$projectID]", $project->days);
|
||||
?>
|
||||
</td>
|
||||
@@ -76,7 +76,7 @@
|
||||
<table class='table table-form' id='promptTable'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='text-left'><?php echo $lang->program->multiLinkedProductsTip;?></th>
|
||||
<th class='text-left'><?php echo $lang->project->multiLinkedProductsTip;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjbrowse view file of program module of ZenTaoPMS.
|
||||
* The prjbrowse view file of project 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
|
||||
* @package project
|
||||
* @version $Id: prjbrowse.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -13,34 +13,34 @@
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php
|
||||
js::set('orderBy', $orderBy);
|
||||
js::set('programID', $programID);
|
||||
js::set('projectID', $projectID);
|
||||
js::set('browseType', $browseType);
|
||||
?>
|
||||
<div id="mainMenu" class="clearfix">
|
||||
<?php if($this->config->systemMode == 'new'):?>
|
||||
<div id="sidebarHeader">
|
||||
<div class="title">
|
||||
<?php echo empty($program) ? $lang->program->project : $program->name;?>
|
||||
<?php if($programID) echo html::a(inLink('PRJBrowse', 'programID=0'), "<i class='icon icon-sm icon-close'></i>", '', 'class="text-muted"');?>
|
||||
<?php echo empty($project) ? $lang->project->project : $project->name;?>
|
||||
<?php if($projectID) echo html::a(inLink('PRJBrowse', 'projectID=0'), "<i class='icon icon-sm icon-close'></i>", '', 'class="text-muted"');?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
<div class="btn-toolBar pull-left">
|
||||
<?php foreach($lang->program->featureBar as $key => $label):?>
|
||||
<?php foreach($lang->project->featureBar as $key => $label):?>
|
||||
<?php $active = $browseType == $key ? 'btn-active-text' : '';?>
|
||||
<?php $label = "<span class='text'>$label</span>";?>
|
||||
<?php if($browseType == $key) $label .= " <span class='label label-light label-badge'>{$pager->recTotal}</span>";?>
|
||||
<?php echo html::a(inlink('PRJBrowse', "programID=$programID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php echo html::a(inlink('PRJBrowse', "projectID=$projectID&browseType=$key"), $label, '', "class='btn btn-link $active'");?>
|
||||
<?php endforeach;?>
|
||||
<?php echo html::checkbox('PRJMine', array('1' => $lang->program->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
<?php echo html::checkbox('PRJMine', array('1' => $lang->project->mine), '', $this->cookie->PRJMine ? 'checked=checked' : '');?>
|
||||
</div>
|
||||
<div class="btn-toolbar pull-right">
|
||||
<?php if(isset($this->config->maxVersion)):?>
|
||||
<?php common::printLink('program', 'createGuide', "programID=$programID", '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php common::printLink('project', 'createGuide', "projectID=$projectID", '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary" data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php elseif($this->config->systemMode == 'new'):?>
|
||||
<?php common::printLink('program', 'prjcreate', 'mode=scrum', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'prjcreate', 'mode=scrum', '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php else:?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-primary"');?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
@@ -51,7 +51,7 @@ js::set('browseType', $browseType);
|
||||
<div class="cell">
|
||||
<?php echo $PRJTree;?>
|
||||
<div class="text-center">
|
||||
<?php common::printLink('program', 'PRJProgramTitle', '', $lang->program->PRJModuleSetting, '', "class='btn btn-info btn-wide iframe'", true, true);?>
|
||||
<?php common::printLink('project', 'PRJProgramTitle', '', $lang->project->PRJModuleSetting, '', "class='btn btn-info btn-wide iframe'", true, true);?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,11 +60,11 @@ js::set('browseType', $browseType);
|
||||
<?php if(empty($projectStats)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $lang->program->noPRJ;?></span>
|
||||
<span class="text-muted"><?php echo $lang->project->noPRJ;?></span>
|
||||
<?php if($this->config->systemMode == 'new'):?>
|
||||
<?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"');?>
|
||||
<?php common::printLink('project', 'createGuide', "projectID=$projectID", '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-info btn-wide " data-toggle="modal" data-target="#guideDialog"');?>
|
||||
<?php else:?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->program->PRJCreate, '', 'class="btn btn-info btn-wide"');?>
|
||||
<?php common::printLink('project', 'create', '', '<i class="icon icon-plus"></i>' . $lang->project->PRJCreate, '', 'class="btn btn-info btn-wide"');?>
|
||||
<?php endif;?>
|
||||
</p>
|
||||
</div>
|
||||
@@ -74,11 +74,11 @@ js::set('browseType', $browseType);
|
||||
<nav class="btn-toolbar pull-right"></nav>
|
||||
</div>
|
||||
<?php
|
||||
$vars = "programID=$programID&browseType=$browseType¶m=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";
|
||||
$setting = $this->datatable->getSetting('program');
|
||||
$vars = "projectID=$projectID&browseType=$browseType¶m=$param&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";
|
||||
$setting = $this->datatable->getSetting('project');
|
||||
?>
|
||||
<table class='table has-sort-head'>
|
||||
<?php $canBatchEdit = $this->config->systemMode == 'new' ? common::hasPriv('program', 'PRJBatchEdit') : common::hasPriv('project', 'batchEdit');?>
|
||||
<?php $canBatchEdit = $this->config->systemMode == 'new' ? common::hasPriv('project', 'PRJBatchEdit') : common::hasPriv('project', 'batchEdit');?>
|
||||
<thead>
|
||||
<tr>
|
||||
<?php
|
||||
@@ -94,7 +94,7 @@ js::set('browseType', $browseType);
|
||||
<?php foreach($projectStats as $project):?>
|
||||
<?php $project->from = 'PRJ';?>
|
||||
<tr data-id="<?php echo $project->id;?>">
|
||||
<?php foreach($setting as $value) $this->program->printCell($value, $project, $users, $programID);?>
|
||||
<?php foreach($setting as $value) $this->project->printCell($value, $project, $users, $projectID);?>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
</tbody>
|
||||
@@ -107,7 +107,7 @@ js::set('browseType', $browseType);
|
||||
<?php
|
||||
if($canBatchEdit)
|
||||
{
|
||||
$actionLink = $this->config->systemMode == 'new' ? $this->createLink('program', 'PRJBatchEdit', 'from=prjbrowse') : $this->createLink('project', 'batchEdit');
|
||||
$actionLink = $this->config->systemMode == 'new' ? $this->createLink('project', 'PRJBatchEdit', 'from=prjbrowse') : $this->createLink('project', 'batchEdit');
|
||||
$misc = "data-form-action='$actionLink'";
|
||||
echo html::commonButton($lang->edit, $misc);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjcreate view file of program module of ZenTaoPMS.
|
||||
* The prjcreate view file of project 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
|
||||
* @package project
|
||||
* @version $Id: prjcreate.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -14,70 +14,70 @@
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::import($jsRoot . 'misc/date.js');?>
|
||||
<?php js::set('model', $model);?>
|
||||
<?php js::set('programID', $programID);?>
|
||||
<?php js::set('projectID', $projectID);?>
|
||||
<?php js::set('copyProjectID', $copyProjectID);?>
|
||||
<?php js::set('from', $from);?>
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('errorSameProducts', $lang->program->errorSameProducts);?>
|
||||
<?php js::set('longTime', $lang->program->PRJLongTime);?>
|
||||
<?php $requiredFields = $config->program->PRJCreate->requiredFields;?>
|
||||
<?php js::set('errorSameProducts', $lang->project->errorSameProducts);?>
|
||||
<?php js::set('longTime', $lang->project->PRJLongTime);?>
|
||||
<?php $requiredFields = $config->project->PRJCreate->requiredFields;?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->program->PRJCreate . ' - ' . zget($lang->program->modelList, $model, '');?></h2>
|
||||
<h2><?php echo $lang->project->PRJCreate . ' - ' . zget($lang->project->modelList, $model, '');?></h2>
|
||||
<div class="pull-right btn-toolbar">
|
||||
<button type='button' class='btn btn-link' data-toggle='modal' data-target='#copyProjectModal'><?php echo html::icon($lang->icons['copy'], 'muted') . ' ' . $lang->program->PRJCopy;?></button>
|
||||
<button type='button' class='btn btn-link' data-toggle='modal' data-target='#copyProjectModal'><?php echo html::icon($lang->icons['copy'], 'muted') . ' ' . $lang->project->PRJCopy;?></button>
|
||||
</div>
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMParent;?></th>
|
||||
<td><?php echo html::select('parent', $programList, $programID, "class='form-control chosen' onchange='setParentProgram(this.value)'");?></td>
|
||||
<th class='w-120px'><?php echo $lang->project->PGMParent;?></th>
|
||||
<td><?php echo html::select('parent', $projectList, $projectID, "class='form-control chosen' onchange='setParentProgram(this.value)'");?></td>
|
||||
<td>
|
||||
<icon class='icon icon-help' data-toggle='popover' data-trigger='focus hover' data-placement='right' data-tip-class='text-muted popover-sm' data-content="<?php echo $lang->program->PGMTips;?>"></icon>
|
||||
<icon class='icon icon-help' data-toggle='popover' data-trigger='focus hover' data-placement='right' data-tip-class='text-muted popover-sm' data-content="<?php echo $lang->project->PGMTips;?>"></icon>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJName;?></th>
|
||||
<th><?php echo $lang->project->PRJName;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', $name, "class='form-control' required");?></td><td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJPM;?></th>
|
||||
<th><?php echo $lang->project->PRJPM;?></th>
|
||||
<td><?php echo html::select('PM', $pmUsers, '', "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJBudget;?></th>
|
||||
<th><?php echo $lang->project->PRJBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->PGMParentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->project->PGMParentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . $placeholder);?>
|
||||
<?php if($parentProgram):?>
|
||||
<span class='input-group-addon'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
|
||||
<?php else:?>
|
||||
<span class='input-group-addon'></span>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $config->program->defaultCurrency, "class='form-control'");?>
|
||||
<?php echo html::select('budgetUnit', $budgetUnitList, $config->project->defaultCurrency, "class='form-control'");?>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' id='future' name='future' value='1' />
|
||||
<label for='future'><?php echo $lang->program->future;?></label>
|
||||
<label for='future'><?php echo $lang->project->future;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->dateRange;?></th>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', date('Y-m-d'), "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->program->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->program->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->program->end . "' required");?>
|
||||
<?php echo html::input('begin', date('Y-m-d'), "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->project->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php echo html::input('end', '', "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->project->end . "' required");?>
|
||||
</div>
|
||||
</td>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->program->endList , '', "onclick='computeEndDate(this.value)'");?></td>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->project->endList , '', "onclick='computeEndDate(this.value)'");?></td>
|
||||
</tr>
|
||||
<?php if($model == 'scrum'):?>
|
||||
<tr>
|
||||
@@ -106,10 +106,10 @@
|
||||
</div>
|
||||
<?php $i++;?>
|
||||
<?php endforeach;?>
|
||||
<div class='col-sm-4 <?php if($programID) echo 'required';?>' style="padding-right: 6px;">
|
||||
<div class='col-sm-4 <?php if($projectID) echo 'required';?>' style="padding-right: 6px;">
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("products[$i]", $allProducts, '', "class='form-control chosen' onchange='loadBranches(this)'");?>
|
||||
<span class='input-group-addon'><?php echo html::checkBox('newProduct', $lang->program->addProduct, '', "onchange=addNewProduct(this);");?></span>
|
||||
<span class='input-group-addon'><?php echo html::checkBox('newProduct', $lang->project->addProduct, '', "onchange=addNewProduct(this);");?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -138,14 +138,14 @@
|
||||
</tr>
|
||||
<?php $this->printExtendFields('', 'table');?>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJDesc;?></th>
|
||||
<th><?php echo $lang->project->PRJDesc;?></th>
|
||||
<td colspan='3'>
|
||||
<?php echo html::textarea('desc', '', "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->project->acl;?></th>
|
||||
<td colspan='3' class='aclBox'><?php echo nl2br(html::radio('acl', $lang->program->PRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
<td colspan='3' class='aclBox'><?php echo nl2br(html::radio('acl', $lang->project->PRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?></td>
|
||||
</tr>
|
||||
<tr class="hidden" id="whitelistBox">
|
||||
<th><?php echo $lang->whitelist;?></th>
|
||||
@@ -154,8 +154,8 @@
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->auth;?></th>
|
||||
<td colspan='3'><?php echo html::radio('auth', $lang->program->PRJAuthList, $auth, '', 'block');?></td>
|
||||
<th><?php echo $lang->project->auth;?></th>
|
||||
<td colspan='3'><?php echo html::radio('auth', $lang->project->PRJAuthList, $auth, '', 'block');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='4' class='text-center form-actions'>
|
||||
@@ -175,7 +175,7 @@
|
||||
<div class='modal-header'>
|
||||
<button type='button' class='close' data-dismiss='modal'><i class="icon icon-close"></i></button>
|
||||
<h4 class='modal-title' id='myModalLabel'>
|
||||
<?php echo $lang->program->copyTitle;?>
|
||||
<?php echo $lang->project->copyTitle;?>
|
||||
<?php echo html::input('projectName', '', "class='form-control' placeholder={$lang->project->searchByName}");?>
|
||||
</h4>
|
||||
</div>
|
||||
@@ -183,7 +183,7 @@
|
||||
<?php if(empty($copyProjects)):?>
|
||||
<div class='alert with-icon'>
|
||||
<i class='icon-exclamation-sign'></i>
|
||||
<div class='content'><?php echo $lang->program->copyNoProject;?></div>
|
||||
<div class='content'><?php echo $lang->project->copyNoProject;?></div>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div id='copyProjects' class='row'>
|
||||
@@ -197,9 +197,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id='PRJAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->PRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<div id='PGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PGMPRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->PGMPRJAclList, $acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjcreateguide view file of program module of ZenTaoPMS.
|
||||
* The prjcreateguide view file of project 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
|
||||
* @package project
|
||||
* @version $Id: prjcreateguide.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -14,25 +14,25 @@
|
||||
<div class="modal-dialog">
|
||||
<div class='modal-content'>
|
||||
<div class='modal-body'>
|
||||
<h2 class='text-center'><?php echo $lang->program->chooseProgramType; ?></h2>
|
||||
<h2 class='text-center'><?php echo $lang->project->chooseProgramType; ?></h2>
|
||||
<div class='row'>
|
||||
<div class='col-xs-6'>
|
||||
<div class='program-type text-center'>
|
||||
<img class='program-type-img' data-type='scrum' src='<?php echo $config->webRoot . 'theme/default/images/main/scrum.png'?>'>
|
||||
<h3><?php echo $lang->program->scrum; ?></h3>
|
||||
<p><?php echo $lang->program->scrumTitle; ?></p>
|
||||
<div class='project-type text-center'>
|
||||
<img class='project-type-img' data-type='scrum' src='<?php echo $config->webRoot . 'theme/default/images/main/scrum.png'?>'>
|
||||
<h3><?php echo $lang->project->scrum; ?></h3>
|
||||
<p><?php echo $lang->project->scrumTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-xs-6'>
|
||||
<div class='program-type text-center'>
|
||||
<img class='program-type-img' data-type='waterfall' src='<?php echo $config->webRoot . 'theme/default/images/main/waterfall.png'?>'>
|
||||
<h3><?php echo $lang->program->waterfall; ?></h3>
|
||||
<p><?php echo $lang->program->waterfallTitle; ?></p>
|
||||
<div class='project-type text-center'>
|
||||
<img class='project-type-img' data-type='waterfall' src='<?php echo $config->webRoot . 'theme/default/images/main/waterfall.png'?>'>
|
||||
<h3><?php echo $lang->project->waterfall; ?></h3>
|
||||
<p><?php echo $lang->project->waterfallTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='modal-footer text-center'>
|
||||
<a class='btn btn-primary btn-wide disabled' id='guideBtn'><?php echo $lang->program->nextStep; ?></a>
|
||||
<a class='btn btn-primary btn-wide disabled' id='guideBtn'><?php echo $lang->project->nextStep; ?></a>
|
||||
<button type='button' class='btn btn-default btn-wide' data-dismiss='modal'><?php echo $lang->cancel; ?></button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -40,11 +40,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$('#guideDialog').on('click', '.program-type-img', function()
|
||||
$('#guideDialog').on('click', '.project-type-img', function()
|
||||
{
|
||||
var $this = $(this);
|
||||
$('#guideDialog .program-type.active').removeClass('active');
|
||||
$('#guideDialog .project-type.active').removeClass('active');
|
||||
$this.parent().addClass('active');
|
||||
$('#guideBtn').removeClass('disabled').attr('href', createLink('program', 'PRJCreate', 'template=' + $this.data('type') + "&programID=" + programID));
|
||||
$('#guideBtn').removeClass('disabled').attr('href', createLink('project', 'PRJCreate', 'template=' + $this.data('type') + "&projectID=" + projectID));
|
||||
});
|
||||
</script>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjedit view file of program module of ZenTaoPMS.
|
||||
* The prjedit view file of project 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
|
||||
* @package project
|
||||
* @version $Id
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -14,42 +14,42 @@
|
||||
<?php include '../../common/view/kindeditor.html.php';?>
|
||||
<?php js::import($jsRoot . 'misc/date.js');?>
|
||||
<?php js::set('weekend', $config->project->weekend);?>
|
||||
<?php js::set('errorSameProducts', $lang->program->errorSameProducts);?>
|
||||
<?php js::set('errorSameProducts', $lang->project->errorSameProducts);?>
|
||||
<?php js::set('oldParent', $project->parent);?>
|
||||
<?php js::set('projectID', $project->id);?>
|
||||
<?php js::set('longTime', $lang->program->PRJLongTime);?>
|
||||
<?php js::set('longTime', $lang->project->PRJLongTime);?>
|
||||
<?php js::set('from', $from);?>
|
||||
<?php js::set('unmodifiableProducts', $unmodifiableProducts)?>
|
||||
<?php js::set('tip', $lang->program->notAllowRemoveProducts);?>
|
||||
<?php js::set('linkedProjectsTip', $lang->program->linkedProjectsTip);?>
|
||||
<?php $aclList = $project->parent ? $lang->program->PGMPRJAclList : $lang->program->PRJAclList;?>
|
||||
<?php $requiredFields = $config->program->PRJEdit->requiredFields;?>
|
||||
<?php js::set('tip', $lang->project->notAllowRemoveProducts);?>
|
||||
<?php js::set('linkedProjectsTip', $lang->project->linkedProjectsTip);?>
|
||||
<?php $aclList = $project->parent ? $lang->project->PGMPRJAclList : $lang->project->PRJAclList;?>
|
||||
<?php $requiredFields = $config->project->PRJEdit->requiredFields;?>
|
||||
<div id='mainContent' class='main-content'>
|
||||
<div class='center-block'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->program->PRJEdit;?></h2>
|
||||
<h2><?php echo $lang->project->PRJEdit;?></h2>
|
||||
</div>
|
||||
<form class='form-indicator main-form form-ajax' method='post' target='hiddenwin' id='dataform'>
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<th class='w-120px'><?php echo $lang->program->PGMParent;?></th>
|
||||
<td><?php echo html::select('parent', $programList, $project->parent, "class='form-control chosen'");?></td>
|
||||
<th class='w-120px'><?php echo $lang->project->PGMParent;?></th>
|
||||
<td><?php echo html::select('parent', $projectList, $project->parent, "class='form-control chosen'");?></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJName;?></th>
|
||||
<th><?php echo $lang->project->PRJName;?></th>
|
||||
<td class="col-main"><?php echo html::input('name', $project->name, "class='form-control' required");?></td><td></td><td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJPM;?></th>
|
||||
<th><?php echo $lang->project->PRJPM;?></th>
|
||||
<td><?php echo html::select('PM', $PMUsers, $project->PM, "class='form-control chosen'" . (strpos($requiredFields, 'PM') !== false ? ' required' : ''));?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJBudget;?></th>
|
||||
<th><?php echo $lang->project->PRJBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->program->PGMParentBudget . zget($lang->program->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php $placeholder = ($parentProgram and $parentProgram->budget != 0) ? 'placeholder=' . $lang->project->PGMParentBudget . zget($lang->project->currencySymbol, $parentProgram->budgetUnit) . $availableBudget : '';?>
|
||||
<?php echo html::input('budget', $project->budget != 0 ? $project->budget : '', "class='form-control' " . (strpos($requiredFields, 'budget') !== false ? 'required ' : '') . ($project->budget == 0 ? 'disabled ' : '') . $placeholder);?>
|
||||
<?php if($parentProgram):?>
|
||||
<span class='input-group-addon'><?php echo zget($budgetUnitList, $parentProgram->budgetUnit);?></span>
|
||||
@@ -62,25 +62,25 @@
|
||||
<td>
|
||||
<div class='checkbox-primary'>
|
||||
<input type='checkbox' id='future' name='future' value='1' <?php if($project->budget == 0) echo 'checked';?> />
|
||||
<label for='future'><?php echo $lang->program->future;?></label>
|
||||
<label for='future'><?php echo $lang->project->future;?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->dateRange;?></th>
|
||||
<th><?php echo $lang->project->dateRange;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('begin', $project->begin, "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->program->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->program->to;?></span>
|
||||
<?php echo html::input('begin', $project->begin, "class='form-control form-date' onchange='computeWorkDays();' placeholder='" . $lang->project->begin . "' required");?>
|
||||
<span class='input-group-addon'><?php echo $lang->project->to;?></span>
|
||||
<?php
|
||||
$disabledEnd = $project->end == LONG_TIME ? 'disabled' : '';
|
||||
$end = $project->end == LONG_TIME ? $lang->program->PRJLongTime : $project->end;
|
||||
echo html::input('end', $end, "class='form-control form-date' onchange='computeWorkDays();' $disabledEnd placeholder='" . $lang->program->end . "' required");
|
||||
$end = $project->end == LONG_TIME ? $lang->project->PRJLongTime : $project->end;
|
||||
echo html::input('end', $end, "class='form-control form-date' onchange='computeWorkDays();' $disabledEnd placeholder='" . $lang->project->end . "' required");
|
||||
?>
|
||||
</div>
|
||||
</td>
|
||||
<?php $deltaValue = $project->end == LONG_TIME ? 999 : (strtotime($project->end) - strtotime($project->begin)) / 3600 / 24 + 1;?>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->program->endList , $deltaValue, "onclick='computeEndDate(this.value)'");?></td>
|
||||
<td colspan='2'><?php echo html::radio('delta', $lang->project->endList , $deltaValue, "onclick='computeEndDate(this.value)'");?></td>
|
||||
</tr>
|
||||
<?php if($project->model == 'scrum'):?>
|
||||
<tr>
|
||||
@@ -104,7 +104,7 @@
|
||||
<div class='col-sm-4' style="padding-right: 6px;">
|
||||
<?php $hasBranch = $product->type != 'normal' and isset($branchGroups[$product->id]);?>
|
||||
<div class="input-group<?php if($hasBranch) echo ' has-branch';?>">
|
||||
<?php echo html::select("products[$i]", $allProducts, $product->id, "class='form-control chosen' data-placeholder={$lang->program->errorNoProducts} onchange='loadBranches(this)' data-last='" . $product->id . "'");?>
|
||||
<?php echo html::select("products[$i]", $allProducts, $product->id, "class='form-control chosen' data-placeholder={$lang->project->errorNoProducts} onchange='loadBranches(this)' data-last='" . $product->id . "'");?>
|
||||
<span class='input-group-addon fix-border'></span>
|
||||
<?php if($hasBranch) echo html::select("branch[$i]", $branchGroups[$product->id], $product->branch, "class='form-control chosen' onchange=\"loadPlans('#products{$i}', this.value)\"");?>
|
||||
</div>
|
||||
@@ -112,7 +112,7 @@
|
||||
<?php if(in_array($product->id, $unmodifiableProducts)) echo html::hidden("products[$i]", $product->id);?>
|
||||
<?php $i++;?>
|
||||
<?php endforeach;?>
|
||||
<div class='col-sm-4 <?php if($programID) echo 'required';?>' style="padding-right: 6px;">
|
||||
<div class='col-sm-4 <?php if($projectID) echo 'required';?>' style="padding-right: 6px;">
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("products[$i]", $allProducts, '', "class='form-control chosen' onchange='loadBranches(this)'");?>
|
||||
<span class='input-group-addon fix-border'></span>
|
||||
@@ -136,7 +136,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->PRJDesc;?></th>
|
||||
<th><?php echo $lang->project->PRJDesc;?></th>
|
||||
<td colspan='3'>
|
||||
<?php echo html::textarea('desc', $project->desc, "rows='6' class='form-control kindeditor' hidefocus='true'" . (strpos($requiredFields, 'desc') !== false ? ' required' : ''));?>
|
||||
</td>
|
||||
@@ -152,8 +152,8 @@
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->program->auth;?></th>
|
||||
<td colspan='3'><?php echo html::radio('auth', $lang->program->PRJAuthList, $project->auth, '', 'block');?></td>
|
||||
<th><?php echo $lang->project->auth;?></th>
|
||||
<td colspan='3'><?php echo html::radio('auth', $lang->project->PRJAuthList, $project->auth, '', 'block');?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='4' class='text-center form-actions'>
|
||||
@@ -169,23 +169,23 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id='PRJAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PRJAclList, $project->acl == 'program' ? 'private' : 'open', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->PRJAclList, $project->acl == 'project' ? 'private' : 'open', "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<div id='PGMAcl' class='hidden'>
|
||||
<?php echo nl2br(html::radio('acl', $lang->program->PGMPRJAclList, $project->acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
<?php echo nl2br(html::radio('acl', $lang->project->PGMPRJAclList, $project->acl, "onclick='setWhite(this.value);'", 'block'));?>
|
||||
</div>
|
||||
<div class="modal fade" id="promptBox">
|
||||
<div class="modal-dialog mw-600px">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="icon icon-close"></i></button>
|
||||
<h4 class="modal-title"><?php printf($lang->program->changeProgram, $project->name);?></h4>
|
||||
<h4 class="modal-title"><?php printf($lang->project->changeProgram, $project->name);?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<table class='table table-form' id='promptTable'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='text-left'><?php echo $lang->program->multiLinkedProductsTip;?></th>
|
||||
<th class='text-left'><?php echo $lang->project->multiLinkedProductsTip;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prigroup view file of program module of ZenTaoPMS.
|
||||
* The prigroup view file of project 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
|
||||
* @package project
|
||||
* @version $Id: prigroup.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -19,7 +19,7 @@
|
||||
<span class='btn btn-link btn-active-text'><span class='text'><?php echo $lang->group->browse;?></span></span>
|
||||
</div>
|
||||
<div class='btn-toolbar pull-right'>
|
||||
<?php if(common::hasPriv('program', 'PRJCreateGroup')) echo html::a($this->createLink('program', 'PRJCreateGroup', "projectID=$projectID&programID=$programID", '', true), '<i class="icon-plus"></i> ' . $lang->group->create, '', 'class="btn btn-primary iframe" data-width="550"');?>
|
||||
<?php if(common::hasPriv('project', 'PRJCreateGroup')) echo html::a($this->createLink('project', 'PRJCreateGroup', "projectID=$projectID&projectID=$projectID", '', true), '<i class="icon-plus"></i> ' . $lang->group->create, '', 'class="btn btn-primary iframe" data-width="550"');?>
|
||||
</div>
|
||||
</div>
|
||||
<div id='mainContent' class='main-table'>
|
||||
@@ -44,12 +44,12 @@
|
||||
<td class='c-actions'>
|
||||
<?php $lang->group->managepriv = $lang->group->managePrivByGroup;?>
|
||||
<?php $disabled = $group->role == 'limited' ? 'disabled' : '';?>
|
||||
<?php common::printIcon('program', 'PRJManageView', "groupID=$group->id&projectID=$projectID&programID=$programID", $group, 'list', 'eye', '', $disabled);?>
|
||||
<?php common::printIcon('program', 'PRJManagePriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
||||
<?php common::printIcon('project', 'PRJManageView', "groupID=$group->id&projectID=$projectID&projectID=$projectID", $group, 'list', 'eye', '', $disabled);?>
|
||||
<?php common::printIcon('project', 'PRJManagePriv', "type=byGroup¶m=$group->id", $group, 'list', 'lock');?>
|
||||
<?php $lang->group->managemember = $lang->group->manageMember;?>
|
||||
<?php common::printIcon('program', 'PRJManageGroupMember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='90%'");?>
|
||||
<?php common::printIcon('program', 'PRJEditGroup', "groupID=$group->id", $group, 'list', 'edit', '', 'iframe', 'yes', "data-width='550'");?>
|
||||
<?php common::printIcon('program', 'PRJCopyGroup', "groupID=$group->id", $group, 'list', 'copy', '', "iframe $disabled", 'yes', "data-width='550'");?>
|
||||
<?php common::printIcon('project', 'PRJManageGroupMember', "groupID=$group->id", $group, 'list', 'persons', '', 'iframe', 'yes', "data-width='90%'");?>
|
||||
<?php common::printIcon('project', 'PRJEditGroup', "groupID=$group->id", $group, 'list', 'edit', '', 'iframe', 'yes', "data-width='550'");?>
|
||||
<?php common::printIcon('project', 'PRJCopyGroup', "groupID=$group->id", $group, 'list', 'copy', '', "iframe $disabled", 'yes', "data-width='550'");?>
|
||||
<?php
|
||||
if(common::hasPriv('group', 'delete') and $group->role != 'limited')
|
||||
{
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<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('program', 'prjmanagemembers', "projectID={$project->id}"), "<span class='text'> {$lang->project->manageMembers}</span>");?>
|
||||
<?php echo html::a($this->createLink('project', 'prjmanagemembers', "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>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The manage prjmanageproducts view of program module of ZenTaoPMS.
|
||||
* The manage prjmanageproducts view of project 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
|
||||
* @package project
|
||||
* @version $Id
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -25,7 +25,7 @@
|
||||
<?php foreach($allProducts as $productID => $productName):?>
|
||||
<?php if(isset($linkedProducts[$productID])):?>
|
||||
<?php $isDisabled = in_array($productID, $unmodifiableProducts) ? "disabled='disabled'" : '';?>
|
||||
<?php $title = in_array($productID, $unmodifiableProducts) ? $lang->program->notAllowRemoveProducts : $productName;?>
|
||||
<?php $title = in_array($productID, $unmodifiableProducts) ? $lang->project->notAllowRemoveProducts : $productName;?>
|
||||
<?php $checked = 'checked';?>
|
||||
<div class='col-sm-4'>
|
||||
<div class='product <?php echo $checked . (isset($branchGroups[$productID]) ? ' has-branch' : '')?>'>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* The manage view by program view of group module of ZenTaoPMS.
|
||||
* The manage view by project view of group 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)
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjprogramtitle view file of program module of ZenTaoPMS.
|
||||
* The prjprojecttitle view file of project 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: prjprogramtitle.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @package project
|
||||
* @version $Id: prjprojecttitle.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.lite.html.php';?>
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title"><i class="icon-cog"></i><?php echo $lang->program->PRJModuleSetting;?></h4>
|
||||
<h4 class="modal-title"><i class="icon-cog"></i><?php echo $lang->project->PRJModuleSetting;?></h4>
|
||||
</div>
|
||||
<div class="modal-body" style="max-height: 564px; overflow: visible;">
|
||||
<form class="form-condensed" method="post" target="hiddenwin">
|
||||
<table class="table table-form">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="w-180px"><?php echo $lang->program->PRJModuleOpen;?></td>
|
||||
<td><?php echo html::radio('PRJProgramTitle', $lang->program->PRJProgramTitle, $status);?></td>
|
||||
<td class="w-180px"><?php echo $lang->project->PRJModuleOpen;?></td>
|
||||
<td><?php echo html::radio('PRJProgramTitle', $lang->project->PRJProgramTitle, $status);?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" class="text-center"><?php echo html::submitButton();?></td>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
/**
|
||||
* The prjstart view file of program module of ZenTaoPMS.
|
||||
* The prjstart view file of project 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
|
||||
* @package project
|
||||
* @version $Id: prjstart.html.php 4769 2013-05-05 07:24:21Z wwccss $
|
||||
* @link http://www.zentao.net
|
||||
*/
|
||||
@@ -26,7 +26,7 @@
|
||||
<table class='table table-form'>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class='w-100px'><?php echo $lang->program->realBegan;?></th>
|
||||
<th class='w-100px'><?php echo $lang->project->realBegan;?></th>
|
||||
<td><?php echo html::input('realBegan', helper::today(), "class='form-control form-date'");?></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<div class="panel-heading">
|
||||
<div class="panel-title"><?php echo $lang->project->relatedMember;?></div>
|
||||
<nav class="panel-actions nav nav-default">
|
||||
<li><?php common::printLink('program', 'PRJManageMembers', "projectID=$project->id", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
|
||||
<li><?php common::printLink('project', 'PRJManageMembers', "projectID=$project->id", '<i class="icon icon-more icon-sm"></i>', '', "title=$lang->more");?></li>
|
||||
</nav>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
@@ -51,7 +51,7 @@
|
||||
<?php if($project->PM):?>
|
||||
<?php $i--;?>
|
||||
<?php unset($teamMembers[$project->PM]);?>
|
||||
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $project->PM);?> <span class="text-muted">(<?php echo $lang->program->PRJPM;?>)</span></div>
|
||||
<div class="col-xs-6"><i class="icon icon-person icon-sm text-muted"></i> <?php echo zget($users, $project->PM);?> <span class="text-muted">(<?php echo $lang->project->PRJPM;?>)</span></div>
|
||||
<?php endif;?>
|
||||
<?php if($project->PO):?>
|
||||
<?php $i--;?>
|
||||
@@ -75,7 +75,7 @@
|
||||
<?php $j++;?>
|
||||
<?php endforeach;?>
|
||||
<div class="col-xs-6">
|
||||
<?php common::printLink('program', 'PRJManageMembers', "projectID=$project->id", "<i class='icon icon-plus hl-primary text-primary'></i> " . $lang->project->manageMembers, '', "class='text-muted'");?>
|
||||
<?php common::printLink('project', 'PRJManageMembers', "projectID=$project->id", "<i class='icon icon-plus hl-primary text-primary'></i> " . $lang->project->manageMembers, '', "class='text-muted'");?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -95,16 +95,16 @@
|
||||
if(!$project->deleted)
|
||||
{
|
||||
echo "<div class='divider'></div>";
|
||||
common::printIcon('program', 'PRJStart', "projectID=$project->id", $project, 'button', 'play', '', 'iframe', true, '', $lang->project->start);
|
||||
common::printIcon('program', 'PRJActivate', "projectID=$project->id", $project, 'button', 'magic', '', 'iframe', true, '', $lang->project->activate);
|
||||
common::printIcon('program', 'PRJSuspend', "projectID=$project->id", $project, 'button', 'pause', '', 'iframe', true, '', $lang->project->suspend);
|
||||
common::printIcon('program', 'PRJClose', "projectID=$project->id", $project, 'button', 'off', '', 'iframe', true, '', $lang->close);
|
||||
common::printIcon('project', 'PRJStart', "projectID=$project->id", $project, 'button', 'play', '', 'iframe', true, '', $lang->project->start);
|
||||
common::printIcon('project', 'PRJActivate', "projectID=$project->id", $project, 'button', 'magic', '', 'iframe', true, '', $lang->project->activate);
|
||||
common::printIcon('project', 'PRJSuspend', "projectID=$project->id", $project, 'button', 'pause', '', 'iframe', true, '', $lang->project->suspend);
|
||||
common::printIcon('project', 'PRJClose', "projectID=$project->id", $project, 'button', 'off', '', 'iframe', true, '', $lang->close);
|
||||
|
||||
echo $this->buildOperateMenu($project, 'view');
|
||||
|
||||
echo "<div class='divider'></div>";
|
||||
common::printIcon('program', 'PRJEdit', $params, $project, 'button', 'edit', '', '', '', '', $lang->edit);
|
||||
common::printIcon('program', 'PRJDelete', $params, $project, 'button', 'trash', 'hiddenwin', '', '', '', $lang->delete);
|
||||
common::printIcon('project', 'PRJEdit', $params, $project, 'button', 'edit', '', '', '', '', $lang->edit);
|
||||
common::printIcon('project', 'PRJDelete', $params, $project, 'button', 'trash', 'hiddenwin', '', '', '', $lang->delete);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
@@ -122,7 +122,7 @@
|
||||
<?php if($project->deleted):?>
|
||||
<span class='label label-danger label-outline'><?php echo $lang->project->deleted;?></span>
|
||||
<?php endif; ?>
|
||||
<span class="label label-primary label-outline"><?php echo zget($lang->program->PRJLifeTimeList, $project->lifetime);?></span>
|
||||
<span class="label label-primary label-outline"><?php echo zget($lang->project->PRJLifeTimeList, $project->lifetime);?></span>
|
||||
<?php if(isset($project->delay)):?>
|
||||
<span class="label label-danger label-outline"><?php echo $lang->project->delayed;?></span>
|
||||
<?php else:?>
|
||||
@@ -220,7 +220,7 @@
|
||||
<div class="detail">
|
||||
<div class="detail-title"><strong><?php echo $lang->project->acl;?></strong></div>
|
||||
<div class="detail-content">
|
||||
<p><?php echo $lang->program->PGMPRJAclList[$project->acl];?></p>
|
||||
<p><?php echo $lang->project->PGMPRJAclList[$project->acl];?></p>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->printExtendFields($project, 'div', "position=right&inForm=0&inCell=1");?>
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
<?php if(empty($projects)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $lang->project->noProject;?></span>
|
||||
<span class="text-muted"><?php echo $lang->project->empty;?></span>
|
||||
<?php echo html::a("javascript:createProject()", "<i class='icon icon-plus'></i> " . $lang->project->create, '', "class='btn btn-info'");?>
|
||||
</p>
|
||||
</div>
|
||||
@@ -258,7 +258,7 @@
|
||||
<?php if(empty($projects)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $lang->project->noProject;?></span>
|
||||
<span class="text-muted"><?php echo $lang->project->empty;?></span>
|
||||
<?php echo html::a("javascript:createProject()", "<i class='icon icon-plus'></i> " . $lang->project->create, '', "class='btn btn-info'");?>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user