diff --git a/web/assets/js/attendance.js b/web/assets/js/attendance.js index aab554243eafb1bcff7b490d8da1cc4468e07564..1d019abac7a6d3724ba536c70b040e13352d9de8 100644 --- a/web/assets/js/attendance.js +++ b/web/assets/js/attendance.js @@ -82,7 +82,7 @@ angular.module('datasid.attendance', []). }). state('attendance.telecentrosbr.network_usage-telecenter', { - url: '/network_usage/:region/:state/:city/:id_telecenter', + url: '/network_usage/:region/:state/:city/:id_point', controller: 'NetworkUsageTelecenterCtrl', templateUrl: 'partials/attendance.network_usage.telecenter.html', section: 'attendance' @@ -91,7 +91,7 @@ angular.module('datasid.attendance', []). }). factory('AvailFactory', function($resource) { - return $resource('/api/tlbr/:type/:region/:state/:city/:id_telecenter'); + return $resource('/api/tlbr/:type/:region/:state/:city/:id_point'); }). controller('AttendanceCtrl', function ($scope, $rootScope) { @@ -105,7 +105,7 @@ angular.module('datasid.attendance', []). config.plotOptions.series.events = { click: function(event) { $scope.$apply(function () { - $location.path($location.path() + '/' + event.point.category); + $location.path($location.path() + '/' + event.point.category[0]); }); } }; @@ -119,7 +119,7 @@ angular.module('datasid.attendance', []). region: $state.params.region || null, state: $state.params.state || null, city: $state.params.city || null, - id_telecenter: $state.params.id_telecenter || null + id_point: $state.params.id_point || null }; if (typeof $state.params.city !== 'undefined') @@ -153,7 +153,7 @@ angular.module('datasid.attendance', []). for (var i=0; i<data.length; i++) { var d = data[i]; - categories.push(d.cat); + categories.push([d.id, d.cat]); green.push(parseInt(d.green)); yellow.push(parseInt(d.yellow)); red.push(parseInt(d.red)); @@ -185,7 +185,7 @@ angular.module('datasid.attendance', []). region: $state.params.region || null, state: $state.params.state || null, city: $state.params.city || null, - id_telecenter: $state.params.id_telecenter || null + id_point: $state.params.id_point || null }; AvailFactory.query(options, function (data) { @@ -213,7 +213,7 @@ angular.module('datasid.attendance', []). region: $state.params.region || null, state: $state.params.state || null, city: $state.params.city || null, - id_telecenter: $state.params.id_telecenter || null + id_point: $state.params.id_point || null }; AvailFactory.query(options, function (data) { @@ -241,7 +241,7 @@ angular.module('datasid.attendance', []). /* NETWORK USAGE */ factory('NetworkUsageFactory', function($resource) { - return $resource('/api/tlbr/:type/:region/:state/:city/:id_telecenter'); + return $resource('/api/tlbr/:type/:region/:state/:city/:id_point'); }). controller('NetworkUsageCtrl', function ($scope, $rootScope, $state, $location, NetworkUsageFactory) { @@ -254,7 +254,7 @@ angular.module('datasid.attendance', []). {name: 'Upload'} ]; config.tooltip.formatter = function() { - var s = '<b>'+ this.x +'</b>'; + var s = '<b>'+ this.x[1] +'</b>'; for (var i = 0; i < this.points.length; i++) { var point = this.points[i]; @@ -267,7 +267,7 @@ angular.module('datasid.attendance', []). config.plotOptions.series.events = { click: function(event) { $scope.$apply(function () { - $location.path($location.path() + '/' + event.point.category); + $location.path($location.path() + '/' + event.point.category[0]); }); } }; @@ -281,7 +281,7 @@ angular.module('datasid.attendance', []). region: $state.params.region || null, state: $state.params.state || null, city: $state.params.city || null, - id_telecenter: $state.params.id_telecenter || null + id_point: $state.params.id_point || null }; if (typeof $state.params.city !== 'undefined') @@ -314,7 +314,7 @@ angular.module('datasid.attendance', []). for (var i=0; i<data.length; i++) { var d = data[i]; - categories.push(d.cat); + categories.push([d.id, d.cat]); down.push(parseInt(d.down)); up.push(parseInt(d.up)); } diff --git a/web/queries/tlbr/avail/current.sql b/web/queries/tlbr/avail/current.sql index 450ab799fddd1ba170d711a40742e35e80b51c59..bd232964b317a6a460d4b0f788da9da9c75e4550 100644 --- a/web/queries/tlbr/avail/current.sql +++ b/web/queries/tlbr/avail/current.sql @@ -1,11 +1,11 @@ SELECT - SUM(is_green) AS green, - SUM(is_yellow) AS yellow, - SUM(is_red) AS red + SUM(a.is_green) AS green, + SUM(a.is_yellow) AS yellow, + SUM(a.is_red) AS red FROM - aggr_availability + aggr_availability a JOIN point p ON a.id_point = p.id WHERE base_date = (SELECT max(base_date) FROM aggr_availability) AND - ($1::text IS NULL OR region = $1::text) AND - ($2::text IS NULL OR state = $2::text) AND - ($3::text IS NULL OR city = $3::text); \ No newline at end of file + ($1::text IS NULL OR a.region = $1::text) AND + ($2::text IS NULL OR a.state = $2::text) AND + ($3::bigint IS NULL OR p.id_city = $3::bigint) \ No newline at end of file diff --git a/web/queries/tlbr/avail/hist.sql b/web/queries/tlbr/avail/hist.sql index 373d24bd7fae4b1d9a20f9e57f024640a89424c8..64385cce32d0839f3ce4400ec82851892b76b657 100644 --- a/web/queries/tlbr/avail/hist.sql +++ b/web/queries/tlbr/avail/hist.sql @@ -4,12 +4,12 @@ SELECT SUM(is_yellow) AS yellow, SUM(is_red) AS red FROM - aggr_availability + aggr_availability a JOIN point p ON a.id_point = p.id WHERE base_date = (SELECT max(base_date) FROM aggr_availability) AND ($1::text IS NULL OR region = $1::text) AND ($2::text IS NULL OR state = $2::text) AND - ($3::text IS NULL OR city = $3::text) + ($3::bigint IS NULL OR p.id_city = $3::bigint) GROUP BY base_date ORDER BY diff --git a/web/queries/tlbr/avail/sub_cities.sql b/web/queries/tlbr/avail/sub_cities.sql index c88677d816a93eea8e3b18b64743b8904412b39b..5728d2eaa0038e9ad8c22a281bde9b0f6393fd00 100644 --- a/web/queries/tlbr/avail/sub_cities.sql +++ b/web/queries/tlbr/avail/sub_cities.sql @@ -1,13 +1,14 @@ SELECT - city AS cat, - SUM(is_green) AS green, - SUM(is_yellow) AS yellow, - SUM(is_red) AS red + p.id_city AS id, + INITCAP(a.city) AS cat, + SUM(a.is_green) AS green, + SUM(a.is_yellow) AS yellow, + SUM(a.is_red) AS red FROM - aggr_availability + aggr_availability a JOIN point p ON a.id_point = p.id WHERE base_date = (SELECT max(base_date) FROM aggr_availability) AND ($1::text IS NULL OR region = $1::text) AND ($2::text IS NULL OR state = $2::text) GROUP BY - city; + p.id_city, a.city; diff --git a/web/queries/tlbr/avail/sub_regions.sql b/web/queries/tlbr/avail/sub_regions.sql index 05ee84f309096ba188c8a5ff53402928cd6e35c6..d9c37063d5def1df9ad960166ee01d5031d229a4 100644 --- a/web/queries/tlbr/avail/sub_regions.sql +++ b/web/queries/tlbr/avail/sub_regions.sql @@ -1,5 +1,6 @@ SELECT - region AS cat, + UPPER(region) AS id, + INITCAP(region) AS cat, SUM(is_green) AS green, SUM(is_yellow) AS yellow, SUM(is_red) AS red diff --git a/web/queries/tlbr/avail/sub_states.sql b/web/queries/tlbr/avail/sub_states.sql index 2bdb21551f24e1f3c55f0ff31748330bde689548..f3f7d66dbde8d0a9a798bd33c64c96bbe49fe99e 100644 --- a/web/queries/tlbr/avail/sub_states.sql +++ b/web/queries/tlbr/avail/sub_states.sql @@ -1,5 +1,6 @@ SELECT - state AS cat, + UPPER(state) AS id, + UPPER(state) AS cat, SUM(is_green) AS green, SUM(is_yellow) AS yellow, SUM(is_red) AS red diff --git a/web/queries/tlbr/avail/sub_telecenters.sql b/web/queries/tlbr/avail/sub_telecenters.sql index a4d2c748b6a3be9b22f247654c608995774b9d12..682783e020a3419c28173a527bf89d1c403300f7 100644 --- a/web/queries/tlbr/avail/sub_telecenters.sql +++ b/web/queries/tlbr/avail/sub_telecenters.sql @@ -1,14 +1,15 @@ SELECT - tc_name AS cat, - SUM(is_green) AS green, - SUM(is_yellow) AS yellow, - SUM(is_red) AS red + p.id AS id, + a.tc_name AS cat, + SUM(a.is_green) AS green, + SUM(a.is_yellow) AS yellow, + SUM(a.is_red) AS red FROM - aggr_availability + aggr_availability a JOIN point p ON a.id_point = p.id WHERE base_date = (SELECT max(base_date) FROM aggr_availability) AND - ($1::text IS NULL OR region = $1::text) AND - ($2::text IS NULL OR state = $2::text) AND - ($3::text IS NULL OR city = $3::text) + ($1::text IS NULL OR a.region = $1::text) AND + ($2::text IS NULL OR a.state = $2::text) AND + ($3::bigint IS NULL OR p.id_city = $3::bigint) GROUP BY - tc_name; + p.id, tc_name; \ No newline at end of file diff --git a/web/queries/tlbr/net_usage/sub_cities.sql b/web/queries/tlbr/net_usage/sub_cities.sql index e51dbf3a8a743301afd9acf39fe81c5c638cf985..4d4f5d9d70b94c65b8c736dd94ee6d65f801c282 100644 --- a/web/queries/tlbr/net_usage/sub_cities.sql +++ b/web/queries/tlbr/net_usage/sub_cities.sql @@ -1,5 +1,6 @@ SELECT - city AS cat + id_city AS id + , INITCAP(city) AS cat , AVG(bytes_five_min_to_kbits_sec(down)) AS down , AVG(bytes_five_min_to_kbits_sec(up)) AS up FROM diff --git a/web/queries/tlbr/net_usage/sub_regions.sql b/web/queries/tlbr/net_usage/sub_regions.sql index 6b9d8ffec74811082a1c7b7ccfe234d5e27f87fb..06de16f85b2255b18efb8d17479211e6c2cfbd2c 100644 --- a/web/queries/tlbr/net_usage/sub_regions.sql +++ b/web/queries/tlbr/net_usage/sub_regions.sql @@ -1,6 +1,7 @@ -- Compute the peak for every telecenter and than the average for each region SELECT - f.region AS cat + UPPER(f.region) AS id + , INITCAP(f.region) AS cat , AVG(bytes_five_min_to_kbits_sec(f.down)) AS down , AVG(bytes_five_min_to_kbits_sec(f.up)) AS up FROM diff --git a/web/queries/tlbr/net_usage/sub_states.sql b/web/queries/tlbr/net_usage/sub_states.sql index 039832805202baf915ff1080a1bb73cf763b012b..092fd5118c902d54ff4e0566dff4541b6ffb8a39 100644 --- a/web/queries/tlbr/net_usage/sub_states.sql +++ b/web/queries/tlbr/net_usage/sub_states.sql @@ -1,6 +1,7 @@ -- Compute the peak for every telecenter and than the average for each state SELECT - state AS cat + UPPER(state) AS id + , UPPER(state) AS cat , AVG(bytes_five_min_to_kbits_sec(down)) AS down , AVG(bytes_five_min_to_kbits_sec(up)) AS up FROM diff --git a/web/queries/tlbr/net_usage/sub_telecenters.sql b/web/queries/tlbr/net_usage/sub_telecenters.sql index 675ef4f08c744fccb1964d589fa8f14157cc4102..411d56e3a780075ab919d20c5b5dc1e6d69b3f7a 100644 --- a/web/queries/tlbr/net_usage/sub_telecenters.sql +++ b/web/queries/tlbr/net_usage/sub_telecenters.sql @@ -1,12 +1,13 @@ SELECT - telecenter AS cat + id_point AS id + , telecenter AS cat , id_point , MAX(bytes_five_min_to_kbits_sec(down_kbits)) AS down , MAX(bytes_five_min_to_kbits_sec(up_kbits)) AS up FROM fact_net_usage_telecenter WHERE - city = $1::text + id_city = $1::bigint GROUP BY id_point , telecenter diff --git a/web/queries/tlbr/net_usage/telecenter.sql b/web/queries/tlbr/net_usage/telecenter.sql index e42b2187b60f7e93f367810cf0117ca391edf400..ebd8a0293b35d89f837de557dfff5a80cc324777 100644 --- a/web/queries/tlbr/net_usage/telecenter.sql +++ b/web/queries/tlbr/net_usage/telecenter.sql @@ -1,13 +1,12 @@ SELECT - telecenter AS cat - , bytes_five_min_to_kbits_sec(down_kbits) AS down - , bytes_five_min_to_kbits_sec(up_kbits) AS up - , collect_date + collect_time AS timestamp + bytes_five_min_to_kbits_sec(down_kbits)::real AS down + , bytes_five_min_to_kbits_sec(up_kbits)::real AS up + , EXTRACT('epoch' FROM collect_date + collect_time) AS timestamp FROM fact_net_usage_telecenter WHERE id_point = $1::integer ORDER BY - id_date + collect_date , collect_time ; diff --git a/web/routes/charts.js b/web/routes/charts.js index a230980e11cd6fe9327d214876b22e788e43f62b..1c22f2254f30997bc2160e40d03e969359a5e339 100644 --- a/web/routes/charts.js +++ b/web/routes/charts.js @@ -13,7 +13,7 @@ exports.get_data = function(req, res) { /* Availability */ { type: 'avail_current', file: 'queries/tlbr/avail/current.sql' - , params: [ req.params.region, req.params.state, req.params.city ] + , params: [ req.params.region, req.params.state, req.params.id_city ] }, { type: 'avail_sub_regions' , file: 'queries/tlbr/avail/sub_regions.sql' @@ -29,11 +29,11 @@ exports.get_data = function(req, res) { }, { type: 'avail_sub_telecenters', file: 'queries/tlbr/avail/sub_telecenters.sql' - , params: [ req.params.region, req.params.state, req.params.city ] + , params: [ req.params.region, req.params.state, req.params.id_city ] }, { type: 'avail_hist', file: 'queries/tlbr/avail/hist.sql' - , params: [ req.params.region, req.params.state, req.params.city ] + , params: [ req.params.region, req.params.state, req.params.id_city ] }, /* Net Usage */ @@ -51,11 +51,11 @@ exports.get_data = function(req, res) { }, { type: 'net_usage_sub_telecenters', file: 'queries/tlbr/net_usage/sub_telecenters.sql' - , params: [ req.params.city ] + , params: [ req.params.id_city ] }, { type: 'net_usage_telecenter', file: 'queries/tlbr/net_usage/telecenter.sql' - , params: [ req.params.id_telecenter ] + , params: [ req.params.id_point ] } ] }; diff --git a/web/server.js b/web/server.js index 635945cdfecb00881051e680327ec73f363bb055..989e4955dabae3096a00b15b2621eb2f42c91fe7 100755 --- a/web/server.js +++ b/web/server.js @@ -25,6 +25,7 @@ app.all('/api/telecenters/:state?/:city_id?/:telecenter_id?', db.connect, telece app.get('/api/:project/:type', db.connect, charts.get_data); app.get('/api/:project/:type/:region', db.connect, charts.get_data); app.get('/api/:project/:type/:region/:state', db.connect, charts.get_data); -app.get('/api/:project/:type/:region/:state/:city', db.connect, charts.get_data); +app.get('/api/:project/:type/:region/:state/:id_city', db.connect, charts.get_data); +app.get('/api/:project/:type/:region/:state/:id_city/:id_point', db.connect, charts.get_data); app.listen(port);