* code for task#933.

* move caseBatchEdit for open source version to pro version.
This commit is contained in:
chencongzhi520@gmail.com
2012-12-10 07:18:58 +00:00
parent 6d2ba0712b
commit a6e0c1bcff
11 changed files with 218 additions and 6 deletions
+60
View File
@@ -250,6 +250,66 @@ class testcaseModel extends model
}
}
/**
* Batch update testcases.
*
* @access public
* @return array
*/
public function batchUpdate()
{
$cases = array();
$allChanges = array();
$now = helper::now();
$caseIDList = $this->post->caseIDList ? $this->post->caseIDList : array();
/* Adjust whether the post data is complete, if not, remove the last element of $caseIDList. */
if($this->session->showSuhosinInfo) array_pop($caseIDList);
if(!empty($caseIDList))
{
/* Initialize cases from the post data.*/
foreach($caseIDList as $caseID)
{
$case->lastEditedBy = $this->app->user->account;
$caee->lastEditedDate = $now;
$case->pri = $this->post->pris[$caseID];
$case->status = $this->post->statuses[$caseID];
$case->module = $this->post->modules[$caseID];
$case->title = htmlspecialchars($this->post->titles[$caseID]);
$case->type = $this->post->types[$caseID];
$case->stage = implode(',', $this->post->stages[$caseID]);
$cases[$caseID] = $case;
unset($case);
}
/* Update cases. */
foreach($cases as $caseID => $case)
{
$oldCase = $this->getByID($caseID);
$this->dao->update(TABLE_CASE)->data($case)
->autoCheck()
->batchCheck($this->config->testcase->edit->requiredFields, 'notempty')
->where('id')->eq($caseID)
->exec();
if(!dao::isError())
{
unset($oldCase->steps);
$allChanges[$caseID] = common::createChanges($oldCase, $case);
}
else
{
die(js::error('case#' . $caseID . dao::getError(true)));
}
}
}
return $allChanges;
}
/**
* Join steps to a string, thus can diff them.
*