From 62070301f403eebea2eb5e981cdeb47554c92533 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 3 Jan 2023 17:04:09 +0800 Subject: [PATCH] * Code for task#81779. --- module/bug/control.php | 1 + module/bug/model.php | 23 +++++++++++++++++++++-- module/bug/view/create.html.php | 11 ++++++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/module/bug/control.php b/module/bug/control.php index eb6b86c45f..b49a67aedd 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -665,6 +665,7 @@ class bug extends control $this->view->storyID = $storyID; $this->view->buildID = $buildID; $this->view->caseID = $caseID; + $this->view->caseFiles = isset($caseFiles) ? $caseFiles : array(); $this->view->runID = $runID; $this->view->version = $version; $this->view->testtask = $testtask; diff --git a/module/bug/model.php b/module/bug/model.php index 64fb3747d1..748057d086 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -78,7 +78,7 @@ class bugModel extends model ->join('mailto', ',') ->join('os', ',') ->join('browser', ',') - ->remove('files,labels,uid,oldTaskID,contactListMenu,region,lane,ticket') + ->remove('files,labels,uid,oldTaskID,contactListMenu,region,lane,ticket,deleteFiles,caseFiles') ->get(); /* Check repeat bug. */ @@ -98,6 +98,23 @@ class bugModel extends model { $bugID = $this->dao->lastInsertID(); + if(isset($_POST['caseFiles'])) + { + $caseFiles = $_POST['caseFiles']; + if(isset($_POST['deleteFiles'])) + { + foreach($_POST['deleteFiles'] as $deletedCaseFileID) $caseFiles = trim(str_replace(",$deletedCaseFileID,", ',', ",$caseFiles,"), ','); + } + $files = $this->dao->select('*')->from(TABLE_FILE)->where('id')->in($caseFiles)->fetchAll('id'); + foreach($files as $file) + { + unset($file->id); + $file->objectType = 'bug'; + $file->objectID = $bugID; + $this->dao->insert(TABLE_FILE)->data($file)->exec(); + } + } + $this->file->updateObjectID($this->post->uid, $bugID, 'bug'); $this->file->saveUpload('bug', $bugID); empty($bug->case) ? $this->loadModel('score')->create('bug', 'create', $bugID) : $this->loadModel('score')->create('bug', 'createFormCase', $bug->case); @@ -2279,7 +2296,9 @@ class bugModel extends model if(!$executionID and $caseID > 0) $executionID = isset($run->case->execution) ? $run->case->execution : 0; // Fix feedback #1043. if(!$executionID and $this->app->tab == 'execution') $executionID = $this->session->execution; - return array('title' => $title, 'steps' => $bugSteps, 'storyID' => $run->case->story, 'moduleID' => $run->case->module, 'version' => $run->case->version, 'executionID' => $executionID); + $caseFiles = $caseID ? $this->loadModel('file')->getByObject('testcase', $caseID) : array(); + + return array('title' => $title, 'steps' => $bugSteps, 'storyID' => $run->case->story, 'moduleID' => $run->case->module, 'version' => $run->case->version, 'executionID' => $executionID, 'caseFiles' => $caseFiles); } /** diff --git a/module/bug/view/create.html.php b/module/bug/view/create.html.php index 825a86fb40..732402cf5e 100644 --- a/module/bug/view/create.html.php +++ b/module/bug/view/create.html.php @@ -365,7 +365,16 @@ if($this->app->tab == 'project') js::set('objectID', $projectID); printExtendFields('', 'table');?> bug->files;?> - fetch('file', 'buildform', 'fileCount=1&percent=0.85');?> + + fetch('file', 'printFiles', array('files' => $caseFiles, 'fieldset' => 'false', 'object' => null, 'method' => 'edit')); + echo html::hidden('caseFiles', implode(',', array_keys($caseFiles))); + } + ?> + fetch('file', 'buildform', 'fileCount=1&percent=0.85');?> +