From 31b5499c4fdc0e5e0c1bf37cbccef79b2bfb734c Mon Sep 17 00:00:00 2001 From: zenggang Date: Fri, 21 Jul 2023 08:51:07 +0000 Subject: [PATCH] * Mr approval page and fix bug#36601,36598,36319 --- module/job/js/edit.ui.js | 5 ++++ module/job/model.php | 1 + module/mr/config.php | 3 +-- module/mr/control.php | 4 +-- module/mr/model.php | 2 +- module/mr/ui/approval.html.php | 49 ++++++++++++++++++++++++++++++++++ module/mr/ui/create.html.php | 6 +++++ module/mr/ui/view.html.php | 8 +++++- 8 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 module/mr/ui/approval.html.php diff --git a/module/job/js/edit.ui.js b/module/job/js/edit.ui.js index 019a2e2a66..a8284a8f7a 100644 --- a/module/job/js/edit.ui.js +++ b/module/job/js/edit.ui.js @@ -193,4 +193,9 @@ $(document).ready(function() { changeEngine(engine); $('[name=triggerType]').val(job.triggerType).trigger('change'); + + $(document).on('click', '.dropmenu-list li.tree-item', function() + { + $('#jkTask').val($('#pipelineDropmenu button.dropmenu-btn').data('value')); + }); }); diff --git a/module/job/model.php b/module/job/model.php index 3ec19523a3..6cec9444b9 100644 --- a/module/job/model.php +++ b/module/job/model.php @@ -180,6 +180,7 @@ class jobModel extends model ->add('createdBy', $this->app->user->account) ->add('createdDate', helper::now()) ->remove('repoType,reference') + ->cleanInt('product') ->get(); if($job->engine == 'jenkins') diff --git a/module/mr/config.php b/module/mr/config.php index 515473cc77..1e9dce8b52 100644 --- a/module/mr/config.php +++ b/module/mr/config.php @@ -60,7 +60,6 @@ $config->mr->actionList['delete']['data-confirm'] = $lang->mr->confirmDelete; $config->mr->actionList['accept']['icon'] = 'flow'; $config->mr->actionList['accept']['text'] = $lang->mr->acceptMR; $config->mr->actionList['accept']['url'] = helper::createLink('mr', 'accept', "MRID={id}"); -$config->mr->actionList['accept']['data-toggle'] = 'modal'; $config->mr->actionList['approval']['icon'] = 'ok'; $config->mr->actionList['approval']['text'] = $lang->mr->approve; @@ -72,7 +71,7 @@ $config->mr->actionList['reject']['text'] = $lang->mr->reject; $config->mr->actionList['reject']['url'] = helper::createLink('mr', 'approval', "MRID={id}&action=reject"); $config->mr->actionList['reject']['data-toggle'] = 'modal'; -$config->mr->actionList['close']['icon'] = 'bug'; +$config->mr->actionList['close']['icon'] = 'off'; $config->mr->actionList['close']['text'] = $lang->mr->close; $config->mr->actionList['close']['url'] = helper::createLink('mr', 'close', "MRID={id}"); $config->mr->actionList['close']['data-toggle'] = 'modal'; diff --git a/module/mr/control.php b/module/mr/control.php index 9f858918f1..613dd16cb5 100644 --- a/module/mr/control.php +++ b/module/mr/control.php @@ -377,14 +377,14 @@ class mr extends control if(isset($rawMR->state) and $rawMR->state == 'merged') { $this->mr->logMergedAction($MR); - return $this->send(array('result' => 'success', 'message' => $this->lang->mr->mergeSuccess, 'locate' => helper::createLink('mr', 'browse'))); + return $this->send(array('result' => 'success', 'message' => $this->lang->mr->mergeSuccess, 'load' => true)); } /* The type of variable `$rawMR->message` is string. This is different with apiCreateMR. */ if(isset($rawMR->message)) { $errorMessage = $this->mr->convertApiError($rawMR->message); - return $this->send(array('result' => 'fail', 'message' => sprintf($this->lang->mr->apiError->sudo, $errorMessage), 'locate' => helper::createLink('mr', 'view', "mr={$MRID}"))); + return $this->send(array('result' => 'fail', 'message' => sprintf($this->lang->mr->apiError->sudo, $errorMessage))); } return $this->send(array('result' => 'fail', 'message' => $this->lang->mr->mergeFailed, 'locate' => helper::createLink('mr', 'view', "mr={$MRID}"))); diff --git a/module/mr/model.php b/module/mr/model.php index 00ae43cebb..3c80100554 100644 --- a/module/mr/model.php +++ b/module/mr/model.php @@ -1334,7 +1334,7 @@ class mrModel extends model ->exec(); if (dao::isError()) return array('result' => 'fail', 'message' => dao::getError()); - return array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'callback' => 'parent.refresh()'); + return array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'load' => true); } } return array('result' => 'fail', 'message' => $this->lang->mr->repeatedOperation, 'locate' => helper::createLink('mr', 'view', "mr={$MR->id}")); diff --git a/module/mr/ui/approval.html.php b/module/mr/ui/approval.html.php new file mode 100644 index 0000000000..889def6ae8 --- /dev/null +++ b/module/mr/ui/approval.html.php @@ -0,0 +1,49 @@ + + * @package mr + * @link https://www.zentao.net + */ +namespace zin; + +modalHeader +( + set::entityText($MR->title . ' - ' . zget($lang->mr->approvalResultList, $action)), + set::entityID($MR->id), +); + +formPanel +( + ($MR->needCI && $showCompileResult) ? formGroup + ( + set::label($lang->compile->result), + a + ( + set::href($compileUrl), + set::target('_blank'), + $lang->compile->statusList[$MR->compileStatus], + ), + ) : null, + formGroup + ( + set::label($lang->mr->assignee), + set::name('assignedTo'), + set::items($users), + set::value($MR->createdBy), + ), + formGroup + ( + set::label($lang->comment), + set::name('comment'), + set::control('textarea'), + set::rows('6'), + ), +); +history(); + +render(); + diff --git a/module/mr/ui/create.html.php b/module/mr/ui/create.html.php index ab7e73d660..89a8e78877 100644 --- a/module/mr/ui/create.html.php +++ b/module/mr/ui/create.html.php @@ -23,6 +23,12 @@ dropmenu(set::objectID($repo->id), set::text($repo->name), set::tab('repo')); formPanel ( set::title($lang->mr->create), + formGroup + ( + setClass('hidden'), + set::name('hostID'), + set::value($repo->gitService), + ), formRow ( formGroup diff --git a/module/mr/ui/view.html.php b/module/mr/ui/view.html.php index d2f73ac92d..500ae15f2f 100644 --- a/module/mr/ui/view.html.php +++ b/module/mr/ui/view.html.php @@ -10,6 +10,9 @@ declare(strict_types=1); */ namespace zin; +$repoName = $this->dao->select('name')->from(TABLE_REPO)->where('id')->eq($MR->repoID)->fetch('name'); +dropmenu(set::objectID($MR->repoID), set::text($repoName), set::tab('repo')); + $hasNoConflict = $MR->synced === '1' ? $rawMR->has_conflicts : (bool)$MR->hasNoConflict; $sourceDisabled = ($MR->status == 'merged' && $MR->removeSourceBranch == '1') ? 'disabled' : ''; $compileNotSuccess = !empty($compile->id) && $compile->status != 'success'; @@ -18,7 +21,10 @@ $mainActions = array(); foreach($config->mr->view->operateList as $operate) { if(!common::hasPriv('mr', $operate == 'reject' ? 'approval' : $operate)) continue; - if($operate == 'accept' && ($MR->aporovalStatus != 'approved' || $compileNotSuccess)) continue; + + if($operate == 'accept' && ($MR->approvalStatus != 'approved' || $compileNotSuccess)) continue; + if($operate == 'accept' && ($rawMR->state != 'opened' || $rawMR->has_conflicts)) continue; + if(in_array($operate, array('approval', 'reject', 'close', 'edit'))) { if(!$MR->synced || $rawMR->state != 'opened') continue;