Commit 770d2dae by Jason Song Committed by GitHub

Merge pull request #507 from lepdou/0113

format json & config.html adapt small screen
parents 3ddf3e6b 8c54b3a7
...@@ -16,12 +16,8 @@ ...@@ -16,12 +16,8 @@
<apollonav></apollonav> <apollonav></apollonav>
<div id="config-info" class="container-fluid apollo-container app"> <div id="config-info" class="apollo-container app">
<!--具体配置信息-->
<div class="config-info-container row">
<div ng-controller="ConfigBaseInfoController"> <div ng-controller="ConfigBaseInfoController">
<div class="J_appNotFound hidden row text-center app-not-found" ng-show="notFoundApp"> <div class="J_appNotFound hidden row text-center app-not-found" ng-show="notFoundApp">
<img src="img/404.png"> <img src="img/404.png">
<br> <br>
...@@ -30,7 +26,12 @@ ...@@ -30,7 +26,12 @@
</p> </p>
</div> </div>
<div class="J_appFound hidden col-md-2 col-xs-2 col-sm-2" ng-show="!notFoundApp"> <div class="side-bar"
ng-class="{'position-absolute': viewMode == 1, 'position-fixed': viewMode == 2}">
<div class="J_appFound hidden"
ng-show="!notFoundApp && (viewMode == 1 || (viewMode == 2 && showSideBar))">
<!--env list-->
<section class="panel"> <section class="panel">
<header class="panel-heading"> <header class="panel-heading">
<img src="img/env.png" class="i-20">&nbsp;环境列表 <img src="img/env.png" class="i-20">&nbsp;环境列表
...@@ -98,6 +99,8 @@ ...@@ -98,6 +99,8 @@
</div> </div>
</section> </section>
<!--operation entrance-->
<section>
<a class="list-group-item" ng-show="missEnvs.length > 0" ng-click="createAppInMissEnv()"> <a class="list-group-item" ng-show="missEnvs.length > 0" ng-click="createAppInMissEnv()">
<div class="row icon-text icon-plus-orange"> <div class="row icon-text icon-plus-orange">
<p class="btn-title ng-binding">补缺环境</p> <p class="btn-title ng-binding">补缺环境</p>
...@@ -107,36 +110,43 @@ ...@@ -107,36 +110,43 @@
<apolloentrance apollo-title="'添加集群'" apollo-img-src="'plus-orange'" <apolloentrance apollo-title="'添加集群'" apollo-img-src="'plus-orange'"
apollo-href="'cluster.html?#/appid=' + pageContext.appId" apollo-href="'cluster.html?#/appid=' + pageContext.appId"
ng-show="hasCreateClusterPermission"></apolloentrance> ng-show="hasCreateClusterPermission"></apolloentrance>
<span class="list-group-item cursor-pointer hover" ng-click="showMasterPermissionTips()"
<div class="list-group-item cursor-pointer hover" ng-click="showMasterPermissionTips()"
ng-show="!hasCreateClusterPermission"> ng-show="!hasCreateClusterPermission">
<div class="row icon-text icon-plus-orange"> <div class="row icon-text icon-plus-orange">
<p class="btn-title">添加集群</p> <p class="btn-title">添加集群</p>
</div> </div>
</span> </div>
<apolloentrance apollo-title="'添加Namespace'" apollo-img-src="'plus-orange'" <apolloentrance apollo-title="'添加Namespace'" apollo-img-src="'plus-orange'"
apollo-href="'namespace.html?#/appid=' + pageContext.appId" apollo-href="'namespace.html?#/appid=' + pageContext.appId"
ng-show="hasCreateNamespacePermission"></apolloentrance> ng-show="hasCreateNamespacePermission"></apolloentrance>
<span class="list-group-item cursor-pointer hover" ng-click="showMasterPermissionTips()"
<div class="list-group-item cursor-pointer hover" ng-click="showMasterPermissionTips()"
ng-show="!hasCreateNamespacePermission"> ng-show="!hasCreateNamespacePermission">
<div class="row icon-text icon-plus-orange"> <div class="row icon-text icon-plus-orange">
<p class="btn-title">添加Namespace</p> <p class="btn-title">添加Namespace</p>
</div> </div>
</span> </div>
<apolloentrance apollo-title="'项目权限'" apollo-img-src="'user-manage'" <apolloentrance apollo-title="'项目权限'" apollo-img-src="'user-manage'"
apollo-href="'/app/role.html?#/appid=' + pageContext.appId" apollo-href="'/app/role.html?#/appid=' + pageContext.appId"
ng-show="hasAssignUserPermission"></apolloentrance> ng-show="hasAssignUserPermission"></apolloentrance>
</section> </section>
</div>
</div> </div>
</div> </div>
<!--具体配置信息-->
<!--namespaces--> <!--namespaces-->
<div class="col-md-10 col-xs-10 col-sm-10 config-item-container hide" <div class="config-item-container hide"
ng-class="{'view-mode-1': viewMode == 1, 'view-mode-2': viewMode == 2}"
ng-controller="ConfigNamespaceController"> ng-controller="ConfigNamespaceController">
<h4 class="text-center" ng-show="viewMode == 2">
当前操作环境:{{pageContext.env}}, 集群:{{pageContext.clusterName}}
</h4>
<div class="alert alert-info alert-dismissible" role="alert" <div class="alert alert-info alert-dismissible" role="alert"
ng-show="(!hideTip || !hideTip[pageContext.appId][pageContext.clusterName]) && envMapClusters[pageContext.env]"> ng-show="(!hideTip || !hideTip[pageContext.appId][pageContext.clusterName]) && envMapClusters[pageContext.env]">
...@@ -167,7 +177,9 @@ ...@@ -167,7 +177,9 @@
<div class="alert alert-info" <div class="alert alert-info"
ng-if="hasNotPublishNamespace"> ng-if="hasNotPublishNamespace">
<p><b>注意:</b>以下环境/集群有未发布的配置,客户端获取不到未发布的配置,请及时发布。</p> <p><b>注意:</b>以下环境/集群有未发布的配置,客户端获取不到未发布的配置,请及时发布。</p>
<p><mark ng-bind="namespacePublishInfo.join(',')"></mark></p> <p>
<mark ng-bind="namespacePublishInfo.join(',')"></mark>
</p>
</div> </div>
<apollonspanel ng-repeat="namespace in namespaces" <apollonspanel ng-repeat="namespace in namespaces"
...@@ -294,7 +306,6 @@ ...@@ -294,7 +306,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div> </div>
......
...@@ -208,6 +208,7 @@ function ConfigBaseInfoController($rootScope, $scope, $location, toastr, EventMa ...@@ -208,6 +208,7 @@ function ConfigBaseInfoController($rootScope, $scope, $location, toastr, EventMa
})); }));
EventManager.emit(EventManager.EventType.REFRESH_NAMESPACE); EventManager.emit(EventManager.EventType.REFRESH_NAMESPACE);
$rootScope.showSideBar = false;
} }
}); });
...@@ -298,5 +299,30 @@ function ConfigBaseInfoController($rootScope, $scope, $location, toastr, EventMa ...@@ -298,5 +299,30 @@ function ConfigBaseInfoController($rootScope, $scope, $location, toastr, EventMa
}; };
} }
var VIEW_MODE_SWITCH_WIDTH = 1156;
if (window.innerWidth <= VIEW_MODE_SWITCH_WIDTH) {
$rootScope.viewMode = 2;
$rootScope.showSideBar = false;
} else {
$rootScope.viewMode = 1;
}
$rootScope.adaptScreenSize = function () {
if (window.innerWidth <= VIEW_MODE_SWITCH_WIDTH) {
$rootScope.viewMode = 2;
} else {
$rootScope.viewMode = 1;
$rootScope.showSideBar = false;
}
};
$(window).resize(function(){
$scope.$apply(function(){
$rootScope.adaptScreenSize();
});
});
} }
...@@ -313,6 +313,7 @@ function controller($rootScope, $scope, toastr, AppUtil, EventManager, ConfigSer ...@@ -313,6 +313,7 @@ function controller($rootScope, $scope, toastr, AppUtil, EventManager, ConfigSer
} }
new Clipboard('.clipboard'); new Clipboard('.clipboard');
} }
...@@ -8,6 +8,7 @@ directive_module.directive('apollonav', ...@@ -8,6 +8,7 @@ directive_module.directive('apollonav',
replace: true, replace: true,
link: function (scope, element, attrs) { link: function (scope, element, attrs) {
scope.sourceApps = []; scope.sourceApps = [];
scope.copyedApps = []; scope.copyedApps = [];
......
...@@ -416,6 +416,8 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na ...@@ -416,6 +416,8 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
namespace.baseInfo.clusterName, namespace.baseInfo.clusterName,
namespace.baseInfo.namespaceName) namespace.baseInfo.namespaceName)
.then(function (result) { .then(function (result) {
namespace.isLatestReleaseLoaded = true;
if (!result) { if (!result) {
namespace.latestReleaseInstances = {}; namespace.latestReleaseInstances = {};
namespace.latestReleaseInstances.total = 0; namespace.latestReleaseInstances.total = 0;
...@@ -430,8 +432,6 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na ...@@ -430,8 +432,6 @@ function directive($window, toastr, AppUtil, EventManager, PermissionService, Na
namespace.latestReleaseInstances = result; namespace.latestReleaseInstances = result;
namespace.latestReleaseInstancesPage++; namespace.latestReleaseInstancesPage++;
}) })
namespace.isLatestReleaseLoaded = true;
}); });
} else { } else {
InstanceService.findInstancesByRelease(scope.env, InstanceService.findInstancesByRelease(scope.env,
......
...@@ -10,7 +10,23 @@ function showTextModalDirective() { ...@@ -10,7 +10,23 @@ function showTextModalDirective() {
text: '=' text: '='
}, },
link: function (scope) { link: function (scope) {
scope.$watch('text', init);
function init() {
scope.jsonObject = undefined;
if (isJsonText(scope.text)) {
scope.jsonObject = JSON.parse(scope.text);
}
}
function isJsonText(text) {
try {
JSON.parse(text);
} catch (e) {
return false;
}
return true;
}
} }
} }
} }
......
...@@ -207,6 +207,38 @@ table th { ...@@ -207,6 +207,38 @@ table th {
margin-top: 20px; margin-top: 20px;
} }
.side-bar {
position: absolute;
width: 195px;
top: 85px;
left: 15px;
margin-bottom: 25px;
background: #f1f2f7;
z-index: 2;
}
.position-absolute {
position: absolute;
}
.position-fix {
position: fixed;
}
.view-mode-1 {
margin-left: 235px;
padding-right: 15px;
}
.view-mode-2 {
padding: 0 15px;
}
.side-bar-switch {
padding: 10px 10px;
margin-right: 30px;
}
.node-treeview { .node-treeview {
color: #797979; color: #797979;
} }
...@@ -241,7 +273,6 @@ table th { ...@@ -241,7 +273,6 @@ table th {
} }
.panel-heading .header-buttons { .panel-heading .header-buttons {
/*float: right;*/
min-width: 405px; min-width: 405px;
} }
...@@ -744,3 +775,4 @@ table th { ...@@ -744,3 +775,4 @@ table th {
.search-focus { .search-focus {
background: #fff; background: #fff;
} }
<nav class="navbar navbar-default"> <nav class="navbar navbar-default">
<div class="container-fluid"> <div class="container-fluid">
<div class="navbar-header"> <div class="navbar-header">
<img class="navbar-brand side-bar-switch cursor-pointer" src="../../img/show_sidebar.png"
onMouseOver="this.style.background='#f1f2f7'"
onMouseOut="this.style.background='#fff'"
data-tooltip="tooltip" data-placement="bottom" title="显示导航栏"
ng-show="viewMode == 2 && !showSideBar"
ng-click="showSideBar = !showSideBar">
<img class="navbar-brand side-bar-switch cursor-pointer" src="../../img/hide_sidebar.png"
onMouseOver="this.style.background='#f1f2f7'"
onMouseOut="this.style.background='#fff'"
data-tooltip="tooltip" data-placement="bottom" title="隐藏导航栏"
ng-show="viewMode == 2 && showSideBar"
ng-click="showSideBar = !showSideBar">
<a class="navbar-brand logo" href="/"> <a class="navbar-brand logo" href="/">
<b>Apollo 配置中心</b> <b>Apollo 配置中心</b>
</a> </a>
...@@ -18,7 +29,8 @@ ...@@ -18,7 +29,8 @@
<li class="dropdown"> <li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false"><span class="glyphicon glyphicon-user"></span>{{userName}} <span class="caret"></span></a> aria-expanded="false"><span class="glyphicon glyphicon-user"></span>{{userName}} <span
class="caret"></span></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="/user/logout">退出</a></li> <li><a href="/user/logout">退出</a></li>
</ul> </ul>
...@@ -27,7 +39,8 @@ ...@@ -27,7 +39,8 @@
<div class="navbar-form navbar-right form-inline" role="search"> <div class="navbar-form navbar-right form-inline" role="search">
<div class="form-group"> <div class="form-group">
<input type="text" class="form-control search-input" placeholder="搜索项目(项目ID、项目名)" style="width: 350px" <input type="text" class="form-control search-input" placeholder="搜索项目(项目ID、项目名)"
style="width: 350px"
ng-model="searchKey" ng-change="changeSearchKey()" ng-focus="changeSearchKey()"> ng-model="searchKey" ng-change="changeSearchKey()" ng-focus="changeSearchKey()">
<div class="row app-list" ng-show="shouldShowAppList"> <div class="row app-list" ng-show="shouldShowAppList">
......
...@@ -736,8 +736,12 @@ ...@@ -736,8 +736,12 @@
<!--instance view--> <!--instance view-->
<div class="panel panel-default instance-view" ng-show="namespace.viewType == 'instance'"> <div class="panel panel-default instance-view" ng-show="namespace.viewType == 'instance'">
<div class="panel-heading"> <div class="panel-heading">
<div class="row text-right" style="padding-right: 15px;"> <div class="row">
<div class="col-md-5">
<small>实例说明:只展示最近一天访问过Apollo的实例</small>
</div>
<div class="col-md-7 text-right">
<div class="btn-group btn-group-sm" role="group"> <div class="btn-group btn-group-sm" role="group">
<button type="button" class="btn btn-default" <button type="button" class="btn btn-default"
ng-class="{'btn-primary':namespace.instanceViewType == 'latest_release'}" ng-class="{'btn-primary':namespace.instanceViewType == 'latest_release'}"
...@@ -762,6 +766,8 @@ ...@@ -762,6 +766,8 @@
<img src="../../img/refresh.png"/> <img src="../../img/refresh.png"/>
</button> </button>
</div> </div>
</div>
</div> </div>
<!--latest release instances--> <!--latest release instances-->
......
...@@ -7,8 +7,11 @@ ...@@ -7,8 +7,11 @@
<h4 class="modal-title">查看</h4> <h4 class="modal-title">查看</h4>
</div> </div>
<pre id="watchText" class="modal-body no-radius" style="margin-bottom: 0" <pre class="modal-body no-radius" style="margin-bottom: 0"
ng-bind="text"> ng-show="!jsonObject" ng-bind="text">
</pre>
<pre class="modal-body no-radius" style="margin-bottom: 0"
ng-show="jsonObject" ng-bind="jsonObject | json:4">
</pre> </pre>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment