Merge branch 'Web_Manager_Develope' of https://git.trustie.net/fhx569287825/aggregation-platform into Web_Manager_Develope

Web_Manager_Develope
Linda 9 years ago
commit db6799ce4f

@ -26,6 +26,7 @@ declare module Configs {
brick: Array<Brick>;
status: boolean;
editable: boolean;
hot: boolean;
}
interface Brick {
ip: Array<string>;

@ -27,6 +27,7 @@ declare module Configs {
status: boolean;
path: string;
editable?: boolean;
hot?: number;
}
function formatVolumes(volumes: Array<volume>): void;
/**

@ -12,6 +12,7 @@ declare module Developer {
priorTableSize: number;
keyQuery: any;
volumeType: number;
totlePage: number;
createParamData(): {
currentPageNum: number;
dataType: any;

@ -223,7 +223,7 @@ declare module Kubernetes {
function getOracleStatus(labels: any): number;
function getExtractStatus(labels: any): number;
function getOracleName(replicas: any): string;
function extractDataToOracle($http: any, selectedReplicationControllers: any, targetOracle: Configs.oracleParam, fn?: (data, status) => void): void;
function extractDataToOracle($http: any, url: any, selectedReplicationControllers: any, targetOracle: Configs.oracleParam, fn?: (data, status) => void): void;
function checkoutOracleIsRunning(rc: any): boolean;
function replicasIsCreated(replicationcontrollers: Array<any>, name: string): boolean;
function loadConfigs(): {
@ -250,4 +250,5 @@ declare module Kubernetes {
function create_locadEffect(msg: any): void;
function createSuccessInfo(icon: string, msg: string): void;
function removeMask(): void;
function checkRCIsExtracting(selected: Array<any>): boolean;
}

@ -67,7 +67,7 @@ declare module Kubernetes {
**/
function checkForExtract(replicationControllers: Array<any>): any[];
function checkIsStartSuccess(replicationControllers: Array<any>): any[];
function checkForMigration(replicationControllers: Array<KubePod>, transferTasks: Array<any>, selectItem: Array<any>): string;
function checkForMigration(replicationControllers: Array<KubePod>, transferTasks: Array<any>, selectItem: Array<any>, type: string): string;
function eliminateChechBoxClick(): void;
function alreadyExitInFolder(selectedItems: Array<any>, selectNode: any): boolean;
}

