* Bug batchChangeModule
This commit is contained in:
+11
-15
@@ -704,30 +704,25 @@ class bug extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改bug所属模块。
|
||||
* Batch change the module of bug.
|
||||
*
|
||||
* @param int $moduleID
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function batchChangeModule($moduleID)
|
||||
public function batchChangeModule(int $moduleID)
|
||||
{
|
||||
if($this->post->bugIDList)
|
||||
{
|
||||
$bugIDList = $this->post->bugIDList;
|
||||
$bugIDList = array_unique($bugIDList);
|
||||
unset($_POST['bugIDList']);
|
||||
$allChanges = $this->bug->batchChangeModule($bugIDList, $moduleID);
|
||||
if(dao::isError()) return print(js::error(dao::getError()));
|
||||
foreach($allChanges as $bugID => $changes)
|
||||
{
|
||||
$this->loadModel('action');
|
||||
$actionID = $this->action->create('bug', $bugID, 'Edited');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
$bugIdList = $this->post->bugIDList;
|
||||
$bugIdList = array_unique($bugIdList);
|
||||
|
||||
$this->bug->batchChangeModule($bugIdList, $moduleID);
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
}
|
||||
$this->loadModel('score')->create('ajax', 'batchOther');
|
||||
return print(js::locate($this->session->bugList, 'parent'));
|
||||
return array('load' => $this->session->bugList, 'closeModal' => true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -948,6 +943,7 @@ class bug extends control
|
||||
}
|
||||
|
||||
/**
|
||||
* 激活一个bug。
|
||||
* Activate a bug.
|
||||
*
|
||||
* @param int $bugID
|
||||
@@ -955,7 +951,7 @@ class bug extends control
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function activate($bugID, $extra = '')
|
||||
public function activate(int $bugID, string $extra = '')
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
@@ -1155,7 +1151,7 @@ class bug extends control
|
||||
$extendFields = $this->bug->getFlowExtendFields();
|
||||
foreach($extendFields as $extendField) $postExtendData[$extendField->field] = $this->post->{$extendField->field};
|
||||
|
||||
$activateBugs = $this->bug->batchActivate($activateData, $postExtendData);
|
||||
$this->bug->batchActivate($activateData, $postExtendData);
|
||||
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
|
||||
$this->loadModel('score')->create('ajax', 'batchOther');
|
||||
|
||||
+17
-9
@@ -1022,32 +1022,40 @@ class bugModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改bug所属模块。
|
||||
* Batch change the module of bug.
|
||||
*
|
||||
* @param array $bugIDList
|
||||
* @param array $bugIdList
|
||||
* @param int $moduleID
|
||||
* @access public
|
||||
* @return array
|
||||
* @return bool
|
||||
*/
|
||||
public function batchChangeModule($bugIDList, $moduleID)
|
||||
public function batchChangeModule(array $bugIdList, int $moduleID): bool
|
||||
{
|
||||
$now = helper::now();
|
||||
$allChanges = array();
|
||||
$oldBugs = $this->getByList($bugIDList);
|
||||
foreach($bugIDList as $bugID)
|
||||
$this->loadModel('action');
|
||||
$now = helper::now();
|
||||
$oldBugs = $this->getByIdList($bugIdList);
|
||||
|
||||
foreach($bugIdList as $bugID)
|
||||
{
|
||||
$oldBug = $oldBugs[$bugID];
|
||||
if($moduleID == $oldBug->module) continue;
|
||||
|
||||
/* Change the module of bug. */
|
||||
$bug = new stdclass();
|
||||
$bug->lastEditedBy = $this->app->user->account;
|
||||
$bug->lastEditedDate = $now;
|
||||
$bug->module = $moduleID;
|
||||
|
||||
$this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec();
|
||||
if(!dao::isError()) $allChanges[$bugID] = common::createChanges($oldBug, $bug);
|
||||
if(dao::isError()) return false;
|
||||
|
||||
/* Record logs. */
|
||||
$changes = common::createChanges($oldBug, $bug);
|
||||
$actionID = $this->action->create('bug', $bugID, 'Edited');
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
return $allChanges;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1075,9 +1075,9 @@ class bugTest
|
||||
*/
|
||||
public function batchChangeModuleTest($bugIDList, $moduleID, $bugID)
|
||||
{
|
||||
$bugs = $this->objectModel->getByIdList($bugIDList);
|
||||
$oldBugs = $this->objectModel->getByIdList($bugIDList);
|
||||
|
||||
$object = $this->objectModel->batchChangeModule($bugIDList, $moduleID, $bugs);
|
||||
$this->objectModel->batchChangeModule($bugIDList, $moduleID);
|
||||
|
||||
if(dao::isError())
|
||||
{
|
||||
@@ -1085,7 +1085,12 @@ class bugTest
|
||||
}
|
||||
else
|
||||
{
|
||||
return !empty($object[$bugID]) ? $object[$bugID] : 0;
|
||||
$newBugs = $this->objectModel->getByIdList($bugIDList);
|
||||
if(!empty($newBugs[$bugID]))
|
||||
{
|
||||
$changes = common::createChanges($oldBugs[$bugID], $newBugs[$bugID]);
|
||||
return $changes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,41 +2,127 @@
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . "/test/lib/init.php";
|
||||
include dirname(__FILE__, 2) . '/bug.class.php';
|
||||
su('admin');
|
||||
su('user1');
|
||||
|
||||
/**
|
||||
|
||||
title=测试bugModel->batchChangeModule();
|
||||
timeout=0
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
修改bug1 2模块为0 >> module,1821,0
|
||||
修改bug1 2模块为8 >> module,0,8
|
||||
修改bug1 2模块为9 >> module,8,9
|
||||
修改bug1 2模块为10 >> module,9,10
|
||||
修改bug1 2模块为11 >> module,10,11
|
||||
修改bug1 2模块为11 未发生变化 >> 0
|
||||
修改bug1 3模块为0 >> module,11,0
|
||||
修改bug1 3模块为8 >> module,0,8
|
||||
修改bug1 3模块为9 >> module,8,9
|
||||
修改bug1 3模块为10 >> module,9,10
|
||||
修改bug1 3模块为11 >> module,10,11
|
||||
修改bug1 3模块为11 未发生变化 >> 0
|
||||
修改bug1 4模块为0 >> module,11,0
|
||||
修改bug1 4模块为8 >> module,0,8
|
||||
修改bug1 4模块为9 >> module,8,9
|
||||
修改bug1 4模块为10 >> module,9,10
|
||||
修改bug1 4模块为11 >> module,10,11
|
||||
修改bug1 4模块为11 未发生变化 >> 0
|
||||
修改bug2 3模块为0 >> module,11,0
|
||||
修改bug2 3模块为8 >> module,0,8
|
||||
修改bug2 3模块为9 >> module,8,9
|
||||
修改bug2 3模块为10 >> module,9,10
|
||||
修改bug2 3模块为11 >> module,10,11
|
||||
修改bug2 3模块为11 未发生变化 >> 0
|
||||
- 修改bug1 2模块为0
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @1821
|
||||
- 第0条的new属性 @0
|
||||
|
||||
- 修改bug1 2模块为8
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @0
|
||||
- 第0条的new属性 @8
|
||||
|
||||
- 修改bug1 2模块为9
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @8
|
||||
- 第0条的new属性 @9
|
||||
|
||||
- 修改bug1 2模块为10
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @9
|
||||
- 第0条的new属性 @10
|
||||
|
||||
- 修改bug1 2模块为11
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @10
|
||||
- 第0条的new属性 @11
|
||||
|
||||
- 修改bug1 2模块为11 未发生变化 @0
|
||||
|
||||
- 修改bug1 3模块为0
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @11
|
||||
- 第0条的new属性 @0
|
||||
|
||||
- 修改bug1 3模块为8
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @0
|
||||
- 第0条的new属性 @8
|
||||
|
||||
- 修改bug1 3模块为9
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @8
|
||||
- 第0条的new属性 @9
|
||||
|
||||
- 修改bug1 3模块为10
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @9
|
||||
- 第0条的new属性 @10
|
||||
|
||||
- 修改bug1 3模块为11
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @10
|
||||
- 第0条的new属性 @11
|
||||
|
||||
- 修改bug1 3模块为11 未发生变化 @0
|
||||
|
||||
- 修改bug1 4模块为0
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @11
|
||||
- 第0条的new属性 @0
|
||||
|
||||
- 修改bug1 4模块为8
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @0
|
||||
- 第0条的new属性 @8
|
||||
|
||||
- 修改bug1 4模块为9
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @8
|
||||
- 第0条的new属性 @9
|
||||
|
||||
- 修改bug1 4模块为10
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @9
|
||||
- 第0条的new属性 @10
|
||||
|
||||
- 修改bug1 4模块为11
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @10
|
||||
- 第0条的new属性 @11
|
||||
|
||||
- 修改bug1 4模块为11 未发生变化 @0
|
||||
|
||||
- 修改bug2 3模块为0
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @11
|
||||
- 第0条的new属性 @0
|
||||
|
||||
- 修改bug2 3模块为8
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @0
|
||||
- 第0条的new属性 @8
|
||||
|
||||
- 修改bug2 3模块为9
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @8
|
||||
- 第0条的new属性 @9
|
||||
|
||||
- 修改bug2 3模块为10
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @9
|
||||
- 第0条的new属性 @10
|
||||
|
||||
- 修改bug2 3模块为11
|
||||
- 第0条的field属性 @module
|
||||
- 第0条的old属性 @10
|
||||
- 第0条的new属性 @11
|
||||
|
||||
- 修改bug2 3模块为11 未发生变化 @0
|
||||
|
||||
*/
|
||||
|
||||
zdTable('bug')->gen(10);
|
||||
zdTable('module')->gen(20);
|
||||
|
||||
$bugIDList1 = array('1', '2');
|
||||
$bugIDList2 = array('1', '3');
|
||||
$bugIDList3 = array('1', '4');
|
||||
@@ -68,4 +154,4 @@ r($bug->batchChangeModuleTest($bugIDList4, $moduleList[1], $bugIDList4[1])) && p
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[2], $bugIDList4[0])) && p('0:field,old,new') && e('module,8,9'); // 修改bug2 3模块为9
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[3], $bugIDList4[1])) && p('0:field,old,new') && e('module,9,10'); // 修改bug2 3模块为10
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[4], $bugIDList4[0])) && p('0:field,old,new') && e('module,10,11'); // 修改bug2 3模块为11
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[4], $bugIDList4[1])) && p() && e('0'); // 修改bug2 3模块为11 未发生变化
|
||||
r($bug->batchChangeModuleTest($bugIDList4, $moduleList[4], $bugIDList4[1])) && p() && e('0'); // 修改bug2 3模块为11 未发生变化
|
||||
Reference in New Issue
Block a user