From 4632027f9c82a0c72852095fcaedb3f8ee1e7d0c Mon Sep 17 00:00:00 2001 From: daitingting Date: Wed, 9 Nov 2022 07:58:34 +0000 Subject: [PATCH] * Finish task #75241. --- module/release/control.php | 14 ++++++-------- module/release/js/create.js | 21 ++++++++++++++++----- module/release/model.php | 13 ++++++++----- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/module/release/control.php b/module/release/control.php index 703873896b..5290cd37eb 100644 --- a/module/release/control.php +++ b/module/release/control.php @@ -126,10 +126,10 @@ class release extends control if(!empty($changes)) $this->action->logHistory($actionID, $changes); } - $message = $this->executeHooks($releaseID); - if($message) $this->lang->saveSuccess = $message; + $result = $this->executeHooks($releaseID); + $message = $result ? $result : $this->lang->saveSuccess; - return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('view', "releaseID=$releaseID"))); + return $this->send(array('result' => 'success', 'message' => $message, 'locate' => inlink('view', "releaseID=$releaseID"))); } $this->loadModel('story'); $this->loadModel('bug'); @@ -137,11 +137,10 @@ class release extends control /* Get release and build. */ $release = $this->release->getById((int)$releaseID); - $this->commonAction($release->product, $release->branch); - $build = $this->build->getById($release->build); + $this->commonAction($release->product); - $builds = $this->loadModel('build')->getBuildPairs($release->product, $release->branch, 'notrunk|withbranch', $release->project, 'project', $release->build, false); - $releasedBuilds = $this->release->getReleasedBuilds($release->product, $release->branch); + $builds = $this->loadModel('build')->getBuildPairs($release->product, $release->branch, 'notrunk|withbranch', 0, 'project', $release->build, false); + $releasedBuilds = $this->release->getReleasedBuilds($release->product); foreach($releasedBuilds as $releasedBuild) { if($releasedBuild != $build->id) unset($builds[$releasedBuild]); @@ -151,7 +150,6 @@ class release extends control $this->view->title = $this->view->product->name . $this->lang->colon . $this->lang->release->edit; $this->view->position[] = $this->lang->release->edit; $this->view->release = $release; - $this->view->build = $build; $this->view->builds = $builds; $this->view->users = $this->loadModel('user')->getPairs('noclosed'); diff --git a/module/release/js/create.js b/module/release/js/create.js index 77bfc50522..1b64abc7c2 100644 --- a/module/release/js/create.js +++ b/module/release/js/create.js @@ -1,10 +1,21 @@ $('#submit').click(function() { - var dateFormat = new RegExp(/^\d{4}\-\d{2}\-\d{2}$/); - var name = $('#name').val(); - var date = $('#date').val(); - var build = $('#build').val(); - if(name && build && typeof(notEmptyBuilds[build]) != 'undefined' && dateFormat.test(date)) + var dateFormat = new RegExp(/^\d{4}\-\d{2}\-\d{2}$/); + var name = $('#name').val(); + var date = $('#date').val(); + var build = $('#build').val(); + var notEmptyBuild = false; + + $.each(build, function(index, value) + { + if(typeof(notEmptyBuilds[value]) != 'undefined') + { + notEmptyBuild = true; + return false; + } + }) + + if(name && build && notEmptyBuild && dateFormat.test(date)) { var result = confirm(confirmLink) ? true : false; $('#sync').val(result); diff --git a/module/release/model.php b/module/release/model.php index 212bf022e7..2bc9b38064 100644 --- a/module/release/model.php +++ b/module/release/model.php @@ -264,11 +264,9 @@ class releaseModel extends model /* Init vars. */ $releaseID = (int)$releaseID; $oldRelease = $this->getById($releaseID); - $branch = $this->dao->select('branch')->from(TABLE_BUILD)->where('id')->eq((int)$this->post->build)->fetch('branch'); $release = fixer::input('post')->stripTags($this->config->release->editor->edit['id'], $this->config->allowedTags) ->add('id', $releaseID) - ->add('branch', (int)$branch) ->setDefault('mailto', '') ->setDefault('deleteFiles', array()) ->join('mailto', ',') @@ -282,9 +280,14 @@ class releaseModel extends model /* update release project and branch */ if($release->build) { - $buildInfo = $this->dao->select('project, branch')->from(TABLE_BUILD)->where('id')->eq($release->build)->fetch(); - $release->branch = $buildInfo->branch; - $release->project = $buildInfo->project; + $builds = $this->dao->select('project, branch')->from(TABLE_BUILD)->where('id')->in($release->build)->fetchAll(); + foreach($builds as $build) + { + $branches[$build->branch] = $build->branch; + $projects[$build->project] = $build->project; + } + $release->branch = implode(',', $branches); + $release->project = implode(',', $projects); } $this->dao->update(TABLE_RELEASE)->data($release, 'deleteFiles')