Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms into importExport
This commit is contained in:
@@ -44,11 +44,17 @@
|
||||
</tr>
|
||||
<tr id='mode1Rule' class='hidden'>
|
||||
<th></th>
|
||||
<td colspan='2'><span style='color:#5E626D;font-weight:bold;font-size:13px;'><i class="icon icon-exclamation-sign"></i><?php echo $lang->admin->safe->modeRuleList[1] . $lang->admin->safe->noticeStrong;?></span></td>
|
||||
<td colspan='2'>
|
||||
<i class="icon icon-exclamation-sign"></i>
|
||||
<span style='color:#5E626D;font-weight:bold;font-size:13px;'><?php echo $lang->admin->safe->modeRuleList[1] . $lang->admin->safe->noticeStrong;?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id='mode2Rule' class='hidden'>
|
||||
<th></th>
|
||||
<td colspan='2'><span style='color:#5E626D;font-weight:bold;font-size:13px;'><i class="icon icon-exclamation-sign"></i><?php echo $lang->admin->safe->modeRuleList[2] . $lang->admin->safe->noticeStrong;?></span></td>
|
||||
<td colspan='2'>
|
||||
<i class="icon icon-exclamation-sign"></i>
|
||||
<span style='color:#5E626D;font-weight:bold;font-size:13px;'><i class="icon icon-exclamation-sign"></i><?php echo $lang->admin->safe->modeRuleList[2] . $lang->admin->safe->noticeStrong;?></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->admin->safe->weak?></th>
|
||||
|
||||
@@ -9,5 +9,6 @@ td.branchName > span {vertical-align: middle;}
|
||||
|
||||
#mergeBranch .form-actions {padding-top: 20px;}
|
||||
.modal-body {padding-top: 0;}
|
||||
.tips {background-color: #ffffff; max-width: 615px; float: left;}
|
||||
.icon-exclamation-sign.icon {float: left; margin-top: 40px; color: #2667E3; font-size: 24px;}
|
||||
.tips {background-color: #ffffff; max-width: 650px; display: flex; padding: 14px;}
|
||||
.icon-exclamation-sign.icon {align-self: center; color: #2667E3; font-size: 24px;}
|
||||
#marginTips {max-width: 585px; margin-left: 10px;}
|
||||
|
||||
@@ -153,11 +153,13 @@
|
||||
<table class='table table-form'>
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
<i class="icon-exclamation-sign icon"></i>
|
||||
<div class="alert no-margin tips">
|
||||
<p><?php echo $lang->branch->mergedMain;?></p>
|
||||
<p><?php echo $lang->branch->mergeTips;?></p>
|
||||
<p><?php echo $lang->branch->targetBranchTips;?></p>
|
||||
<i class="icon-exclamation-sign icon"></i>
|
||||
<div id="marginTips">
|
||||
<p><?php echo $lang->branch->mergedMain;?></p>
|
||||
<p><?php echo $lang->branch->mergeTips;?></p>
|
||||
<p><?php echo $lang->branch->targetBranchTips;?></p>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -331,7 +331,6 @@ foreach(explode(',', $config->bug->create->requiredFields) as $field)
|
||||
$(function()
|
||||
{
|
||||
parent.$('#triggerModal .modal-content .modal-header .close').hide();
|
||||
$('#closeModal').on('click', function(){window.parent.$.closeModal();})
|
||||
})
|
||||
</script>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -4327,13 +4327,13 @@ class executionModel extends model
|
||||
}
|
||||
else
|
||||
{
|
||||
$trClass = 'is-nest-child';
|
||||
$trClass = 'table-nest-hide';
|
||||
$trAttrs = "data-id={$execution->id} data-parent={$execution->parent}";
|
||||
$trAttrs .= " data-nest-parent='$execution->parent' data-order='$execution->order' data-nest-path=',$execution->parent,$execution->id,'";
|
||||
}
|
||||
|
||||
$burns = join(',', $execution->burns);
|
||||
echo "<tr $trAttrs class=$trClass>";
|
||||
echo "<tr $trAttrs class='$trClass'>";
|
||||
echo "<td><span id=$execution->id class='table-nest-icon icon table-nest-toggle'></span>";
|
||||
if($this->config->systemMode == 'new')
|
||||
{
|
||||
@@ -4441,6 +4441,18 @@ class executionModel extends model
|
||||
return $productpairs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get lifetime by id list.
|
||||
*
|
||||
* @param string $idList
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getLifetimeByIdList($idList = '')
|
||||
{
|
||||
return $this->dao->select('id,lifetime')->from(TABLE_EXECUTION)->where('id')->in($idList)->fetchPairs();
|
||||
}
|
||||
|
||||
/**
|
||||
** Set stage tree path.
|
||||
**
|
||||
|
||||
@@ -1680,9 +1680,10 @@ class kanbanModel extends model
|
||||
if($browseType == 'task')
|
||||
{
|
||||
if($searchValue != '' and strpos($object->name, $searchValue) === false) continue;
|
||||
$cardData['name'] = $object->name;
|
||||
$cardData['status'] = $object->status;
|
||||
$cardData['left'] = $object->left;
|
||||
$cardData['name'] = $object->name;
|
||||
$cardData['status'] = $object->status;
|
||||
$cardData['left'] = $object->left;
|
||||
$cardData['estStarted'] = $object->estStarted;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3808,7 +3809,7 @@ class kanbanModel extends model
|
||||
{
|
||||
$menu = array();
|
||||
|
||||
if(common::hasPriv('task', 'edit') and $this->task->isClickable($task, 'edit')) $menu[] = array('label' => $this->lang->task->edit, 'icon' => 'edit', 'url' => helper::createLink('task', 'edit', "taskID=$task->id", '', true), 'size' => '95%');
|
||||
if(common::hasPriv('task', 'edit') and $this->task->isClickable($task, 'edit')) $menu[] = array('label' => $this->lang->task->edit, 'icon' => 'edit', 'url' => helper::createLink('task', 'edit', "taskID=$task->id&comment=false&kanbanGroup=default&from=taskkanban", '', true), 'size' => '95%');
|
||||
if(common::hasPriv('task', 'pause') and $this->task->isClickable($task, 'pause')) $menu[] = array('label' => $this->lang->task->pause, 'icon' => 'pause', 'url' => helper::createLink('task', 'pause', "taskID=$task->id&extra=from=taskkanban", '', true));
|
||||
if(common::hasPriv('task', 'restart') and $this->task->isClickable($task, 'restart')) $menu[] = array('label' => $this->lang->task->restart, 'icon' => 'play', 'url' => helper::createLink('task', 'restart', "taskID=$task->id&from=taskkanban", '', true));
|
||||
if(common::hasPriv('task', 'recordEstimate') and $this->task->isClickable($task, 'recordEstimate')) $menu[] = array('label' => $this->lang->task->recordEstimate, 'icon' => 'time', 'url' => helper::createLink('task', 'recordEstimate', "taskID=$task->id&from=taskkanban", '', true));
|
||||
|
||||
@@ -639,7 +639,7 @@ class productplanModel extends model
|
||||
$childStatus = $this->dao->select('status')->from(TABLE_PRODUCTPLAN)->where('parent')->eq($parentID)->andWhere('deleted')->eq(0)->fetchPairs();
|
||||
|
||||
/* If the subplan is empty, update the plan. */
|
||||
if(empty($childStatus)) $this->dao->update(TABLE_PRODUCTPLAN)->set('parent')->eq(0)->exec();
|
||||
if(empty($childStatus)) $this->dao->update(TABLE_PRODUCTPLAN)->set('parent')->eq(0)->where('id')->eq($parentID)->exec();
|
||||
|
||||
if(count($childStatus) == 1 and isset($childStatus['wait']))
|
||||
{
|
||||
|
||||
@@ -31,6 +31,7 @@ function loadData($showmore)
|
||||
|
||||
var executionID = $showmore.attr('data-parent');
|
||||
var maxTaskID = $showmore.attr('data-id');
|
||||
var maxTaskID = maxTaskID.replace('t', '');
|
||||
var link = createLink('task', 'ajaxGetTasks', 'executionID=' + executionID + '&maxTaskID=' + maxTaskID);
|
||||
$.get(link, function(data)
|
||||
{
|
||||
|
||||
@@ -21,22 +21,23 @@
|
||||
<h2 class='text-center'><?php echo $lang->project->chooseProgramType; ?></h2>
|
||||
<div class='row'>
|
||||
<div class='col-xs-4'>
|
||||
<?php $tab = $from == 'global' ? 'project' : $app->tab;?>
|
||||
<div class='project-type text-center'>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=scrum&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='scrum' src='{$config->webRoot}theme/default/images/main/scrum.png'>", '', "data-app='{$this->app->tab}' class='createButton'")?>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=scrum&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='scrum' src='{$config->webRoot}theme/default/images/main/scrum.png'>", '', "data-app='{$tab}' class='createButton'")?>
|
||||
<h3><?php echo $lang->project->scrum; ?></h3>
|
||||
<p><?php echo $lang->project->scrumTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-xs-4'>
|
||||
<div class='project-type text-center'>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=waterfall&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='waterfall' src='{$config->webRoot}theme/default/images/main/waterfall.png'>", '', "data-app='{$this->app->tab}' class='createButton'")?>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=waterfall&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='waterfall' src='{$config->webRoot}theme/default/images/main/waterfall.png'>", '', "data-app='{$tab}' class='createButton'")?>
|
||||
<h3><?php echo $lang->project->waterfall; ?></h3>
|
||||
<p><?php echo $lang->project->waterfallTitle; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-xs-4'>
|
||||
<div class='project-type text-center'>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=kanban&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='kanban' src='{$config->webRoot}theme/default/images/main/kanban.png'>", '', "data-app='{$this->app->tab}' class='createButton'")?>
|
||||
<?php echo html::a($this->createLink("project", "create", "model=kanban&programID=$programID©ProjectID=0&extra=productID=$productID,branchID=$branchID"), "<img class='project-type-img' data-type='kanban' src='{$config->webRoot}theme/default/images/main/kanban.png'>", '', "data-app='{$tab}' class='createButton'")?>
|
||||
<h3><?php echo $lang->project->kanban;?></h3>
|
||||
<p><?php echo $lang->project->kanbanTitle;?></p>
|
||||
</div>
|
||||
|
||||
@@ -273,7 +273,6 @@ $(function()
|
||||
$(function()
|
||||
{
|
||||
parent.$('#triggerModal .modal-content .modal-header .close').hide();
|
||||
$('#closeModal').on('click', function(){window.parent.$.closeModal();})
|
||||
})
|
||||
</script>
|
||||
<?php endif;?>
|
||||
|
||||
+21
-15
@@ -290,7 +290,8 @@ class task extends control
|
||||
|
||||
/* Set Custom*/
|
||||
foreach(explode(',', $this->config->task->customCreateFields) as $field) $customFields[$field] = $this->lang->task->$field;
|
||||
if($execution->type == 'ops') unset($customFields['story']);
|
||||
|
||||
$executions = $this->config->systemMode == 'classic' ? $executions : $this->execution->getByProject($projectID, !common::canModify('execution', $execution) ? 'noclosed' : 'all', 0, true);
|
||||
|
||||
$this->view->customFields = $customFields;
|
||||
$this->view->showFields = $this->config->task->custom->createFields;
|
||||
@@ -300,7 +301,8 @@ class task extends control
|
||||
$this->view->position = $position;
|
||||
$this->view->gobackLink = (isset($output['from']) and $output['from'] == 'global') ? $this->createLink('execution', 'task', "executionID=$executionID") : '';
|
||||
$this->view->execution = $execution;
|
||||
$this->view->executions = $this->config->systemMode == 'classic' ? $executions : $this->execution->getByProject($projectID, !common::canModify('execution', $execution) ? 'noclosed' : 'all', 0, true);
|
||||
$this->view->executions = $executions;
|
||||
$this->view->lifetimeList = $this->execution->getLifetimeByIdList(array_keys($executions));
|
||||
$this->view->task = $task;
|
||||
$this->view->users = $users;
|
||||
$this->view->storyID = $storyID;
|
||||
@@ -435,6 +437,9 @@ class task extends control
|
||||
if($execution->type == 'stage' and strpos('estStarted,deadline', $field) !== false) continue;
|
||||
$customFields[$field] = $this->lang->task->$field;
|
||||
}
|
||||
|
||||
if($execution->lifetime == 'ops') unset($customFields['story']);
|
||||
|
||||
$this->view->customFields = $customFields;
|
||||
$this->view->showFields = $this->config->task->custom->batchCreateFields;
|
||||
|
||||
@@ -502,10 +507,11 @@ class task extends control
|
||||
* @param int $taskID
|
||||
* @param bool $comment
|
||||
* @param string $kanbanGroup
|
||||
* @param string $from
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function edit($taskID, $comment = false, $kanbanGroup = 'default')
|
||||
public function edit($taskID, $comment = false, $kanbanGroup = 'default', $from = '')
|
||||
{
|
||||
$this->commonAction($taskID);
|
||||
$task = $this->task->getById($taskID);
|
||||
@@ -553,7 +559,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $execLaneType, 'id_desc', 0, $execGroupBy, $rdSearchValue);
|
||||
@@ -561,7 +567,7 @@ class task extends control
|
||||
|
||||
return print(js::closeModal('parent.parent', '', "parent.parent.updateKanban($kanbanData)"));
|
||||
}
|
||||
else
|
||||
if($from == 'taskkanban')
|
||||
{
|
||||
$taskSearchValue = $this->session->taskSearchValue ? $this->session->taskSearchValue : '';
|
||||
$kanbanData = $this->loadModel('kanban')->getExecutionKanban($task->execution, $execLaneType, $execGroupBy, $taskSearchValue);
|
||||
@@ -792,7 +798,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $execLaneType, 'id_desc', 0, $execGroup, $rdSearchValue);
|
||||
@@ -1051,7 +1057,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$regionID = !empty($output['regionID']) ? $output['regionID'] : 0;
|
||||
@@ -1124,7 +1130,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $execLaneType, 'id_desc', 0, $execGroupBy, $rdSearchValue);
|
||||
@@ -1285,7 +1291,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == "kanban")
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == "kanban")
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$regionID = !empty($output['regionID']) ? $output['regionID'] : 0;
|
||||
@@ -1383,7 +1389,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$regionID = !empty($output['regionID']) ? $output['regionID'] : 0;
|
||||
@@ -1450,7 +1456,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $execLaneType, 'id_desc', 0, $execGroupBy, $rdSearchValue);
|
||||
@@ -1531,7 +1537,7 @@ class task extends control
|
||||
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$regionID = !empty($output['regionID']) ? $output['regionID'] : 0;
|
||||
@@ -1704,7 +1710,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == 'kanban')
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == 'kanban')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$regionID = !empty($output['regionID']) ? $output['regionID'] : 0;
|
||||
@@ -1770,7 +1776,7 @@ class task extends control
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
$execLaneType = $this->session->execLaneType ? $this->session->execLaneType : 'all';
|
||||
$execGroupBy = $this->session->execGroupBy ? $this->session->execGroupBy : 'default';
|
||||
if($execution->type == "kanban")
|
||||
if(($this->app->tab == 'execution' or ($this->config->vision == 'lite' and $this->app->tab == 'project')) and $execution->type == "kanban")
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$regionID = !empty($output['regionID']) ? $output['regionID'] : 0;
|
||||
@@ -2333,7 +2339,7 @@ class task extends control
|
||||
{
|
||||
$task = $this->task->getById($taskID);
|
||||
$execution = $this->execution->getByID($task->execution);
|
||||
if($execution->type == 'kanban' and $this->app->tab == 'execution')
|
||||
if(($this->app->tab == 'execution' or $this->config->vision == 'lite') and $this->app->tab == 'execution')
|
||||
{
|
||||
$rdSearchValue = $this->session->rdSearchValue ? $this->session->rdSearchValue : '';
|
||||
$kanbanData = $this->loadModel('kanban')->getRDKanban($task->execution, $this->session->execLaneType ? $this->session->execLaneType : 'all', 'id_desc', 0, $kanbanGroup, $rdSearchValue);
|
||||
|
||||
@@ -3,6 +3,17 @@ $(function()
|
||||
$('#customField').click(function()
|
||||
{
|
||||
hiddenRequireFields();
|
||||
|
||||
var fieldList = showFields + ',';
|
||||
var requiredList = ',' + requiredFields + ',';
|
||||
if(lifetime == 'ops')
|
||||
{
|
||||
$('#fieldsstory').parent('div').addClass('hidden');
|
||||
}
|
||||
else if(fieldList.indexOf('story') >= 0 && requiredList.indexOf('story') < 0)
|
||||
{
|
||||
$('#fieldsstory').parent('div').removeClass('hidden');
|
||||
}
|
||||
});
|
||||
|
||||
/* Implement a custom form without feeling refresh. */
|
||||
@@ -22,6 +33,17 @@ $(function()
|
||||
*/
|
||||
function loadAll(executionID)
|
||||
{
|
||||
lifetime = lifetimeList[executionID];
|
||||
var fieldList = showFields + ',';
|
||||
if(lifetime == 'ops')
|
||||
{
|
||||
$('.storyBox').addClass('hidden');
|
||||
}
|
||||
else if(fieldList.indexOf('story') >= 0)
|
||||
{
|
||||
$('.storyBox').removeClass('hidden');
|
||||
}
|
||||
|
||||
loadModuleMenu(executionID);
|
||||
loadExecutionStories(executionID);
|
||||
loadExecutionMembers(executionID);
|
||||
@@ -408,8 +430,11 @@ $(document).ready(function()
|
||||
});
|
||||
$('#type').change(function()
|
||||
{
|
||||
$('#selectTestStoryBox').toggleClass('hidden', $(this).val() != 'test');
|
||||
toggleSelectTestStory();
|
||||
if(lifetime != 'ops')
|
||||
{
|
||||
$('#selectTestStoryBox').toggleClass('hidden', $(this).val() != 'test');
|
||||
toggleSelectTestStory();
|
||||
}
|
||||
});
|
||||
|
||||
setStoryRelated();
|
||||
|
||||
+11
-11
@@ -116,8 +116,8 @@ class taskModel extends model
|
||||
$task = $this->loadModel('file')->processImgURL($task, $this->config->task->editor->create['id'], $this->post->uid);
|
||||
|
||||
/* Fix Bug #1525 */
|
||||
$executionType = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('type');
|
||||
if($executionType == 'ops')
|
||||
$executionLifetime = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('lifetime');
|
||||
if($executionLifetime == 'ops')
|
||||
{
|
||||
$requiredFields = str_replace(",story,", ',', "$requiredFields");
|
||||
$task->story = 0;
|
||||
@@ -381,9 +381,9 @@ class taskModel extends model
|
||||
}
|
||||
|
||||
/* Fix bug #1525*/
|
||||
$executionType = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('type');
|
||||
$executionLifetime = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($executionID)->fetch('lifetime');
|
||||
$requiredFields = ',' . $this->config->task->create->requiredFields . ',';
|
||||
if($executionType == 'ops') $requiredFields = str_replace(',story,', ',', $requiredFields);
|
||||
if($executionLifetime == 'ops') $requiredFields = str_replace(',story,', ',', $requiredFields);
|
||||
$requiredFields = trim($requiredFields, ',');
|
||||
|
||||
/* check data. */
|
||||
@@ -1036,9 +1036,9 @@ class taskModel extends model
|
||||
$task->mode = '';
|
||||
}
|
||||
|
||||
$executionType = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch('type');
|
||||
$executionLifetime = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($task->execution)->fetch('lifetime');
|
||||
$requiredFields = "," . $this->config->task->edit->requiredFields . ",";
|
||||
if($executionType == 'ops')
|
||||
if($executionLifetime == 'ops')
|
||||
{
|
||||
$requiredFields = str_replace(",story,", ',', "$requiredFields");
|
||||
$task->story = 0;
|
||||
@@ -3760,19 +3760,19 @@ class taskModel extends model
|
||||
public function buildNestedList($execution, $task, $isChild = false, $showmore = false, $users)
|
||||
{
|
||||
$showmore = $showmore ? 'showmore' : '';
|
||||
$trAttrs = "data-id=$task->id";
|
||||
$trAttrs = "data-id='t$task->id'";
|
||||
if(!$isChild)
|
||||
{
|
||||
$path = $execution->grade == 2 ? "$execution->parent,$execution->id,$task->id," : ",$execution->id,$task->id,";
|
||||
$trAttrs .= " data-parent=$execution->id data-nest-parent=$execution->id data-nest-path=$path";
|
||||
$path = $execution->grade == 2 ? "$execution->parent,$execution->id,t$task->id," : ",$execution->id,t$task->id,";
|
||||
$trAttrs .= " data-parent='$execution->id' data-nest-parent='$execution->id' data-nest-path='$path'";
|
||||
if(empty($task->children)) $trAttrs .= " data-nested='false'";
|
||||
$trClass = empty($task->children) ? '' : " has-nest-child";
|
||||
}
|
||||
else
|
||||
{
|
||||
$path = $execution->grade == 2 ? "$execution->parent,$execution->id,$task->parent,$task->id," : ",$execution->id,$task->parent,$task->id,";
|
||||
$path = $execution->grade == 2 ? "$execution->parent,$execution->id,$task->parent,t$task->id," : ",$execution->id,$task->parent,t$task->id,";
|
||||
$trClass = 'is-nest-child no-nest';
|
||||
$trAttrs .= " data-nested='false' data-parent=$task->parent data-nest-parent=$task->parent data-nest-path=$path";
|
||||
$trAttrs .= " data-nested='false' data-parent='t$task->parent' data-nest-parent='t$task->parent' data-nest-path='$path'";
|
||||
}
|
||||
|
||||
$list = "<tr $trAttrs class='$trClass $showmore'>";
|
||||
|
||||
@@ -45,7 +45,7 @@ $colspan = count($visibleFields) + 3;
|
||||
<?php echo $lang->task->batchCreate;?>
|
||||
<?php endif;?>
|
||||
</h2>
|
||||
<?php if($execution->type != 'ops'):?>
|
||||
<?php if($execution->lifetime != 'ops'):?>
|
||||
<a class="checkbox-primary pull-left" id='zeroTaskStory' href='javascript:toggleZeroTaskStory();'>
|
||||
<label><?php echo $lang->story->zeroTask;?></label>
|
||||
</a>
|
||||
@@ -67,7 +67,7 @@ $colspan = count($visibleFields) + 3;
|
||||
<tr>
|
||||
<th class='c-id'><?php echo $lang->idAB;?></th>
|
||||
<th class='c-module<?php echo zget($visibleFields, 'module', ' hidden') . zget($requiredFields, 'module', '', ' required');?> moduleBox'><?php echo $lang->task->module?></th>
|
||||
<?php if($execution->type != 'ops'):?>
|
||||
<?php if($execution->lifetime != 'ops'):?>
|
||||
<th class='c-story<?php echo zget($visibleFields, 'story', ' hidden') . zget($requiredFields, 'story', '', ' required');?> storyBox'><?php echo $lang->task->story;?></th>
|
||||
<?php endif;?>
|
||||
<th class='c-name required has-btn'><?php echo $lang->task->name;?></span></th>
|
||||
@@ -99,7 +99,7 @@ $colspan = count($visibleFields) + 3;
|
||||
$lang->task->typeList['ditto'] = $lang->task->ditto;
|
||||
$members['ditto'] = $lang->task->ditto;
|
||||
$modules['ditto'] = $lang->task->ditto;
|
||||
if($execution->type == 'ops') $colspan = $colspan - 1;
|
||||
if($execution->lifetime == 'ops') $colspan = $colspan - 1;
|
||||
?>
|
||||
<?php for($i = 1; $i <= $config->task->batchCreate; $i++):?>
|
||||
<?php
|
||||
@@ -121,7 +121,7 @@ $colspan = count($visibleFields) + 3;
|
||||
<?php echo html::select("module[$i]", $modules, $moduleID, "class='form-control chosen' onchange='setStories(this.value, $execution->id)'")?>
|
||||
<?php echo html::hidden("parent[$i]", $parent);?>
|
||||
</td>
|
||||
<?php if($execution->type != 'ops'):?>
|
||||
<?php if($execution->lifetime != 'ops'):?>
|
||||
<td class="<?php echo zget($visibleFields, 'story', 'hidden');?> storyBox" style='overflow: visible'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("story[$i]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated($i)'");?>
|
||||
@@ -266,7 +266,7 @@ $colspan = count($visibleFields) + 3;
|
||||
<?php echo html::select("module[$i]", $modules, $moduleID, "class='form-control chosen'")?>
|
||||
<?php echo html::hidden("parent[$i]", $parent);?>
|
||||
</td>
|
||||
<?php if($execution->type != 'ops'):?>
|
||||
<?php if($execution->lifetime != 'ops'):?>
|
||||
<td class="<?php echo zget($visibleFields, 'story', 'hidden');?> storyBox" style='overflow: visible'>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select("story[$i]", $stories, $currentStory, "class='form-control chosen' onchange='setStoryRelated($i)'");?>
|
||||
@@ -340,7 +340,6 @@ $colspan = count($visibleFields) + 3;
|
||||
$(function()
|
||||
{
|
||||
parent.$('#triggerModal .modal-content .modal-header .close').hide();
|
||||
$('#closeModal').on('click', function(){window.parent.$.closeModal();});
|
||||
});
|
||||
</script>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
<?php js::set('vision', $config->vision);?>
|
||||
<?php js::set('requiredFields', $config->task->create->requiredFields);?>
|
||||
<?php js::set('estimateNotEmpty', sprintf($lang->error->notempty, $lang->task->estimate))?>
|
||||
<?php js::set('lifetime', $execution->lifetime);?>
|
||||
<?php js::set('lifetimeList', $lifetimeList);?>
|
||||
<?php if(!empty($storyID)):?>
|
||||
<style> .title-group.required > .required:after {right: 110px;}</style>
|
||||
<?php endif;?>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<th><?php echo $lang->testcase->reviewResultAB;?></th>
|
||||
<td><?php echo html::select('result', $lang->testcase->reviewResultList, '', 'class=form-control');?></td><td></td>
|
||||
<td><?php echo html::select('result', $lang->testcase->reviewResultList, '', 'class=form-control required');?></td><td></td>
|
||||
</tr>
|
||||
<tr class='hide'>
|
||||
<th><?php echo $lang->testcase->status;?></th>
|
||||
|
||||
@@ -1237,6 +1237,8 @@ function showCheckedFields(fields)
|
||||
if(!$('.borderBox').hasClass('hidden')) $('.borderBox').addClass('hidden');
|
||||
if(!$('.datePlanBox').hasClass('hidden')) $('.datePlanBox').addClass('hidden');
|
||||
}
|
||||
|
||||
if(typeof lifetime != 'undefined' && lifetime == 'ops') $('.storyBox').addClass('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user