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..4a31b6da5 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= $rootScope.splitUpCosts[0].val;
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..00b70c483 100644
--- a/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html
+++ b/client/cat3/src/partials/sections/dashboard/analytics/view/cost.html
@@ -2,29 +2,36 @@