Merge branch '15.0.beta3' of https://gitlab.zcorp.cc/easycorp/zentaopms into 15.0.beta3
This commit is contained in:
@@ -263,6 +263,7 @@ $lang->action->label->reviewclosed = 'Review Failed';
|
||||
$lang->action->label->passreviewed = 'Pass';
|
||||
$lang->action->label->clarifyreviewed = 'Clarify';
|
||||
$lang->action->label->commitsummary = 'Commit Summary';
|
||||
$lang->action->label->updatetrainee = 'Update Trainee';
|
||||
|
||||
/* 动态信息按照对象分组 */
|
||||
$lang->action->dynamicAction = new stdclass;
|
||||
|
||||
@@ -267,6 +267,7 @@ $lang->action->label->reviewclosed = 'Review Failed';
|
||||
$lang->action->label->passreviewed = 'Pass';
|
||||
$lang->action->label->clarifyreviewed = 'Clarify';
|
||||
$lang->action->label->commitsummary = 'Commit Summary';
|
||||
$lang->action->label->updatetrainee = 'Update Trainee';
|
||||
|
||||
/* Dynamic information is grouped by object. */
|
||||
$lang->action->dynamicAction = new stdclass;
|
||||
|
||||
@@ -263,6 +263,7 @@ $lang->action->label->reviewclosed = 'Review Failed';
|
||||
$lang->action->label->passreviewed = 'Pass';
|
||||
$lang->action->label->clarifyreviewed = 'Clarify';
|
||||
$lang->action->label->commitsummary = 'Commit Summary';
|
||||
$lang->action->label->updatetrainee = 'Update Trainee';
|
||||
|
||||
/* 动态信息按照对象分组 */
|
||||
$lang->action->dynamicAction = new stdclass();
|
||||
|
||||
@@ -263,6 +263,7 @@ $lang->action->label->reviewclosed = 'Review Failed';
|
||||
$lang->action->label->passreviewed = 'Pass';
|
||||
$lang->action->label->clarifyreviewed = 'Clarify';
|
||||
$lang->action->label->commitsummary = 'Commit Summary';
|
||||
$lang->action->label->updatetrainee = 'Update Trainee';
|
||||
|
||||
/* Dynamic information is grouped by object. */
|
||||
$lang->action->dynamicAction = new stdclass;
|
||||
|
||||
@@ -267,6 +267,7 @@ $lang->action->label->reviewclosed = '评审失败';
|
||||
$lang->action->label->passreviewed = '确认通过';
|
||||
$lang->action->label->clarifyreviewed = '有待明确';
|
||||
$lang->action->label->commitsummary = '提交培训总结';
|
||||
$lang->action->label->updatetrainee = '更新培训人员';
|
||||
|
||||
/* 动态信息按照对象分组 */
|
||||
$lang->action->dynamicAction = new stdclass();
|
||||
|
||||
@@ -420,19 +420,6 @@ class custom extends control
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set story concept.
|
||||
*
|
||||
* @param int $key
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function setDefaultConcept($key = 0)
|
||||
{
|
||||
$this->loadModel('setting')->setItem('system.custom.URSR', $key);
|
||||
die(js::reload('parent'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete story concept.
|
||||
*
|
||||
|
||||
@@ -38,7 +38,6 @@ $lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
|
||||
@@ -38,7 +38,6 @@ $lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
|
||||
@@ -38,7 +38,6 @@ $lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
|
||||
@@ -38,7 +38,6 @@ $lang->custom->waterfallCommon = "Waterfall";
|
||||
$lang->custom->buildin = "Buildin";
|
||||
$lang->custom->editStoryConcept = "Edit Story Concept";
|
||||
$lang->custom->setStoryConcept = "Set Story Concept";
|
||||
$lang->custom->setDefaultConcept = "Set Default Concept";
|
||||
$lang->custom->browseStoryConcept = "List of story concepts";
|
||||
$lang->custom->deleteStoryConcept = "Delete story Concept";
|
||||
$lang->custom->URConcept = "UR Concept";
|
||||
|
||||
@@ -38,7 +38,6 @@ $lang->custom->waterfallCommon = "瀑布";
|
||||
$lang->custom->buildin = "系统内置";
|
||||
$lang->custom->editStoryConcept = "编辑需求概念";
|
||||
$lang->custom->setStoryConcept = "设置需求概念";
|
||||
$lang->custom->setDefaultConcept = "设置默认概念";
|
||||
$lang->custom->browseStoryConcept = "需求概念列表";
|
||||
$lang->custom->deleteStoryConcept = "删除需求概念";
|
||||
$lang->custom->URConcept = "用需概念";
|
||||
|
||||
@@ -38,7 +38,6 @@ $lang->custom->waterfallCommon = "瀑布";
|
||||
$lang->custom->buildin = "系統內置";
|
||||
$lang->custom->editStoryConcept = "編輯需求概念";
|
||||
$lang->custom->setStoryConcept = "設置需求概念";
|
||||
$lang->custom->setDefaultConcept = "設置預設概念";
|
||||
$lang->custom->browseStoryConcept = "需求概念列表";
|
||||
$lang->custom->deleteStoryConcept = "刪除需求概念";
|
||||
$lang->custom->URConcept = "用需概念";
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<style>
|
||||
.table-form>tbody>tr>th{text-align: center}
|
||||
.table-form>tbody>tr>th{text-align: center}
|
||||
</style>
|
||||
<div id='mainMenu' class='clearfix'>
|
||||
<div class='pull-right'>
|
||||
@@ -23,9 +23,6 @@
|
||||
<table class='table table-form'>
|
||||
<thead>
|
||||
<tr>
|
||||
<?php if(common::hasPriv('custom', 'setDefaultConcept')):?>
|
||||
<th class='w-60px text-center'><?php echo $lang->custom->default;?> </th>
|
||||
<?php endif;?>
|
||||
<?php if($this->config->URAndSR):?>
|
||||
<th class='text-left'><?php echo $lang->custom->URConcept;?> </th>
|
||||
<?php endif;?>
|
||||
@@ -36,9 +33,6 @@
|
||||
<tbody>
|
||||
<?php foreach($URSRList as $key => $URSR):?>
|
||||
<tr>
|
||||
<?php if(common::hasPriv('custom', 'setDefaultConcept')):?>
|
||||
<td class='text-center'><input type="radio" name='default' value='<?php echo $key;?>' <?php if($key == $config->custom->URSR) echo 'checked';?>></td>
|
||||
<?php endif;?>
|
||||
<?php if($this->config->URAndSR):?>
|
||||
<td class='text-left'><?php echo $URSR['URName'];?></td>
|
||||
<?php endif;?>
|
||||
@@ -54,11 +48,4 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$("input[name='default']").change(function()
|
||||
{
|
||||
var checked = $(this).val();
|
||||
hiddenwin.location.href = createLink('custom', 'setDefaultConcept', 'key=' + checked);
|
||||
})
|
||||
</script>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
@@ -1081,7 +1081,6 @@ $lang->resource->custom->timezone = 'timezone';
|
||||
$lang->resource->custom->setStoryConcept = 'setStoryConcept';
|
||||
$lang->resource->custom->editStoryConcept = 'editStoryConcept';
|
||||
$lang->resource->custom->browseStoryConcept = 'browseStoryConcept';
|
||||
$lang->resource->custom->setDefaultConcept = 'setDefaultConcept';
|
||||
$lang->resource->custom->deleteStoryConcept = 'deleteStoryConcept';
|
||||
|
||||
$lang->custom->methodOrder[5] = 'index';
|
||||
@@ -1096,8 +1095,7 @@ $lang->custom->methodOrder[45] = 'timezone';
|
||||
$lang->custom->methodOrder[50] = 'setStoryConcept';
|
||||
$lang->custom->methodOrder[55] = 'editStoryConcept';
|
||||
$lang->custom->methodOrder[60] = 'browseStoryConcept';
|
||||
$lang->custom->methodOrder[65] = 'setDefaultConcept';
|
||||
$lang->custom->methodOrder[70] = 'deleteStoryConcept';
|
||||
$lang->custom->methodOrder[65] = 'deleteStoryConcept';
|
||||
|
||||
$lang->resource->datatable = new stdclass();
|
||||
$lang->resource->datatable->setGlobal = 'setGlobal';
|
||||
@@ -1808,7 +1806,6 @@ $lang->changelog['15.0.rc1'][] = 'user-execution';
|
||||
$lang->changelog['15.0.rc1'][] = 'custom-setStoryConcept';
|
||||
$lang->changelog['15.0.rc1'][] = 'custom-editStoryConcept';
|
||||
$lang->changelog['15.0.rc1'][] = 'custom-browseStoryConcept';
|
||||
$lang->changelog['15.0.rc1'][] = 'custom-setDefaultConcept';
|
||||
$lang->changelog['15.0.rc1'][] = 'custom-deleteStoryConcept';
|
||||
$lang->changelog['15.0.rc1'][] = 'search-index';
|
||||
$lang->changelog['15.0.rc1'][] = 'search-buildIndex';
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
<td class="c-date"><?php echo $todo->date == '2030-01-01' ? $lang->todo->periods['future'] : $todo->date;?></td>
|
||||
<td class="c-type"><?php echo zget($lang->todo->typeList, $todo->type, '');?></td>
|
||||
<td class="c-pri"><span title="<?php echo zget($lang->todo->priList, $todo->pri);?>" class='label-pri <?php echo 'label-pri-' . $todo->pri;?>' title='<?php echo zget($lang->todo->priList, $todo->pri, $todo->pri);?>'><?php echo zget($lang->todo->priList, $todo->pri)?></span></td>
|
||||
<td class="c-name" title="<?php echo $todo->name;?>"><?php echo html::a($this->createLink('todo', 'view', "id=$todo->id&from=my", '', true), $todo->name, '', "data-toggle='modal' data-width='75%' data-type='iframe' data-title='" . $lang->todo->view . "' data-icon='check'");?></td>
|
||||
<td class="c-name" title="<?php echo $todo->name;?>"><?php echo html::a($this->createLink('todo', 'view', "id=$todo->id&from=my", '', true), $todo->name, '', "data-toggle='modal' data-width='80%' data-type='iframe' data-title='" . $lang->todo->view . "' data-icon='check'");?></td>
|
||||
<td><?php echo zget($users, $todo->assignedBy);?></td>
|
||||
<td class="c-begin"><?php echo $todo->begin;?></td>
|
||||
<td class="c-end"><?php echo $todo->end;?></td>
|
||||
|
||||
@@ -758,14 +758,15 @@ class projectModel extends model
|
||||
{
|
||||
/* If parent not empty, link products or create products. */
|
||||
$product = new stdclass();
|
||||
$product->name = $this->post->productName ? $this->post->productName : $project->name;
|
||||
$product->bind = $this->post->parent ? 0 : 1;
|
||||
$product->program = $project->parent ? current(array_filter(explode(',', $program->path))) : 0;
|
||||
$product->acl = $project->acl = 'open' ? 'open' : 'private';
|
||||
$product->PO = $project->PM;
|
||||
$product->createdBy = $this->app->user->account;
|
||||
$product->createdDate = helper::now();
|
||||
$product->status = 'normal';
|
||||
$product->name = $this->post->productName ? $this->post->productName : $project->name;
|
||||
$product->bind = $this->post->parent ? 0 : 1;
|
||||
$product->program = $project->parent ? current(array_filter(explode(',', $program->path))) : 0;
|
||||
$product->acl = $project->acl = 'open' ? 'open' : 'private';
|
||||
$product->PO = $project->PM;
|
||||
$product->createdBy = $this->app->user->account;
|
||||
$product->createdDate = helper::now();
|
||||
$product->status = 'normal';
|
||||
$product->createdVersion = $this->config->version;
|
||||
|
||||
$this->dao->insert(TABLE_PRODUCT)->data($product)->exec();
|
||||
$productID = $this->dao->lastInsertId();
|
||||
|
||||
@@ -21,6 +21,8 @@ function loadAll(executionID)
|
||||
*/
|
||||
function loadExecutionMembers(executionID)
|
||||
{
|
||||
$("#multipleBox").removeAttr("checked");
|
||||
$('.team-group').addClass('hidden');
|
||||
$.get(createLink('execution', 'ajaxGetMembers', 'executionID=' + executionID + '&assignedTo=' + $('#assignedTo').val()), function(data)
|
||||
{
|
||||
$('#assignedTo_chosen').remove();
|
||||
|
||||
@@ -26,6 +26,7 @@ class todoModel extends model
|
||||
|
||||
$idvalue = 0;
|
||||
if($hasObject && $objectType) $idvalue = $this->post->uid ? $this->post->$objectType : $this->post->idvalue;
|
||||
|
||||
$todo = fixer::input('post')
|
||||
->add('account', $this->app->user->account)
|
||||
->setDefault('idvalue', 0)
|
||||
@@ -38,6 +39,50 @@ class todoModel extends model
|
||||
->remove(implode(',', $this->config->todo->moduleList) . ',uid')
|
||||
->get();
|
||||
|
||||
if(!isset($todo->pri))
|
||||
{
|
||||
if($this->post->type == 'task')
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_TASK)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'bug')
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_BUG)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'story')
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_STORY)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'testtask')
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_TESTTASK)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'issue' and isset($this->config->maxVersion))
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_ISSUE)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'risk' and isset($this->config->maxVersion))
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_RISK)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'review' and isset($this->config->maxVersion))
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_REVIEW)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'feedback' and isset($this->config->maxVersion))
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_FEEDBACK)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
elseif($this->post->type == 'opportunity' and isset($this->config->maxVersion))
|
||||
{
|
||||
$todo->pri = $this->dao->select('pri')->from(TABLE_OPPORTUNITY)->where('id')->eq($this->post->idvalue)->fetch('pri');
|
||||
}
|
||||
|
||||
if($todo->pri == 'high') $todo->pri = 1;
|
||||
if($todo->pri == 'middle') $todo->pri = 2;
|
||||
if($todo->pri == 'low') $todo->pri = 3;
|
||||
}
|
||||
|
||||
if($todo->type != 'custom')
|
||||
{
|
||||
$type = $todo->type;
|
||||
|
||||
@@ -676,6 +676,10 @@ class upgradeModel extends model
|
||||
$this->adjustBugOfProject();
|
||||
$this->processBuildTable();
|
||||
$this->appendExec('15_0');
|
||||
case '15_0_1':
|
||||
$this->saveLogs('Execute 15_0_1');
|
||||
$this->updateProductVersion();
|
||||
$this->appendExec('15_0_1');
|
||||
}
|
||||
|
||||
$this->deletePatch();
|
||||
@@ -4637,13 +4641,14 @@ class upgradeModel extends model
|
||||
if(isset($data->name))
|
||||
{
|
||||
$product = new stdclass();
|
||||
$product->program = $data->program;
|
||||
$product->name = $data->name;
|
||||
$product->acl = 'open';
|
||||
$product->PO = isset($this->app->user->account) ? $this->app->user->account : '';
|
||||
$product->createdBy = isset($this->app->user->account) ? $this->app->user->account : '';
|
||||
$product->createdDate = helper::now();
|
||||
$product->status = 'normal';
|
||||
$product->program = $data->program;
|
||||
$product->name = $data->name;
|
||||
$product->acl = 'open';
|
||||
$product->PO = isset($this->app->user->account) ? $this->app->user->account : '';
|
||||
$product->createdBy = isset($this->app->user->account) ? $this->app->user->account : '';
|
||||
$product->createdDate = helper::now();
|
||||
$product->status = 'normal';
|
||||
$product->createdVersion = $this->config->version;
|
||||
|
||||
$this->dao->insert(TABLE_PRODUCT)->data($product)->exec();
|
||||
$productID = $this->dao->lastInsertID();
|
||||
@@ -4975,4 +4980,16 @@ class upgradeModel extends model
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the createdVersion field of the zt_product table.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function updateProductVersion()
|
||||
{
|
||||
$this->dao->update(TABLE_PRODUCT)->set('createdVersion')->eq($this->config->version)->where('createdVersion')->eq('')->exec();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user