From fa9b594911ed6e7d6539df11152c2ff23d9a4cf4 Mon Sep 17 00:00:00 2001 From: sunguangming Date: Tue, 26 Dec 2023 19:16:44 +0800 Subject: [PATCH] * Refactor instance. --- module/instance/control.php | 59 ++--------------------------------- module/instance/js/view.ui.js | 4 +-- module/instance/model.php | 2 +- module/instance/zen.php | 39 +++++++++++++++++++++++ 4 files changed, 45 insertions(+), 59 deletions(-) diff --git a/module/instance/control.php b/module/instance/control.php index ccd785feab..0ea547afdd 100644 --- a/module/instance/control.php +++ b/module/instance/control.php @@ -5,7 +5,7 @@ declare(strict_types=1); * * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com) * @license ZPL (http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html) - * @author Jianhua Wang + * @author Sun Guangming * @package instance * @version $Id$ * @link https://www.zentao.net @@ -44,12 +44,12 @@ class instance extends control if($type === 'store') { - $this->storeView($id, $tab); + $this->instanceZen->storeView($id, $tab); } else { $instance = $this->loadModel('gitea')->fetchByID($id); - $instance->status = ''; + $instance->status = 'running'; $instance->source = 'user'; $instance->externalID = $instance->id; $instance->runDuration = 0; @@ -62,15 +62,10 @@ class instance extends control $this->view->title = $instance->name; $this->view->instance = $instance; - $this->view->cloudApp = array(); - $this->view->seniorAppList = array(); $this->view->actions = $this->loadModel('action')->getList($instance->type, $id); $this->view->defaultAccount = ''; $this->view->instanceMetric = $instanceMetric; - $this->view->currentResource = ''; - $this->view->customItems = array(); $this->view->dbList = array(); - $this->view->domain = ''; } $this->view->users = $this->loadModel('user')->getPairs('noletter'); @@ -79,54 +74,6 @@ class instance extends control $this->display(); } - /** - * 查看商店应用详情。 - * Show instance view. - * - * @param int $id - * @param string $tab - * @access public - * @return void - */ - protected function storeView(int $id, string $tab = 'baseinfo') - { - if(!commonModel::hasPriv('space', 'browse')) $this->loadModel('common')->deny('space', 'browse', false); - - $instance = $this->instance->getByID($id); - if(empty($instance)) return $this->send(array('result' => 'fail', 'load' => array('alert' => $this->lang->instance->instanceNotExists, 'locate' => $this->createLink('space', 'browse')))); - - $instance->latestVersion = $this->store->appLatestVersion($instance->appID, $instance->version); - - $instance = $this->instance->freshStatus($instance); - - $instanceMetric = $this->cne->instancesMetrics(array($instance)); - $instanceMetric = $instanceMetric[$instance->id]; - - $dbList = $this->cne->appDBList($instance); - $currentResource = $this->cne->getAppConfig($instance); - $customItems = $this->cne->getCustomItems($instance); - - if($instance->status == 'running') $this->instance->saveAuthInfo($instance); - if(in_array($instance->chart, $this->config->instance->devopsApps)) - { - $url = strstr(getWebRoot(true), ':', true) . '://' . $instance->domain; - $pipeline = $this->loadModel('pipeline')->getByUrl($url); - $instance->externalID = !empty($pipeline) ? $pipeline->id : 0; - } - - $this->view->title = $instance->appName; - $this->view->instance = $instance; - $this->view->cloudApp = $this->loadModel('store')->getAppInfoByChart($instance->chart, $instance->channel, false); - $this->view->seniorAppList = $tab == 'baseinfo' ? $this->instance->seniorAppList($instance, $instance->channel) : array(); - $this->view->actions = $this->loadModel('action')->getList('instance', $id); - $this->view->defaultAccount = $this->cne->getDefaultAccount($instance); - $this->view->instanceMetric = $instanceMetric; - $this->view->currentResource = $currentResource; - $this->view->customItems = $customItems; - $this->view->dbList = $dbList; - $this->view->domain = $this->cne->getDomain($instance); - } - /** * 设置应用。 * Setting instance. diff --git a/module/instance/js/view.ui.js b/module/instance/js/view.ui.js index 99f863e1b9..92fe5734c6 100644 --- a/module/instance/js/view.ui.js +++ b/module/instance/js/view.ui.js @@ -9,7 +9,7 @@ $('#mainContent').on('click', '.db-management', function() { url: $.createLink('instance', 'ajaxDBAuthUrl'), method: 'POST', data: {dbName, dbType, instanceID}, - onSuccess: (response) => + onSuccess: (response) => { if(response.result == 'success') { @@ -96,4 +96,4 @@ $('.copy-btn').on('click', function() { $(that).tooltip('hide'); }, 2000) -}) \ No newline at end of file +}) diff --git a/module/instance/model.php b/module/instance/model.php index eae7e80673..7a14b15729 100644 --- a/module/instance/model.php +++ b/module/instance/model.php @@ -5,7 +5,7 @@ declare(strict_types=1); * * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com) * @license ZPL (http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html) - * @author Jianhua Wang + * @author Sun Guangming * @package instance * @version $Id$ * @link https://www.zentao.net diff --git a/module/instance/zen.php b/module/instance/zen.php index 09e37185c8..5181c434b1 100644 --- a/module/instance/zen.php +++ b/module/instance/zen.php @@ -11,6 +11,45 @@ declare(strict_types=1); */ class instanceZen extends instance { + /** + * 查看商店应用详情。 + * Show instance view. + * + * @param int $id + * @param string $tab + * @access public + * @return void + */ + protected function storeView(int $id, string $tab = 'baseinfo') + { + if(!commonModel::hasPriv('space', 'browse')) $this->loadModel('common')->deny('space', 'browse', false); + + $instance = $this->instance->getByID($id); + if(empty($instance)) return $this->send(array('result' => 'fail', 'load' => array('alert' => $this->lang->instance->instanceNotExists, 'locate' => $this->createLink('space', 'browse')))); + + $instance->latestVersion = $this->store->appLatestVersion($instance->appID, $instance->version); + + $instance = $this->instance->freshStatus($instance); + + $instanceMetric = $this->cne->instancesMetrics(array($instance)); + $instanceMetric = $instanceMetric[$instance->id]; + + if($instance->status == 'running') $this->instance->saveAuthInfo($instance); + if(in_array($instance->chart, $this->config->instance->devopsApps)) + { + $url = strstr(getWebRoot(true), ':', true) . '://' . $instance->domain; + $pipeline = $this->loadModel('pipeline')->getByUrl($url); + $instance->externalID = !empty($pipeline) ? $pipeline->id : 0; + } + + $this->view->title = $instance->appName; + $this->view->instance = $instance; + $this->view->actions = $this->loadModel('action')->getList('instance', $id); + $this->view->defaultAccount = $this->cne->getDefaultAccount($instance); + $this->view->instanceMetric = $instanceMetric; + $this->view->dbList = $this->cne->appDBList($instance); + } + /** * 自动保存devops应用授权信息。 * Auto save auth info of devops.