* code for task#1678.

This commit is contained in:
xia0ta0
2013-08-08 16:08:15 +08:00
parent 88e92a19aa
commit 36bbaf711e
5 changed files with 51 additions and 32 deletions
+3 -1
View File
@@ -221,6 +221,7 @@ class bug extends control
{
$this->view->users = $this->user->getPairs('nodeleted,devfirst');
if(empty($this->products)) $this->locate($this->createLink('product', 'create'));
$this->app->loadLang('release');
if(!empty($_POST))
{
@@ -305,9 +306,10 @@ class bug extends control
}
else
{
$builds = $this->loadModel('build')->getProductBuildPairs($productID, 'noempty');
$builds = $this->loadModel('build')->getProductBuildPairs($productID, 'noempty,release');
$stories = $this->story->getProductStoryPairs($productID);
}
$this->view->title = $this->products[$productID] . $this->lang->colon . $this->lang->bug->create;
$this->view->position[] = html::a($this->createLink('bug', 'browse', "productID=$productID"), $this->products[$productID]);
$this->view->position[] = $this->lang->bug->create;
+26 -18
View File
@@ -5,12 +5,13 @@ $(function()
if(typeof page == 'undefined') page = '';
if(page == 'create')
{
productID = $('#product').val();
changeProductConfirmed = true;
oldStoryID = 0;
oldProjectID = 0;
oldOpenedBuild = '';
oldTaskID = 0;
setAssignedTo();
setAssignedTo(0,productID);
}
if(page == 'create' || page == 'edit' || page == 'assignedto' || page == 'confirmbug')
@@ -42,10 +43,9 @@ function loadAll(productID)
$('#taskIdBox').innerHTML = '<select id="task"></select>'; // Reset the task.
$('#task').chosen({no_results_text: noResultsMatch});
loadProductModules(productID);
loadProductStories(productID);
loadProductProjects(productID);
loadProductBuilds(productID);
loadProductPlans(productID);
loadProductStories(productID);
}
}
@@ -101,7 +101,7 @@ function loadProductBuilds(productID)
if(page == 'create')
{
$('#buildBox').load(link);
$('#buildBox').load(link, function(){ createBuild(); });
}
else
{
@@ -161,20 +161,6 @@ function loadProjectStories(projectID)
$('#storyIdBox').load(link, function(){$('#story').chosen({no_results_text:noResultsMatch});});
}
/**
* Load product plans.
*
* @param int $productID
* @access public
* @return void
*/
function loadProductPlans(productID)
{
if(typeof(planID) == 'undefined') planID = 0;
link = createLink('product', 'ajaxGetPlans', 'productID=' + $('#product').val() + '&planID=' + planID);
$('#planIdBox').load(link, function(){$('#story').chosen({no_results_text:noResultsMatch});});
}
/**
* Load builds of a project.
*
@@ -221,3 +207,25 @@ function setStories(moduleID, productID)
$("#story").chosen({no_results_text: ''});
});
}
/**
* Create builds.
*
* @access public
* @return void
*/
function createBuild()
{
if($('#openedBuild').find('option').length <= 1)
{
if($('#project').val() == '')
{
$('#buildBox').append(createRelease);
}
else
{
$('#buildBox').append(createBuild);
}
$('#buildBox').append(refresh);
}
}
+5 -9
View File
@@ -18,6 +18,9 @@ include '../../common/view/alert.html.php';
include '../../common/view/kindeditor.html.php';
js::set('holders', $lang->bug->placeholder);
js::set('page', 'create');
js::set('createRelease', html::a($this->createLink('release', 'create', "productID=$productID"), $lang->release->create, '_blank'));
js::set('createBuild', html::a($this->createLink('build', 'create', "projectID=$projectID"), $lang->build->create, '_blank'));
js::set('refresh', html::a("javascript:loadProjectsBuilds($projectID)", $lang->refresh));
?>
<form method='post' enctype='multipart/form-data' id='dataform' class='ajaxForm'>
@@ -26,7 +29,7 @@ js::set('page', 'create');
<tr>
<th class='rowhead'><?php echo $lang->bug->lblProductAndModule;?></th>
<td>
<?php echo html::select('product', $products, $productID, "onchange=loadAll(this.value) class='select-3'");?>
<?php echo html::select('product', $products, $productID, "onchange=loadAll(this.value) class='select-3' autocomplete='off'");?>
<span id='moduleIdBox'>
<?php
echo html::select('module', $moduleOptionMenu, $moduleID, "onchange='loadModuleRelated()'");
@@ -47,14 +50,7 @@ js::set('page', 'create');
<th class='rowhead'><?php echo $lang->bug->openedBuild;?></th>
<td>
<span id='buildBox'>
<?php
echo html::select('openedBuild[]', $builds, $buildID, 'size=3 multiple=multiple class=select-3');
if(count($builds) == 1 and $projectID)
{
echo html::a($this->createLink('build', 'create', "projectID=$projectID"), $lang->build->create, '_blank');
echo html::a("javascript:loadProjectsBuilds($projectID)", $lang->refresh);
}
?>
<?php echo html::select('openedBuild[]', $builds, $buildID, 'size=3 multiple=multiple class=select-3');?>
</span>
</td>
</tr>
+4 -4
View File
@@ -193,9 +193,9 @@ class build extends control
*/
public function ajaxGetProductBuilds($productID, $varName, $build = '', $index = 0)
{
if($varName == 'openedBuild' ) die(html::select($varName . '[]', $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'openedBuilds' ) die(html::select($varName . "[$index][]", $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProductBuildPairs($productID, 'noempty'), $build, 'class=select-3'));
if($varName == 'openedBuild' ) die(html::select($varName . '[]', $this->build->getProductBuildPairs($productID, 'noempty,release'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'openedBuilds' ) die(html::select($varName . "[$index][]", $this->build->getProductBuildPairs($productID, 'noempty,release'), $build, 'size=4 class=select-3 multiple'));
if($varName == 'resolvedBuild') die(html::select($varName, $this->build->getProductBuildPairs($productID, 'noempty,release'), $build, 'class=select-3'));
}
/**
@@ -213,7 +213,7 @@ class build extends control
{
if($varName == 'openedBuild')
{
$builds = $this->build->getProjectBuildPairs($projectID, $productID, 'noempty');
$builds = $this->build->getProjectBuildPairs($projectID, $productID, 'noempty,release');
$output = html::select($varName . '[]', $builds , $build, 'size=4 class=select-3 multiple');
if(count($builds) == 1 and $needCreate)
{
+13
View File
@@ -100,6 +100,19 @@ class buildModel extends model
->where('product')->in($products)
->andWhere('deleted')->eq(0)
->orderBy('date desc, id desc')->fetchPairs();
if(strpos($params, 'release') !== false)
{
$releases = $this->dao->select('build,name')->from(TABLE_RELEASE)
->where('product')->in($products)
->andWhere('deleted')->eq(0)
->fetchPairs('build');
foreach($builds as $key => $build)
{
if($key and isset($releases[$key])) $builds[$key] = $releases[$key];
}
}
if(!$builds) return $sysBuilds;
return $sysBuilds + $builds;
}