---update

This commit is contained in:
wu ming 2017-02-21 09:30:33 +08:00
parent 423aa1ece0
commit 054c94ce47
8 changed files with 511 additions and 416 deletions

View File

@ -287,353 +287,6 @@ legend {
height: 32px;
}
/* This is for the 'Overview' page with all the rows of boxes */
.service-view-rectangle {
position: relative;
margin-left: 0;
margin-right: 0px;
margin-bottom: 15px;
margin-top: 0;
background-color: #fafafa;
border-width: 1px;
border-style: solid;
border-color: #eeeeee;
}
.service-view-rectangle .service-view-header {
margin-top: 5px;
margin-bottom: 5px;
line-height: 20px;
vertical-align: middle;
}
.service-view-rectangle .service-view-detail-pod-box {
background-color: #eeeeee;
display: inline-block;
font-size: smaller;
}
.service-view-rectangle .service-view-header-delete .red {
opacity: 0.5;
transition: opacity 1s;
font-size: larger;
}
.service-view-rectangle .service-view-header-delete:hover .red {
opacity: 1;
}
.service-view-rectangle .service-view-icon img {
width: 32px;
height: 32px;
margin-right: 6px;
}
.service-view-rectangle .service-view-name {
font-size: larger;
font-weight: bold;
}
.service-view-rectangle .service-view-detail-header {
padding-top: 5px;
padding-bottom: 5px;
line-height: 20px;
}
.service-view-rectangle .service-view-detail-rectangle {
background-color: #eeeeee;
padding-left: 10px;
padding-right: 10px;
}
.service-view-rectangle .service-view-detail-rectangle .value {
font-weight: bold;
}
.service-view-rectangle .service-view-detail-pod-summary,
.service-view-rectangle .service-view-detail-pod-summary-expand {
display: inline-block;
padding-top: 2px;
padding-bottom: 2px;
padding-left: 20px;
padding-right: 20px;
margin-right: 8px;
margin-bottom: 8px;
background-color: #ffffff;
}
.service-view-rectangle .service-view-detail-pod-summary table td,
.service-view-rectangle .service-view-detail-pod-summary-expand table td {
padding-left: 10px;
padding-right: 10px;
}
.service-view-rectangle .service-view-detail-pod-status,
.service-view-rectangle .service-view-detail-pod-connect {
line-height: 36px;
padding-right: 20px;
}
.service-view-rectangle .service-view-detail-pod-status i,
.service-view-rectangle .service-view-detail-pod-connect i {
font-size: 36px;
display: inline-block;
vertical-align: middle;
}
.service-view-rectangle .service-view-detail-pod-expand {
color: #a0a0a0;
font-size: 18px;
padding-right: 0px;
}
.kubernetes-view .filter-header {
margin-bottom: 1em;
}
/* This is all for the diagram, not the 'Overview' page */
.kubernetes-overview {
width: 100%;
height: 100%;
display: table;
table-layout: fixed;
}
.kubernetes-overview-row {
display: table-row;
}
.kubernetes-overview-cell {
display: table-cell;
text-align: center;
vertical-align: middle;
padding: 0;
}
.service-wrapper {
display: block;
vertical-align: middle;
}
.kubernetes-node {
margin-left: auto;
margin-right: auto;
cursor: pointer;
text-align: center;
vertical-align: middle;
border: 1px solid #d4d4d4;
background: white;
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
border-radius: 4px;
transition: background 0.5s;
z-index: 1000;
}
.kubernetes-host-container {
margin-top: 5px;
margin-bottom: 5px;
margin-left: auto;
margin-right: auto;
text-align: center;
max-width: 600px;
min-width: 300px;
padding: 0;
border: 1px solid #d4d4d4;
background: white;
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
border-radius: 4px;
}
.kubernetes-pod-node {
display: block;
margin: 0;
padding: 0;
min-height: 48px;
line-height: 48px;
border-radius: 0;
border: 1px solid transparent;
border-top: 1px solid #d4d4d4;
box-shadow: none;
vertical-align: middle;
}
.css-table {
display: table;
width: 100%;
height: 100%;
}
.css-table-row {
display: table-row;
}
.css-table-row .pod-status-cell {
text-align: left;
padding-left: 5px;
padding-right: 5px;
}
.css-table-row .pod-status-cell i {
margin-left: 3px;
margin-right: 3px;
}
.css-table-row .pod-status-cell .clickable {
width: auto !important;
}
.css-table-cell {
display: table-cell;
vertical-align: middle;
}
.kubernetes-pod-node i {
font-size: 24px;
}
.kubernetes-overview-services {
width: 200px;
}
.kubernetes-service-node {
display: block;
margin-bottom: 10px;
width: 200px;
min-height: 66px;
padding: 0;
line-height: 48px;
}
.kubernetes-service-node .node-body {
display: inline;
padding-left: 10px;
line-height: 64px;
font-size: 20px;
float: left;
}
.kubernetes-service-node .node-header {
display: inline;
float: right;
}
.node-header {
padding-right: 10px;
white-space: nowrap;
line-height: 64px;
overflow: hidden;
text-overflow: ellipsis;
}
.kubernetes-replicationController-node {
border-radius: 64px;
display: block;
width: 64px;
height: 64px;
padding: 7px;
font-weight: bold;
vertical-align: middle;
overflow: hidden;
text-overflow: ellipsis;
}
.kubernetes-overview-cell .app-icon-medium {
width: 48px;
height: 48px;
}
.kubernetes-replicationController-node img {
width: 64px;
}
.kubernetes-node:hover,
.kubernetes-node.hovered {
background: #ddddff;
}
.pod-status-cell {
width: 80px;
line-height: 20px;
}
.pod-label-cell {
float: right;
text-align: right;
min-height: 48px;
}
.pod-label-cell .ngCellText {
white-space: normal;
}
.pod-log-lines * {
padding-left: 5px;
padding-right: 5px;
font-family: monospace;
margin: 0;
line-height: 14px;
}
.pod-log-lines * .black {
color: #222;
}
.pod-log-lines * .red {
color: #f22;
}
.pod-log-lines * .green {
color: #2f2;
}
.pod-log-lines * .yellow {
color: #ff2;
}
.pod-log-lines * .blue {
color: #22f;
}
.pod-log-lines * .purple {
color: #f2f;
}
.pod-log-lines * .cyan {
color: #2dd;
}
.pod-log-lines * .white {
color: #ddd;
}
.top-bottom-middle {
line-height: 34px;
}
.terminal-window {
position: fixed;
bottom: 0;
background: white;
border: 1px solid #d4d4d4;
overflow: hidden;
z-index: 1040;
}
.terminal-window .resize-dot {
width: 16px;
height: 16px;
border: 1px solid #d4d4d4;
background: white;
position: absolute;
bottom: 10px;
right: 10px;
cursor: nwse-resize;
border-radius: 8px;
z-index: 10000;
}
.terminal-window.minimized .resize-dot,
.terminal-window.maximized .resize-dot {
display: none;
}
.terminal-window.minimized .terminal-title,
.terminal-window.maximized .terminal-title {
cursor: inherit;
}
.terminal-window .terminal-body {
overflow: auto;
}
.terminal-window .terminal-body .terminal-wrapper > .terminal * {
font-family: 'DroidSansMonoRegular';
}
.terminal-window .terminal-title {
cursor: move;
border-bottom: 1px solid #d4d4d4;
}
.terminal-window .terminal-title > h5 {
display: inline-block;
margin-left: 5px;
}
.terminal-window .terminal-title > i {
font-size: 16px;
margin-right: 5px;
margin-top: 7px;
}
kubernetes-container-terminal .terminal-wrapper {
display: block !important;
}
kubernetes-container-terminal .terminal-actions {
position: absolute !important;
}
.pod-log-window .scroll-indicator {
position: absolute;
bottom: 0;
line-height: 32px;
left: 20px;
right: 20px;
background-color: #ffffff;
border-top: 1px solid #d4d4d4;
border-left: 1px solid #d4d4d4;
border-right: 1px solid #d4d4d4;
border-radius: 4px 4px 0 0;
cursor: pointer;
z-index: 10000;
opacity: 0.7;
}
.pod-log-window .terminal-body {
overflow-y: auto;
overflow-x: hidden;
}
.environment-row a {
color: black;
}
@ -1122,6 +775,353 @@ a:hover.data_file_btn {
background: url(../img/icons2.gif) -6px 9px no-repeat;
}
/* This is for the 'Overview' page with all the rows of boxes */
.service-view-rectangle {
position: relative;
margin-left: 0;
margin-right: 0px;
margin-bottom: 15px;
margin-top: 0;
background-color: #fafafa;
border-width: 1px;
border-style: solid;
border-color: #eeeeee;
}
.service-view-rectangle .service-view-header {
margin-top: 5px;
margin-bottom: 5px;
line-height: 20px;
vertical-align: middle;
}
.service-view-rectangle .service-view-detail-pod-box {
background-color: #eeeeee;
display: inline-block;
font-size: smaller;
}
.service-view-rectangle .service-view-header-delete .red {
opacity: 0.5;
transition: opacity 1s;
font-size: larger;
}
.service-view-rectangle .service-view-header-delete:hover .red {
opacity: 1;
}
.service-view-rectangle .service-view-icon img {
width: 32px;
height: 32px;
margin-right: 6px;
}
.service-view-rectangle .service-view-name {
font-size: larger;
font-weight: bold;
}
.service-view-rectangle .service-view-detail-header {
padding-top: 5px;
padding-bottom: 5px;
line-height: 20px;
}
.service-view-rectangle .service-view-detail-rectangle {
background-color: #eeeeee;
padding-left: 10px;
padding-right: 10px;
}
.service-view-rectangle .service-view-detail-rectangle .value {
font-weight: bold;
}
.service-view-rectangle .service-view-detail-pod-summary,
.service-view-rectangle .service-view-detail-pod-summary-expand {
display: inline-block;
padding-top: 2px;
padding-bottom: 2px;
padding-left: 20px;
padding-right: 20px;
margin-right: 8px;
margin-bottom: 8px;
background-color: #ffffff;
}
.service-view-rectangle .service-view-detail-pod-summary table td,
.service-view-rectangle .service-view-detail-pod-summary-expand table td {
padding-left: 10px;
padding-right: 10px;
}
.service-view-rectangle .service-view-detail-pod-status,
.service-view-rectangle .service-view-detail-pod-connect {
line-height: 36px;
padding-right: 20px;
}
.service-view-rectangle .service-view-detail-pod-status i,
.service-view-rectangle .service-view-detail-pod-connect i {
font-size: 36px;
display: inline-block;
vertical-align: middle;
}
.service-view-rectangle .service-view-detail-pod-expand {
color: #a0a0a0;
font-size: 18px;
padding-right: 0px;
}
.kubernetes-view .filter-header {
margin-bottom: 1em;
}
/* This is all for the diagram, not the 'Overview' page */
.kubernetes-overview {
width: 100%;
height: 100%;
display: table;
table-layout: fixed;
}
.kubernetes-overview-row {
display: table-row;
}
.kubernetes-overview-cell {
display: table-cell;
text-align: center;
vertical-align: middle;
padding: 0;
}
.service-wrapper {
display: block;
vertical-align: middle;
}
.kubernetes-node {
margin-left: auto;
margin-right: auto;
cursor: pointer;
text-align: center;
vertical-align: middle;
border: 1px solid #d4d4d4;
background: white;
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
border-radius: 4px;
transition: background 0.5s;
z-index: 1000;
}
.kubernetes-host-container {
margin-top: 5px;
margin-bottom: 5px;
margin-left: auto;
margin-right: auto;
text-align: center;
max-width: 600px;
min-width: 300px;
padding: 0;
border: 1px solid #d4d4d4;
background: white;
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
border-radius: 4px;
}
.kubernetes-pod-node {
display: block;
margin: 0;
padding: 0;
min-height: 48px;
line-height: 48px;
border-radius: 0;
border: 1px solid transparent;
border-top: 1px solid #d4d4d4;
box-shadow: none;
vertical-align: middle;
}
.css-table {
display: table;
width: 100%;
height: 100%;
}
.css-table-row {
display: table-row;
}
.css-table-row .pod-status-cell {
text-align: left;
padding-left: 5px;
padding-right: 5px;
}
.css-table-row .pod-status-cell i {
margin-left: 3px;
margin-right: 3px;
}
.css-table-row .pod-status-cell .clickable {
width: auto !important;
}
.css-table-cell {
display: table-cell;
vertical-align: middle;
}
.kubernetes-pod-node i {
font-size: 24px;
}
.kubernetes-overview-services {
width: 200px;
}
.kubernetes-service-node {
display: block;
margin-bottom: 10px;
width: 200px;
min-height: 66px;
padding: 0;
line-height: 48px;
}
.kubernetes-service-node .node-body {
display: inline;
padding-left: 10px;
line-height: 64px;
font-size: 20px;
float: left;
}
.kubernetes-service-node .node-header {
display: inline;
float: right;
}
.node-header {
padding-right: 10px;
white-space: nowrap;
line-height: 64px;
overflow: hidden;
text-overflow: ellipsis;
}
.kubernetes-replicationController-node {
border-radius: 64px;
display: block;
width: 64px;
height: 64px;
padding: 7px;
font-weight: bold;
vertical-align: middle;
overflow: hidden;
text-overflow: ellipsis;
}
.kubernetes-overview-cell .app-icon-medium {
width: 48px;
height: 48px;
}
.kubernetes-replicationController-node img {
width: 64px;
}
.kubernetes-node:hover,
.kubernetes-node.hovered {
background: #ddddff;
}
.pod-status-cell {
width: 80px;
line-height: 20px;
}
.pod-label-cell {
float: right;
text-align: right;
min-height: 48px;
}
.pod-label-cell .ngCellText {
white-space: normal;
}
.pod-log-lines * {
padding-left: 5px;
padding-right: 5px;
font-family: monospace;
margin: 0;
line-height: 14px;
}
.pod-log-lines * .black {
color: #222;
}
.pod-log-lines * .red {
color: #f22;
}
.pod-log-lines * .green {
color: #2f2;
}
.pod-log-lines * .yellow {
color: #ff2;
}
.pod-log-lines * .blue {
color: #22f;
}
.pod-log-lines * .purple {
color: #f2f;
}
.pod-log-lines * .cyan {
color: #2dd;
}
.pod-log-lines * .white {
color: #ddd;
}
.top-bottom-middle {
line-height: 34px;
}
.terminal-window {
position: fixed;
bottom: 0;
background: white;
border: 1px solid #d4d4d4;
overflow: hidden;
z-index: 1040;
}
.terminal-window .resize-dot {
width: 16px;
height: 16px;
border: 1px solid #d4d4d4;
background: white;
position: absolute;
bottom: 10px;
right: 10px;
cursor: nwse-resize;
border-radius: 8px;
z-index: 10000;
}
.terminal-window.minimized .resize-dot,
.terminal-window.maximized .resize-dot {
display: none;
}
.terminal-window.minimized .terminal-title,
.terminal-window.maximized .terminal-title {
cursor: inherit;
}
.terminal-window .terminal-body {
overflow: auto;
}
.terminal-window .terminal-body .terminal-wrapper > .terminal * {
font-family: 'DroidSansMonoRegular';
}
.terminal-window .terminal-title {
cursor: move;
border-bottom: 1px solid #d4d4d4;
}
.terminal-window .terminal-title > h5 {
display: inline-block;
margin-left: 5px;
}
.terminal-window .terminal-title > i {
font-size: 16px;
margin-right: 5px;
margin-top: 7px;
}
kubernetes-container-terminal .terminal-wrapper {
display: block !important;
}
kubernetes-container-terminal .terminal-actions {
position: absolute !important;
}
.pod-log-window .scroll-indicator {
position: absolute;
bottom: 0;
line-height: 32px;
left: 20px;
right: 20px;
background-color: #ffffff;
border-top: 1px solid #d4d4d4;
border-left: 1px solid #d4d4d4;
border-right: 1px solid #d4d4d4;
border-radius: 4px 4px 0 0;
cursor: pointer;
z-index: 10000;
opacity: 0.7;
}
.pod-log-window .terminal-body {
overflow-y: auto;
overflow-x: hidden;
}
.layout-pf.layout-pf-fixed .container-pf-nav-pf-vertical {
margin-left: 170px;
}

