* Fix bug #50254, get files from results.

This commit is contained in:
liumengyi
2024-05-28 17:27:48 +08:00
parent d8129c5a67
commit 39b11ac64c
2 changed files with 17 additions and 12 deletions
+5 -1
View File
@@ -6,6 +6,8 @@ global $lang, $app;
$isShadowProduct = data('product.shadow');
$noMultipleProject = data('project.multiple') === '0';
$isOriginalProduct = (int)data('bug.productID') === (int)data('productID');
$resultFiles = data('resultFiles');
$resultFiles = array_values($resultFiles);
$fields = defineFieldList('bug.create', 'bug');
@@ -50,7 +52,7 @@ $fields->field('steps')
$fields->field('files')
->width('full')
->control('fileSelector', array('defaultFiles' => data('resultFiles')));
->control('fileSelector', array('defaultFiles' => $resultFiles));
$fields->field('story')->foldable();
@@ -72,4 +74,6 @@ $fields->field('module')->className($isShadowProduct ? 'w-1/2' : 'w-1/4')->class
$fields->field('openedBuild')->className($isShadowProduct ? 'w-1/2' : 'w-1/4')->className('full:w-1/2');
$fields->field('resultFiles')->control('hidden')->value(data('resultFiles'));
if($isShadowProduct && !$isOriginalProduct) $fields->moveAfter('module', 'product');
+12 -11
View File
@@ -1103,7 +1103,7 @@ class bugZen extends bug
$this->view->allBuilds = !empty($bug->allBuilds) ? $bug->allBuilds : '';
$this->view->allUsers = !empty($bug->allUsers) ? $bug->allUsers : '';
$this->view->releasedBuilds = $this->loadModel('release')->getReleasedBuilds((int)$bug->productID, (string)$bug->branch);
$this->view->resultFiles = array_values($resultFiles);
$this->view->resultFiles = $resultFiles;
$this->view->contactList = $this->loadModel('user')->getContactLists();
$this->view->branchID = $bug->branch != 'all' ? $bug->branch : '0';
}
@@ -1822,25 +1822,26 @@ class bugZen extends bug
*/
private function updateFileAfterCreate(int $bugID): bool
{
if(isset($this->post->resultFiles))
$this->loadModel('file');
if(!empty($_POST['resultFiles']))
{
$resultFiles = $this->post->resultFiles;
if(isset($this->post->deleteFiles))
if($resultFiles) $resultFiles = json_decode($resultFiles, true);
if(!empty($_POST['deleteFiles']))
{
foreach($this->post->deleteFiles as $deletedCaseFileID) $resultFiles = trim(str_replace(",$deletedCaseFileID,", ',', ",$resultFiles,"), ',');
foreach($this->post->deleteFiles as $deletedCaseFileID) unset($resultFiles[$deletedCaseFileID]);
}
$files = $this->dao->select('*')->from(TABLE_FILE)->where('id')->in($resultFiles)->fetchAll('id');
foreach($files as $file)
foreach($resultFiles as $file)
{
unset($file->id);
$file->objectType = 'bug';
$file->objectID = $bugID;
$this->dao->insert(TABLE_FILE)->data($file)->exec();
unset($file['id']);
$file['objectType'] = 'bug';
$file['objectID'] = $bugID;
$this->file->saveFile($file, 'url,deleted,realPath,webPath,name,url,extra');
}
}
$uid = $this->post->uid ? $this->post->uid : '';
$this->loadModel('file')->updateObjectID($uid, $bugID, 'bug');
$this->file->updateObjectID($uid, $bugID, 'bug');
$this->file->saveUpload('bug', $bugID);
return !dao::isError();