diff --git a/module/instance/control.php b/module/instance/control.php index c2313dcb32..f01b2bcb5b 100644 --- a/module/instance/control.php +++ b/module/instance/control.php @@ -432,6 +432,38 @@ class instance extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->createLink('space', 'browse'))); } + /** + * 编辑手工配置外部应用。 + * Edit a external app. + * + * @param int $externalID + * @access public + * @return viod + */ + public function editExternalApp(int $externalID) + { + $oldApp = $this->loadModel('pipeline')->getByID($externalID); + + if($_POST) + { + $this->pipeline->update($externalID); + $app = $this->pipeline->getByID($externalID); + if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + + $this->loadModel('action'); + $actionID = $this->action->create($app->type, $externalID, 'edited'); + $changes = common::createChanges($oldApp, $app); + $this->action->logHistory($actionID, $changes); + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => true, 'closeModal' => true)); + } + + $this->app->loadLang('space'); + $this->app->loadLang('sonarqube'); + + $this->view->app = $oldApp; + $this->display(); + } + /** * (Not used at present.) Install app by custom settings. * diff --git a/module/instance/ui/editexternalapp.html.php b/module/instance/ui/editexternalapp.html.php new file mode 100644 index 0000000000..6a4139e728 --- /dev/null +++ b/module/instance/ui/editexternalapp.html.php @@ -0,0 +1,57 @@ + + * @package instance + * @link https://www.zentao.net + */ + +namespace zin; + +formPanel +( + set::id('appCreateForm'), + set::title($lang->edit . $lang->space->appType[$app->type]), + set::submitBtnText($lang->save), + set::actions(array('submit', array('text' => $lang->cancel, 'data-type' => 'submit', 'data-dismiss' => 'modal'))), + formRow + ( + formGroup + ( + set::name('name'), + set::label($lang->sonarqube->name), + set::value($app->name), + ) + ), + formRow + ( + formGroup + ( + set::name('url'), + set::label($lang->sonarqube->url), + set::value($app->url), + ) + ), + formRow + ( + formGroup + ( + set::name('account'), + set::label($lang->sonarqube->account), + set::value($app->account), + ) + ), + formRow + ( + formGroup + ( + set::name('password'), + set::label($lang->sonarqube->password), + set::value($app->password), + ) + ), +); diff --git a/module/space/js/browse.ui.js b/module/space/js/browse.ui.js index c97a3e2201..de59fb836c 100644 --- a/module/space/js/browse.ui.js +++ b/module/space/js/browse.ui.js @@ -77,6 +77,13 @@ window.bindUser = function(externalID, appName) window.editApp = function(externalID, appName) { - $('#editLinkContainer').attr('href', $.createLink(appName.toLowerCase(), 'edit', 'id=' + externalID)); + if(appName == 'Nexus') + { + $('#editLinkContainer').attr('href', $.createLink('instance', 'editExternalApp', 'id=' + externalID)); + } + else + { + $('#editLinkContainer').attr('href', $.createLink(appName.toLowerCase(), 'edit', 'id=' + externalID)); + } $('#editLinkContainer').trigger('click'); }