From 989b1f2ba54a74ba88bf9bd9051cf075b269ee5d Mon Sep 17 00:00:00 2001 From: CongLu Date: Mon, 16 Mar 2015 11:20:49 -0700 Subject: [PATCH] add report function Change-Id: I1060a7a30aeeaca034e8f793a0461b6ea7ac1c71 --- v2.5/src/app/app.coffee | 7 ++ .../app/controllers/clusterController.coffee | 41 ++++++- .../app/controllers/modalControllers.coffee | 6 + .../app/controllers/wizardController.coffee | 15 +-- v2.5/src/app/directives/all.coffee | 3 +- .../app/directives/clusterNavDirective.coffee | 1 + .../src/app/directives/wizardDirective.coffee | 17 +++ v2.5/src/app/filters/all.coffee | 3 + v2.5/src/app/filters/baseFilter.coffee | 5 + .../src/app/filters/healthReportFilter.coffee | 17 +++ v2.5/src/app/partials/ErrorInfo.html | 31 +++++ v2.5/src/app/partials/cluster-nav.tpl.html | 24 ++-- .../app/partials/cluster-overview.tpl.html | 20 ++-- v2.5/src/app/partials/cluster-report.tpl.html | 110 ++++++++++++++++++ v2.5/src/app/services/clusterService.coffee | 91 +++++++++++++++ v2.5/src/app/services/dataService.coffee | 12 ++ 16 files changed, 368 insertions(+), 35 deletions(-) create mode 100644 v2.5/src/app/directives/wizardDirective.coffee create mode 100644 v2.5/src/app/filters/all.coffee create mode 100644 v2.5/src/app/filters/baseFilter.coffee create mode 100644 v2.5/src/app/filters/healthReportFilter.coffee create mode 100644 v2.5/src/app/partials/ErrorInfo.html create mode 100644 v2.5/src/app/partials/cluster-report.tpl.html diff --git a/v2.5/src/app/app.coffee b/v2.5/src/app/app.coffee index f9261ee..d552c58 100755 --- a/v2.5/src/app/app.coffee +++ b/v2.5/src/app/app.coffee @@ -8,6 +8,7 @@ define(['angular' 'app/factory/all' 'app/directives/all' # 'app/server/appDev' + 'app/filters/all' ], (ng)-> 'use strict' @@ -20,6 +21,7 @@ define(['angular' 'compass.factories' 'compass.directives' # 'compassAppDev' + 'compass.filters' ] .config ['$stateProvider','$urlRouterProvider', '$httpProvider', ($stateProvider, $urlRouterProvider, $httpProvider) -> $stateProvider @@ -122,6 +124,11 @@ define(['angular' url: '/roles' templateUrl: 'src/app/partials/cluster-roles.tpl.html' requireAuthenticated: true + .state 'cluster.report', + url: '/report', + controller: "clusterReportCtrl", + templateUrl: 'src/app/partials/cluster-report.tpl.html', + requireAuthenticated: true .state 'serverList', url: '/serverlist' controller: 'serverCtrl' diff --git a/v2.5/src/app/controllers/clusterController.coffee b/v2.5/src/app/controllers/clusterController.coffee index d65a68a..c221057 100644 --- a/v2.5/src/app/controllers/clusterController.coffee +++ b/v2.5/src/app/controllers/clusterController.coffee @@ -76,6 +76,14 @@ define(['./baseController'], ()-> clusterService.clusterProgressInit($scope, clusterhostsData, $stateParams) clusterService.displayDataInTable($scope, $scope.hosts) + $scope.clusterId = $stateParams.id + + request = + "check_health": null + + $scope.startChecking = -> + clusterService.startHealthCheck($scope.clusterId, request, $scope) + $scope.selectAllServers = (flag) -> if flag sv.selected = true for sv in $scope.hosts @@ -89,6 +97,35 @@ define(['./baseController'], ()-> # clusterService.getClusterConfig(clusterId).success (data) -> # console.log(data) ] - - + .controller 'clusterReportCtrl', ['$scope', '$state', 'clusterService', '$stateParams', '$timeout', '$modal', + ($scope, $state, clusterService, $stateParams, $timeout, $modal) -> + clusterService.getReports($scope, $stateParams.id) + $scope.openModal = (key, reportname) -> + # console.log(key) + # console.log(reportname) + # console.log($scope.details[reportname][key]) + modalInstance = $modal.open( + templateUrl: 'src/app/partials/ErrorInfo.html' + controller: 'reportErrorCtrl' + resolve: + detail: -> + return $scope.details[reportname][key] + ) + ] + .controller 'navCtrl', ['$scope', 'clusterService', '$stateParams' + ($scope, clusterService, $stateParams)-> + clusterService.getHealthReportsCheck($scope, $stateParams.id) + ] + # .filter 'FilterByCategory', -> + # return (items, categoryName) -> + # filtered = [] + # for i in items + # item = i + # if item.category == categoryName + # filtered.push(item) + # return filtered + # .filter 'nl2br', ['$sce', ($sce)-> + # return (text)-> + # return text = if text then $sce.trustAsHtml(text.replace(/\n/g, '
')) else '' + # ] ) \ No newline at end of file diff --git a/v2.5/src/app/controllers/modalControllers.coffee b/v2.5/src/app/controllers/modalControllers.coffee index 1753e30..dbc6256 100644 --- a/v2.5/src/app/controllers/modalControllers.coffee +++ b/v2.5/src/app/controllers/modalControllers.coffee @@ -64,4 +64,10 @@ define(['./baseController'], ()-> $scope.cancel = -> $modalInstance.dismiss('cancel') ] + .controller 'reportErrorCtrl', ['$scope', '$modalInstance', 'detail', ($scope, $modalInstance, detail)-> + $scope.detail = detail + $scope.cancel = -> + $modalInstance.dismiss('cancel') + console.log($scope.detail) + ] ); \ No newline at end of file diff --git a/v2.5/src/app/controllers/wizardController.coffee b/v2.5/src/app/controllers/wizardController.coffee index de1e169..7c7a706 100644 --- a/v2.5/src/app/controllers/wizardController.coffee +++ b/v2.5/src/app/controllers/wizardController.coffee @@ -144,19 +144,6 @@ define(['./baseController'], ()-> wizardService.displayDataInTable($scope, $scope.servers) ] - .directive 'ngKeypress', [-> - return (scope, element, attrs) -> - element.bind "keydown keypress", (event)-> - if event.which is 9 - current = attrs.position - result = current.split('_') - next = result[0]+"_"+(parseInt(result[1])+1) - if $("input[data-position=" + next + "]").length - $("input[data-position=" + next + "]").focus() - else - $(".btn-next").focus() - event.preventDefault(); - ] .controller 'partitionCtrl', ['$scope', 'wizardService', ($scope, wizardService) -> @@ -300,7 +287,7 @@ define(['./baseController'], ()-> element.fadeIn(500, done) return -> element.stop() - leave: (element,done) -> + leave: (element, done) -> element.fadeOut(500,done) return -> element.stop() diff --git a/v2.5/src/app/directives/all.coffee b/v2.5/src/app/directives/all.coffee index 3c87c93..28e0e2f 100755 --- a/v2.5/src/app/directives/all.coffee +++ b/v2.5/src/app/directives/all.coffee @@ -4,4 +4,5 @@ define([ './pieChartDirective' './enterDirective' './hostprogressbarDirective' -], ()-> ) \ No newline at end of file + './wizardDirective' +], ()-> ) diff --git a/v2.5/src/app/directives/clusterNavDirective.coffee b/v2.5/src/app/directives/clusterNavDirective.coffee index 31e0968..7b9d46d 100644 --- a/v2.5/src/app/directives/clusterNavDirective.coffee +++ b/v2.5/src/app/directives/clusterNavDirective.coffee @@ -7,6 +7,7 @@ define(['./baseDirective'], -> return { restrict: 'EAC' templateUrl: "src/app/partials/cluster-nav.tpl.html" + controller: 'navCtrl' # link: (scope, element, attrs) -> # console.log("inside") # $timeout( -> diff --git a/v2.5/src/app/directives/wizardDirective.coffee b/v2.5/src/app/directives/wizardDirective.coffee new file mode 100644 index 0000000..f7c42b7 --- /dev/null +++ b/v2.5/src/app/directives/wizardDirective.coffee @@ -0,0 +1,17 @@ +define ['./baseDirective'], -> + 'use strict'; + + angular.module('compass.directives') + .directive 'ngKeypress', [-> + return (scope, element, attrs) -> + element.bind "keydown keypress", (event)-> + if event.which is 9 + current = attrs.position + result = current.split('_') + next = result[0]+"_"+(parseInt(result[1])+1) + if $("input[data-position=" + next + "]").length + $("input[data-position=" + next + "]").focus() + else + $(".btn-next").focus() + event.preventDefault(); + ] \ No newline at end of file diff --git a/v2.5/src/app/filters/all.coffee b/v2.5/src/app/filters/all.coffee new file mode 100644 index 0000000..31554e4 --- /dev/null +++ b/v2.5/src/app/filters/all.coffee @@ -0,0 +1,3 @@ +define([ + './healthReportFilter' +]) \ No newline at end of file diff --git a/v2.5/src/app/filters/baseFilter.coffee b/v2.5/src/app/filters/baseFilter.coffee new file mode 100644 index 0000000..e739017 --- /dev/null +++ b/v2.5/src/app/filters/baseFilter.coffee @@ -0,0 +1,5 @@ +define(['angular' +], (ng)-> + 'use strict'; + ng.module('compass.filters', []); +); \ No newline at end of file diff --git a/v2.5/src/app/filters/healthReportFilter.coffee b/v2.5/src/app/filters/healthReportFilter.coffee new file mode 100644 index 0000000..264dc20 --- /dev/null +++ b/v2.5/src/app/filters/healthReportFilter.coffee @@ -0,0 +1,17 @@ +define(['./baseFilter'], -> + 'use strict'; + + angular.module('compass.filters') + .filter 'FilterByCategory', -> + return (items, categoryName) -> + filtered = [] + for i in items + item = i + if item.category == categoryName + filtered.push(item) + return filtered + .filter 'nl2br', ['$sce', ($sce)-> + return (text)-> + return text = if text then $sce.trustAsHtml(text.replace(/\n/g, '
')) else '' + ] +); \ No newline at end of file diff --git a/v2.5/src/app/partials/ErrorInfo.html b/v2.5/src/app/partials/ErrorInfo.html new file mode 100644 index 0000000..ef24b26 --- /dev/null +++ b/v2.5/src/app/partials/ErrorInfo.html @@ -0,0 +1,31 @@ + + + diff --git a/v2.5/src/app/partials/cluster-nav.tpl.html b/v2.5/src/app/partials/cluster-nav.tpl.html index 2b73223..b3826b8 100755 --- a/v2.5/src/app/partials/cluster-nav.tpl.html +++ b/v2.5/src/app/partials/cluster-nav.tpl.html @@ -53,26 +53,22 @@ @@ -83,9 +79,19 @@ Log +
  • + + + Report + + + + Report + +
  • \ No newline at end of file + diff --git a/v2.5/src/app/partials/cluster-overview.tpl.html b/v2.5/src/app/partials/cluster-overview.tpl.html index 2c8cbce..d96afd8 100755 --- a/v2.5/src/app/partials/cluster-overview.tpl.html +++ b/v2.5/src/app/partials/cluster-overview.tpl.html @@ -73,14 +73,16 @@ - - {{column.title}} + {{column.title}}
    +