diff --git a/module/bug/zen.php b/module/bug/zen.php index 45f60b9aa2..7de883961d 100644 --- a/module/bug/zen.php +++ b/module/bug/zen.php @@ -204,6 +204,55 @@ class bugZen extends bug return array($moduleID, $queryID, $realOrderBy, $pager); } + /** + * 处理更新请求数据。 + * Processing request data. + * + * @param form $formData + * @param object $oldBug + * @access protected + * @return object|false + */ + protected function prepareEditExtras(form $formData, object $oldBug): object|false + { + if(!empty($_POST['lastEditedDate']) and $oldBug->lastEditedDate != $this->post->lastEditedDate) + { + dao::$errors[] = $this->lang->error->editedByOther; + return false; + } + + $now = helper::now(); + $bug = $formData->add('id', $oldBug->id) + ->setDefault('product', $oldBug->product) + ->setDefault('deleteFiles', array()) + ->setDefault('lastEditedBy', $this->app->user->account) + ->add('lastEditedDate', $now) + ->join('openedBuild,mailto,linkBug,os,browser', ',') + ->setIF($formData->data->assignedTo != $oldBug->assignedTo, 'assignedDate', $now) + ->setIF($formData->data->resolvedBy != '' && $formData->data->resolvedDate == '', 'resolvedDate', $now) + ->setIF($formData->data->resolution != '' && $formData->data->resolvedDate == '', 'resolvedDate', $now) + ->setIF($formData->data->resolution != '' && $formData->data->resolvedBy == '', 'resolvedBy', $this->app->user->account) + ->setIF($formData->data->closedDate != '' && $formData->data->closedBy == '', 'closedBy', $this->app->user->account) + ->setIF($formData->data->closedBy != '' && $formData->data->closedDate == '', 'closedDate', $now) + ->setIF($formData->data->closedBy != '' || $formData->data->closedDate != '', 'assignedTo', 'closed') + ->setIF($formData->data->closedBy != '' || $formData->data->closedDate != '', 'assignedDate', $now) + ->setIF($formData->data->resolution != '' || $formData->data->resolvedDate != '', 'status', 'resolved') + ->setIF($formData->data->closedBy != '' || $formData->data->closedDate != '', 'status', 'closed') + ->setIF(($formData->data->resolution != '' || $formData->data->resolvedDate != '') && $formData->data->assignedTo == '', 'assignedTo', $oldBug->openedBy) + ->setIF(($formData->data->resolution != '' || $formData->data->resolvedDate != '') && $formData->data->assignedTo == '', 'assignedDate', $now) + ->setIF($formData->data->resolution == '' && $formData->data->resolvedDate == '', 'status', 'active') + ->setIF($formData->data->resolution != '' && $formData->data->resolution != 'duplicate', 'duplicateBug', 0) + ->setIF($formData->data->assignedTo == '' && $oldBug->status == 'closed', 'assignedTo', 'closed') + ->setIF($formData->data->resolution != '', 'confirmed', 1) + ->setIF($formData->data->story && $formData->data->story != $oldBug->story, 'storyVersion', $this->loadModel('story')->getVersion($formData->data->story)) + ->stripTags($this->config->bug->editor->edit['id'], $this->config->allowedTags) + ->get(); + + $bug = $this->loadModel('file')->processImgURL($bug, $this->config->bug->editor->create['id'], $bug->uid); + + return $bug; + } + /** * 设置列表页面的搜索表单。 * Build browse search form. @@ -290,7 +339,46 @@ class bugZen extends bug $this->display(); } + /** + * 批量创建bug前处理上传图片。 + * Before batch creating bugs, process the uploaded images. + * + * @param object $bug + * @param string $uploadImage + * @param array|bool $bugImagesFiles + * @access protected + * @return array|false + */ + protected function processImageForBatchCreate(object $bug, string $uploadImage, array|bool $bugImagesFiles): array|false + { + /* When the bug is created by uploading an image, add the image to the step of the bug. */ + if(!empty($uploadImage)) + { + $this->loadModel('file'); + $file = $bugImagesFiles[$uploadImage]; + $realPath = $file['realpath']; + + if(rename($realPath, $this->file->savePath . $this->file->getSaveName($file['pathname']))) + { + if(in_array($file['extension'], $this->config->file->imageExtensions)) + { + $file['addedBy'] = $this->app->user->account; + $file['addedDate'] = helper::now(); + $this->dao->insert(TABLE_FILE)->data($file, 'realpath')->exec(); + + $fileID = $this->dao->lastInsertID(); + $bug->steps .= ''; + } + } + else + { + unset($file); + } + } + + return !empty($file) ? $file : false; + } /** * 创建bug后存储上传的文件。 @@ -355,56 +443,6 @@ class bugZen extends bug if($from && is_callable(array($this, $this->config->bug->fromObjects[$from]['callback']))) call_user_func(array($this, $this->config->bug->fromObjects[$from]['callback']), $bugID); } - - /** - * 处理更新请求数据。 - * Processing request data. - * - * @param form $formData - * @param object $oldBug - * @access protected - * @return object|false - */ - protected function prepareEditExtras(form $formData, object $oldBug): object|false - { - if(!empty($_POST['lastEditedDate']) and $oldBug->lastEditedDate != $this->post->lastEditedDate) - { - dao::$errors[] = $this->lang->error->editedByOther; - return false; - } - - $now = helper::now(); - $bug = $formData->add('id', $oldBug->id) - ->setDefault('product', $oldBug->product) - ->setDefault('deleteFiles', array()) - ->setDefault('lastEditedBy', $this->app->user->account) - ->add('lastEditedDate', $now) - ->join('openedBuild,mailto,linkBug,os,browser', ',') - ->setIF($formData->data->assignedTo != $oldBug->assignedTo, 'assignedDate', $now) - ->setIF($formData->data->resolvedBy != '' && $formData->data->resolvedDate == '', 'resolvedDate', $now) - ->setIF($formData->data->resolution != '' && $formData->data->resolvedDate == '', 'resolvedDate', $now) - ->setIF($formData->data->resolution != '' && $formData->data->resolvedBy == '', 'resolvedBy', $this->app->user->account) - ->setIF($formData->data->closedDate != '' && $formData->data->closedBy == '', 'closedBy', $this->app->user->account) - ->setIF($formData->data->closedBy != '' && $formData->data->closedDate == '', 'closedDate', $now) - ->setIF($formData->data->closedBy != '' || $formData->data->closedDate != '', 'assignedTo', 'closed') - ->setIF($formData->data->closedBy != '' || $formData->data->closedDate != '', 'assignedDate', $now) - ->setIF($formData->data->resolution != '' || $formData->data->resolvedDate != '', 'status', 'resolved') - ->setIF($formData->data->closedBy != '' || $formData->data->closedDate != '', 'status', 'closed') - ->setIF(($formData->data->resolution != '' || $formData->data->resolvedDate != '') && $formData->data->assignedTo == '', 'assignedTo', $oldBug->openedBy) - ->setIF(($formData->data->resolution != '' || $formData->data->resolvedDate != '') && $formData->data->assignedTo == '', 'assignedDate', $now) - ->setIF($formData->data->resolution == '' && $formData->data->resolvedDate == '', 'status', 'active') - ->setIF($formData->data->resolution != '' && $formData->data->resolution != 'duplicate', 'duplicateBug', 0) - ->setIF($formData->data->assignedTo == '' && $oldBug->status == 'closed', 'assignedTo', 'closed') - ->setIF($formData->data->resolution != '', 'confirmed', 1) - ->setIF($formData->data->story && $formData->data->story != $oldBug->story, 'storyVersion', $this->loadModel('story')->getVersion($formData->data->story)) - ->stripTags($this->config->bug->editor->edit['id'], $this->config->allowedTags) - ->get(); - - $bug = $this->loadModel('file')->processImgURL($bug, $this->config->bug->editor->create['id'], $bug->uid); - - return $bug; - } - /** * 更新完 bug 后的相关处理。 * Relevant processing after updating bug. @@ -494,46 +532,7 @@ class bugZen extends bug return $this->send(array('result' => 'success', 'message' => $message, 'closeModal' => true, 'load' => $this->createLink('bug', 'view', "bugID=$bugID"))); } - /** - * 批量创建bug前处理上传图片。 - * Before batch creating bugs, process the uploaded images. - * - * @param object $bug - * @param string $uploadImage - * @param array|bool $bugImagesFiles - * @access protected - * @return array|false - */ - protected function processImageForBatchCreate(object $bug, string $uploadImage, array|bool $bugImagesFiles): array|false - { - /* When the bug is created by uploading an image, add the image to the step of the bug. */ - if(!empty($uploadImage)) - { - $this->loadModel('file'); - $file = $bugImagesFiles[$uploadImage]; - $realPath = $file['realpath']; - - if(rename($realPath, $this->file->savePath . $this->file->getSaveName($file['pathname']))) - { - if(in_array($file['extension'], $this->config->file->imageExtensions)) - { - $file['addedBy'] = $this->app->user->account; - $file['addedDate'] = helper::now(); - $this->dao->insert(TABLE_FILE)->data($file, 'realpath')->exec(); - - $fileID = $this->dao->lastInsertID(); - $bug->steps .= ''; - } - } - else - { - unset($file); - } - } - - return !empty($file) ? $file : false; - } /** * 批量创建bug后的其他处理。