From 6ae40ff4737965a1fa82baa06f042d5d0a4764ee Mon Sep 17 00:00:00 2001 From: hrushikesh07 Date: Wed, 28 Sep 2016 17:39:52 +0530 Subject: [PATCH 1/3] Chinged filter and filter event --- .../dashboard/analytics/analytics.html | 4 +- .../sections/dashboard/analytics/analytics.js | 56 ++--------- .../dashboard/analytics/analytics.scss | 2 +- .../dashboard/analytics/analyticsServices.js | 53 +++++++++- .../analytics/controller/costCtrl.js | 98 +++++++++---------- .../analytics/controller/usageCtrl.js | 46 +++++---- .../dashboard/analytics/view/cost.html | 23 +++-- 7 files changed, 152 insertions(+), 130 deletions(-) diff --git a/client/cat3/src/partials/sections/dashboard/analytics/analytics.html b/client/cat3/src/partials/sections/dashboard/analytics/analytics.html index 599a15e81..ef0330037 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/analytics.html +++ b/client/cat3/src/partials/sections/dashboard/analytics/analytics.html @@ -93,8 +93,8 @@
- - + +
diff --git a/client/cat3/src/partials/sections/dashboard/analytics/analytics.js b/client/cat3/src/partials/sections/dashboard/analytics/analytics.js index 9c64d1f66..1194d88db 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/analytics.js +++ b/client/cat3/src/partials/sections/dashboard/analytics/analytics.js @@ -59,7 +59,7 @@ } }) }]) - .controller('analyticsCtrl',['$scope', '$rootScope','$state','genericServices', 'workzoneServices', 'toastr', function ($scope, $rootScope, $state, genericServices, workzoneServices, toastr) { + .controller('analyticsCtrl',['$scope', '$rootScope','$state','genericServices','analyticsServices', 'workzoneServices', 'toastr', function ($scope, $rootScope, $state, genericServices,analyticsServices, workzoneServices, toastr) { var analytic = this; var splitUp=null; analytic.tabShowChat=true; @@ -68,14 +68,10 @@ $rootScope.isOpenSidebar = false; $rootScope.dashboardChild = 'analytics'; $rootScope.stateItems = $state.params; + analyticsServices.initFilter(); var treeNames = ['Analytics']; //$rootScope.$emit('treeNameUpdate', treeNames); $rootScope.$emit('HEADER_NAV_CHANGE', 'ANALYTICS'); - $rootScope.organNewEnt=[]; - $rootScope.filterNewEnt={}; - $rootScope.organNewEnt.org = '0'; - $rootScope.filterNewEnt.period='month'; - $rootScope.splitUpCosts=[]; $scope.selectedResources = []; analytic.viewByFilter='orgView'; $scope.$watch(function() { return analytic.viewByFilter}, function(newVal, oldVal) { @@ -96,48 +92,11 @@ $scope.$broadcast('CHANGE_VIEW',newVal); }, true); analytic.applyCount=0 - analytic.applyFilter = function(filterApp,period){ - $rootScope.filterApply= new Date(); - var obj=$rootScope.organObject, - or=$rootScope.organNewEnt.org, - bu=$rootScope.organNewEnt.buss, - pr=$rootScope.organNewEnt.proj; - if(period) - $rootScope.filterNewEnt.period=period; - if(or){ - $rootScope.filterNewEnt.org={name:obj[or].name,id:obj[or].rowid,title:'Org'}; - $rootScope.filterNewEnt.provider=''; - } - if(filterApp){ - if(bu){ - $rootScope.filterNewEnt.buss = {name:obj[or].businessGroups[bu].name,id:obj[or].businessGroups[bu].rowid,title:'BU'}; - } - if(pr){ - $rootScope.filterNewEnt.proj = {name:obj[or].businessGroups[bu].projects[pr].name,id:obj[or].businessGroups[bu].projects[pr].rowid,title:'Project'}; - } - - if($rootScope.organNewEnt.provider){ - $rootScope.filterNewEnt.provider={name:$scope.providers[$rootScope.organNewEnt.provider].providerName,id:$scope.providers[$rootScope.organNewEnt.provider]._id,title:'Provider'}; - } else{ - $rootScope.filterNewEnt.provider=''; - } - } else{ - $rootScope.organNewEnt={} - $rootScope.organNewEnt.org=or; - analytic.viewByFilter='orgView'; - analytic.splitUp=$rootScope.splitUpCosts[0]; - } - }; //get organisation genericServices.getTreeNew().then(function (orgs) { $rootScope.organObject = orgs; - analytic.applyFilter(true); }); - $rootScope.organNewEnt=[]; - $rootScope.organNewEnt.org = '0'; - //$rootScope.organNewEnt.buss='0'; - //$rootScope.organNewEnt.proj='0'; if (!$rootScope.stateParams.view) { $state.go('dashboard.analytics.cost'); } @@ -151,7 +110,6 @@ analytic.tabShowChat=chat; analytic.tabShowReport=report; }; - analytic.hideTreeOverlay(); $scope.getAllRegionsList = function() { workzoneServices.getAllRegionsList().then(function(response) { @@ -162,6 +120,7 @@ }; $scope.getProviders = function() { workzoneServices.getProviders().then(function(response) { + $rootScope.providers=response.data; $scope.providers = response.data; $scope.filter = []; $scope.filter.providerId = response.data[0]._id; @@ -196,9 +155,7 @@ $scope.providerLoading = false; }); }; - if (!$rootScope.stateItems.view) { - $state.go('dashboard.analytics.cost'); - } + $scope.getAllRegionsList(); $scope.getProviders(); $scope.fnProviderChange = function() { @@ -244,5 +201,8 @@ } } }; + if (!$rootScope.stateParams.view) { + $state.go('dashboard.analytics.cost'); + } }]); -})(angular); \ No newline at end of file +})(angular); diff --git a/client/cat3/src/partials/sections/dashboard/analytics/analytics.scss b/client/cat3/src/partials/sections/dashboard/analytics/analytics.scss index f05b6671a..6eeb3b83a 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/analytics.scss +++ b/client/cat3/src/partials/sections/dashboard/analytics/analytics.scss @@ -266,6 +266,6 @@ } .selected { - background: #ddd; + background: #E49C25; } } \ No newline at end of file diff --git a/client/cat3/src/partials/sections/dashboard/analytics/analyticsServices.js b/client/cat3/src/partials/sections/dashboard/analytics/analyticsServices.js index 87bc5f53e..bd370c6a8 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/analyticsServices.js +++ b/client/cat3/src/partials/sections/dashboard/analytics/analyticsServices.js @@ -1,9 +1,60 @@ (function (angular) { "use strict"; angular.module('apis.analytics',[]) - .factory('analyticsServices',[ function () { + .factory('analyticsServices',['$rootScope', function ($rootScope) { return { + initFilter:function(){ + $rootScope.organNewEnt=[]; + $rootScope.filterNewEnt={}; + $rootScope.organNewEnt.org = '0'; + $rootScope.filterNewEnt.period='month'; + $rootScope.splitUpCosts=[]; + }, + applyFilter : function(filterApp,period){ + if($rootScope.organObject) { + var obj = $rootScope.organObject, + or = $rootScope.organNewEnt.org, + bu = $rootScope.organNewEnt.buss, + pr = $rootScope.organNewEnt.proj; + if (period) + $rootScope.filterNewEnt.period = period; + if (or) { + $rootScope.filterNewEnt.org = {name: obj[or].name, id: obj[or].rowid, title: 'Org'}; + $rootScope.filterNewEnt.provider = ''; + } + if (filterApp) { + if (bu) { + $rootScope.filterNewEnt.buss = { + name: obj[or].businessGroups[bu].name, + id: obj[or].businessGroups[bu].rowid, + title: 'BU' + }; + } + if (pr) { + $rootScope.filterNewEnt.proj = { + name: obj[or].businessGroups[bu].projects[pr].name, + id: obj[or].businessGroups[bu].projects[pr].rowid, + title: 'Project' + }; + } + + if ($rootScope.organNewEnt.provider) { + $rootScope.filterNewEnt.provider = { + name: $rootScope.providers[$rootScope.organNewEnt.provider].providerName, + id: $rootScope.providers[$rootScope.organNewEnt.provider]._id, + title: 'Provider' + }; + } else { + $rootScope.filterNewEnt.provider = ''; + } + } else { + $rootScope.organNewEnt = {} + $rootScope.organNewEnt.org = or; + } + } + + } }; }]); })(angular); \ No newline at end of file diff --git a/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js b/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js index ec1226b8e..7dd71d673 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js @@ -3,10 +3,13 @@ angular.module('dashboard.analytics') .controller('costCtrl', ['$scope', '$rootScope', '$state','analyticsServices', 'genericServices', function ($scope,$rootScope,$state,analyticsServices,genSevs){ $rootScope.stateItems = $state.params; + //analyticsServices.initFilter(); // var treeNames = ['Analytics','Cost']; // $rootScope.$emit('treeNameUpdate', treeNames); + analyticsServices.initFilter(); var costObj =this; costObj.chartData=[]; + costObj.splitUp=null; costObj.pieChat={ option:{}, totalCoust:'', @@ -71,8 +74,9 @@ showControls: true, showValues: true, xAxis: { - axisLabel: 'label', - showMaxMin: false + axisLabel: '', + showMaxMin: false, + staggerLabels:false }, yAxis: { tickFormat: function (d) { @@ -123,6 +127,7 @@ $rootScope.splitUpCosts.push({id:key,val:a}); }); $scope.$emit('CHANGE_splitUp', $rootScope.splitUpCosts[0].id); + costObj.splitUp=0; costObj.createLable(result, $rootScope.splitUpCosts[0].id); } else { costObj.createLable(result,'provider'); @@ -137,7 +142,6 @@ {name: 'totalCost', field: 'cost.totalCost'} ]; costObj.pieChat.totalCoust = result.cost.totalCost; - costObj.serviceCosts = result.cost.AWS.serviceCosts; costObj.pieChat.data = []; costObj.barChat.data = []; // create bar @@ -149,50 +153,34 @@ value: value.cost.totalCost }); }); - - angular.forEach(result.cost.AWS.serviceCosts, function (valueChild, keyChild) { - var va = []; - costObj.costGridOptions.columnDefs.push({ - name: keyChild, - field: 'cost.AWS.serviceCosts.' + keyChild - }) - angular.forEach(result.splitUpCosts[viewType], function (valBar) { - va.push( - { - "label": valBar.name, - "value": valBar.cost.AWS.serviceCosts[keyChild] + if(result.cost && result.cost.AWS && result.cost.AWS.serviceCosts) { + costObj.serviceCosts = result.cost.AWS.serviceCosts; + angular.forEach(result.cost.AWS.serviceCosts, function (valueChild, keyChild) { + var va = []; + costObj.costGridOptions.columnDefs.push({ + name: keyChild, + field: 'cost.AWS.serviceCosts.' + keyChild + }) + angular.forEach(result.splitUpCosts[viewType], function (valBar) { + var chVal = ''; + if (valBar.cost.AWS.serviceCosts[keyChild]) { + chVal = valBar.cost.AWS.serviceCosts[keyChild]; + } else { + chVal = 0; } - ); - }); - costObj.barChat.data.push({ - "key": keyChild, - "values": va + va.push( + { + "label": valBar.name, + "value": chVal + } + ); + }); + costObj.barChat.data.push({ + "key": keyChild, + "values": va + }); }); - }); - // } else { - // costObj.costGridOptions.data = result.splitUpCosts.businessUnits; - // angular.forEach(result.splitUpCosts.businessUnits, function (value) { - // costObj.pieChat.data.push({ - // key: value.name, - // value: value.cost.totalCost - // }); - // }); - // angular.forEach(result.cost.AWS.serviceCosts,function(valueChild,keyChild){ - // var va=[]; - // costObj.costGridOptions.columnDefs.push({name: keyChild, field: 'cost.AWS.serviceCosts.'+keyChild}) - // angular.forEach(result.splitUpCosts.businessUnits, function (valBar) { - // va.push( - // { "label": valBar.name, - // "value": valBar.cost.AWS.serviceCosts[keyChild] - // } - // ); - // }); - // costObj.barChat.data.push({ - // "key": keyChild, - // "values": va - // }); - // }); - // } + } } }; costObj.trendsChart=function(fltObj){ @@ -252,6 +240,7 @@ } else { entityId=fltObj.org.id; } + //http://192.168.152.139:3001 param.url='/analytics/cost/trend?parentEntityId='+fltObj.org.id+'&entityId='+fltObj.org.id+'&toTimeStamp='+new Date()+'&period='+fltObj.period+'&interval=86400' } @@ -262,7 +251,13 @@ angular.forEach(result.cost.AWS.serviceCosts, function (valueChild, keyChild) { var va = []; angular.forEach(result.costTrends, function (value) { - va.push([value.fromTime,value.cost.AWS.serviceCosts[keyChild]]); + var chVal=''; + if(value.cost.AWS.serviceCosts[keyChild]){ + chVal=value.cost.AWS.serviceCosts[keyChild]; + } else { + chVal=0; + } + va.push([value.fromTime,chVal]); }); costObj.trendLineChart.data.push({ "key": keyChild, @@ -274,14 +269,19 @@ }; costObj.createChart(); $scope.$on('CHANGE_VIEW', function (event, data) { + costObj.splitUp=data.replace(/([A-Z])/g, ' $1').replace(/^./, function(str) { + return str.toUpperCase(); + }); costObj.createLable(costObj.chartData,data); }); - $rootScope.$watch('filterApply', function () { + $rootScope.applyFilter =function(filterApp,period){ + analyticsServices.applyFilter(filterApp,period); if($state.current.name === "dashboard.analytics.cost") { costObj.getCostData($rootScope.filterNewEnt); - costObj.trendsChart($rootScope.filterNewEnt); } - }); + }; + $rootScope.applyFilter(true,'month'); + costObj.trendsChart($rootScope.filterNewEnt); }]); })(angular); diff --git a/client/cat3/src/partials/sections/dashboard/analytics/controller/usageCtrl.js b/client/cat3/src/partials/sections/dashboard/analytics/controller/usageCtrl.js index 411bb996b..f740ee3d7 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/controller/usageCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/analytics/controller/usageCtrl.js @@ -63,29 +63,33 @@ $scope.gridApi = gridApi; } }; - - var param = { - url: 'src/partials/sections/dashboard/analytics/data/usage.json' - }; - genSevs.promiseGet(param).then(function (result) { - usage.trendLineChart.data = []; - usage.costGridOptions.columnDefs=[]; - angular.forEach(result,function (valu,keyChild) { - var va = []; - angular.forEach(valu.dataPoints, function (value) { - va.push([value.fromTime,value.average]); - }); - usage.trendLineChart.data.push({ - "key": keyChild, - "values": va - }); - }); - }); - }; - $rootScope.$watch('filterApply', function () { + usage.trendLineChart.data = []; + usage.costGridOptions.columnDefs = []; + var param = { + url: 'http://neocatalyst.rlcatalyst.com/analytics/trend/usage?resource=57da3fecbddbbdf876981be5&fromTimeStamp=2016-09-27T07:07:17&toTimeStamp=2016-09-28T07:07:17&interval=3600' + }; + genSevs.promiseGet(param).then(function (result) { + angular.forEach(result, function (valu, keyChild) { + var va = []; + angular.forEach(valu.dataPoints, function (value) { + va.push([Date.parse(value.fromTime), value.average]); + }); + usage.trendLineChart.data.push({ + "key": keyChild, + "values": va + }); + }); + }); + }; + $rootScope.applyFilter =function(filterApp,period){ + analyticsServices.applyFilter(filterApp,period); if($state.current.name === "dashboard.analytics.usage") { usage.trendsChart($rootScope.filterNewEnt); } - }); + }; + if($state.current.name === "dashboard.analytics.usage") { + usage.trendsChart($rootScope.filterNewEnt); + } + }]); })(angular); diff --git a/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html b/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html index 6091cc5ad..d433e5c11 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html +++ b/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html @@ -2,22 +2,29 @@
+
+
+
+

Total Cost ${{cost.pieChat.totalCoust}}

+

Services Cost + {{value}} : ${{key}} +

+
+
+
+
-

Aggregate cost

-
- Total Cost - ${{cost.pieChat.totalCoust}} -
+
+

Aggregate cost

-

Distribution of all services across BU's

-
Total - {{value}} - ${{key}} -
+

Distribution of all services across {{cost.splitUp}}

+
From d29a140098f90ee0119c70d37e8fa29195c2e9eb Mon Sep 17 00:00:00 2001 From: hrushikesh07 Date: Wed, 28 Sep 2016 18:01:36 +0530 Subject: [PATCH 2/3] Changed done for split up --- .../sections/dashboard/analytics/controller/costCtrl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js b/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js index 7dd71d673..4a31b6da5 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/analytics/controller/costCtrl.js @@ -127,7 +127,7 @@ $rootScope.splitUpCosts.push({id:key,val:a}); }); $scope.$emit('CHANGE_splitUp', $rootScope.splitUpCosts[0].id); - costObj.splitUp=0; + costObj.splitUp= $rootScope.splitUpCosts[0].val; costObj.createLable(result, $rootScope.splitUpCosts[0].id); } else { costObj.createLable(result,'provider'); From 6ce34da74ed366939cb35952edcfedfb864a61a2 Mon Sep 17 00:00:00 2001 From: hrushikesh07 Date: Wed, 28 Sep 2016 18:04:26 +0530 Subject: [PATCH 3/3] Changed done for split up --- .../src/partials/sections/dashboard/analytics/view/cost.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html b/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html index d433e5c11..00b70c483 100644 --- a/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html +++ b/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html @@ -31,7 +31,7 @@

Aggregate cost

-

Daily trends of cost across organization

+

Monthly trends of cost across organization

Total Cost - ${{cost.trendLineChart.totalCost}}