@ -3,6 +3,10 @@
/// <reference path="systemHelpers.d.ts" />
/// <reference path="systemServices.d.ts" />
/// <reference path="../../configs/ts/configsUtils.d.ts" />
/// <reference path="../../kubernetes/ts/kubernetesHelpers.d.ts" />
/// <reference path="../../configs/ts/customAlert.d.ts" />
/// <reference path="../../configs/ts/configsDataService.d.ts" />
/// <reference path="../../kubernetes/ts/term.d.ts" />
declare module System {
var SystemVerificationController: ng.IModule;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -155,20 +155,20 @@
</li>
</ul>
</nav>
<div class="sj_content_position clear" style="margin-top:70px;">
<ul>
<div class="sj_content_position clear" style="margin-top:50px;">
<!--<ul>
<li class="sj_icons_home"></li>
<li>当前位置:</li>
<li><a href="#">数据汇总</a> <span>&gt;</span></li>
<li><a href="#">社保系统</a><span>&gt;</span></li>
<li><a href="#">批次A</a></li>
</ul>
</ul>-->
</div>
<platform-sub-tabs-outlet></platform-sub-tabs-outlet>
<div id="main" class="container-fluid container-pf-nav-pf-vertical container-pf-nav-pf-vertical-with-secondary content-margin" ng-controller="HawtioNav.ViewController" hawtio-main-outlet>
<div class="row" ng-class="getClass()">
<hawtio-breadcrumbs-outlet></hawtio-breadcrumbs-outlet>
</div>
<hawtio-breadcrumbs-outlet></hawtio-breadcrumbs-outlet>
</div>
<div class="row" ng-class="getClass()">
<div ng-include src="viewPartial">
</div>

@ -28,7 +28,9 @@
<span class="">云路径:{{volume.path}}</span>
</th>
<th class="no-fade table-header sj_table_td02">
<span class=""></span>
<span class="">存储类型:</span>
<span ng-show="{{volume.hot==0}}">热区</span>
<span ng-show="{{volume.hot==1}}">冷区</span>
</th>
<th class="no-fade table-header">
<span class="">已用&nbsp;{{volume.formatUsedSize}}&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;{{volume.formatTotalSize}}</span>
@ -59,7 +61,7 @@
<span class="sj_table_td02">存储路径:{{row.path}}</span>
</td>
<td>
<span class="">已用&nbsp;{{row.formatUsedSize}}&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;{{row.formatAllSize}}</span>
<span class="">已用&nbsp;{{row.formatUsedSize}}&nbsp;&nbsp;/&nbsp;&nbsp;可用&nbsp;{{row.formatAllSize}}</span>
</td>
<td></td>
</tr>

@ -105,6 +105,15 @@
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">标准表汇总库</label>
<div class="col-sm-10 sj_form_input">
<select class="form-control" ng-model="tableForm.type">
<option value=0 ng-selected="tableForm.type==0" selected></option>
<option value=1 ng-selected="tableForm.type==1"></option>
</select>
</div>
</div>
<div class="form-group" style="margin-left:140px;">
<button class="btn sj_btn_blue" type='submit' style="color:#fff;" >
<span class="glyphicon glyphicon-save "></span> 保存

@ -40,10 +40,6 @@
<th>
<input type="text" class="sj_txt_box02 mr5" name="volumePath" ng-model="ngDialogData.path" ng-disabled="!{{ngDialogData.editable}}" ng-pattern="/^(\/[a-z0-9A-Z _\-.%]+)+$/" required="required" />
</th>
<!--<th>
<button ng-show="ngDialogData.status" class="sj_btn_red fl" ng-click="stopVolume(ngDialogData)">停止</button>
<button ng-hide="ngDialogData.status" class="sj_btn_blue fl" ng-click="startVolume(ngDialogData)">启动</button>
</th> -->
</tr>
<tr ng-repeat="row in ngDialogData.brick">
<th class="new_left">
@ -88,8 +84,11 @@
</th>
<!--<th>
<button class="sj_btn_grey mr5" ng-click="cancel()">取消</button>
</th>
<!--<th colspan="5">&nbsp;{{message}}</th>-->
</th> -->
<th colspan="5" ng-show="!ngDialogData.name">
<span>是否为热区</span>
<input type="checkbox" checked="checked" name="hot" ng-model="ngDialogData.hot"/>
</th>
</tr>
</tbody>
</table>
@ -239,7 +238,7 @@
<button class="btn pull-right sj_btn_blue " ng-click="replace()">
替换
</button>
<button class="sj_btn_grey mr5 fr" ng-click="cancel()">取消</button>
<button class="sj_btn_grey mr5 fr" ng-click="cancel()">保留</button>
</div>
</div>
</script>
@ -414,6 +413,16 @@
</div>
</script>
<script type="text/ng-template" id="uploadErrorInfo.html">
<div class="container-fluid">
<div class="row">
<span class="col-md-5"">错误信息:</span>
</div>
<div class="row" ng-repeat="info in ngDialogData">
<span>{{info}}</span>
</div>
</div>
</script>
<div ng-controller="Kubernetes.TopLevel">
<div class="wiki-icon-view" ng-controller="Kubernetes.FileDropController" nv-file-drop nv-file-over uploader="uploader" over-class="ready-drop">
<div class="row kubernetes-view" ng-view></div>

@ -147,12 +147,14 @@ module Configs{
editable: block.editable || false
});
});
return {
name: volume.name,
path: volume.path,
brick: brick,
status: volume.status,
editable: volume.editable || false
editable: volume.editable || false,
hot: volume.hot == 0 ? true : false
}
}
@ -169,7 +171,8 @@ module Configs{
path: string
brick: Array<Brick>;
status: boolean;
editable: boolean
editable: boolean,
hot: boolean
}
export interface Brick{

@ -29,7 +29,8 @@ module Configs{
folder?: Array<any>; //volume的文件
status: boolean;
path: string;
editable?: boolean
editable?: boolean,
hot?: number
}
//字节大小转换成字符大小
@ -103,7 +104,7 @@ module Configs{
//this.updateCodeInfo();
}
public updateVolumeData(){
var result=null;
var result=null;
$.ajax({
async: false,
type : "POST",

@ -151,9 +151,10 @@ module Configs{
export function FileInputPlugin(fn: Function, isMultiple?:boolean){
var inputObj = document.createElement('input');
inputObj.setAttribute('id','myFileInput');
inputObj.setAttribute('type','file');
inputObj.setAttribute("style",'visibility:hidden');
inputObj.setAttribute('id', 'myFileInput');
inputObj.setAttribute('type', 'file');
inputObj.setAttribute("style", 'visibility:hidden');
inputObj.setAttribute("accept", "application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
if(isMultiple)
inputObj.setAttribute("multiple", "multiple");
document.body.appendChild(inputObj);

@ -35,7 +35,7 @@ module Configs{
}
}
function get_width() {
function get_width() {
return (document.body.clientWidth + document.body.scrollLeft);
}

@ -31,14 +31,15 @@ module Configs{
status: false,
editable: true
}],
editable: true
editable: true,
hot: true
},
className: 'ngdialog-theme-default'
});
}
$scope.editRow = (volume) => {
var fVolume = formatVolume(volume);
var fVolume = formatVolume(volume);
ngDialog.open({
template: 'newDialog.html',
width: 1005,
@ -126,7 +127,9 @@ module Configs{
ip.push(brick["ip"][key]);
brick["ip"] = ip.join("\.");
}
});
});
data.hot = data.hot == true ? 0 : 1;
var spinner;

@ -45,7 +45,12 @@ module Configs{
{
field: "suffix",
displayName: "表后缀"
},
},
{
field: "type",
displayName: "标准表汇总库",
cellTemplate: $templateCache.get("strandColumn.html")
},
{
field: "entity",
displayName: "操作",
@ -67,7 +72,8 @@ module Configs{
$scope.add= true;
$scope.edit = false;
$scope.tableForm = {};
$scope.tableForm["id"]=0;
$scope.tableForm["id"]=0;
$scope.tableForm["type"]=0;
}
$scope.cancel = () => {

@ -67,7 +67,8 @@ module Configs{
}
$scope.onSubmit = (entity) => {
$scope.onSubmit = (entity) => {
console.log(entity);
if($scope.volumeForm.$valid){
$scope.$emit('update', entity);
$scope.closeThisDialog();
@ -103,14 +104,14 @@ module Configs{
if(typeof FileReader == 'undefined'){
throw "浏览器不支持FileReader读取文件";
}else{
Configs.FileInputPlugin((file) =>{
$scope.enable = true;
Configs.FileInputPlugin((file) =>{
if(typeof typeof FileReader == 'undefined')
throw "浏览器不支持FileReader读取文件";
else{
var fr = new FileReader();
fr.onloadend = (e) =>{
$scope.new_content = e.target["result"];
$scope.enable = true;
}
fr.onloadstart = () =>{
@ -153,14 +154,14 @@ module Configs{
$scope.content = "";
$scope.title = shareInit($scope.ngDialogData);
$scope.sqlFileUpload = () =>{
Configs.FileInputPlugin((file) =>{
$scope.enable = true;
if(typeof typeof FileReader == 'undefined')
Configs.FileInputPlugin((file) =>{
if(typeof FileReader == 'undefined')
throw "浏览器不支持FileReader读取文件";
else{
var fr = new FileReader();
fr.onloadend = (e) =>{
$scope.content = e.target["result"];
$scope.enable = true;
}
fr.onloadstart = () =>{
@ -230,7 +231,15 @@ module Configs{
}
$scope.cancel = () => {
$scope.closeThisDialog();
//$scope.closeThisDialog();
$scope.$emit("replace", {
url: "/java/console/api/filePackage/handleSqlFile",
item: $scope.ngDialogData.item,
content: $scope.content,
opt: "delete",
type: $scope.ngDialogData.type
});
$scope.closeThisDialog();
}
}]);

@ -8,7 +8,7 @@
<li role="presentation" ng-repeat="item in navbarItems" class="{{item.class}}"><a href="#" ng-click="selectBatchItem(item)">{{item.label}}</a></li>
</ul>
<div class="fr sj_searchbox">
<input type="text" class="sj_search_input" ng-model="keyQuery" placeholder="请选择或输入关键字,多关键字请用空格隔开" onkeydown="if(event.keyCode==13){searchButton.click()}"/>
<input type="text" class="sj_search_input" ng-model="keyQuery" placeholder="请选择或输入关键字,多关键字请用空格隔开" onkeydown="if(event.keyCode==13){searchButton.click()}" />
<a href="#" class="sj_search_btn" id="searchButton" ng-click="search()"></a>
</div>
</div>
@ -30,19 +30,19 @@
<i class="glyphicon glyphicon-export"></i> 迁移
</button>
<span class="pull-right">&nbsp;</span>
<button class="btn pull-right sj_btn_grey " ng-disabled="!id && tableConfig.selectedItems.length == 0" ng-click="createOracleService(id || tableConfig.selectedItems)">
<button ng-show="isShow" class="btn pull-right sj_btn_grey " ng-disabled="!id && tableConfig.selectedItems.length == 0" ng-click="createOracleService(id || tableConfig.selectedItems)">
<i class="glyphicon glyphicon-play-circle"></i> 启动
</button>
</div>
<ul class="fr sj_table_bottom">
<li class="mr5 ">当前显示1~{{model.data.length}}行,共{{model.data.length}}行。</li>
<li class="mr5 ">每页显示
<select ng-options="value for value in pageSizeChoses" ng-change="selectAction()" ng-model="options.currentTableSize"></select>
</li>
<li class="mr5 ">当前显示{{(model.paramOptions.currentPageNum-1)*20 + 1}}~{{(model.paramOptions.currentPageNum-1)*20 + model.data.length}}行,共{{model.paramOptions.totalSize}}行,</li>
<!--<li class="mr5 ">每页显示
<select ng-options="value for value in pageSizeChoses" ng-cha=nge="selectAction()" ng-model="options.currentTableSize"></select>
</li>-->
<li class="mr5 ">当前页码</li>
<li>
<div class="hawtio-pager clearfix">
<label>{{options.currentPageNum}} / {{options.getPageSizeNum()}}</label>
<label>{{model.paramOptions.currentPageNum}} / {{model.paramOptions.totlePage}}</label>
<div class=btn-group>
<button class="btn sj_btn_grey" ng-disabled="isEmptyOrFirst()" ng-click="first()"><i class="fa fa-fast-backward"></i></button>
<button class="btn sj_btn_grey" ng-disabled="isEmptyOrFirst()" ng-click="previous()"><i class="fa fa-step-backward"></i></button>
@ -65,7 +65,7 @@
<label class="col-sm-3 control-label sj_contro_label" for="selectedItem ">
请选择迁移集群
</label>
<select ng-model="migrationClick.selectedItem " class="col-sm-3 sj_modal_select" title="name of the new namespace " id="selectedItem " ng-options="x.name for x in volumes " />
<select ng-model="migrationClick.selectedItem " class="col-sm-3 sj_modal_select" id="selectedItem " ng-options="x.name for x in volumes " />
</div>
<div class="form-group">
<div class="col-sm-12 alert alert-warning" ng-show="!volumes || volumes.length == 0">

@ -11,7 +11,8 @@ module Developer{
public totalSize = null;
public priorTableSize = 20;
public keyQuery = null;
public volumeType = 1;
public volumeType = 1;
public totlePage = 1;
public createParamData(){
var extendValue =["cityName", "districtName", "dataVersion", "systemName", "dataYear"];
@ -33,8 +34,9 @@ module Developer{
return result;
}
public getPageSizeNum(){
var num = Math.ceil(this.totalSize/this.currentTableSize);
public getPageSizeNum(){
var num = Math.ceil(this.totalSize/this.currentTableSize);
console.log(this.totalSize);
if(num < this.currentPageNum)
num = this.currentPageNum;
return num;
@ -49,6 +51,9 @@ module Developer{
year: year
}
}
function createAlias(cityName:string, districtName:string, systemName:string, version:string, year:string){
return cityName + "_" + districtName + "_" + systemName + "_" + year + "_版本" + version;
}
function createKey(regionalismCode, systemId, version){
return regionalismCode + "-" + systemId + "-" + version;
}
@ -59,6 +64,15 @@ module Developer{
return result;
}
function createItemsAlias(items: Array<any>){
var result = [];
angular.forEach(items, (item) => {
item.alias = createAlias(item.cityName, item.districtName, item.systemName, item.dataVersion, item.year);
result.push(item);
});
return result;
}
function populateLabel(item){
var result = item
result["labels"] = createLabel(item.cityName, item.districtName, item.systemName, item.dataVersion, item.year);
@ -106,22 +120,25 @@ module Developer{
function formatTask(items:Array<any>){
var result = [];
angular.forEach(items, (item) => {
result.push({
id: item.id,
_key: item.regionalismCode + "-" + item.systemCode + "-" + item.dataVersion,
name: item.cityName+ "-" + item.districtName,
systemName: item.systemName,
status: item.completeStatus,
process: item.rate,
from: item.dataPath,
to: item.dstPath,
labels:{
dataType: item.dataType,
batch: "批次"+item.submittedBatch,
dataVersion: "版本"+item.dataVersion,
dataYear: item.year
}
});
var tmp_batch="";
if(item.submittedBatch.indexOf("批次")==-1){
tmp_batch="批次"+item.submittedBatch;
}else{
tmp_batch=item.submittedBatch;
}
item["_key"] = item.regionalismCode + "-" + item.systemCode + "-" + item.dataVersion;
item["name"] = item.cityName+ "-" + item.districtName;
item["status"] = item.completeStatus;
item["from"] = item.dataPath;
item["process"] = item.rate;
item["to"] = item.dstPath;
item["labels"] ={
dataType: item.dataType,
batch: tmp_batch,
dataVersion: "版本"+item.dataVersion,
dataYear: item.year
}
result.push(item);
});
return result;
}
@ -144,9 +161,10 @@ module Developer{
url : "/java/console/api/data.json",
dataType : 'json',
data: createParamData(paramOptions),
success : function(data) {
success : function(data) {
result = data.data;
paramOptions.totalSize=data.length;
paramOptions.totalSize = data.length;
paramOptions.totlePage = data.page.totlePage;
}
});
return result;
@ -166,6 +184,7 @@ module Developer{
this.data = populateKeys(this.data);
this.data = populateNames(this.data);
this.data = populateLabels(this.data);
this.data = createItemsAlias(this.data);
}
//更新用户选择参数

@ -68,6 +68,6 @@ module Developer {
if(status === 200)
console.log("删除成功");
});
});
});
}]);
}

@ -13,13 +13,12 @@ module Developer {
export var WorkspacesController = controller("WorkspacesController", ["$scope", "KubernetesModel", "DataModel", "ConfigsModel", "KubernetesState", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL", "$element", "ngDialog",
($scope, KubernetesModel: Kubernetes.KubernetesModelService, DataModel:Developer.DataModelService, ConfigsModel:Configs.ConfigsModelService, KubernetesState, $templateCache:ng.ITemplateCacheService, $location:ng.ILocationService, $routeParams, $http, $timeout, KubernetesApiURL, $element, ngDialog) => {
$scope.model=DataModel;
$scope.replicasModel = KubernetesModel;
init($scope, $location, $routeParams);
$scope.replicasModel = KubernetesModel;
$scope.options = DataModel.paramOptions;
$scope.pageSizeChoses = DataModel.paramOptions.pagerSizeOption;
var result = getDataType($location)
$scope.options.dataType = result["dataType"];
$scope.options.volumeType = result["volumeType"];
var result = getDataType($location);
$scope.treeOptions = {
nodeChildren: "childNodes",
@ -65,6 +64,10 @@ module Developer {
return field.systemCode;
}
},
{
field: "dataBaseType",
displayName: '数据库类型',
},
{
field: "labels",
displayName: '数据标签',
@ -82,7 +85,7 @@ module Developer {
field: "extractStatus",
displayName: '汇总状态',
cellTemplate: $templateCache.get("dataExtractTemplate.html")
}
}
],
sortInfo: {
sortBy: "_key",
@ -90,28 +93,33 @@ module Developer {
}
};
init($scope, $location, $routeParams);
$scope.model.paramOptions.dataType = result["dataType"];
$scope.model.paramOptions.volumeType = result["volumeType"];
$scope.$on("dataLabelFilterUpdate", ($event, text, key) => {
$scope.keyQuery += " " + text;
})
$scope.selectBatchItem = (item)=> {
$scope.selectBatchItem = (item)=> {
$scope.navbarItems.forEach((nav) =>{
nav.class="";
});
item.class="active";
$scope.model.updateParamOption("currentPageNum", 1);
$scope.model.updateParamOption("keyQuery", $scope.keyQuery);
$scope.model.updateParamOption("dataBatch", item.alias);
}
$scope.isEmptyOrFirst = () => {
var idx = $scope.model.getParamOption("currentPageNum");
var length =$scope.options.getPageSizeNum();
var length =$scope.model.paramOptions.totlePage;
return length <= 0 || idx <= 1;
}
$scope.isEmptyOrLast = () =>{
var idx = $scope.model.getParamOption("currentPageNum");
var length =$scope.options.getPageSizeNum();
var length =$scope.model.paramOptions.totlePage;
return length < 1 || idx >= length;
}
@ -125,7 +133,7 @@ module Developer {
$scope.last = () =>{
var idx = $scope.model.getParamOption("currentPageNum");
var length =$scope.options.getPageSizeNum();
var length =$scope.model.paramOptions.totlePage;
if(idx < length){
Kubernetes.eliminateChechBoxClick();
$scope.model.updateParamOption("currentPageNum", length);
@ -134,7 +142,7 @@ module Developer {
$scope.previous = () => {
var idx = $scope.model.getParamOption("currentPageNum");
var length =$scope.options.getPageSizeNum();
var length =$scope.model.paramOptions.totlePage;
if(idx > 1){
Kubernetes.eliminateChechBoxClick();
$scope.model.updateParamOption("currentPageNum", idx-1);
@ -142,7 +150,7 @@ module Developer {
}
$scope.next = () =>{
var length =$scope.options.getPageSizeNum();
var length =$scope.model.paramOptions.totlePage;
var idx = $scope.model.getParamOption("currentPageNum");
if(idx < length){
Kubernetes.eliminateChechBoxClick();
@ -150,8 +158,8 @@ module Developer {
}
}
$scope.$watch('options', (newValue, oldValue) => {
if(newValue){
$scope.$watch('model.paramOptions', (newValue, oldValue) => {
if(newValue){
if(newValue.currentTableSize !== oldValue.currentTableSize)
$scope.options.priorTableSize = oldValue.currentTableSize;
else
@ -162,6 +170,8 @@ module Developer {
}, true);
$scope.search = () => {
//$scope.model.initParamOptions();
$scope.model.paramOptions.currentPageNum = 1;
$scope.model.updateParamOption("keyQuery", $scope.keyQuery);
}
@ -175,7 +185,7 @@ module Developer {
/*
使
*/
var message = Kubernetes.checkForMigration($scope.replicasModel.replicationControllers, $scope.model.transferTasks , $scope.tableConfig.selectedItems);
var message = Kubernetes.checkForMigration($scope.replicasModel.replicationControllers, $scope.model.transferTasks , $scope.tableConfig.selectedItems, "manager");
if(message != ""){
Configs.customAlert("提示", "操作失败:" + message + ",不能删除!", '',null, 0, "error");
return;
@ -183,7 +193,7 @@ module Developer {
UI.multiItemConfirmActionDialog(<UI.MultiItemConfirmActionOptions>{
collection: selected,
index: 'id',
index: 'alias',
onClose: (result:boolean) => {
var idColl = [];
if (result) {
@ -223,6 +233,7 @@ module Developer {
,$http:httpurl;
*/
if(Kubernetes.alreadyExitInFolder($scope.tableConfig.selectedItems, $scope.selectNode)){
migrationClick.close();
Configs.customAlert("提示", "操作失败:" + "数据已在当前目录!", '',null, 0, "error");
@ -250,10 +261,16 @@ module Developer {
},
open: (selected) =>{
var migrationClick = $scope.migrationClick;
ConfigsModel.updateVolumeData();
if(ConfigsModel.cluster!=null)
$scope.volumes = ConfigsModel.cluster;
/*
使
*/
var message = Kubernetes.checkForMigration($scope.replicasModel.replicationControllers, $scope.model.transferTasks , $scope.tableConfig.selectedItems);
*/
var message = Kubernetes.checkForMigration($scope.replicasModel.replicationControllers, $scope.model.transferTasks , $scope.tableConfig.selectedItems, "manager");
if(message == ""){
if($scope.volumes && $scope.volumes instanceof Array && $scope.volumes.length >0)
@ -269,10 +286,18 @@ module Developer {
}
};
$scope.createOracleService = (items) =>{
var exitedItems = Kubernetes.checkForCreateOracle($scope.model.transferTasks, items);
$scope.createOracleService = (items) =>{
var exitedItems = Kubernetes.checkForCreateOracle($scope.model.transferTasks, items);
for (var i = 0; i < items.length; ++i) {
// code...
if(items[i].dataBaseType != 'ORACLE'){
Configs.customAlert("提示", "操作失败: 非ORACLE数据不需要挂载启动", '', null, 0, "error");
return;
}
}
if(exitedItems.length == 0){
angular.forEach(items,(item)=>{
angular.forEach(items,(item)=>{
console.log(item);
var isExited = Kubernetes.checkForExit($scope.replicasModel.replicationControllers, item);
if(!isExited){
Kubernetes.createRC({
@ -287,7 +312,8 @@ module Developer {
districtName: item.districtName,
systemName: item.systemName,
id: item.id+"",
year: item.year
year: item.year,
checkoutFlag: item.checkoutFlag
},
path: item.dataPath+"app/",
isTarget: "false",
@ -310,9 +336,9 @@ module Developer {
}
}
function init($scope,$location,$routeParams){
//$scope.model.updateModel();
function init($scope,$location,$routeParams){
$scope.keyQuery = "";
$scope.model.initParamOptions();
$scope.model.updateParamOption("keyQuery", $scope.keyQuery);
if(ConfigsModel.cluster!=null)
$scope.volumes = ConfigsModel.cluster;
@ -339,14 +365,27 @@ module Developer {
title: "查看批次B的数据",
class: "",
alias: "B"
}]
}];
if(!($location.path().indexOf("hot") > -1)){
$scope.tableConfig.columnDefs.splice(7,0,{
field: "existHotData",
displayName: '是否已在热区',
cellTemplate: $templateCache.get("isExistHot.html")
});
}
}
function getDataType($location){
var path = $location.path();
var dataType;
var volumeType;
var subPath = path.split("/");
var subPath = path.split("/");
if(path.indexOf("hot") > -1)
$scope.isShow = true;
else
$scope.isShow = false;
switch (subPath[subPath.length -1]) {
case "financial":
dataType = "财政";
@ -364,7 +403,7 @@ module Developer {
break;
default:
volumeType = 1
}
}
return {
"dataType": dataType,
"volumeType": volumeType

@ -5,9 +5,7 @@
</script>
<script type="text/ng-template" id="idTemplate.html">
<div class="ngCellText nowrap">
<a href="" title="View details for {{row.entity.metadata.name || row.entity.name}}">
<!--<img class="app-icon-small" ng-src="{{row.entity.$iconUrl}}" ng-show="row.entity.$iconUrl">-->
<strong>{{row.entity.$oracleName || row.entity.name}}</strong></a>
<strong>{{row.entity.$oracleName || row.entity.name}}</strong>
</div>
</script>
<script type="text/ng-template" id="selectorTemplate.html">
@ -34,20 +32,20 @@
<a ng-show="row.entity.$podCounters.podsLink" title="pods status">
<span ng-show="row.entity.$extractStatus === 0" class="badge badge-info"> 待汇总</span>
<div ng-show="row.entity.$extractStatus === 1">
<span class="badge badge-success" > 汇总中</span>
<span class="badge badge-success"> 汇总中</span>
<span ng-include="'oracleLogTemplate.html'"></span>
</div>
<div ng-show="row.entity.$extractStatus === 2">
<span class="badge" > 已完成</span>
<span class="badge"> 已完成</span>
<span ng-include="'oracleLogTemplate.html'"></span>
</div>
</div>
</a>
</div>
</script>
<script type="text/ng-template" id="labelTemplate.html">
<div class="ngCellText" ng-init="entity=row.entity" ng-controller="Kubernetes.Labels">
<p ng-show="data"><strong>Labels</strong></p>
<span ng-repeat="label in labels track by $index" class="pod-label badge" ng-class="labelClass(label.key)" ng-click="handleClick(entity, label.key, label)" title="{{label.key}}"><span class="glyphicon glyphicon-tag"/> {{label.title}}</span>
<span ng-repeat="label in labels track by $index" class="pod-label badge" ng-class="labelClass(label.key)" ng-click="handleClick(entity, label.key, label)"><span class="glyphicon glyphicon-tag"/> {{label.title}}</span>
</div>
</script>
<script type="text/ng-template" id="eventSourceTemplate.html">
@ -59,7 +57,7 @@
<script type="text/ng-template" id="dataLabelsTemplate.html">
<div class="ngCellText" ng-init="labels=row.entity.labels" ng-controller="Kubernetes.DataLabels">
<p ng-show="data"><strong>Labels</strong></p>
<span ng-repeat="(key, value) in labels track by $index" class="pod-label badge" ng-class="labelClass(key)" ng-click="labelClick(entity, key, value)" title="{{key}}"><span class="glyphicon glyphicon-tag"/> {{value}}</span>
<span ng-repeat="(key, value) in labels track by $index" class="pod-label badge" ng-class="labelClass(key)" ng-click="labelClick(entity, key, value)"><span class="glyphicon glyphicon-tag"/> {{value}}</span>
</div>
</script>
<script type="text/ng-template" id="hostTemplate.html">
@ -213,9 +211,12 @@
</script>
<script type="text/ng-template" id="taskEdit.html">
<div class="ngCellText" ng-init="entity=row.entity" ng-controller="Kubernetes.TaskEdit">
<button class="btn sj_btn" ng-click="showDeleteOne.open(entity)">
<button class="btn sj_btn" ng-click="showDeleteOne.open(entity)" ng-disabled="entity.status == 1 || entity.status == 0">
<span class="glyphicon glyphicon-trash"></span>&nbsp;&nbsp;删除
</button>
<button class="btn sj_btn" ng-click="showCancelOne.open(entity)" ng-disabled="entity.process == 100 || entity.status = 3">
<span class="glyphicon glyphicon-remove"></span>&nbsp;&nbsp;取消
</button>
<div hawtio-confirm-dialog="showDeleteOne.show" title="是否删除任务?" ok-button-text="确认" cancel-button-text="取消" on-cancel="showDeleteOne.onCancelled()" on-ok="showDeleteOne.onOk()">
<div class="dialog-body">
<p>
@ -223,6 +224,13 @@
</p>
</div>
</div>
<div hawtio-confirm-dialog="showCancelOne.show" title="是否取消任务?" ok-button-text="确认" cancel-button-text="取消" on-cancel="showCancelOne.onCancelled()" on-ok="showCancelOne.onOk()">
<div class="dialog-body">
<p>
是否取消:{{entity.name}}-{{entity.systemName}} 任务?
</p>
</div>
</div>
</div>
</script>
<!-- 迁移进度条 -->
@ -242,7 +250,7 @@
<div ng-show="entity.status == 0">
<sapn class="glyphicon glyphicon-minus"> 待迁移
</div>
<div ng-show="entity.status == 1">
<div ng-show="entity.status == 1">
<span class="glyphicon glyphicon-transfer"> 迁移中
</div>
<div ng-show="entity.status == 2">
@ -261,19 +269,40 @@
<script type="text/ng-template" id="dataExtractTemplate.html">
<div class="ngCellText" ng-init="entity=row.entity">
<span ng-show="entity.extractStatus == 0" class="badge badge-info"> 待汇总</span>
<span ng-show="entity.extractStatus == 1" class="badge badge-success"> 汇总中</span>
<span ng-show="entity.extractStatus == 2" class="badge"> 已完成</span>
</div>
<span ng-show="entity.extractStatus == 1" class="badge badge-success"> 汇总中</span>
<span ng-show="entity.extractStatus == 2" class="badge"> 已完成</span>
</div>
</script>
<script type="text/ng-template" id="loadingMask.html">
<div class="custom-alert">
<div class="custom-alert">
<div id="loading">
<span ng-bind="ngDialogData.msg" />
</div>
</div>
</div>
</script>
<script type="text/ng-template" id="dataCheckStatus.html">
<div class="ngCellText" ng-init="entity=row.entity">
<span ng-show="entity.metadata.annotations.checkoutFlag == 0">未校验</span>
<span ng-show="entity.metadata.annotations.checkoutFlag == 1">已校验</span>
<span ng-show="entity.metadata.annotations.checkoutFlag == 2">校验中</span>
</div>
</script>
<script type="text/ng-template" id="strandColumn.html">
<div class="ngCellText" ng-init="entity=row.entity">
<div ng-show="true" title="是否是标准表汇总库">
<span ng-show="entity.type == 0">&nbsp;</span>
<span ng-show="entity.type == 1">&nbsp;</span>
</div>
</div>
</script>
<script type="text/ng-template" id="isExistHot.html">
<div class="ngCellText" ng-init="entity=row.entity">
<div ng-show="true" title="是否是标准表汇总库">
<span ng-show="entity.existHotData == 0">&nbsp;</span>
<span ng-show="entity.existHotData == 1">&nbsp;</span>
</div>
</div>
</script>
<div ng-controller="Kubernetes.TopLevel">
<div class="wiki-icon-view" ng-controller="Kubernetes.FileDropController" nv-file-drop nv-file-over uploader="uploader" over-class="ready-drop">
<div class="row kubernetes-view" ng-view></div>

@ -4,7 +4,7 @@
<span class="fa fa-caret-down"></span>
</div>
<div class="terminal-title" ng-mousedown="mouseDown($event)" ng-mouseup="mouseUp($event)" ng-mousemove="mouseMove($event)">
<h5 class="top-bottom-middle">{{containerName}}的汇总日志</h5>
<h5 class="top-bottom-middle">{{containerName}}的抽取日志</h5>
<i class="fa fa-remove pull-right clickable" title="Close and exit this log" ng-click="close()"></i>
<i class="fa fa-square-o pull-right clickable" title="Maximize this log" ng-click="maximize($event)"></i>
<i class="fa fa-sort-desc pull-right clickable" ng-hide="maximized()" title="Minimize this log" ng-click="minimize($event)"></i>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save