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
{