/// /// /// /// /// /// /// /// /// 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({ 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 } } }]); }