diff --git a/module/action/config.php b/module/action/config.php index d74ec50577..981314a5fa 100755 --- a/module/action/config.php +++ b/module/action/config.php @@ -100,4 +100,4 @@ $config->trash->search['params']['objectID'] = array('operator' => 'include', $config->trash->search['params']['actor'] = array('operator' => '=', 'control' => 'select', 'values' => 'users'); $config->trash->search['params']['date'] = array('operator' => '=', 'control' => 'input', 'values' => '', 'class' => 'date'); -$config->action->newPageModule = array('repo', 'mr', 'host', 'account', 'serverroom', 'instance', 'store', 'space', 'host'); +$config->action->newPageModule = array('repo', 'mr', 'host', 'account', 'serverroom', 'instance', 'store', 'space', 'deploy', 'domain', 'service', 'gitlab', 'gitea', 'gogs', 'sonarqube', 'jenkins'); diff --git a/module/instance/control.php b/module/instance/control.php index bb87d6321f..a180cb6210 100644 --- a/module/instance/control.php +++ b/module/instance/control.php @@ -37,7 +37,53 @@ class instance extends control * @access public * @return void */ - public function view($id, $recTotal = 0, $recPerPage = 20, $pageID = 1, $tab ='baseinfo' ) + public function view($id, $type = 'store', $tab ='baseinfo' ) + { + if($type === 'store') + { + $this->storeView($id, $tab); + } + else + { + $instance = $this->loadModel('gitea')->getByID($id); + $instance->status = ''; + $instance->source = 'user'; + $instance->runDuration = 0; + $instance->createdAt = $instance->createdDate; + + $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 = ''; + $this->view->currentResource = ''; + $this->view->customItems = array(); + $this->view->backupList = array(); + $this->view->hasRestoreLog = false; + $this->view->latestBackup = array(); + $this->view->dbList = array(); + $this->view->domain = ''; + } + + $this->view->users = $this->loadModel('user')->getPairs('noletter'); + $this->view->tab = $tab; + $this->view->type = $type; + $this->display(); + } + + /** + * Show instance view. + * + * @param int $id + * @param int $recTotal + * @param int $recPerPage + * @param int $page + * @access public + * @return void + */ + protected function storeView($id, $tab ='baseinfo' ) { $this->loadModel('system'); $this->app->loadLang('system'); @@ -53,9 +99,6 @@ class instance extends control $instanceMetric = $instanceMetric[$instance->id]; $this->lang->switcherMenu = $this->instance->getSwitcher($instance); - $this->app->loadClass('pager', true); - $pager = new pager($recTotal, $recPerPage, $pageID); - $backupList = array(); $latestBackup = new stdclass; if($tab == 'backup') $backupList = $this->instance->backupList($instance); @@ -88,7 +131,6 @@ class instance extends control $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->users = $this->loadModel('user')->getPairs('noletter'); $this->view->defaultAccount = $this->cne->getDefaultAccount($instance); $this->view->instanceMetric = $instanceMetric; $this->view->currentResource = $currentResource; @@ -99,9 +141,6 @@ class instance extends control $this->view->dbList = $dbList; $this->view->domain = $this->cne->getDomain($instance); $this->view->tab = $tab; - $this->view->pager = $pager; - - $this->display(); } /** diff --git a/module/instance/lang/de.php b/module/instance/lang/de.php index efecbf1f58..bf13e54c64 100644 --- a/module/instance/lang/de.php +++ b/module/instance/lang/de.php @@ -40,6 +40,7 @@ $lang->instance->editName = 'Modify Name'; $lang->instance->cpuCore = 'Core'; $lang->instance->scaleble = 'Application level expansion'; $lang->instance->change = 'Modify'; +$lang->instance->browseProject = "Project List"; $lang->instance->systemLDAPInactive = 'System LDAP not enabled'; $lang->instance->toSystemLDAP = 'Deactivate'; @@ -194,6 +195,7 @@ $lang->instance->actionList['deleteexpiredbackup'] = 'The system has deleted $lang->instance->sourceList = array(); $lang->instance->sourceList['cloud'] = 'Chancheng Public Market'; $lang->instance->sourceList['local'] = 'Local Market'; +$lang->instance->sourceList['user'] = 'User'; $lang->instance->channelList = array(); $lang->instance->channelList['test'] = 'Test version'; diff --git a/module/instance/lang/en.php b/module/instance/lang/en.php index efecbf1f58..bf13e54c64 100644 --- a/module/instance/lang/en.php +++ b/module/instance/lang/en.php @@ -40,6 +40,7 @@ $lang->instance->editName = 'Modify Name'; $lang->instance->cpuCore = 'Core'; $lang->instance->scaleble = 'Application level expansion'; $lang->instance->change = 'Modify'; +$lang->instance->browseProject = "Project List"; $lang->instance->systemLDAPInactive = 'System LDAP not enabled'; $lang->instance->toSystemLDAP = 'Deactivate'; @@ -194,6 +195,7 @@ $lang->instance->actionList['deleteexpiredbackup'] = 'The system has deleted $lang->instance->sourceList = array(); $lang->instance->sourceList['cloud'] = 'Chancheng Public Market'; $lang->instance->sourceList['local'] = 'Local Market'; +$lang->instance->sourceList['user'] = 'User'; $lang->instance->channelList = array(); $lang->instance->channelList['test'] = 'Test version'; diff --git a/module/instance/lang/fr.php b/module/instance/lang/fr.php index efecbf1f58..bf13e54c64 100644 --- a/module/instance/lang/fr.php +++ b/module/instance/lang/fr.php @@ -40,6 +40,7 @@ $lang->instance->editName = 'Modify Name'; $lang->instance->cpuCore = 'Core'; $lang->instance->scaleble = 'Application level expansion'; $lang->instance->change = 'Modify'; +$lang->instance->browseProject = "Project List"; $lang->instance->systemLDAPInactive = 'System LDAP not enabled'; $lang->instance->toSystemLDAP = 'Deactivate'; @@ -194,6 +195,7 @@ $lang->instance->actionList['deleteexpiredbackup'] = 'The system has deleted $lang->instance->sourceList = array(); $lang->instance->sourceList['cloud'] = 'Chancheng Public Market'; $lang->instance->sourceList['local'] = 'Local Market'; +$lang->instance->sourceList['user'] = 'User'; $lang->instance->channelList = array(); $lang->instance->channelList['test'] = 'Test version'; diff --git a/module/instance/lang/zh-cn.php b/module/instance/lang/zh-cn.php index dd485b735f..65d301aabc 100644 --- a/module/instance/lang/zh-cn.php +++ b/module/instance/lang/zh-cn.php @@ -40,6 +40,7 @@ $lang->instance->editName = '修改名称'; $lang->instance->cpuCore = '核'; $lang->instance->scalable = '应用水平扩容'; $lang->instance->change = '修改'; +$lang->instance->browseProject = "项目列表"; $lang->instance->systemLDAPInactive = '未开启系统LDAP'; $lang->instance->toSystemLDAP = '去启用'; @@ -195,6 +196,7 @@ $lang->instance->actionList['deleteexpiredbackup'] = '系统删除了过期 $lang->instance->sourceList = array(); $lang->instance->sourceList['cloud'] = '渠成公共市场'; $lang->instance->sourceList['local'] = '本地市场'; +$lang->instance->sourceList['user'] = '手工配置'; $lang->instance->channelList = array(); $lang->instance->channelList['test'] = '测试版'; diff --git a/module/instance/ui/view.html.php b/module/instance/ui/view.html.php index 8f8223258f..3bab2d2d5e 100644 --- a/module/instance/ui/view.html.php +++ b/module/instance/ui/view.html.php @@ -15,7 +15,6 @@ namespace zin; jsVar('instanceID', $instance->id); -$setting = usePager('pager'); $cpuInfo = $this->instance->printCpuUsage($instance, $instanceMetric->cpu, 'array'); $memoryInfo = $this->instance->printMemUsage($instance, $instanceMetric->memory, 'array'); $actions = $this->loadModel('common')->buildOperateMenu($instance); @@ -73,16 +72,16 @@ div div ( setClass('flex basis-full'), - img(set::src($instance->logo), setStyle(array('width' => '50px', 'height' => '50px'))), + $type === 'store' ? img(set::src($instance->logo), setStyle(array('width' => '50px', 'height' => '50px'))) : null, div ( setClass('ml-3 flex col gap-y-1 basis-full'), div ( $instance->name, setClass('text-xl'), - span($cloudApp->app_version, setClass('ml-3 label lighter rounded-full')) + $type === 'store' ? span($cloudApp->app_version, setClass('ml-3 label lighter rounded-full')) : null ), - div + $type === 'store' ? div ( setClass('flex progress-container'), set::title($cpuInfo['tip']), @@ -120,10 +119,10 @@ div setStyle('width', $memoryInfo['rate']) ) ) - ), + ) : null, ), ), - btn + $type !== 'store' ? null : btn ( $lang->instance->setting, setClass('btn ghost'), @@ -144,18 +143,19 @@ div setClass('table w-auto max-w-full bordered mt-4'), h::tr ( - h::th($lang->instance->status), + $type !== 'store' ? null : h::th($lang->instance->status), h::th($lang->instance->source), // h::th($lang->instance->appTemplate), h::th($lang->instance->installBy), h::th($lang->instance->installAt), - h::th($lang->instance->runDuration), + $type !== 'store' ? null : h::th($lang->instance->runDuration), $defaultAccount ? h::th($lang->instance->defaultAccount) : null, $defaultAccount ? h::th($lang->instance->defaultPassword) : null, + $type === 'store' ? null : h::th($lang->instance->browseProject), ), h::tr ( - h::td + $type !== 'store' ? null : h::td ( setID('statusTD'), setData('reload', in_array($instance->status, array('creating', 'initializing', 'pulling', 'startup', 'starting', 'suspending', 'installing', 'uninstalling', 'stopping', 'destroying', 'upgrading'))), @@ -169,9 +169,18 @@ div // h::td(a(set::href($this->createLink('store', 'appView', "id=$instance->appID")), $instance->appName)), h::td(zget($users, $instance->createdBy, '')), h::td(substr($instance->createdAt, 0, 16)), - h::td(common::printDuration($instance->runDuration)), + $type !== 'store' ? null : h::td(common::printDuration($instance->runDuration)), $defaultAccount ? h::td($defaultAccount->username) : null, $defaultAccount ? h::td($defaultAccount->password) : null, + $type === 'store' ? null : h::td + ( + btn + ( + $lang->instance->management, + setClass('btn text-primary ghost'), + set::url(createLink($instance->type, 'browseProject', "{$instance->type}ID={$instance->id}")) + ) + ), ) ) ), @@ -208,7 +217,7 @@ div setClass('basis-auto'), history ( - set::commentUrl(createLink('action', 'comment', array('objectType' => 'instance', 'objectID' => $instance->id))), + set::commentUrl(createLink('action', 'comment', array('objectType' => $type === 'store' ? 'instance' : $instance->type, 'objectID' => $instance->id))), ) ) ); \ No newline at end of file diff --git a/module/repo/model.php b/module/repo/model.php index be35aabdd3..ad1c7b3d33 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -2639,7 +2639,7 @@ class repoModel extends model { $id++; - $id = base64_encode(urlencode($parent)); + $id = $this->encodePath($parent); $files[$parent] = array( 'id' => str_replace('=', '-', $id), 'parent' => $parentID, diff --git a/module/space/js/browse.ui.js b/module/space/js/browse.ui.js index 49d00e60ce..c97a3e2201 100644 --- a/module/space/js/browse.ui.js +++ b/module/space/js/browse.ui.js @@ -20,7 +20,7 @@ window.renderInstanceList = function (result, {col, row, value}) { if(row.data.type == 'external') { - if(row.data.appName == 'Gitea' || row.data.appName == 'GitLab' || row.data.appName == 'Gogs') result[0] = {html: '' + result[0] + ''}; + result[0] = {html: '' + result[0] + ''}; } else {