You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
315 lines
10 KiB
315 lines
10 KiB
/// <reference path="../../includes.ts"/>
|
|
/// <reference path="../../kubernetes/ts/kubernetesHelpers.ts"/>
|
|
/// <reference path="../../kubernetes/ts/kubernetesModel.ts"/>
|
|
/// <reference path="../../configs/ts/configsDataService.ts"/>
|
|
/// <reference path="developerEnrichers.ts"/>
|
|
/// <reference path="developerHelpers.ts"/>
|
|
/// <reference path="dataManagerHelper.ts"/>
|
|
/// <reference path="dataManagerModel.ts"/>
|
|
/// <reference path="../../configs/ts/configsHelper.ts"/>
|
|
|
|
module Developer {
|
|
export var WorkspacesController = controller("WorkspacesController", ["$scope", "KubernetesModel", "DataModel", "ConfigsModel", "KubernetesState", "$templateCache", "$location", "$routeParams", "$http", "$timeout", "KubernetesApiURL", "$element",
|
|
($scope, KubernetesModel: Kubernetes.KubernetesModelService, DataModel:Developer.DataModelService, ConfigsModel:Configs.ConfigsModelService, KubernetesState, $templateCache:ng.ITemplateCacheService, $location:ng.ILocationService, $routeParams, $http, $timeout, KubernetesApiURL, $element) => {
|
|
$scope.model=DataModel;
|
|
init($scope, $location, $routeParams);
|
|
$scope.options = DataModel.paramOptions;
|
|
$scope.pageSizeChoses = DataModel.paramOptions.pagerSizeOption;
|
|
var result = getDataType($location)
|
|
$scope.options.dataType = result["dataType"];
|
|
$scope.options.volumeType = result["volumeType"];
|
|
|
|
$scope.treeOptions = {
|
|
nodeChildren: "childNodes",
|
|
dirSelectable: true,
|
|
injectClasses: {
|
|
ul: "a1",
|
|
li: "a2",
|
|
liSelected: "a7",
|
|
iExpanded: "a3",
|
|
iCollapsed: "a4",
|
|
iLeaf: "a5",
|
|
label: "a6",
|
|
labelSelected: "a8"
|
|
}
|
|
}
|
|
|
|
//配置数据表格需要显示的内容及显示格式
|
|
$scope.tableConfig = {
|
|
data: 'model.data',
|
|
showSelectionCheckbox: true,
|
|
enableRowClickSelection: false,
|
|
multiSelect: true,
|
|
selectedItems: [],
|
|
filterOptions: {
|
|
filterText: $location.search()["q"] || ''
|
|
},
|
|
columnDefs: [
|
|
{
|
|
field: "_key",
|
|
displayName: '编码',
|
|
customSortField: (field) =>{
|
|
return field.id;
|
|
}
|
|
},
|
|
{
|
|
field: "name",
|
|
displayName: '市-区/县'
|
|
},
|
|
{
|
|
field: "systemName",
|
|
displayName: '系统名称'
|
|
},
|
|
{
|
|
field: "labels",
|
|
displayName: '数据标签',
|
|
cellTemplate: $templateCache.get("dataLabelsTemplate.html")
|
|
},
|
|
{
|
|
field: "year",
|
|
displayName: '年度',
|
|
},
|
|
{
|
|
field: "collectingTime",
|
|
displayName: '采集时间'
|
|
},
|
|
{
|
|
field: "extractStatus",
|
|
displayName: '汇总状态',
|
|
cellTemplate: $templateCache.get("dataExtractTemplate.html")
|
|
}
|
|
]
|
|
};
|
|
|
|
$scope.$on("dataLabelFilterUpdate", ($event, text, key) => {
|
|
$scope.keyQuery += " " + text;
|
|
})
|
|
|
|
$scope.selectBatchItem = (item)=> {
|
|
$scope.navbarItems.forEach((nav) =>{
|
|
nav.class="";
|
|
});
|
|
item.class="active";
|
|
$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();
|
|
return length <= 0 || idx <= 1;
|
|
}
|
|
|
|
$scope.isEmptyOrLast = () =>{
|
|
var idx = $scope.model.getParamOption("currentPageNum");
|
|
var length =$scope.options.getPageSizeNum();
|
|
return length < 1 || idx >= length;
|
|
}
|
|
|
|
$scope.first = () => {
|
|
var idx = $scope.model.getParamOption("currentPageNum");
|
|
if(idx >1)
|
|
$scope.model.updateParamOption("currentPageNum", 1);
|
|
}
|
|
|
|
$scope.last = () =>{
|
|
var idx = $scope.model.getParamOption("currentPageNum");
|
|
var length =$scope.options.getPageSizeNum();
|
|
if(idx < length)
|
|
$scope.model.updateParamOption("currentPageNum", length);
|
|
}
|
|
|
|
$scope.previous = () => {
|
|
var idx = $scope.model.getParamOption("currentPageNum");
|
|
var length =$scope.options.getPageSizeNum();
|
|
if(idx > 1)
|
|
$scope.model.updateParamOption("currentPageNum", idx-1);
|
|
}
|
|
|
|
$scope.next = () =>{
|
|
var length =$scope.options.getPageSizeNum();
|
|
var idx = $scope.model.getParamOption("currentPageNum");
|
|
if(idx < length)
|
|
$scope.model.updateParamOption("currentPageNum", idx+1);
|
|
}
|
|
|
|
$scope.$watch('options', (newValue, oldValue) => {
|
|
if(newValue){
|
|
if(newValue.currentTableSize !== oldValue.currentTableSize)
|
|
$scope.options.priorTableSize = oldValue.currentTableSize;
|
|
else
|
|
$scope.options.priorTableSize = newValue.currentTableSize;
|
|
DataModel.updateModel();
|
|
}
|
|
|
|
}, true);
|
|
|
|
$scope.search = () => {
|
|
$scope.model.updateParamOption("keyQuery", $scope.keyQuery);
|
|
|
|
}
|
|
|
|
$scope.deletePrompt = (selected) => {
|
|
if (angular.isString(selected)) {
|
|
selected = [{
|
|
id: selected
|
|
}];
|
|
}
|
|
UI.multiItemConfirmActionDialog(<UI.MultiItemConfirmActionOptions>{
|
|
collection: selected,
|
|
index: 'id',
|
|
onClose: (result:boolean) => {
|
|
var idColl = [];
|
|
if (result) {
|
|
angular.forEach(selected, (select) => {
|
|
idColl.push(select.id);
|
|
});
|
|
$http({
|
|
method: "POST",
|
|
url: "/java/console/api/delete/data",
|
|
params: {"data": idColl}
|
|
}).success(function(data, status, headers, config) {
|
|
//成功之后做一些事情
|
|
DataModel.updateModel();
|
|
}).error(function(data, status, headers, config) {
|
|
|
|
});
|
|
}
|
|
},
|
|
title: '是否需要删除采集数据?',
|
|
action: '以下采集数据文件将会被删除:',
|
|
okText: '删除',
|
|
okClass: 'btn-danger sj_btn_cir',
|
|
custom: "该删除操作将会彻底删除数据文件,是否删除,请确认!",
|
|
customClass: "alert alert-warning sj_alert-warning",
|
|
cancelText: "取消",
|
|
cancelClass: 'sj_btn_grey'
|
|
}).open();
|
|
}
|
|
|
|
$scope.migrationClick = {
|
|
items:null,
|
|
selectedItem: {"name": "当前没有可以迁移的集群"},
|
|
dialog: new UI.Dialog(),
|
|
onOk: () => {
|
|
var migrationClick = $scope.migrationClick;
|
|
Configs.oracleInfoOperate($http, "/java/console/api/volume", Configs.OperateType.MOVE,
|
|
{
|
|
"name": migrationClick.selectedItem.name,
|
|
"selectItems": $scope.tableConfig.selectedItems,
|
|
"selectNode": $scope.selectNode
|
|
}, (result, status) => {
|
|
if(status===200){
|
|
//$scope.model.updateOracleParam();
|
|
}else{
|
|
throw "资源请求失败";
|
|
}
|
|
});
|
|
$timeout(() =>{
|
|
$location.path("/workspaces/Overview/task");
|
|
},250);
|
|
migrationClick.close();
|
|
},
|
|
open: (selected) =>{
|
|
var migrationClick = $scope.migrationClick;
|
|
if($scope.volumes && $scope.volumes instanceof Array && $scope.volumes.length >0)
|
|
migrationClick.selectedItem = $scope.volumes[0];
|
|
migrationClick.dialog.open();
|
|
},
|
|
close: () => {
|
|
$scope.migrationClick.selectedItem = {"name": "当前没有可以迁移的集群"};
|
|
$scope.migrationClick.dialog.close();
|
|
}
|
|
};
|
|
|
|
$scope.createOracleService = (items) =>{
|
|
angular.forEach(items,(item)=>{
|
|
Kubernetes.createRC({
|
|
name: item._key,
|
|
labels: {
|
|
system: item.systemCode.toString(),
|
|
version: item.dataVersion.toString(),
|
|
region: item.regionalismCode.toString()
|
|
},
|
|
annotations: {
|
|
cityName: item.cityName,
|
|
districtName: item.districtName,
|
|
systemName: item.systemName,
|
|
id: item.id+""
|
|
},
|
|
path: item.dataPath+"app/",
|
|
isTarget: "false",
|
|
isExtract: item.extractStatus
|
|
}, (rc) =>{
|
|
Kubernetes.connectOracle($http, $timeout, "/java/console/api/connectOracle", "create", rc, 0);
|
|
});
|
|
});
|
|
|
|
$timeout(() => {
|
|
$location.path('/kubernetes/namespace/default/replicationControllers');
|
|
}, 200);
|
|
}
|
|
|
|
function init($scope,$location,$routeParams){
|
|
//$scope.model.updateModel();
|
|
$scope.keyQuery = "";
|
|
$scope.model.updateParamOption("keyQuery", $scope.keyQuery);
|
|
if(ConfigsModel.cluster!=null)
|
|
$scope.volumes = ConfigsModel.cluster;
|
|
|
|
//创建二级菜单
|
|
$scope.subTabConfig = Developer.createCurrentSubNavBar($scope, $location, $routeParams);
|
|
$scope.navbarItems =[{
|
|
herf: "",
|
|
label: "全部",
|
|
title: "查看全部数据",
|
|
class: "active",
|
|
alias: null
|
|
},
|
|
{
|
|
herf: "",
|
|
label: "批次A",
|
|
title: "查看批次A的数据",
|
|
class: "",
|
|
alias: "A"
|
|
},
|
|
{
|
|
herf: "",
|
|
label: "批次B",
|
|
title: "查看批次B的数据",
|
|
class: "",
|
|
alias: "B"
|
|
}]
|
|
}
|
|
|
|
function getDataType($location){
|
|
var path = $location.path();
|
|
var dataType;
|
|
var volumeType;
|
|
var subPath = path.split("/");
|
|
switch (subPath[subPath.length -1]) {
|
|
case "financial":
|
|
dataType = "财政";
|
|
break;
|
|
case "social-security":
|
|
dataType = "社保";
|
|
break;
|
|
default:
|
|
dataType = null;
|
|
break;
|
|
};
|
|
switch (subPath[3]) {
|
|
case "hot":
|
|
volumeType = 0
|
|
break;
|
|
default:
|
|
volumeType = 1
|
|
}
|
|
return {
|
|
"dataType": dataType,
|
|
"volumeType": volumeType
|
|
}
|
|
}
|
|
}]);
|
|
}
|