From 243bf9acecdbb0460e5413545ada3d6a4562e649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Tr=C4=99bski?= Date: Tue, 6 Oct 2015 07:14:09 +0200 Subject: [PATCH] Allow to specify different static url in js - passing static_url into js - using it to specify icon URL Change-Id: I9253205664f8b3b29f4f1aeec59654116c579d07 --- .../overview/templates/overview/monitor.html | 5 +- .../static/monitoring/js/controllers.js | 85 +++++++++++-------- 2 files changed, 52 insertions(+), 38 deletions(-) diff --git a/monitoring/overview/templates/overview/monitor.html b/monitoring/overview/templates/overview/monitor.html index 205e60ed..8fdf4fb4 100644 --- a/monitoring/overview/templates/overview/monitor.html +++ b/monitoring/overview/templates/overview/monitor.html @@ -1,3 +1,5 @@ +{% load static %} +
-
+
{$ group.name $} diff --git a/monitoring/static/monitoring/js/controllers.js b/monitoring/static/monitoring/js/controllers.js index e3382a1b..47a8d6d9 100644 --- a/monitoring/static/monitoring/js/controllers.js +++ b/monitoring/static/monitoring/js/controllers.js @@ -1,5 +1,12 @@ 'use strict'; angular.module('monitoring.controllers', []) + .constant('CHICKLET_TO_ICON', { + 'chicklet-error': '/monitoring/img/critical-icon.png', + 'chicklet-warning': '/monitoring/img/warning-icon.png', + 'chicklet-unknown': '/monitoring/img/unknown-icon.png', + 'chicklet-success': '/monitoring/img/ok-icon.png', + 'chicklet-notfound': '/monitoring/img/notfound-icon.png' + }) .controller('timestampPickerController', function($scope, $window, $location){ var offset = getTimezoneOffset(), queryParams = urlParams() @@ -81,39 +88,57 @@ angular.module('monitoring.controllers', []) } }) - .controller('monitoringController', function ($scope, $http, $timeout, $location) { - $scope.fetchStatus = function() { + .controller('monitoringController', function ($scope, $http, $timeout, + $location, CHICKLET_TO_ICON) { + var base_url; + + $scope.fetchStatus = function(statics_url) { + if(statics_url && !base_url){ + base_url = statics_url; + } + $http({method: 'GET', url: $location.absUrl().concat('status')}). success(function(data, status, headers, config) { // this callback will be called asynchronously // when the response is available var i; for (i=0; i < data.series.length; i++) { - var group = data.series[i] + var group = data.series[i]; for (var j in group.services) { - var service = group.services[j] - service['icon'] = getIcon(service['class']) + var service = group.services[j]; + service.icon = getIcon(service.class); } } - $scope._serviceModel = data.series + $scope._serviceModel = data.series; }). error(function(data, status, headers, config) { $scope.stop(); }); + + }; + + function getIcon(status) { + var url_suffix = CHICKLET_TO_ICON[status]; + if(url_suffix){ + return base_url + url_suffix; + } + return undefined; } + $scope.onTimeout = function(){ mytimeout = $timeout($scope.onTimeout,10000); - $scope.fetchStatus() - } + $scope.fetchStatus(); + }; var mytimeout = $timeout($scope.onTimeout,10000); $scope.stop = function(){ $timeout.cancel(mytimeout); - } + }; + }) .controller('alarmEditController', function ($scope, $http, $timeout, $q) { $scope.metrics = metricsList; - $scope.metricNames = uniqueNames(metricsList, 'name') + $scope.metricNames = uniqueNames(metricsList, 'name'); $scope.currentMetric = $scope.metricNames[0]; $scope.currentFunction = "max"; $scope.currentComparator = ">"; @@ -198,7 +223,19 @@ angular.module('monitoring.controllers', []) $scope.defaultTag = defaultTag; $scope.saveDimension(); } - }) + + function uniqueNames(input, key) { + var unique = {}; + var uniqueList = []; + for(var i = 0; i < input.length; i++){ + if(typeof unique[input[i][key]] == "undefined"){ + unique[input[i][key]] = ""; + uniqueList.push(input[i][key]); + } + } + return uniqueList.sort(); + } + }); angular.module('monitoring.filters', []) .filter('spacedim', function () { @@ -208,29 +245,3 @@ angular.module('monitoring.filters', []) return JSON.stringify(text).split(',').join(', '); } }) - - -function uniqueNames(input, key) { - var unique = {}; - var uniqueList = []; - for(var i = 0; i < input.length; i++){ - if(typeof unique[input[i][key]] == "undefined"){ - unique[input[i][key]] = ""; - uniqueList.push(input[i][key]); - } - } - return uniqueList.sort(); -} - -function getIcon(status) { - if (status === 'chicklet-error') - return '/static/monitoring/img/critical-icon.png' - else if (status === 'chicklet-warning') - return '/static/monitoring/img/warning-icon.png' - else if (status === 'chicklet-unknown') - return '/static/monitoring/img/unknown-icon.png' - else if (status === 'chicklet-success') - return '/static/monitoring/img/ok-icon.png' - else if (status === 'chicklet-notfound') - return '/static/monitoring/img/notfound-icon.png' -}