Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
apollo
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
openSource
apollo
Commits
e19b7f95
Commit
e19b7f95
authored
Feb 09, 2017
by
lepdou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
close/open namespace content
parent
d3e0fdb7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1118 additions
and
1082 deletions
+1118
-1082
config.html
apollo-portal/src/main/resources/static/config.html
+1
-1
namespace-panel-directive.js
...ces/static/scripts/directive/namespace-panel-directive.js
+14
-1
namespace-panel-branch-tab.html
...es/static/views/component/namespace-panel-branch-tab.html
+422
-411
namespace-panel-master-tab.html
...es/static/views/component/namespace-panel-master-tab.html
+681
-669
No files found.
apollo-portal/src/main/resources/static/config.html
View file @
e19b7f95
...
...
@@ -81,7 +81,7 @@
<td
ng-bind=
"appBaseInfo.ownerName"
></td>
</tr>
<tr>
<th>
Email
:
</th>
<th>
邮箱
:
</th>
<td>
<small
ng-bind=
"appBaseInfo.ownerEmail"
></small>
</td>
...
...
apollo-portal/src/main/resources/static/scripts/directive/namespace-panel-directive.js
View file @
e19b7f95
...
...
@@ -88,7 +88,8 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
namespace
.
isPublic
?
namespace
.
parentAppId
!=
namespace
.
baseInfo
.
appId
:
false
;
namespace
.
displayControl
=
{
currentOperateBranch
:
'master'
,
showSearchInput
:
false
showSearchInput
:
false
,
show
:
true
};
namespace
.
viewItems
=
namespace
.
items
;
namespace
.
isPropertiesFormat
=
namespace
.
format
==
'properties'
;
...
...
@@ -99,6 +100,7 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
namespace
.
allInstancesPage
=
0
;
namespace
.
commitChangeBtnDisabled
=
false
;
generateNamespaceId
(
namespace
);
initNamespaceBranch
(
namespace
);
initNamespaceViewName
(
namespace
);
initNamespaceLock
(
namespace
);
...
...
@@ -131,7 +133,11 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
namespace
.
branch
.
latestReleaseInstancesPage
=
0
;
namespace
.
branch
.
instanceViewType
=
namespace_instance_view_type
.
LATEST_RELEASE
;
namespace
.
branch
.
hasLoadInstances
=
false
;
namespace
.
branch
.
displayControl
=
{
show
:
true
};
generateNamespaceId
(
namespace
.
branch
);
initBranchItems
(
namespace
.
branch
);
initRules
(
namespace
.
branch
);
loadInstanceInfo
(
namespace
.
branch
);
...
...
@@ -201,6 +207,10 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
}
}
function
generateNamespaceId
(
namespace
)
{
namespace
.
id
=
Math
.
random
().
toString
(
36
).
substr
(
2
);
}
function
initPermission
(
namespace
)
{
PermissionService
.
has_modify_namespace_permission
(
...
...
@@ -338,7 +348,10 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
function
switchBranch
(
branchName
)
{
if
(
branchName
!=
'master'
)
{
scope
.
namespace
.
branch
.
displayControl
.
show
=
true
;
initRules
(
scope
.
namespace
.
branch
);
}
else
{
scope
.
namespace
.
displayControl
.
show
=
true
;
}
scope
.
namespace
.
displayControl
.
currentOperateBranch
=
branchName
;
...
...
apollo-portal/src/main/resources/static/views/component/namespace-panel-branch-tab.html
View file @
e19b7f95
<section
class=
"branch-panel-body"
ng-if=
"namespace.hasBranch && namespace.displayControl.currentOperateBranch != 'master'"
>
<section
class=
"branch-panel-body"
ng-if=
"namespace.hasBranch && namespace.displayControl.currentOperateBranch != 'master'"
>
<!--main header-->
<header
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6 header-namespace"
>
<b
class=
"namespace-name"
ng-bind=
"namespace.viewName"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"{{namespace.comment}}"
></b>
<span
class=
"cursor-pointer"
data-toggle=
"collapse"
data-target=
"#BODY{{namespace.branch.id}}"
aria-expanded=
"false"
ng-click=
"namespace.branch.displayControl.show = !namespace.branch.displayControl.show"
>
<span
class=
"glyphicon glyphicon-triangle-bottom small"
ng-show=
"namespace.branch.displayControl.show"
></span>
<span
class=
"glyphicon glyphicon-triangle-top small"
ng-show=
"!namespace.branch.displayControl.show"
></span>
<b
class=
"namespace-name"
ng-bind=
"namespace.viewName"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"点击展开/收缩Namespace"
></b>
</span>
<span
class=
"label label-info no-radius namespace-label"
ng-bind=
"namespace.format"
></span>
<span
class=
"label label-warning no-radius namespace-label"
ng-show=
"namespace.branch.itemModifiedCnt > 0"
>
有修改
...
...
@@ -44,99 +52,100 @@
</header>
<!--second header-->
<header
class=
"panel-heading second-panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-12 pull-left"
>
<ul
class=
"nav nav-tabs"
>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'table')"
ng-show=
"namespace.isPropertiesFormat"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'table'}"
>
<img
src=
"img/table.png"
>
配置
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'rule')"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'rule'}"
>
<img
src=
"img/rule.png"
>
灰度规则
<div
id=
"BODY{{namespace.branch.id}}"
class=
"collapse in"
>
<!--second header-->
<header
class=
"panel-heading second-panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-12 pull-left"
>
<ul
class=
"nav nav-tabs"
>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'table')"
ng-show=
"namespace.isPropertiesFormat"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'table'}"
>
<img
src=
"img/table.png"
>
配置
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'rule')"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'rule'}"
>
<img
src=
"img/rule.png"
>
灰度规则
<span
class=
"badge badge-grey"
ng-bind=
"namespace.branch.grayIps.length + namespace.branch.grayApps.length"
></span>
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'instance')"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'instance'}"
>
<img
src=
"img/machine.png"
>
灰度实例列表
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'instance')"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'instance'}"
>
<img
src=
"img/machine.png"
>
灰度实例列表
<span
class=
"badge badge-grey"
ng-bind=
"namespace.branch.latestReleaseInstances.total"
></span>
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'history')"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'history'}"
>
<img
src=
"img/change.png"
>
更改历史
</a>
</li>
</ul>
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace.branch, 'history')"
>
<a
ng-class=
"{node_active:namespace.branch.viewType == 'history'}"
>
<img
src=
"img/change.png"
>
更改历史
</a>
</li>
</ul>
</div>
</div>
</div>
</header>
</header>
<!--namespace body-->
<section>
<!--items-->
<div
class=
"namespace-view-table"
ng-show=
"namespace.branch.viewType == 'table'"
>
<section>
<!--items-->
<div
class=
"namespace-view-table"
ng-show=
"namespace.branch.viewType == 'table'"
>
<div
class=
"panel panel-default"
ng-if=
"namespace.hasBranch"
>
<div
class=
"panel-heading"
>
灰度的配置
<button
type=
"button"
class=
"btn btn-primary btn-sm pull-right"
style=
"margin-top: -4px;"
ng-show=
"namespace.hasModifyPermission"
ng-click=
"createItem(namespace.branch)"
>
<img
src=
"img/plus.png"
>
新增灰度配置
</button>
</div>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
主版本的值
</th>
<th>
灰度的值
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<div
class=
"panel panel-default"
ng-if=
"namespace.hasBranch"
>
<div
class=
"panel-heading"
>
灰度的配置
<button
type=
"button"
class=
"btn btn-primary btn-sm pull-right"
style=
"margin-top: -4px;"
ng-show=
"namespace.hasModifyPermission"
ng-click=
"createItem(namespace.branch)"
>
<img
src=
"img/plus.png"
>
新增灰度配置
</button>
</div>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
主版本的值
</th>
<th>
灰度的值
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
<tr
ng-repeat=
"config in namespace.branch.branchItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"7%"
class=
"text-center"
>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.branch.branchItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"7%"
class=
"text-center"
>
<span
class=
"label label-warning no-radius cursor-pointer"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"点击查看已发布的值"
ng-if=
"config.isModified || config.isDeleted"
...
...
@@ -144,10 +153,10 @@
<span
class=
"label label-default-light no-radius"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"已生效的配置"
ng-if=
"!config.isModified"
>
已发布
</span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
<span
class=
"label label-danger"
ng-if=
"config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除的配置"
>
删
</span>
<span
class=
"label label-info"
ng-if=
"!config.isDeleted && config.masterReleaseValue"
...
...
@@ -155,86 +164,86 @@
<span
class=
"label label-success"
ng-if=
"!config.isDeleted && !config.masterReleaseValue"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"灰度版本特有的配置"
>
新
</span>
</td>
<td
width=
"20%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.masterReleaseValue)"
>
<span
ng-bind=
"config.masterReleaseValue | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"20%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"10%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"9%"
class=
"text-center"
>
<img
src=
"img/edit.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-if=
"!config.isDeleted"
ng-click=
"editItem(namespace.branch, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
<img
style=
"margin-left: 5px;"
src=
"img/cancel.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-if=
"!config.isDeleted"
ng-click=
"preDeleteItem(namespace.branch, config.item.id)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
</td>
<td
width=
"20%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.masterReleaseValue)"
>
<span
ng-bind=
"config.masterReleaseValue | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"20%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"10%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
</tr>
</tbody>
</table>
</div>
<td
width=
"9%"
class=
"text-center"
>
<img
src=
"img/edit.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-if=
"!config.isDeleted"
ng-click=
"editItem(namespace.branch, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
<img
style=
"margin-left: 5px;"
src=
"img/cancel.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-if=
"!config.isDeleted"
ng-click=
"preDeleteItem(namespace.branch, config.item.id)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
<div
class=
"panel panel-default"
ng-if=
"namespace.branch.masterItems && namespace.branch.masterItems.length > 0"
>
<div
class=
"panel-heading"
>
主版本的配置
</tr>
</tbody>
</table>
</div>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.branch.masterItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"8%"
class=
"text-center"
>
<div
class=
"panel panel-default"
ng-if=
"namespace.branch.masterItems && namespace.branch.masterItems.length > 0"
>
<div
class=
"panel-heading"
>
主版本的配置
</div>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.branch.masterItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"8%"
class=
"text-center"
>
<span
class=
"label label-warning no-radius cursor-pointer"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"点击查看已发布的值"
ng-if=
"config.isModified || config.isDeleted"
...
...
@@ -242,10 +251,10 @@
<span
class=
"label label-default-light no-radius"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"已生效的配置"
ng-if=
"!config.isModified"
>
已发布
</span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
<span
class=
"label label-success"
ng-if=
"config.isModified && !config.oldValue"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"新增的配置"
>
新
</span>
<span
class=
"label label-info"
...
...
@@ -253,274 +262,276 @@
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改的配置"
>
改
</span>
<span
class=
"label label-danger"
ng-if=
"config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除的配置"
>
删
</span>
</td>
<td
width=
"35%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"12%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"15%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
</td>
<td
width=
"35%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"12%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"15%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"5%"
class=
"text-center"
>
<img
src=
"img/gray.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"对此配置灰度"
ng-if=
"!config.isDeleted"
ng-click=
"editItem(namespace.branch, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
<td
width=
"5%"
class=
"text-center"
>
<img
src=
"img/gray.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"对此配置灰度"
ng-if=
"!config.isDeleted"
ng-click=
"editItem(namespace.branch, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
</tr>
</tbody>
</table>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<!--gray rules-->
<div
class=
"rules-manage-view row"
ng-show=
"namespace.branch.viewType == 'rule'"
>
<!--gray rules-->
<div
class=
"rules-manage-view row"
ng-show=
"namespace.branch.viewType == 'rule'"
>
<div
class=
"alert alert-warning no-radius"
ng-show=
"!namespace.hasModifyPermission && !namespace.hasReleasePermission"
>
<strong>
Tips:
</strong>
您没有权限编辑灰度规则, 具有namespace修改权或者发布权的人员才可以编辑灰度规则. 如需要编辑灰度规则,请找项目管理员申请权限.
</div>
<div
class=
"alert alert-warning no-radius"
ng-show=
"!namespace.hasModifyPermission && !namespace.hasReleasePermission"
>
<strong>
Tips:
</strong>
您没有权限编辑灰度规则, 具有namespace修改权或者发布权的人员才可以编辑灰度规则. 如需要编辑灰度规则,请找项目管理员申请权限.
</div>
<table
class=
"table table-bordered table-hover"
>
<thead>
<tr>
<th>
灰度的AppId
</th>
<th>
灰度的IP列表
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"ruleItem in namespace.branch.rules.ruleItems"
>
<td
width=
"20%"
ng-bind=
"ruleItem.clientAppId"
></td>
<td
width=
"70%"
ng-show=
"!ruleItem.ApplyToAllInstances"
ng-bind=
"ruleItem.clientIpList.join(', ')"
></td>
<td
width=
"70%"
ng-show=
"ruleItem.ApplyToAllInstances"
>
ALL
</td>
<td
class=
"text-center"
width=
"10%"
>
<img
src=
"img/edit.png"
class=
"i-20 hover"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-show=
"namespace.hasModifyPermission || namespace.hasReleasePermission"
ng-click=
"editRuleItem(namespace.branch, ruleItem)"
>
<img
src=
"img/cancel.png"
class=
"i-20 hover"
style=
"margin-left: 5px;"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-show=
"namespace.hasModifyPermission || namespace.hasReleasePermission"
ng-click=
"deleteRuleItem(namespace.branch, ruleItem)"
>
</td>
</tr>
<table
class=
"table table-bordered table-hover"
>
<thead>
<tr>
<th>
灰度的AppId
</th>
<th>
灰度的IP列表
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"ruleItem in namespace.branch.rules.ruleItems"
>
<td
width=
"20%"
ng-bind=
"ruleItem.clientAppId"
></td>
<td
width=
"70%"
ng-show=
"!ruleItem.ApplyToAllInstances"
ng-bind=
"ruleItem.clientIpList.join(', ')"
></td>
<td
width=
"70%"
ng-show=
"ruleItem.ApplyToAllInstances"
>
ALL
</td>
<td
class=
"text-center"
width=
"10%"
>
<img
src=
"img/edit.png"
class=
"i-20 hover"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-show=
"namespace.hasModifyPermission || namespace.hasReleasePermission"
ng-click=
"editRuleItem(namespace.branch, ruleItem)"
>
<img
src=
"img/cancel.png"
class=
"i-20 hover"
style=
"margin-left: 5px;"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-show=
"namespace.hasModifyPermission || namespace.hasReleasePermission"
ng-click=
"deleteRuleItem(namespace.branch, ruleItem)"
>
</td>
</tr>
</tbody>
</table>
<button
class=
"btn btn-primary"
ng-if=
"namespace.hasModifyPermission || namespace.hasReleasePermission"
ng-show=
"(namespace.isPublic && !namespace.isLinkedNamespace) ||
</tbody>
</table>
<button
class=
"btn btn-primary"
ng-if=
"namespace.hasModifyPermission || namespace.hasReleasePermission"
ng-show=
"(namespace.isPublic && !namespace.isLinkedNamespace) ||
((!namespace.isPublic || namespace.isLinkedNamespace)
&& (!namespace.branch.rules
|| !namespace.branch.rules.ruleItems
|| !namespace.branch.rules.ruleItems.length))"
ng-click=
"addRuleItem(namespace.branch)"
>
新增规则
</button>
</div>
<!--instances -->
<div
class=
"panel panel-default"
ng-show=
"namespace.branch.viewType == 'instance'"
>
<div
class=
"panel-heading text-right"
>
<button
class=
"btn btn-default btn-sm"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"刷新列表"
ng-click=
"refreshInstancesInfo(namespace.branch)"
>
<img
src=
"../../img/refresh.png"
/>
ng-click=
"addRuleItem(namespace.branch)"
>
新增规则
</button>
</div>
<div
class=
"panel-body"
>
<div
class=
"panel-default"
ng-if=
"namespace.branch.latestReleaseInstances.total > 0"
>
<div
class=
"panel-heading"
>
<a
target=
"_blank"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看配置"
href=
"/config/history.html?#/appid={{appId}}&env={{env}}&clusterName={{namespace.baseInfo.clusterName}}&namespaceName={{namespace.baseInfo.namespaceName}}&releaseId={{namespace.branch.latestRelease.id}}"
>
{{namespace.branch.latestRelease.name}}
</a>
</div>
<table
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
<td>
配置获取时间
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.branch.latestReleaseInstances.content"
>
<td
width=
"20%"
ng-bind=
"instance.appId"
></td>
<td
width=
"20%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"20%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"20%"
ng-bind=
"instance.ip"
></td>
<td
width=
"20%"
>
{{instance.configs
&&
instance.configs.length ?
(instance.configs[0].releaseDeliveryTime | date: 'yyyy-MM-dd HH:mm:ss') : ''}}
</td>
</tr>
</tbody>
</table>
<div
class=
"row text-center"
ng-show=
"namespace.branch.latestReleaseInstances.content.length < namespace.branch.latestReleaseInstances.total"
>
<button
class=
"btn btn-default"
ng-click=
"loadInstanceInfo(namespace.branch)"
>
加载更多
</button>
</div>
</div>
<div
class=
"text-center"
ng-if=
"namespace.branch.latestReleaseInstances.total == 0"
>
无实例信息
</div>
</div>
</div>
<!--history view-->
<div
class=
"J_historyview history-view"
ng-show=
"namespace.branch.viewType == 'history'"
>
<div
class=
"media"
ng-show=
"namespace.branch.commits && namespace.branch.commits.length"
ng-repeat=
"commits in namespace.branch.commits"
>
<div
class=
"media-body"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6 "
><h3
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedBy"
></h3>
<!--instances -->
<div
class=
"panel panel-default"
ng-show=
"namespace.branch.viewType == 'instance'"
>
<div
class=
"panel-heading text-right"
>
<button
class=
"btn btn-default btn-sm"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"刷新列表"
ng-click=
"refreshInstancesInfo(namespace.branch)"
>
<img
src=
"../../img/refresh.png"
/>
</button>
</div>
<div
class=
"panel-body"
>
<div
class=
"panel-default"
ng-if=
"namespace.branch.latestReleaseInstances.total > 0"
>
<div
class=
"panel-heading"
>
<a
target=
"_blank"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看配置"
href=
"/config/history.html?#/appid={{appId}}&env={{env}}&clusterName={{namespace.baseInfo.clusterName}}&namespaceName={{namespace.baseInfo.namespaceName}}&releaseId={{namespace.branch.latestRelease.id}}"
>
{{namespace.branch.latestRelease.name}}
</a>
</div>
<div
class=
"col-md-6 col-sm-6 text-right"
>
<h5
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedTime | date: 'yyyy-MM-dd HH:mm:ss'"
></h5>
<table
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
<td>
配置获取时间
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.branch.latestReleaseInstances.content"
>
<td
width=
"20%"
ng-bind=
"instance.appId"
></td>
<td
width=
"20%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"20%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"20%"
ng-bind=
"instance.ip"
></td>
<td
width=
"20%"
>
{{instance.configs
&&
instance.configs.length ?
(instance.configs[0].releaseDeliveryTime | date: 'yyyy-MM-dd HH:mm:ss') : ''}}
</td>
</tr>
</tbody>
</table>
<div
class=
"row text-center"
ng-show=
"namespace.branch.latestReleaseInstances.content.length < namespace.branch.latestReleaseInstances.total"
>
<button
class=
"btn btn-default"
ng-click=
"loadInstanceInfo(namespace.branch)"
>
加载更多
</button>
</div>
</div>
<div
class=
"text-center"
ng-if=
"namespace.branch.latestReleaseInstances.total == 0"
>
无实例信息
</div>
</div>
<!--properties format-->
<table
class=
"table table-bordered table-striped text-center table-hover"
style=
"margin-top: 5px;"
ng-if=
"namespace.isPropertiesFormat"
>
<thead>
<tr>
<th>
Type
</th>
<th>
Key
</th>
<th>
Old Value
</th>
<th>
New Value
</th>
<th>
Comment
</th>
</tr>
</thead>
<tbody>
<!--兼容老数据,不显示item类型为空行和注释的item-->
<tr
ng-repeat=
"item in commits.changeSets.createItems"
ng-show=
"item.key"
>
<td
width=
"2%"
>
新增
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
</div>
<!--history view-->
<div
class=
"J_historyview history-view"
ng-show=
"namespace.branch.viewType == 'history'"
>
<div
class=
"media"
ng-show=
"namespace.branch.commits && namespace.branch.commits.length"
ng-repeat=
"commits in namespace.branch.commits"
>
<div
class=
"media-body"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6 "
><h3
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedBy"
></h3>
</div>
<div
class=
"col-md-6 col-sm-6 text-right"
>
<h5
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedTime | date: 'yyyy-MM-dd HH:mm:ss'"
></h5>
</div>
</div>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.value}}"
ng-click=
"showText(item.value)"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.updateItems"
>
<td
width=
"2%"
>
更新
</td>
<td
width=
"20%"
title=
"{{item.newItem.key}}"
>
<span
ng-bind=
"item.newItem.key | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.oldItem.value}}"
ng-click=
"showText(item.oldItem.value)"
>
<span
ng-bind=
"item.oldItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.oldItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.newItem.value}}"
ng-click=
"showText(item.newItem.value)"
>
<span
ng-bind=
"item.newItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.newItem.comment}}"
>
<span
ng-bind=
"item.newItem.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.deleteItems"
ng-show=
"item.key || item.comment"
>
<td
width=
"2%"
>
删除
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
title=
"{{item.value}}"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
</tbody>
</table>
<!--not properties format-->
<div
ng-if=
"!namespace.isPropertiesFormat"
>
<div
ng-repeat=
"item in commits.changeSets.createItems"
>
<!--properties format-->
<table
class=
"table table-bordered table-striped text-center table-hover"
style=
"margin-top: 5px;"
ng-if=
"namespace.isPropertiesFormat"
>
<thead>
<tr>
<th>
Type
</th>
<th>
Key
</th>
<th>
Old Value
</th>
<th>
New Value
</th>
<th>
Comment
</th>
</tr>
</thead>
<tbody>
<!--兼容老数据,不显示item类型为空行和注释的item-->
<tr
ng-repeat=
"item in commits.changeSets.createItems"
ng-show=
"item.key"
>
<td
width=
"2%"
>
新增
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.value}}"
ng-click=
"showText(item.value)"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.updateItems"
>
<td
width=
"2%"
>
更新
</td>
<td
width=
"20%"
title=
"{{item.newItem.key}}"
>
<span
ng-bind=
"item.newItem.key | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.oldItem.value}}"
ng-click=
"showText(item.oldItem.value)"
>
<span
ng-bind=
"item.oldItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.oldItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.newItem.value}}"
ng-click=
"showText(item.newItem.value)"
>
<span
ng-bind=
"item.newItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.newItem.comment}}"
>
<span
ng-bind=
"item.newItem.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.deleteItems"
ng-show=
"item.key || item.comment"
>
<td
width=
"2%"
>
删除
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
title=
"{{item.value}}"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
</tbody>
</table>
<!--not properties format-->
<div
ng-if=
"!namespace.isPropertiesFormat"
>
<div
ng-repeat=
"item in commits.changeSets.createItems"
>
<textarea
class=
"form-control no-radius"
rows=
"20"
ng-disabled=
"true"
ng-bind=
"item.value"
>
</textarea>
</div>
</div>
<div
ng-repeat=
"item in commits.changeSets.updateItems"
>
<div
ng-repeat=
"item in commits.changeSets.updateItems"
>
<textarea
class=
"form-control no-radius"
rows=
"20"
ng-disabled=
"true"
ng-bind=
"item.newItem.value"
>
</textarea>
</div>
</div>
</div>
</div>
<hr>
</div>
<div
class=
"text-center"
>
<button
type=
"button"
class=
"btn btn-default"
ng-show=
"!namespace.branch.hasLoadAllCommit"
ng-click=
"loadCommitHistory(namespace.branch)"
>
加载更多
<span
class=
"glyphicon glyphicon-menu-down"
></span></button>
</div>
<div
class=
"empty-container text-center"
ng-show=
"!namespace.branch.commits || !namespace.branch.commits.length"
>
无更改历史
</div>
<hr>
</div>
<div
class=
"text-center"
>
<button
type=
"button"
class=
"btn btn-default"
ng-show=
"!namespace.branch.hasLoadAllCommit"
ng-click=
"loadCommitHistory(namespace.branch)"
>
加载更多
<span
class=
"glyphicon glyphicon-menu-down"
></span></button>
</div>
<div
class=
"empty-container text-center"
ng-show=
"!namespace.branch.commits || !namespace.branch.commits.length"
>
无更改历史
</div>
</
div
>
</
section
>
</
section
>
</
div
>
</section>
apollo-portal/src/main/resources/static/views/component/namespace-panel-master-tab.html
View file @
e19b7f95
...
...
@@ -7,8 +7,17 @@
<header
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6 header-namespace"
>
<b
class=
"namespace-name"
ng-bind=
"namespace.viewName"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"{{namespace.comment}}"
></b>
<span
class=
"cursor-pointer"
data-toggle=
"collapse"
data-target=
"#BODY{{namespace.id}}"
aria-expanded=
"false"
ng-click=
"namespace.displayControl.show = !namespace.displayControl.show"
>
<span
class=
"glyphicon glyphicon-triangle-bottom small"
ng-show=
"namespace.displayControl.show"
></span>
<span
class=
"glyphicon glyphicon-triangle-top small"
ng-show=
"!namespace.displayControl.show"
></span>
<b
class=
"namespace-name"
ng-bind=
"namespace.viewName"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"点击展开/收缩Namespace"
></b>
</span>
<span
class=
"label label-info no-radius namespace-label"
ng-bind=
"namespace.format"
></span>
<span
class=
"label label-warning no-radius namespace-label modify-tip"
ng-show=
"namespace.itemModifiedCnt > 0"
>
...
...
@@ -81,162 +90,164 @@
</div>
</header>
<!--second header-->
<header
class=
"panel-heading second-panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6 pull-left"
>
<!--master branch nav tabs-->
<ul
class=
"nav nav-tabs"
>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'table')"
ng-show=
"namespace.isPropertiesFormat"
>
<a
ng-class=
"{node_active:namespace.viewType == 'table'}"
>
<img
src=
"img/table.png"
>
表格
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'text')"
>
<a
ng-class=
"{node_active:namespace.viewType == 'text'}"
>
<img
src=
"img/text.png"
>
文本
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'history')"
>
<a
ng-class=
"{node_active:namespace.viewType == 'history'}"
>
<img
src=
"img/change.png"
>
更改历史
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'instance')"
>
<a
ng-class=
"{node_active:namespace.viewType == 'instance'}"
>
<img
src=
"img/machine.png"
>
实例列表
<span
class=
"badge badge-grey"
ng-bind=
"namespace.instancesCount"
></span>
</a>
</li>
</ul>
</div>
<div
class=
"col-md-6 col-sm-6 text-right"
>
<a
class=
"clipboard"
data-clipboard-text=
"{{namespace.text}}"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"复制文本"
ng-show=
"!namespace.isTextEditing && namespace.viewType == 'text' && namespace.hasModifyPermission"
>
<img
src=
"img/copy.png"
class=
"ns_btn"
>
</a>
<a
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"取消修改"
ng-show=
"namespace.isTextEditing && namespace.viewType == 'text'"
ng-click=
"toggleTextEditStatus(namespace)"
>
<img
src=
"img/cancel.png"
class=
"ns_btn"
>
</a>
<a
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改配置"
ng-show=
"!namespace.isTextEditing && namespace.viewType == 'text' && namespace.hasModifyPermission"
ng-click=
"toggleTextEditStatus(namespace)"
>
<img
src=
"img/edit.png"
class=
"ns_btn"
>
</a>
<a
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"提交修改"
data-toggle=
"modal"
data-target=
"#commitModal"
ng-show=
"namespace.isTextEditing && namespace.viewType == 'text'"
ng-click=
"modifyByText(namespace)"
>
<img
src=
"img/submit.png"
class=
"ns_btn"
>
</a>
<button
type=
"button"
class=
"btn btn-default btn-sm"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"按Key过滤配置"
ng-show=
"namespace.viewType == 'table' && namespace.displayControl.currentOperateBranch == 'master'
<div
id=
"BODY{{namespace.id}}"
class=
"collapse in"
>
<!--second header-->
<header
class=
"panel-heading second-panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6 pull-left"
>
<!--master branch nav tabs-->
<ul
class=
"nav nav-tabs"
>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'table')"
ng-show=
"namespace.isPropertiesFormat"
>
<a
ng-class=
"{node_active:namespace.viewType == 'table'}"
>
<img
src=
"img/table.png"
>
表格
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'text')"
>
<a
ng-class=
"{node_active:namespace.viewType == 'text'}"
>
<img
src=
"img/text.png"
>
文本
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'history')"
>
<a
ng-class=
"{node_active:namespace.viewType == 'history'}"
>
<img
src=
"img/change.png"
>
更改历史
</a>
</li>
<li
role=
"presentation"
ng-click=
"switchView(namespace, 'instance')"
>
<a
ng-class=
"{node_active:namespace.viewType == 'instance'}"
>
<img
src=
"img/machine.png"
>
实例列表
<span
class=
"badge badge-grey"
ng-bind=
"namespace.instancesCount"
></span>
</a>
</li>
</ul>
</div>
<div
class=
"col-md-6 col-sm-6 text-right"
>
<a
class=
"clipboard"
data-clipboard-text=
"{{namespace.text}}"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"复制文本"
ng-show=
"!namespace.isTextEditing && namespace.viewType == 'text' && namespace.hasModifyPermission"
>
<img
src=
"img/copy.png"
class=
"ns_btn"
>
</a>
<a
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"取消修改"
ng-show=
"namespace.isTextEditing && namespace.viewType == 'text'"
ng-click=
"toggleTextEditStatus(namespace)"
>
<img
src=
"img/cancel.png"
class=
"ns_btn"
>
</a>
<a
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改配置"
ng-show=
"!namespace.isTextEditing && namespace.viewType == 'text' && namespace.hasModifyPermission"
ng-click=
"toggleTextEditStatus(namespace)"
>
<img
src=
"img/edit.png"
class=
"ns_btn"
>
</a>
<a
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"提交修改"
data-toggle=
"modal"
data-target=
"#commitModal"
ng-show=
"namespace.isTextEditing && namespace.viewType == 'text'"
ng-click=
"modifyByText(namespace)"
>
<img
src=
"img/submit.png"
class=
"ns_btn"
>
</a>
<button
type=
"button"
class=
"btn btn-default btn-sm"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"按Key过滤配置"
ng-show=
"namespace.viewType == 'table' && namespace.displayControl.currentOperateBranch == 'master'
&& !namespace.isLinkedNamespace"
ng-click=
"toggleItemSearchInput(namespace)"
>
<span
class=
"glyphicon glyphicon-filter"
></span>
过滤配置
</button>
ng-click=
"toggleItemSearchInput(namespace)"
>
<span
class=
"glyphicon glyphicon-filter"
></span>
过滤配置
</button>
<button
type=
"button"
class=
"btn btn-default btn-sm J_tableview_btn"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"同步各环境间配置"
ng-click=
"goToSyncPage(namespace)"
ng-show=
"namespace.viewType == 'table' && namespace.displayControl.currentOperateBranch == 'master'
<button
type=
"button"
class=
"btn btn-default btn-sm J_tableview_btn"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"同步各环境间配置"
ng-click=
"goToSyncPage(namespace)"
ng-show=
"namespace.viewType == 'table' && namespace.displayControl.currentOperateBranch == 'master'
&& namespace.hasModifyPermission && namespace.isPropertiesFormat"
>
<img
src=
"img/sync.png"
>
同步配置
</button>
<img
src=
"img/sync.png"
>
同步配置
</button>
<button
type=
"button"
class=
"btn btn-primary btn-sm"
ng-show=
"!namespace.isLinkedNamespace
<button
type=
"button"
class=
"btn btn-primary btn-sm"
ng-show=
"!namespace.isLinkedNamespace
&& namespace.viewType == 'table'
&& namespace.displayControl.currentOperateBranch == 'master'
&& namespace.hasModifyPermission"
ng-click=
"createItem(namespace)"
>
<img
src=
"img/plus.png"
>
新增配置
</button>
ng-click=
"createItem(namespace)"
>
<img
src=
"img/plus.png"
>
新增配置
</button>
</div>
</div>
</div>
</header>
</header>
<section>
<!--table view-->
<div
class=
"namespace-view-table"
ng-show=
"namespace.viewType == 'table'"
>
<!--namespace body-->
<section>
<!--table view-->
<div
class=
"namespace-view-table"
ng-show=
"namespace.viewType == 'table'"
>
<div
class=
"J_namespace-release-tip well well-sm no-radius text-center"
ng-show=
"namespace.isLatestReleaseLoaded && !namespace.isLinkedNamespace && !namespace.latestRelease"
>
<span
style=
"color: red"
>
Tips: 此namespace从来没有发布过,Apollo客户端将获取不到配置并记录404日志信息,请及时发布。
</span>
</div>
<!--not link namespace-->
<div
ng-if=
"!namespace.isLinkedNamespace"
>
<div
class=
"search-input"
ng-show=
"namespace.displayControl.showSearchInput"
>
<input
type=
"text"
class=
"form-control"
placeholder=
"输入key过滤"
ng-model=
"namespace.searchKey"
ng-change=
"searchItems(namespace)"
>
<div
class=
"J_namespace-release-tip well well-sm no-radius text-center"
ng-show=
"namespace.isLatestReleaseLoaded && !namespace.isLinkedNamespace && !namespace.latestRelease"
>
<span
style=
"color: red"
>
Tips: 此namespace从来没有发布过,Apollo客户端将获取不到配置并记录404日志信息,请及时发布。
</span>
</div>
<!--not link namespace-->
<div
ng-if=
"!namespace.isLinkedNamespace"
>
<div
class=
"search-input"
ng-show=
"namespace.displayControl.showSearchInput"
>
<input
type=
"text"
class=
"form-control"
placeholder=
"输入key过滤"
ng-model=
"namespace.searchKey"
ng-change=
"searchItems(namespace)"
>
</div>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<table
class=
"table table-bordered table-striped table-hover"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"8%"
class=
"text-center"
>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"8%"
class=
"text-center"
>
<span
class=
"label label-warning no-radius cursor-pointer"
ng-if=
"config.isModified"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"点击查看已发布的值"
ng-click=
"showText(config.oldValue?config.oldValue:'新增的配置,无发布的值')"
>
未发布
</span>
<span
class=
"label label-default-light no-radius"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"已生效的配置"
ng-if=
"!config.isModified"
>
已发布
</span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
<span
class=
"label label-default cursor-pointer"
ng-if=
"config.hasBranchValue"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"该配置有灰度配置,点击查看灰度的值"
ng-click=
"namespace.displayControl.currentOperateBranch=namespace.branchName;namespace.branch.viewType='table'"
>
灰
</span>
...
...
@@ -247,105 +258,105 @@
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改的配置"
>
改
</span>
<span
class=
"label label-danger"
ng-if=
"config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除的配置"
>
删
</span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"13%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"16%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"8%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/edit.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
<img
style=
"margin-left: 5px;"
src=
"img/cancel.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-click=
"preDeleteItem(namespace, config.item.id)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
<td
width=
"6%"
class=
"text-center"
ng-if=
"config.isDeleted"
>
</td>
</tr>
</tbody>
</table>
</div>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"13%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"16%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<!--link namespace-->
<div
class=
"panel panel-default"
ng-if=
"namespace.isLinkedNamespace"
>
<div
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"padding-top-5 col-md-4 col-sm-4"
>
覆盖的配置
</div>
<div
class=
"col-md-8 col-sm-8"
>
<input
type=
"text"
class=
"form-control pull-right"
placeholder=
"filter by key ..."
ng-class=
"{'search-onblur': namespace.searchStatus == 'OFF' || !namespace.searchStatus,
<td
width=
"8%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/edit.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
<img
style=
"margin-left: 5px;"
src=
"img/cancel.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-click=
"preDeleteItem(namespace, config.item.id)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
<td
width=
"6%"
class=
"text-center"
ng-if=
"config.isDeleted"
>
</td>
</tr>
</tbody>
</table>
</div>
<!--link namespace-->
<div
class=
"panel panel-default"
ng-if=
"namespace.isLinkedNamespace"
>
<div
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"padding-top-5 col-md-4 col-sm-4"
>
覆盖的配置
</div>
<div
class=
"col-md-8 col-sm-8"
>
<input
type=
"text"
class=
"form-control pull-right"
placeholder=
"filter by key ..."
ng-class=
"{'search-onblur': namespace.searchStatus == 'OFF' || !namespace.searchStatus,
'search-focus': namespace.searchStatus == 'ON'}"
ng-model=
"namespace.searchKey"
ng-change=
"searchItems(namespace)"
ng-focus=
"namespace.searchStatus='ON'"
ng-blur=
"namespace.searchStatus='OFF'"
>
ng-model=
"namespace.searchKey"
ng-change=
"searchItems(namespace)"
ng-focus=
"namespace.searchStatus='ON'"
ng-blur=
"namespace.searchStatus='OFF'"
>
</div>
</div>
</div>
</div>
<table
class=
"table table-bordered table-striped table-hover"
ng-if=
"namespace.viewItems && namespace.viewItems.length"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"8%"
class=
"text-center"
>
<table
class=
"table table-bordered table-striped table-hover"
ng-if=
"namespace.viewItems && namespace.viewItems.length"
>
<thead>
<tr>
<th>
发布状态
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key"
>
<td
width=
"8%"
class=
"text-center"
>
<span
class=
"label label-warning no-radius cursor-pointer"
ng-if=
"config.isModified"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"点击查看已发布的值"
ng-click=
"showText(config.oldValue?config.oldValue:'新增的配置,无发布的值')"
>
未发布
</span>
<span
class=
"label label-default-light no-radius"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"已生效的配置"
ng-if=
"!config.isModified"
>
已发布
</span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
<span
class=
"label label-default cursor-pointer"
ng-if=
"config.hasBranchValue"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"该配置有灰度配置,点击查看灰度的值"
ng-click=
"namespace.displayControl.currentOperateBranch=namespace.branchName;namespace.branch.viewType='table'"
>
灰
</span>
...
...
@@ -356,94 +367,172 @@
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改的配置"
>
改
</span>
<span
class=
"label label-danger"
ng-if=
"config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除的配置"
>
删
</span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"13%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"16%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"8%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/edit.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
<img
style=
"margin-left: 5px;"
src=
"img/cancel.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-click=
"preDeleteItem(namespace, config.item.id)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
<td
width=
"6%"
class=
"text-center"
ng-if=
"config.isDeleted"
>
</td>
</tr>
</tbody>
</table>
<div
class=
"text-center no-config-panel"
ng-if=
"!namespace.viewItems || !namespace.viewItems.length"
>
<h5>
无覆盖的配置
</h5>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"13%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"16%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"8%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/edit.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission"
>
<img
style=
"margin-left: 5px;"
src=
"img/cancel.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除"
ng-click=
"preDeleteItem(namespace, config.item.id)"
ng-show=
"namespace.hasModifyPermission"
>
</td>
<td
width=
"6%"
class=
"text-center"
ng-if=
"config.isDeleted"
>
</td>
</tr>
</tbody>
</table>
<div
class=
"text-center no-config-panel"
ng-if=
"!namespace.viewItems || !namespace.viewItems.length"
>
<h5>
无覆盖的配置
</h5>
</div>
</div>
</div>
<!--link namespace's public namespace-->
<div
ng-if=
"namespace.isLinkedNamespace"
>
<div
class=
"panel panel-default"
ng-if=
"namespace.publicNamespace"
>
<div
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"padding-top-5 col-md-4 col-sm-4"
>
公共的配置
<a
href=
"/config.html?#/appid={{namespace.publicNamespace.baseInfo.appId}}&env={{env}}&cluster={{namespace.publicNamespace.baseInfo.clusterName}}"
target=
"_blank"
>
<small>
(AppId:{{namespace.publicNamespace.baseInfo.appId}},
Cluster:{{namespace.publicNamespace.baseInfo.clusterName}})
</small>
</a>
</div>
<!--link namespace's public namespace-->
<div
ng-if=
"namespace.isLinkedNamespace"
>
<div
class=
"panel panel-default"
ng-if=
"namespace.publicNamespace"
>
<div
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"padding-top-5 col-md-4 col-sm-4"
>
公共的配置
<a
href=
"/config.html?#/appid={{namespace.publicNamespace.baseInfo.appId}}&env={{env}}&cluster={{namespace.publicNamespace.baseInfo.clusterName}}"
target=
"_blank"
>
<small>
(AppId:{{namespace.publicNamespace.baseInfo.appId}},
Cluster:{{namespace.publicNamespace.baseInfo.clusterName}})
</small>
</a>
</div>
<div
class=
"col-md-4 col-sm-4 text-center"
>
<div
class=
"btn-group btn-group-sm"
role=
"group"
ng-show=
"namespace.publicNamespace.isModified"
>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'active':namespace.publicNamespaceViewType == 'RELEASE'
<div
class=
"col-md-4 col-sm-4 text-center"
>
<div
class=
"btn-group btn-group-sm"
role=
"group"
ng-show=
"namespace.publicNamespace.isModified"
>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'active':namespace.publicNamespaceViewType == 'RELEASE'
|| !namespace.publicNamespaceViewType}"
ng-click=
"namespace.publicNamespaceViewType = 'RELEASE'"
>
已发布的配置
</button>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'active':namespace.publicNamespaceViewType == 'NOT_RELEASE'}"
ng-click=
"namespace.publicNamespaceViewType = 'NOT_RELEASE'"
>
未发布的配置
</button>
ng-click=
"namespace.publicNamespaceViewType = 'RELEASE'"
>
已发布的配置
</button>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'active':namespace.publicNamespaceViewType == 'NOT_RELEASE'}"
ng-click=
"namespace.publicNamespaceViewType = 'NOT_RELEASE'"
>
未发布的配置
</button>
</div>
</div>
</div>
<div
class=
"col-md-4 col-sm-4"
>
<input
type=
"text"
class=
"form-control pull-right"
placeholder=
"filter by key ..."
ng-class=
"{'search-onblur': namespace.publicNamespace.searchStatus == 'OFF'
<div
class=
"col-md-4 col-sm-4"
>
<input
type=
"text"
class=
"form-control pull-right"
placeholder=
"filter by key ..."
ng-class=
"{'search-onblur': namespace.publicNamespace.searchStatus == 'OFF'
|| !namespace.publicNamespace.searchStatus,
'search-focus': namespace.publicNamespace.searchStatus == 'ON'}"
ng-model=
"namespace.publicNamespace.searchKey"
ng-change=
"searchItems(namespace.publicNamespace)"
ng-blur=
"namespace.publicNamespace.searchStatus='OFF'"
ng-focus=
"namespace.publicNamespace.searchStatus='ON'"
/>
ng-model=
"namespace.publicNamespace.searchKey"
ng-change=
"searchItems(namespace.publicNamespace)"
ng-blur=
"namespace.publicNamespace.searchStatus='OFF'"
ng-focus=
"namespace.publicNamespace.searchStatus='ON'"
/>
</div>
</div>
</div>
</div>
<!--published items-->
<div
ng-show=
"!namespace.publicNamespaceViewType || namespace.publicNamespaceViewType == 'RELEASE'"
>
<!--published items-->
<div
ng-show=
"!namespace.publicNamespaceViewType || namespace.publicNamespaceViewType == 'RELEASE'"
>
<table
class=
"table table-bordered table-striped table-hover"
ng-show=
"namespace.publicNamespace.hasPublishedItem"
>
<thead>
<tr>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
Value
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.publicNamespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key && !config.isModified && !config.isDeleted"
>
<td
width=
"15%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"35%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"15%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"15%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"10%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/gray.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"覆盖此配置"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission && !config.covered"
>
</td>
<td
width=
"6%"
class=
"text-center"
ng-if=
"config.isDeleted"
>
</td>
</tr>
</tbody>
</table>
<div
class=
"text-center no-config-panel"
ng-if=
"namespace.publicNamespace.viewItems
&& namespace.publicNamespace.viewItems.length
&& !namespace.publicNamespace.hasPublishedItem"
>
<h5>
无发布的配置
</h5>
</div>
</div>
<!--not published items-->
<table
class=
"table table-bordered table-striped table-hover"
ng-show=
"namespace.publicNamespace
.hasPublishedItem
"
>
ng-show=
"namespace.publicNamespace
ViewType == 'NOT_RELEASE'
"
>
<thead>
<tr>
<th
class=
"hover"
title=
"排序"
...
...
@@ -453,16 +542,13 @@
</th>
<th>
Value
已发布的值
</th>
<th>
备注
未发布的值
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedBy';desc=!desc;"
>
最后修改人
<span
class=
"glyphicon glyphicon-sort"
></span>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
...
...
@@ -477,444 +563,370 @@
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.publicNamespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key &&
!config.isModified && !config.isDeleted
"
>
<td
width=
"
15
%"
class=
"cursor-pointer"
title=
"点击查看"
ng-if=
"config.item.key &&
(config.isModified || config.isDeleted)
"
>
<td
width=
"
20
%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
<span
class=
"label label-success"
ng-if=
"config.isModified && !config.oldValue"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"新增的配置"
>
新
</span>
<span
class=
"label label-info"
ng-if=
"config.isModified && config.oldValue && !config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改的配置"
>
改
</span>
<span
class=
"label label-danger"
ng-if=
"config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除的配置"
>
删
</span>
</td>
<td
width=
"25%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.oldValue)"
>
<span
ng-bind=
"config.oldValue | limitTo: 250"
></span>
<span
ng-bind=
"config.oldValue.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"
3
5%"
class=
"cursor-pointer"
title=
"点击查看"
<td
width=
"
2
5%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"1
5
%"
title=
"{{config.item.comment}}"
>
<td
width=
"1
0
%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"10%"
ng-bind=
"config.item.dataChangeLastModifiedBy"
>
</td>
<td
width=
"15%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"10%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/gray.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"覆盖此配置"
<td
width=
"5%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/gray.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"覆盖此配置"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission && !config.covered"
>
</td>
<td
width=
"6%"
class=
"text-center"
ng-if=
"config.isDeleted"
>
</td>
</tr>
</tbody>
</table>
<div
class=
"text-center no-config-panel"
ng-if=
"namespace.publicNamespace.viewItems
&& namespace.publicNamespace.viewItems.length
&& !namespace.publicNamespace.hasPublishedItem"
>
<h5>
无发布的配置
</h5>
ng-if=
"!namespace.publicNamespace.viewItems || !namespace.publicNamespace.viewItems.length"
>
<h5>
无公共的配置
</h5>
</div>
</div>
<!--not published items-->
<table
class=
"table table-bordered table-striped table-hover"
ng-show=
"namespace.publicNamespaceViewType == 'NOT_RELEASE'"
>
<thead>
<tr>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.key';desc=!desc;"
>
Key
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
已发布的值
</th>
<th>
未发布的值
</th>
<th>
备注
</th>
<th
class=
"hover"
title=
"排序"
ng-click=
"col='item.dataChangeLastModifiedTime';desc=!desc;"
>
最后修改时间
<span
class=
"glyphicon glyphicon-sort"
></span>
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"config in namespace.publicNamespace.viewItems |orderBy:col:desc"
ng-if=
"config.item.key && (config.isModified || config.isDeleted)"
>
<td
width=
"20%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.key)"
>
<span
ng-bind=
"config.item.key | limitTo: 250"
></span>
<span
ng-bind=
"config.item.key.length > 250 ? '...' :''"
></span>
<span
class=
"label label-success"
ng-if=
"config.isModified && !config.oldValue"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"新增的配置"
>
新
</span>
<span
class=
"label label-info"
ng-if=
"config.isModified && config.oldValue && !config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"修改的配置"
>
改
</span>
<span
class=
"label label-danger"
ng-if=
"config.isDeleted"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"删除的配置"
>
删
</span>
</td>
<td
width=
"25%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.oldValue)"
>
<span
ng-bind=
"config.oldValue | limitTo: 250"
></span>
<span
ng-bind=
"config.oldValue.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"25%"
class=
"cursor-pointer"
title=
"点击查看"
ng-click=
"showText(config.item.value)"
>
<span
ng-bind=
"config.item.value | limitTo: 250"
></span>
<span
ng-bind=
"config.item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"10%"
title=
"{{config.item.comment}}"
>
<span
ng-bind=
"config.item.comment | limitTo: 250"
></span>
<span
ng-bind=
"config.item.comment.length > 250 ?'...' : ''"
></span>
</td>
<td
width=
"15%"
ng-bind=
"config.item.dataChangeLastModifiedTime | date: 'yyyy-MM-dd HH:mm:ss'"
>
</td>
<td
width=
"5%"
class=
"text-center"
ng-if=
"!config.isDeleted"
>
<img
src=
"img/gray.png"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"覆盖此配置"
ng-click=
"editItem(namespace, config.item)"
ng-show=
"namespace.hasModifyPermission && !config.covered"
>
</td>
</tr>
</tbody>
</table>
<div
class=
"text-center no-config-panel"
ng-if=
"!namespace.publicNamespace.viewItems || !namespace.publicNamespace.viewItems.length"
>
<h5>
无公共的配置
</h5>
</div>
</div>
<div
class=
"panel panel-default"
ng-if=
"!namespace.publicNamespace"
>
<div
class=
"panel-heading"
>
公共的配置
</div>
<div
class=
"panel-body text-center"
>
当前公共namespace的所有者
<a
href=
"/config.html?#/appid={{namespace.parentAppId}}"
target=
"_blank"
>
{{namespace.parentAppId}}
</a>
没有关联此namespace,请联系{{namespace.parentAppId}}的所有者在{{namespace.parentAppId}}项目里关联此namespace
<div
class=
"panel panel-default"
ng-if=
"!namespace.publicNamespace"
>
<div
class=
"panel-heading"
>
公共的配置
</div>
<div
class=
"panel-body text-center"
>
当前公共namespace的所有者
<a
href=
"/config.html?#/appid={{namespace.parentAppId}}"
target=
"_blank"
>
{{namespace.parentAppId}}
</a>
没有关联此namespace,请联系{{namespace.parentAppId}}的所有者在{{namespace.parentAppId}}项目里关联此namespace
</div>
</div>
</div>
</div>
</div>
</div>
<!--text view-->
<!--只读模式下的文本内容,不替换换行符-->
<!--text view-->
<!--只读模式下的文本内容,不替换换行符-->
<textarea
class=
"form-control no-radius"
rows=
"{{namespace.itemCnt < 10 ? 10: namespace.itemCnt>20 ? 20:namespace.itemCnt}}"
ng-show=
"namespace.viewType == 'text' && !namespace.isTextEditing"
ng-disabled=
"!namespace.isTextEditing"
ng-bind=
"namespace.text"
>
</textarea>
<!--编辑状态下的文本内容,会过滤掉换行符-->
<!--编辑状态下的文本内容,会过滤掉换行符-->
<textarea
class=
"form-control no-radius"
rows=
"{{namespace.itemCnt < 10 ? 10: namespace.itemCnt>20 ? 20:namespace.itemCnt}}"
ng-show=
"namespace.viewType == 'text' && namespace.isTextEditing"
ng-disabled=
"!namespace.isTextEditing"
ng-model=
"namespace.editText"
>
</textarea>
<!--history view-->
<div
class=
"J_historyview history-view"
ng-show=
"namespace.viewType == 'history'"
>
<div
class=
"media"
ng-show=
"namespace.commits && namespace.commits.length"
ng-repeat=
"commits in namespace.commits"
>
<div
class=
"media-body"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6"
><h3
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedBy"
></h3>
</div>
<div
class=
"col-md-6 col-sm-6 text-right"
><h5
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedTime | date: 'yyyy-MM-dd HH:mm:ss'"
></h5>
<!--history view-->
<div
class=
"J_historyview history-view"
ng-show=
"namespace.viewType == 'history'"
>
<div
class=
"media"
ng-show=
"namespace.commits && namespace.commits.length"
ng-repeat=
"commits in namespace.commits"
>
<div
class=
"media-body"
>
<div
class=
"row"
>
<div
class=
"col-md-6 col-sm-6"
><h3
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedBy"
></h3>
</div>
<div
class=
"col-md-6 col-sm-6 text-right"
><h5
class=
"media-heading"
ng-bind=
"commits.dataChangeCreatedTime | date: 'yyyy-MM-dd HH:mm:ss'"
></h5>
</div>
</div>
</div>
<!--properties format-->
<table
class=
"table table-bordered table-striped text-center table-hover"
style=
"margin-top: 5px;"
ng-if=
"namespace.isPropertiesFormat"
>
<thead>
<tr>
<th>
Type
</th>
<th>
Key
</th>
<th>
Old Value
</th>
<th>
New Value
</th>
<th>
Comment
</th>
</tr>
</thead>
<tbody>
<!--properties format-->
<table
class=
"table table-bordered table-striped text-center table-hover"
style=
"margin-top: 5px;"
ng-if=
"namespace.isPropertiesFormat"
>
<thead>
<tr>
<th>
Type
</th>
<th>
Key
</th>
<th>
Old Value
</th>
<th>
New Value
</th>
<th>
Comment
</th>
</tr>
</thead>
<tbody>
<!--兼容老数据,不显示item类型为空行和注释的item-->
<tr
ng-repeat=
"item in commits.changeSets.createItems"
ng-show=
"item.key"
>
<td
width=
"2%"
>
新增
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<!--兼容老数据,不显示item类型为空行和注释的item-->
<tr
ng-repeat=
"item in commits.changeSets.createItems"
ng-show=
"item.key"
>
<td
width=
"2%"
>
新增
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.value}}"
ng-click=
"showText(item.value)"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.updateItems"
>
<td
width=
"2%"
>
更新
</td>
<td
width=
"20%"
title=
"{{item.newItem.key}}"
>
<span
ng-bind=
"item.newItem.key | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.oldItem.value}}"
ng-click=
"showText(item.oldItem.value)"
>
<span
ng-bind=
"item.oldItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.oldItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.newItem.value}}"
ng-click=
"showText(item.newItem.value)"
>
<span
ng-bind=
"item.newItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.newItem.comment}}"
>
<span
ng-bind=
"item.newItem.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.deleteItems"
ng-show=
"item.key || item.comment"
>
<td
width=
"2%"
>
删除
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
title=
"{{item.value}}"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
</tbody>
</table>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.value}}"
ng-click=
"showText(item.value)"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.updateItems"
>
<td
width=
"2%"
>
更新
</td>
<td
width=
"20%"
title=
"{{item.newItem.key}}"
>
<span
ng-bind=
"item.newItem.key | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.oldItem.value}}"
ng-click=
"showText(item.oldItem.value)"
>
<span
ng-bind=
"item.oldItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.oldItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
class=
"cursor-pointer"
title=
"{{item.newItem.value}}"
ng-click=
"showText(item.newItem.value)"
>
<span
ng-bind=
"item.newItem.value | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"18%"
title=
"{{item.newItem.comment}}"
>
<span
ng-bind=
"item.newItem.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.newItem.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
<tr
ng-repeat=
"item in commits.changeSets.deleteItems"
ng-show=
"item.key || item.comment"
>
<td
width=
"2%"
>
删除
</td>
<td
width=
"20%"
title=
"{{item.key}}"
>
<span
ng-bind=
"item.key | limitTo: 250"
></span>
<span
ng-bind=
"item.key.length > 250 ? '...' :''"
></span>
</td>
<td
width=
"30%"
title=
"{{item.value}}"
>
<span
ng-bind=
"item.value | limitTo: 250"
></span>
<span
ng-bind=
"item.value.length > 250 ? '...': ''"
></span>
</td>
<td
width=
"30%"
>
</td>
<td
width=
"18%"
title=
"{{item.comment}}"
>
<span
ng-bind=
"item.comment | limitTo: 250"
></span>
<span
ng-bind=
"item.comment.length > 250 ?'...' : ''"
></span>
</td>
</tr>
</tbody>
</table>
<!--not properties format-->
<div
ng-if=
"!namespace.isPropertiesFormat"
>
<div
ng-repeat=
"item in commits.changeSets.createItems"
>
<!--not properties format-->
<div
ng-if=
"!namespace.isPropertiesFormat"
>
<div
ng-repeat=
"item in commits.changeSets.createItems"
>
<textarea
class=
"form-control no-radius"
rows=
"20"
ng-disabled=
"true"
ng-bind=
"item.value"
>
</textarea>
</div>
</div>
<div
ng-repeat=
"item in commits.changeSets.updateItems"
>
<div
ng-repeat=
"item in commits.changeSets.updateItems"
>
<textarea
class=
"form-control no-radius"
rows=
"20"
ng-disabled=
"true"
ng-bind=
"item.newItem.value"
>
</textarea>
</div>
</div>
</div>
</div>
<hr>
</div>
<div
class=
"text-center"
>
<button
type=
"button"
class=
"btn btn-default"
ng-show=
"!namespace.hasLoadAllCommit"
ng-click=
"loadCommitHistory(namespace)"
>
加载更多
<span
class=
"glyphicon glyphicon-menu-down"
></span></button>
</div>
<div
class=
"empty-container text-center"
ng-show=
"!namespace.commits || !namespace.commits.length"
>
无更改历史
</div>
<hr>
</div>
<div
class=
"text-center"
>
<button
type=
"button"
class=
"btn btn-default"
ng-show=
"!namespace.hasLoadAllCommit"
ng-click=
"loadCommitHistory(namespace)"
>
加载更多
<span
class=
"glyphicon glyphicon-menu-down"
></span></button>
</div>
<div
class=
"empty-container text-center"
ng-show=
"!namespace.commits || !namespace.commits.length"
>
无更改历史
</div>
</div>
<!--instance view-->
<div
class=
"panel panel-default instance-view"
ng-show=
"namespace.viewType == 'instance'"
>
<div
class=
"panel-heading"
>
<div
class=
"row"
>
<!--instance view-->
<div
class=
"panel panel-default instance-view"
ng-show=
"namespace.viewType == 'instance'"
>
<div
class=
"panel-heading"
>
<div
class=
"row"
>
<div
class=
"col-md-5 col-sm-5"
>
<small>
实例说明:只展示最近一天访问过Apollo的实例
</small>
</div>
<div
class=
"col-md-7 col-sm-7 text-right"
>
<div
class=
"btn-group btn-group-sm"
role=
"group"
>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'btn-primary':namespace.instanceViewType == 'latest_release'}"
ng-click=
"switchInstanceViewType(namespace, 'latest_release')"
>
使用最新配置的实例
<span
class=
"badge"
ng-bind=
"namespace.latestReleaseInstances.total"
></span>
</button>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'btn-primary':namespace.instanceViewType == 'not_latest_release'}"
ng-click=
"switchInstanceViewType(namespace, 'not_latest_release')"
>
使用非最新配置的实例
<div
class=
"col-md-5 col-sm-5"
>
<small>
实例说明:只展示最近一天访问过Apollo的实例
</small>
</div>
<div
class=
"col-md-7 col-sm-7 text-right"
>
<div
class=
"btn-group btn-group-sm"
role=
"group"
>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'btn-primary':namespace.instanceViewType == 'latest_release'}"
ng-click=
"switchInstanceViewType(namespace, 'latest_release')"
>
使用最新配置的实例
<span
class=
"badge"
ng-bind=
"namespace.latestReleaseInstances.total"
></span>
</button>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'btn-primary':namespace.instanceViewType == 'not_latest_release'}"
ng-click=
"switchInstanceViewType(namespace, 'not_latest_release')"
>
使用非最新配置的实例
<span
class=
"badge"
ng-bind=
"namespace.instancesCount - namespace.latestReleaseInstances.total"
></span>
</button>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'btn-primary':namespace.instanceViewType == 'all'}"
ng-click=
"switchInstanceViewType(namespace, 'all')"
>
所有实例
<span
class=
"badge"
ng-bind=
"namespace.instancesCount"
></span>
</button>
<button
type=
"button"
class=
"btn btn-default"
ng-class=
"{'btn-primary':namespace.instanceViewType == 'all'}"
ng-click=
"switchInstanceViewType(namespace, 'all')"
>
所有实例
<span
class=
"badge"
ng-bind=
"namespace.instancesCount"
></span>
</button>
</div>
<button
class=
"btn btn-default btn-sm"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"刷新列表"
ng-click=
"refreshInstancesInfo(namespace)"
>
<img
src=
"../../img/refresh.png"
/>
</button>
</div>
<button
class=
"btn btn-default btn-sm"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"刷新列表"
ng-click=
"refreshInstancesInfo(namespace)"
>
<img
src=
"../../img/refresh.png"
/>
</button>
</div>
</div>
</div>
</div>
<!--latest release instances-->
<div
class=
"panel-body"
ng-show=
"namespace.instanceViewType == 'latest_release'"
>
<!--latest release instances-->
<div
class=
"panel-body"
ng-show=
"namespace.instanceViewType == 'latest_release'"
>
<div
class=
"panel-default"
ng-if=
"namespace.latestReleaseInstances.total > 0"
>
<div
class=
"panel-heading"
>
<a
target=
"_blank"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看配置"
href=
"/config/history.html?#/appid={{appId}}&env={{env}}&clusterName={{cluster}}&namespaceName={{namespace.baseInfo.namespaceName}}&releaseId={{namespace.latestRelease.id}}"
>
{{namespace.latestRelease.name}}
</a>
</div>
<table
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
<td>
配置获取时间
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.latestReleaseInstances.content"
>
<td
width=
"20%"
ng-bind=
"instance.appId"
></td>
<td
width=
"20%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"20%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"20%"
ng-bind=
"instance.ip"
></td>
<td
width=
"20%"
>
{{instance.configs
&&
instance.configs.length ?
(instance.configs[0].releaseDeliveryTime | date: 'yyyy-MM-dd HH:mm:ss') : ''}}
</td>
</tr>
</tbody>
</table>
<div
class=
"row text-center"
ng-show=
"namespace.latestReleaseInstances.content.length < namespace.latestReleaseInstances.total"
>
<button
class=
"btn btn-default"
ng-click=
"loadInstanceInfo(namespace)"
>
加载更多
</button>
<div
class=
"panel-default"
ng-if=
"namespace.latestReleaseInstances.total > 0"
>
<div
class=
"panel-heading"
>
<a
target=
"_blank"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看配置"
href=
"/config/history.html?#/appid={{appId}}&env={{env}}&clusterName={{cluster}}&namespaceName={{namespace.baseInfo.namespaceName}}&releaseId={{namespace.latestRelease.id}}"
>
{{namespace.latestRelease.name}}
</a>
</div>
<table
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
<td>
配置获取时间
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.latestReleaseInstances.content"
>
<td
width=
"20%"
ng-bind=
"instance.appId"
></td>
<td
width=
"20%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"20%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"20%"
ng-bind=
"instance.ip"
></td>
<td
width=
"20%"
>
{{instance.configs
&&
instance.configs.length ?
(instance.configs[0].releaseDeliveryTime | date: 'yyyy-MM-dd HH:mm:ss') : ''}}
</td>
</tr>
</tbody>
</table>
<div
class=
"row text-center"
ng-show=
"namespace.latestReleaseInstances.content.length < namespace.latestReleaseInstances.total"
>
<button
class=
"btn btn-default"
ng-click=
"loadInstanceInfo(namespace)"
>
加载更多
</button>
</div>
</div>
</div>
<div
class=
"text-center"
ng-if=
"namespace.latestReleaseInstances.total == 0"
>
无实例信息
<div
class=
"text-center"
ng-if=
"namespace.latestReleaseInstances.total == 0"
>
无实例信息
</div>
</div>
</div>
<!--not latest release instances-->
<div
class=
"panel-body"
ng-show=
"namespace.instanceViewType == 'not_latest_release'"
>
<div
class=
"panel-default"
ng-if=
"namespace.instancesCount - namespace.latestReleaseInstances.total > 0"
ng-repeat=
"release in namespace.notLatestReleases"
>
<div
class=
"panel-heading"
>
<a
target=
"_blank"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看配置"
href=
"/config/history.html?#/appid={{appId}}&env={{env}}&clusterName={{cluster}}&namespaceName={{namespace.baseInfo.namespaceName}}&releaseId={{release.id}}"
>
{{release.name}}
</a>
<!--not latest release instances-->
<div
class=
"panel-body"
ng-show=
"namespace.instanceViewType == 'not_latest_release'"
>
<div
class=
"panel-default"
ng-if=
"namespace.instancesCount - namespace.latestReleaseInstances.total > 0"
ng-repeat=
"release in namespace.notLatestReleases"
>
<div
class=
"panel-heading"
>
<a
target=
"_blank"
data-tooltip=
"tooltip"
data-placement=
"bottom"
title=
"查看配置"
href=
"/config/history.html?#/appid={{appId}}&env={{env}}&clusterName={{cluster}}&namespaceName={{namespace.baseInfo.namespaceName}}&releaseId={{release.id}}"
>
{{release.name}}
</a>
</div>
<table
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
<td>
配置获取时间
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.notLatestReleaseInstances[release.id]"
>
<td
width=
"20%"
ng-bind=
"instance.appId"
></td>
<td
width=
"20%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"20%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"20%"
ng-bind=
"instance.ip"
></td>
<td
width=
"20%"
>
{{instance.configs
&&
instance.configs.length ?
(instance.configs[0].releaseDeliveryTime | date: 'yyyy-MM-dd HH:mm:ss') : ''}}
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"text-center"
ng-if=
"namespace.instancesCount - namespace.latestReleaseInstances.total == 0"
>
无实例信息
</div>
<table
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
<td>
配置获取时间
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.notLatestReleaseInstances[release.id]"
>
<td
width=
"20%"
ng-bind=
"instance.appId"
></td>
<td
width=
"20%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"20%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"20%"
ng-bind=
"instance.ip"
></td>
<td
width=
"20%"
>
{{instance.configs
&&
instance.configs.length ?
(instance.configs[0].releaseDeliveryTime | date: 'yyyy-MM-dd HH:mm:ss') : ''}}
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"text-center"
ng-if=
"namespace.instancesCount - namespace.latestReleaseInstances.total == 0"
>
无实例信息
</div>
</div>
<!--all instances-->
<div
class=
"panel-body"
ng-show=
"namespace.instanceViewType == 'all'"
>
<div
class=
"panel-default"
ng-if=
"namespace.instancesCount > 0"
>
<table
class=
"table table-bordered table-striped"
ng-if=
"namespace.allInstances"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.allInstances"
>
<td
width=
"25%"
ng-bind=
"instance.appId"
></td>
<td
width=
"25%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"25%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"25%"
ng-bind=
"instance.ip"
></td>
</tr>
</tbody>
</table>
<div
class=
"row text-center"
ng-show=
"namespace.allInstances.length < namespace.instancesCount"
>
<button
class=
"btn btn-default"
ng-click=
"loadInstanceInfo(namespace)"
>
加载更多
</button>
<!--all instances-->
<div
class=
"panel-body"
ng-show=
"namespace.instanceViewType == 'all'"
>
<div
class=
"panel-default"
ng-if=
"namespace.instancesCount > 0"
>
<table
class=
"table table-bordered table-striped"
ng-if=
"namespace.allInstances"
>
<thead>
<tr>
<td>
App ID
</td>
<td>
Cluster Name
</td>
<td>
Data Center
</td>
<td>
IP
</td>
</tr>
</thead>
<tbody>
<tr
ng-repeat=
"instance in namespace.allInstances"
>
<td
width=
"25%"
ng-bind=
"instance.appId"
></td>
<td
width=
"25%"
ng-bind=
"instance.clusterName"
></td>
<td
width=
"25%"
ng-bind=
"instance.dataCenter"
></td>
<td
width=
"25%"
ng-bind=
"instance.ip"
></td>
</tr>
</tbody>
</table>
<div
class=
"row text-center"
ng-show=
"namespace.allInstances.length < namespace.instancesCount"
>
<button
class=
"btn btn-default"
ng-click=
"loadInstanceInfo(namespace)"
>
加载更多
</button>
</div>
</div>
<div
class=
"text-center"
ng-if=
"namespace.instancesCount == 0"
>
无实例信息
</div>
</div>
<div
class=
"text-center"
ng-if=
"namespace.instancesCount == 0"
>
无实例信息
</div>
</div>
</
div
>
</
section
>
</
section
>
</
div
>
</section>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment