Merge branch 'master' of https://github.com/easysoft/zentaopms
This commit is contained in:
@@ -834,7 +834,7 @@ class projectModel extends model
|
||||
* Get execution pairs.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @param string $type all|execution|sprint|stage|kanban
|
||||
* @param string $type all|sprint|stage|kanban
|
||||
* @param string $mode all|noclosed or empty
|
||||
* @access public
|
||||
* @return array
|
||||
@@ -850,8 +850,7 @@ class projectModel extends model
|
||||
$executions = $this->dao->select('*, IF(INSTR(" done,closed", status) < 2, 0, 1) AS isDone')->from(TABLE_EXECUTION)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($projectID)->andWhere('project')->eq($projectID)->fi()
|
||||
->beginIF(!$projectID and $type == 'execution')->andWhere('project')->gt(0)->fi()
|
||||
->beginIF($type != 'all' and $type != 'execution')->andWhere('type')->eq($type)->fi()
|
||||
->beginIF($type != 'all')->andWhere('type')->eq($type)->fi()
|
||||
->beginIF(strpos($mode, 'withdelete') === false)->andWhere('deleted')->eq(0)->fi()
|
||||
->beginIF(!$this->app->user->admin and strpos($mode, 'all') === false)->andWhere('id')->in($this->app->user->view->sprints)->fi()
|
||||
->orderBy($orderBy)
|
||||
|
||||
@@ -369,15 +369,21 @@ class todo extends control
|
||||
$this->lang->set('menugroup.todo', $from);
|
||||
}
|
||||
|
||||
$this->view->title = $this->app->user->account == $todo->account ? "{$this->lang->todo->common} #$todo->id $todo->name" : $this->lang->todo->common ;
|
||||
$this->view->position[] = $this->lang->todo->view;
|
||||
$this->view->todo = $todo;
|
||||
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->actions = $this->loadModel('action')->getList('todo', $todoID);
|
||||
$this->view->from = $from;
|
||||
$this->view->projects = $this->loadModel('project')->getExecutionPairs(0, 'execution');
|
||||
$this->view->products = $this->loadModel('product')->getPairs();
|
||||
$projects = $this->loadModel('program')->getPRJPairs();
|
||||
//$projectID = isset($this->session->PRJ) ? $this->session->PRJ : key($projects);
|
||||
if(!isset($this->session->PRJ)) $this->session->set('PRJ', key($projects));
|
||||
|
||||
$this->view->title = $this->app->user->account == $todo->account ? "{$this->lang->todo->common} #$todo->id $todo->name" : $this->lang->todo->common ;
|
||||
$this->view->position[] = $this->lang->todo->view;
|
||||
$this->view->todo = $todo;
|
||||
$this->view->times = date::buildTimeList($this->config->todo->times->begin, $this->config->todo->times->end, $this->config->todo->times->delta);
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->actions = $this->loadModel('action')->getList('todo', $todoID);
|
||||
$this->view->from = $from;
|
||||
$this->view->projects = $projects;
|
||||
$this->view->executions = $this->loadModel('project')->getExecutionPairs($this->session->PRJ);
|
||||
$this->view->products = $this->loadModel('product')->getPairs();
|
||||
$this->view->projectProducts = $this->loadModel('product')->getProductPairsByProject($this->session->PRJ);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -594,6 +600,36 @@ class todo extends control
|
||||
die($this->dao->select($field)->from($table)->where('id')->eq($objectID)->fetch($field));
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX: get execution pairs.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxGetExecutionPairs($projectID)
|
||||
{
|
||||
$this->session->set('PRJ', $projectID);
|
||||
|
||||
$executions = $this->loadModel('project')->getExecutionPairs($projectID);
|
||||
die(html::select('execution', $executions, '', "class='form-control chosen'"));
|
||||
}
|
||||
|
||||
/**
|
||||
* AJAX: get product pairs.
|
||||
*
|
||||
* @param int $projectID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function ajaxGetProductPairs($projectID)
|
||||
{
|
||||
$this->session->set('PRJ', $projectID);
|
||||
|
||||
$products = $this->loadModel('product')->getProductPairsByProject($projectID);
|
||||
die(html::select('product', $products, '', "class='form-control chosen'"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create cycle.
|
||||
*
|
||||
|
||||
@@ -15,10 +15,10 @@ $(function()
|
||||
$('#toTaskButton').click(function()
|
||||
{
|
||||
var onlybody = config.onlybody;
|
||||
var programID = $('#projectProgram').val();
|
||||
var projectID = $('#project').val();
|
||||
|
||||
var projectID = $(this).closest('.input-group').find('#project').val();
|
||||
var link = createLink('task', 'create', 'projectID=' + projectID + '&storyID=0&moduleID=0&taskID=0&todoID=' + todoID, config.defaultView, 'no', programID);
|
||||
var executionID = $(this).closest('.input-group').find('#execution').val();
|
||||
var link = createLink('task', 'create', 'projectID=' + executionID + '&storyID=0&moduleID=0&taskID=0&todoID=' + todoID, config.defaultView, 'no', projectID);
|
||||
|
||||
parent.location.href = link;
|
||||
})
|
||||
@@ -37,7 +37,7 @@ $(function()
|
||||
$('#toBugButton').click(function()
|
||||
{
|
||||
var onlybody = config.onlybody;
|
||||
var programID = $('#productProgram').val();
|
||||
var programID = $('#project').val();
|
||||
|
||||
var productID = $(this).closest('.input-group').find('#product').val();
|
||||
var link = createLink('bug', 'create', 'productID=' + productID + '&branch=0&extras=todoID=' + todoID, config.defaultView, 'no', programID);
|
||||
@@ -70,12 +70,19 @@ function createProject()
|
||||
parent.location.href = link;
|
||||
}
|
||||
|
||||
function getProgramByProject(projectID)
|
||||
function getExecutionByProject(projectID)
|
||||
{
|
||||
link = createLink('todo', 'ajaxGetProgramID', "projectID=" + projectID + '&type=project');
|
||||
$.post(link, function(data)
|
||||
{
|
||||
$('#projectProgram').val(data);
|
||||
link = createLink('todo', 'ajaxGetExecutionPairs', "projectID=" + projectID);
|
||||
$('#executionIdBox').load(link, function(){
|
||||
$(this).find('select').chosen();
|
||||
})
|
||||
}
|
||||
|
||||
function getProductByProject(projectID)
|
||||
{
|
||||
link = createLink('todo', 'ajaxGetProductPairs', "projectID=" + projectID);
|
||||
$('#productIdBox').load(link, function(){
|
||||
$(this).find('select').chosen();
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
echo "<ul class='dropdown-menu pull-right' role='menu'>";
|
||||
if($createStoryPriv) echo '<li>' . html::a('###', $lang->todo->reasonList['story'], '', "data-toggle='modal' data-target='#productModal' data-backdrop='false' data-moveable='true' data-position='center' id='toStoryLink'") . '</li>';
|
||||
if($createTaskPriv) echo '<li>' . html::a('###', $lang->todo->reasonList['task'], '', "data-toggle='modal' data-target='#projectModal' data-backdrop='false' data-moveable='true' data-position='center' id='toTaskLink'") . '</li>';
|
||||
if($createBugPriv) echo '<li>' . html::a('###', $lang->todo->reasonList['bug'], '', "data-toggle='modal' data-target='#productModal' data-backdrop='false' data-moveable='true' data-position='center' id='toBugLink'") . '</li>';
|
||||
if($createBugPriv) echo '<li>' . html::a('###', $lang->todo->reasonList['bug'], '', "data-toggle='modal' data-target='#projectProductModal' data-backdrop='false' data-moveable='true' data-position='center' id='toBugLink'") . '</li>';
|
||||
echo "</ul>";
|
||||
if($isonlybody) $_GET['onlybody'] = 'yes';
|
||||
}
|
||||
@@ -199,9 +199,13 @@
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('project', $projects, '', "class='form-control chosen' onchange=getProgramByProject(this.value);");?>
|
||||
<span>
|
||||
<?php echo html::select('project', $projects, '', "class='form-control chosen' onchange=getExecutionByProject(this.value);");?>
|
||||
</span>
|
||||
<span id='executionIdBox'>
|
||||
<?php echo html::select('execution', $executions, '', "class='form-control chosen'");?>
|
||||
</span>
|
||||
<span class='input-group-btn'><?php echo html::commonButton($lang->todo->reasonList['task'], "id='toTaskButton'", 'btn btn-primary');?></span>
|
||||
<?php echo html::hidden('projectProgram', 0);?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
@@ -227,7 +231,6 @@
|
||||
<div class='input-group'>
|
||||
<?php echo html::select('product', $products, '', "class='form-control chosen' onchange=getProgramByProduct(this.value);");?>
|
||||
<span class='input-group-btn'><?php echo html::commonButton($lang->todo->reasonList['story'], "id='toStoryButton'", 'btn btn-primary');?></span>
|
||||
<span class='input-group-btn'><?php echo html::commonButton($lang->todo->reasonList['bug'], "id='toBugButton'", 'btn btn-primary');?></span>
|
||||
<?php echo html::hidden('productProgram', 0);?>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
@@ -235,6 +238,36 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="projectProductModal">
|
||||
<div class="modal-dialog mw-500px">
|
||||
<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 echo $lang->product->select;?></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<?php if(empty($projects)):?>
|
||||
<div class="table-empty-tip">
|
||||
<p>
|
||||
<span class="text-muted"><?php echo $lang->project->noProject;?></span>
|
||||
<?php echo html::a("javascript:createProject()", "<i class='icon icon-plus'></i> " . $lang->project->create, '', "class='btn btn-info'");?>
|
||||
</p>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<div class='input-group'>
|
||||
<span>
|
||||
<?php echo html::select('project', $projects, '', "class='form-control chosen' onchange=getProductByProject(this.value);");?>
|
||||
</span>
|
||||
<span id='productIdBox'>
|
||||
<?php echo html::select('product', $projectProducts, '', "class='form-control chosen'");?>
|
||||
</span>
|
||||
<span class='input-group-btn'><?php echo html::commonButton($lang->todo->reasonList['bug'], "id='toBugButton'", 'btn btn-primary');?></span>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php js::set('todoID', $todo->id);?>
|
||||
<?php else:?>
|
||||
<?php echo $lang->todo->thisIsPrivate;?>
|
||||
|
||||
Reference in New Issue
Block a user