File diff suppressed because one or more lines are too long

View File

@ -100,26 +100,46 @@ module Configs{
export function oracleInfoOperate($http, url:string, operate:string, resource, fn?: (data, status)=>void ){
if(resource === null)
throw "不能操作空资源对象";
var id = resource["id"] || resource["name"] || resource["_id"] || resource["_key"];
var RESTfulUrl=url;
if(id == "undefined"){
RESTfulUrl = UrlHelpers.join(url, operate);
if(angular.isArray(resource)){
var ids = [];
angular.forEach(resource, (item) => {
var id = item["id"] || item["name"] || item["_id"] || item["_key"];
ids.push(id);
});
$http({
method: "POST",
dataType: 'json',
url: UrlHelpers.join(url, operate+"s"),
data: ids,
}).success((data,header,config,status) => {
if(angular.isFunction(fn))
fn(data, header);
}).error((data,header,config,status) => {
if(angular.isFunction(fn))
fn(data, header);
});
}else{
RESTfulUrl = UrlHelpers.join(url, id+"", operate);
}
var id = resource["id"] || resource["name"] || resource["_id"] || resource["_key"];
var RESTfulUrl=url;
if(id == "undefined"){
RESTfulUrl = UrlHelpers.join(url, operate);
}else{
RESTfulUrl = UrlHelpers.join(url, id+"", operate);
}
$http({
method: "POST",
dataType: 'json',
url: RESTfulUrl,
data: JSON.stringify(resource),
}).success((data,header,config,status) => {
if(angular.isFunction(fn))
fn(data, header);
}).error((data,header,config,status) => {
if(angular.isFunction(fn))
fn(data, header);
});
$http({
method: "POST",
dataType: 'json',
url: RESTfulUrl,
data: JSON.stringify(resource),
}).success((data,header,config,status) => {
if(angular.isFunction(fn))
fn(data, header);
}).error((data,header,config,status) => {
if(angular.isFunction(fn))
fn(data, header);
});
}
}
export function createConfigHelperNavBar($scope, $location, $routeParams){

View File

@ -5,11 +5,19 @@
<div class="row">
<div hawtio-tabs></div>
</div>
<div class="container-content sj_fluid">
<div class="row align-center mb10" ng-hide="flag">
<div class="row container-content sj_fluid">
<div class="row align-center mb10" ng-show="tableConfig.data.length <= 0">
<p class="alert alert-info">当前没有可以查看的任务列表!</p>
</div>
<div class="row mb10" ng-show="flag" >
<div class="col-md-12 mb10 " >
<button ng-show="typeFlag && tableConfig.data.length > 0"
class="btn btn-danger pull-right sj_btn_grey "
ng-disabled="!id && tableConfig.selectedItems.length == 0"
ng-click="deleteAll(id || tableConfig.selectedItems)">
<i class="glyphicon glyphicon-trash"></i> 删除
</button>
</div>
<div class="row mb10" ng-show="tableConfig.data.length > 0" >
<table class="table table-bordered table-striped sj_content_table" hawtio-simple-table="tableConfig" />
</div>
</div>

View File

@ -235,7 +235,7 @@ module Developer{
//创建数据模型服务
_module.factory("DataModel", ['$rootScope', '$http', '$interval', '$location', '$resource', ($rootScope, $http, $interval, $location, $resource) => {
var webSocket = new WebSocket('ws://192.168.0.101:9000/java/console/api/transferTask');
var $scope = new DataModelService();
$scope.startIntervalTask($interval, $http);
return $scope;

View File

@ -11,7 +11,7 @@ module Developer {
$scope.tableConfig = {
data: $scope.dataString,
showSelectionCheckbox: false,
showSelectionCheckbox: $scope.typeFlag,
enableRowClickSelection: false,
multiSelect: true,
selectedItems: [],
@ -51,7 +51,11 @@ module Developer {
displayName: '迁移状态',
cellTemplate: $templateCache.get("taskStatus.html")
},
{
field: "process",
displayName: '迁移进度',
cellTemplate: $templateCache.get("taskProcess.html")
},
{
field: "entity",
displayName: '操作',
@ -66,34 +70,49 @@ module Developer {
});
});
$scope.deleteAll = (selected) => {
if (angular.isString(selected)) {
selected = [{
id: selected
}];
}
Configs.oracleInfoOperate($http, "/java/console/api/task/transfer", Configs.OperateType.DELETE, selected, (data, status) =>{
if(status === 200)
console.log("删除成功");
});
}
function init() {
console.log(DataModel.doneTask);
var path = $location.path().split("/");
console.log(path[4]);
switch (path[4]) {
case "done":
if($scope.model.doneTask.length > 0)
if(DataModel.doneTask.length > 0)
$scope.flag = true;
else
$scope.flag = false;
$scope.dataString = 'model.doneTask';
$scope.typeFlag = true
$scope.template = "taskRecordEdit.html";
break;
case "running":
if($scope.model.runningTask.length > 0)
if(DataModel.runningTask.length > 0)
$scope.flag = true;
else
$scope.flag = false;
$scope.dataString = 'model.runningTask';
$scope.typeFlag = false
$scope.template = "taskEdit.html";
break;
default:
if($scope.model.doneTask.length > 0)
if(DataModel.doneTask.length > 0)
$scope.flag = true;
else
$scope.flag = false;
$scope.dataString = 'model.doneTask';
$scope.typeFlag = false
$scope.template = "taskRecordEdit.html";
break;
}

View File

@ -255,7 +255,7 @@ module Developer {
*/
$timeout(() =>{
$location.path("/workspaces/Overview/task");
$location.path("/workspaces/Overview/task/running");
},250);
migrationClick.close();
},

View File

@ -126,6 +126,10 @@ module Kubernetes {
"containerPort": 1521,
"hostPort": Obj.port || ramdomPort()
}],
"resources": {
"cpu": "100m",
"memory": "3Gi"
},
"volumeMounts" : this.createVolumeMounts()
});
return containers