* Add prepare data function of bug-resolve.

This commit is contained in:
liumengyi
2023-05-16 09:35:06 +08:00
parent d119a1ad4c
commit cb1765a5e8
4 changed files with 28 additions and 11 deletions
+3 -3
View File
@@ -96,15 +96,15 @@ $config->bug->form->assignTo['lastEditedDate'] = array('required' => false, 'typ
$config->bug->form->assignTo['mailto'] = array('required' => false, 'type' => 'array', 'default' => array(''), 'filter' => 'join');
$config->bug->form->resolve = array();
$config->bug->form->resolve['status'] = array('required' => false, 'type' => 'string', 'default' => 'resolved');
$config->bug->form->resolve['resolvedBy'] = array('required' => false, 'type' => 'string', 'default' => '');
$config->bug->form->resolve['resolvedBy'] = array('required' => false, 'type' => 'string', 'default' => $app->user->account);
$config->bug->form->resolve['resolvedDate'] = array('required' => false, 'type' => 'string', 'default' => helper::now());
$config->bug->form->resolve['assignedTo'] = array('required' => false, 'type' => 'string', 'default' => '');
$config->bug->form->resolve['assignedDate'] = array('required' => false, 'type' => 'string', 'default' => helper::now());
$config->bug->form->resolve['lastEditedBy'] = array('required' => false, 'type' => 'string', 'default' => $app->user->account);
$config->bug->form->resolve['lastEditedDate'] = array('required' => false, 'type' => 'string', 'default' => helper::now());
$config->bug->form->resolve['confirmed'] = array('required' => false, 'type' => 'int', 'default' => 1);
$config->bug->form->resolve['duplicateBug'] = array('required' => false, 'type' => 'int', 'default' => 0);
$config->bug->form->resolve['buildName'] = array('required' => false, 'type' => 'string', 'default' => '');
$config->bug->form->resolve['createBuild'] = array('required' => false, 'type' => 'int', 'default' => 0);
$config->bug->form->resolve['buildExecution'] = array('required' => false, 'type' => 'int', 'default' => 0);
$config->bug->form->resolve['comment'] = array('required' => false, 'type' => 'string', 'default' => '');
$config->bug->form->resolve['uid'] = array('required' => false, 'type' => 'string', 'default' => '');
+1 -2
View File
@@ -978,8 +978,7 @@ class bug extends control
/* Init bug data. */
$postData = form::data($this->config->bug->form->resolve);
$bug = $postData->data;
$bug->id = $bugID;
$bug = $this->bugZen->prepareResolve($postData, $bug);
$changes = $this->bug->resolve($bug, $output);
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
+2 -4
View File
@@ -857,10 +857,8 @@ class bugModel extends model
*/
public function resolve(object $bug, array $output = array()): array|false
{
/* Construct bug data. */
$now = helper::now();
/* Get old bug. */
$oldBug = $this->getById($bug->id);
$bug = $this->loadModel('file')->processImgURL($bug, $this->config->bug->editor->resolve['id'], $this->post->uid);
/* Set comment lang for alert error. */
$this->lang->bug->comment = $this->lang->comment;
@@ -930,7 +928,7 @@ class bugModel extends model
}
/* Update bug. */
$this->dao->update(TABLE_BUG)->data($bug, 'buildName,createBuild,buildExecution,comment')
$this->dao->update(TABLE_BUG)->data($bug, 'buildName,createBuild,buildExecution,comment,uid')
->autoCheck()
->batchCheck($this->config->bug->resolve->requiredFields, 'notempty')
->checkIF($bug->resolution == 'duplicate', 'duplicateBug', 'notempty')
+22 -2
View File
@@ -1603,6 +1603,27 @@ class bugZen extends bug
return $users;
}
/**
* Prepare to resolve a bug.
*
* @param object $postData
* @param object $oldBug
* @access protected
* @return object
*/
protected function prepareResolve(object $postData, object $oldBug): object
{
$bug = $postData
->setDefault('assignedTo', $oldBug->openedBy)
->add('id', $oldBug->id)
->add('status', 'resolved')
->add('confirmed', 1)
->removeIF($this->post->resolution != 'duplicate', 'duplicateBug')
->get();
return $this->loadModel('file')->processImgURL($bug, $this->config->bug->editor->resolve['id'], $postData->get('uid'));
}
/**
* 解决成功后的相关处理。
* Relevant processing after resolving bug.
@@ -1623,13 +1644,12 @@ class bugZen extends bug
/* Move bug card in kanban. */
if($bug->execution)
{
$this->loadModel('kanban');
if(!isset($output['toColID'])) $this->loadModel('kanban')->updateLane($bug->execution, 'bug', $bug->id);
if(isset($output['toColID'])) $this->loadModel('kanban')->moveCard($bug->id, $output['fromColID'], $output['toColID'], $output['fromLaneID'], $output['toLaneID']);
}
/* Link bug to build and release. */
$this->linkBugToBuild($bug->id, $bug->resolvedBuild);
$this->bug->linkBugToBuild($bug->id, $bug->resolvedBuild);
/* Save files. */
$files = $this->loadModel('file')->saveUpload('bug', $bug->id);