diff --git a/Proyecto/Proyecto-BackEnd/app/Global.java b/Proyecto/Proyecto-BackEnd/app/Global.java index 71f4cf9..a1835b5 100644 --- a/Proyecto/Proyecto-BackEnd/app/Global.java +++ b/Proyecto/Proyecto-BackEnd/app/Global.java @@ -194,6 +194,8 @@ public void onStart( Application app ) area12.save( ); } + System.out.println( "Size: " + Microcontrolador.find.all( ).size( ) ); + if( Microcontrolador.find.all( ).isEmpty( ) ) { Area a1 = new Area( ); @@ -251,6 +253,8 @@ public void onStart( Application app ) m9.save( ); } + System.out.println( "Size: " + Microcontrolador.find.all( ) ); + if( VariableAmbiental.find.all( ).isEmpty( ) ) { VariableAmbiental v1 = new VariableAmbiental( ); diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/ActuadorController.java b/Proyecto/Proyecto-BackEnd/app/controllers/ActuadorController.java index a7cc8b6..68d6b16 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/ActuadorController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/ActuadorController.java @@ -34,7 +34,7 @@ public Result create( Long idArea ) public Result retrieveAll( Long idArea ) { - List actuador = Actuador.find.where( ).eq( "idArea", idArea ).findList( ); + List actuador = Actuador.find.where( ).eq( "area.id", idArea ).findList( ); return ok( Json.toJson( actuador ) ); } diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/AlertaController.java b/Proyecto/Proyecto-BackEnd/app/controllers/AlertaController.java index 7adb712..49bfecd 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/AlertaController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/AlertaController.java @@ -32,7 +32,7 @@ public Result create( Long idArea ) @RolesAllowed( { Roles.ADMIN, Roles.SUPERVISOR } ) public Result retrieveAll( Long idArea ) { - List alerta = Alerta.find.where( ).eq( "idArea", idArea ).findList( ); + List alerta = Alerta.find.where( ).eq( "area.id", idArea ).findList( ); return ok( Json.toJson( alerta ) ); } diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/AreaController.java b/Proyecto/Proyecto-BackEnd/app/controllers/AreaController.java index a3a7f8f..ca3c532 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/AreaController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/AreaController.java @@ -33,7 +33,7 @@ public Result create( Long idNivel ) @RolesAllowed( { Roles.ADMIN, Roles.SUPERVISOR } ) public play.mvc.Result retrieveAll( Long idNivel ) { - List area = Area.find.where( ).eq( "idNivel", idNivel ).findList( ); + List area = Area.find.where( ).eq( "nivel.id", idNivel ).findList( ); return ok( Json.toJson( area ) ); } diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/DatoController.java b/Proyecto/Proyecto-BackEnd/app/controllers/DatoController.java index e0866df..642687a 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/DatoController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/DatoController.java @@ -32,7 +32,7 @@ public Result create( Long idSensor ) @RolesAllowed( { Roles.ADMIN, Roles.SUPERVISOR } ) public Result retrieveAll( Long idSensor ) { - List dato = Dato.find.where( ).eq( "idSensor", idSensor ).findList( ); + List dato = Dato.find.where( ).eq( "sensor.id", idSensor ).findList( ); return ok( Json.toJson( dato ) ); } diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/MicrocontroladorController.java b/Proyecto/Proyecto-BackEnd/app/controllers/MicrocontroladorController.java index 8d03c35..a386a75 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/MicrocontroladorController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/MicrocontroladorController.java @@ -32,7 +32,7 @@ public Result create( Long idArea ) @RolesAllowed( { Roles.ADMIN, Roles.SUPERVISOR } ) public Result retrieveAll( Long idArea ) { - List microcontrolador = Microcontrolador.find.where( ).eq( "idArea", idArea ).findList( ); + List microcontrolador = Microcontrolador.find.where( ).eq( "area.id", idArea ).findList( ); return ok( Json.toJson( microcontrolador ) ); } @@ -61,4 +61,10 @@ public Result delete( Long id ) microcontrolador.delete( ); return ok( play.libs.Json.toJson( microcontrolador ) ); } + + public Result getAll( ) + { + List microcontrolador = Microcontrolador.find.all( ); + return ok( Json.toJson( microcontrolador ) ); + } } diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/ReporteController.java b/Proyecto/Proyecto-BackEnd/app/controllers/ReporteController.java index e5f8b54..4c4110b 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/ReporteController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/ReporteController.java @@ -33,7 +33,7 @@ public Result create( Long idNivel ) @RolesAllowed( { Roles.ADMIN, Roles.SUPERVISOR } ) public Result retrieveAll( Long idNivel ) { - List reporte = Reporte.find.where( ).eq( "idNivel", idNivel ).findList( ); + List reporte = Reporte.find.where( ).eq( "nivel.id", idNivel ).findList( ); return ok( Json.toJson( reporte ) ); } diff --git a/Proyecto/Proyecto-BackEnd/app/controllers/SensorController.java b/Proyecto/Proyecto-BackEnd/app/controllers/SensorController.java index 3f7218b..7a1a9ea 100644 --- a/Proyecto/Proyecto-BackEnd/app/controllers/SensorController.java +++ b/Proyecto/Proyecto-BackEnd/app/controllers/SensorController.java @@ -32,7 +32,7 @@ public Result create( Long idMicrocontrolador ) @RolesAllowed( { Roles.ADMIN, Roles.SUPERVISOR } ) public Result retrieveAll( Long idMicrocontrolador ) { - List sensor = Sensor.find.where( ).eq( "idMicrocontrolador", idMicrocontrolador ).findList( ); + List sensor = Sensor.find.where( ).eq( "microcontrolador.id", idMicrocontrolador ).findList( ); return ok( Json.toJson( sensor ) ); } diff --git a/Proyecto/Proyecto-BackEnd/app/models/main/Area.java b/Proyecto/Proyecto-BackEnd/app/models/main/Area.java index 04afcc9..04a71b5 100644 --- a/Proyecto/Proyecto-BackEnd/app/models/main/Area.java +++ b/Proyecto/Proyecto-BackEnd/app/models/main/Area.java @@ -77,12 +77,12 @@ public void setAlertas( List alertas ) this.alertas = alertas; } - public List getMicrocontroladores( ) + public java.util.List getMicrocontroladores( ) { return microcontroladores; } - public void setMicrocontroladores( List microcontroladores ) + public void setMicrocontroladores( java.util.List microcontroladores ) { this.microcontroladores = microcontroladores; } @@ -102,7 +102,33 @@ public static Area bind( JsonNode json ) Area area = new Area( ); area.setId( json.findPath( "id" ).asLong( ) ); area.setTipo( json.findPath( "tipo" ).asInt( ) ); - //TODO Lists + area.setMicrocontroladores( new java.util.LinkedList<>( ) ); + area.setAlertas( new java.util.LinkedList<>( ) ); + area.setActuadores( new java.util.LinkedList<>( ) ); + + for( JsonNode j : json.findPath( "microcontroladores" ) ) + { + Long id = j.findPath( "id" ).asLong( ); + Microcontrolador mc = new Microcontrolador( ); + mc.setId( id ); + area.microcontroladores.add( mc ); + } + + for( JsonNode j : json.findPath( "alertas" ) ) + { + Long id = j.findPath( "id" ).asLong( ); + Alerta alerta = new Alerta( ); + alerta.setId( id ); + area.alertas.add( alerta ); + } + + for( JsonNode j : json.findPath( "actuadores" ) ) + { + Long id = j.findPath( "id" ).asLong( ); + models.main.Actuador actuador = new models.main.Actuador( ); + actuador.setId( id ); + area.actuadores.add( actuador ); + } return area; } } diff --git a/Proyecto/Proyecto-BackEnd/app/models/main/Dato.java b/Proyecto/Proyecto-BackEnd/app/models/main/Dato.java index a1cb58e..f6ea5fd 100644 --- a/Proyecto/Proyecto-BackEnd/app/models/main/Dato.java +++ b/Proyecto/Proyecto-BackEnd/app/models/main/Dato.java @@ -24,6 +24,7 @@ public class Dato extends Model private Date timeStamp; + @com.fasterxml.jackson.annotation.JsonIgnore @javax.persistence.ManyToOne private Sensor sensor; diff --git a/Proyecto/Proyecto-BackEnd/app/models/main/Microcontrolador.java b/Proyecto/Proyecto-BackEnd/app/models/main/Microcontrolador.java index b35bfcc..f9bf89f 100644 --- a/Proyecto/Proyecto-BackEnd/app/models/main/Microcontrolador.java +++ b/Proyecto/Proyecto-BackEnd/app/models/main/Microcontrolador.java @@ -21,7 +21,9 @@ public class Microcontrolador extends Model @javax.persistence.OneToMany( mappedBy = "microcontrolador" ) private List sensores; + @com.fasterxml.jackson.annotation.JsonIgnore @javax.persistence.ManyToOne + @javax.persistence.Column( nullable = false ) private Area area; public Microcontrolador( ) @@ -53,7 +55,7 @@ public Area getArea( ) return area; } - public void setArea( Area idArea ) + public void setArea( Area area ) { this.area = area; } diff --git a/Proyecto/Proyecto-BackEnd/app/models/main/Sensor.java b/Proyecto/Proyecto-BackEnd/app/models/main/Sensor.java index 46d12be..d77ddf4 100644 --- a/Proyecto/Proyecto-BackEnd/app/models/main/Sensor.java +++ b/Proyecto/Proyecto-BackEnd/app/models/main/Sensor.java @@ -28,6 +28,7 @@ public class Sensor extends Model @javax.persistence.OneToMany( mappedBy = "sensor" ) private List datos; + @com.fasterxml.jackson.annotation.JsonIgnore @javax.persistence.ManyToOne private models.main.Microcontrolador microcontrolador; diff --git a/Proyecto/Proyecto-BackEnd/app/models/main/VariableAmbiental.java b/Proyecto/Proyecto-BackEnd/app/models/main/VariableAmbiental.java index 1659782..68acefb 100644 --- a/Proyecto/Proyecto-BackEnd/app/models/main/VariableAmbiental.java +++ b/Proyecto/Proyecto-BackEnd/app/models/main/VariableAmbiental.java @@ -31,6 +31,7 @@ public class VariableAmbiental extends Model private String nombre; + @com.fasterxml.jackson.annotation.JsonIgnore @javax.persistence.OneToMany( mappedBy = "tipo" ) private java.util.List sensores; diff --git a/Proyecto/Proyecto-BackEnd/conf/routes b/Proyecto/Proyecto-BackEnd/conf/routes index b38df5c..61a0a1a 100644 --- a/Proyecto/Proyecto-BackEnd/conf/routes +++ b/Proyecto/Proyecto-BackEnd/conf/routes @@ -79,3 +79,6 @@ DELETE /variablesAmbientales/:idVariable controller # OPTIONS # OPTIONS /*any controllers.Application.options(any: String) + + +GET /microcontroladores controllers.MicrocontroladorController.getAll() diff --git a/Proyecto/Proyecto-FrontEnd/app/src/app.js b/Proyecto/Proyecto-FrontEnd/app/src/app.js index 996308e..da81248 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/app.js +++ b/Proyecto/Proyecto-FrontEnd/app/src/app.js @@ -3,6 +3,8 @@ 'ui.router', 'ngCookies', + 'microcontroladorModule', + 'areaModule', 'variablesModule', 'rolesModule', 'nivelesModule', @@ -31,6 +33,8 @@ '/menu/roles$': [ 'ADMIN', 'SYSO' ], '/menu/variables$': [ 'ADMIN', 'SYSO' ], '/menu/niveles/[0-9]+$': [ 'ADMIN', 'SYSO' ], + '/menu/areas/[0-9]+$': [ 'ADMIN', 'SYSO' ], + '/menu/microcontroladores/[0-9]+$': [ 'ADMIN', 'SYSO' ], }, verifyRol: function ( user ) { let self = this; diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.ctrl.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.ctrl.js new file mode 100644 index 0000000..511005c --- /dev/null +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.ctrl.js @@ -0,0 +1,107 @@ +(function ( ng ) { + let mod = ng.module( 'areaModule' ); + + mod.controller( 'areasCtrl', [ '$scope', '$stateParams', 'AuthService', 'SessionService', '$http', 'urlBack', '$state', + function ( $scope, $stateParams, AuthService, SessionService, $http, urlBack, $state ) { + AuthService.checkUser( $scope.$parent.user ) + .then( function ( response ) { + $http( { + method: 'GET', + url: urlBack + '/areas/' + $stateParams.idArea, + headers: { + 'user': SessionService.user.login, + 'token': SessionService.user.token + } + } ) + .then( function ( response ) { + $scope.area = response.data; + $scope.microcontroladores = $scope.area.microcontroladores; + + const maxInRow = 10; + let row = -1; + let temp = []; + $scope.microcontroladores.forEach( function ( item, index ) { + if ( index % maxInRow === 0 ) { + row++; + } + let nuevo = { + id: item.id, + sensores: item.sensores, + x: row, + y: index % maxInRow, + value: 10, //TODO + 'hc-a2': 'MicronControlador ' + item.id + }; + temp.push( nuevo ); + } ); + + $scope.microcontroladores = temp; + let info = { + chart: { + type: 'tilemap', + inverted: true, + // height: '50%', + }, + title: { + text: 'Niveles Del Sistema' + }, + xAxis: { + visible: false + }, + yAxis: { + visible: false + }, + colorAxis: { + dataClasses: [ { + from: 0, + to: 50, + color: '#F9EDB3', + name: '< 50' + }, { + from: 51, + to: 100, + color: '#FFC428', + name: '50 - 100' + }, { + from: 101, + color: '#FF7987', + name: '> 100' + } ] + }, + tooltip: { + headerFormat: '', + pointFormat: 'The population of {point.name} is {point.value}' + }, + plotOptions: { + series: { + dataLabels: { + enabled: true, + format: '{point.hc-a2}', + color: '#000000', + style: { + textOutline: false + } + }, + point: { + events: { + click: function () { + $scope.seeMC( this.id ); + } + } + } + } + }, + series: [ { + name: '', + data: $scope.microcontroladores + } ] + }; + Highcharts.chart( 'containerMicrocontrolador', info ); + } ); + } ); + $scope.seeMC = function ( id ) { + $state.go( 'microcontroladoresDetail', { idMicrocontrolador: id } ); + }; + } + ] ); +})( angular ); diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.html b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.html new file mode 100644 index 0000000..2814284 --- /dev/null +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.html @@ -0,0 +1,7 @@ +

{{'Area '+area.id}}

+ +
+
+
+
+
diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.mod.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.mod.js new file mode 100644 index 0000000..c04a012 --- /dev/null +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/areas.mod.js @@ -0,0 +1,23 @@ +(function ( ng ) { + let mod = ng.module( 'areaModule', [ 'ui.router' ] ); + + mod.config( [ '$stateProvider', '$urlRouterProvider', + function ( $stateProvider, $urlRouterProvider ) { + $urlRouterProvider.otherwise( '/areas' ); + + $stateProvider + .state( 'areas', { + url: '/areas/:idArea', + parent: 'menu', + params: { + idArea: null + }, + views: { + 'listView': { + templateUrl: 'app/src/modules/areas/areas.html', + controller: 'areasCtrl' + } + } + } ); + } ] ); +})( window.angular ); diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/detail/area.detail.ctrl.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/detail/area.detail.ctrl.js new file mode 100644 index 0000000..e69de29 diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/detail/area.html b/Proyecto/Proyecto-FrontEnd/app/src/modules/areas/detail/area.html new file mode 100644 index 0000000..e69de29 diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontrolador.detail.ctrl.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontrolador.detail.ctrl.js index d92a831..8874cdf 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontrolador.detail.ctrl.js +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontrolador.detail.ctrl.js @@ -1,12 +1,12 @@ (function ( ng ) { let mod = ng.module( 'microcontroladorModule' ); - mod.controller( 'microcontroladorDetailCtrl', [ '$scope', '$http', 'SessionService', 'urlBack', 'AuthService', '$state','$stateParams', + mod.controller( 'microcontroladorDetailCtrl', [ '$scope', '$http', 'SessionService', 'urlBack', 'AuthService', '$state', '$stateParams', function ( $scope, $http, SessionService, urlBack, AuthService, $state, $stateParams ) { - $scope.idMicroontrolador = $stateParams.idMicroontrolador; + $scope.idMicrocontrolador = $stateParams.idMicrocontrolador; - var gaugeOptions = { + let gaugeOptions = { chart: { type: 'solidgauge' @@ -15,7 +15,7 @@ title: null, pane: { - center: ['50%', '85%'], + center: [ '50%', '85%' ], size: '140%', startAngle: -90, endAngle: 90, @@ -34,9 +34,9 @@ // the value axis yAxis: { stops: [ - [0.1, '#55BF3B'], // green - [0.5, '#DDDF0D'], // yellow - [0.9, '#DF5353'] // red + [ 0.1, '#55BF3B' ], // green + [ 0.5, '#DDDF0D' ], // yellow + [ 0.9, '#DF5353' ] // red ], lineWidth: 0, minorTickInterval: null, @@ -68,198 +68,200 @@ 'user': SessionService.user.login, 'token': SessionService.user.token }, - url: urlBack + '/microcontroladores/'+ $scope.idMicrocontrolador + url: urlBack + '/microcontroladores/' + $scope.idMicrocontrolador } ) .then( function ( response ) { $scope.microcontrolador = response.data; - } ); - } ); - - $scope.sensores = function () { - $http({ - method:'GET', - headers:{ - 'user': SessionService.user.login, - 'token': SessionService.user.token - }, - url: urlBack+'/microcontroladores/'+$scope.idMicroontrolador+'/sensores ' - }) - .then(function (response) { - $scope.sensores = response.data; - - Highcharts.chart('microcontroladorSensorUno', Highcharts.merge(gaugeOptions, { - yAxis: { - min: 0, - max: 200, - title: { - text: $scope.sensores[0].tipo.nombre - } - }, - - credits: { - enabled: false - }, - - series: [{ - name: $scope.sensores[0].tipo.nombre, - data: [80], - dataLabels: { - format: '
{y}
' + - '$scope.sensores[0].tipo.uniadadDeMedida
' - }, - tooltip: { - valueSuffix: ' km/h' - } - }] - - })); - Highcharts.chart('microcontroladorSensorDos', Highcharts.merge(gaugeOptions, { - yAxis: { - min: 0, - max: 200, - title: { - text: $scope.sensores[1].tipo.nombre - } - }, - - credits: { - enabled: false - }, - - series: [{ - name: $scope.sensores[1].tipo.nombre, - data: [80], - dataLabels: { - format: '
{y}
' + - '$scope.sensores[1].tipo.uniadadDeMedida
' - }, - tooltip: { - valueSuffix: ' km/h' - } - }] - - })); - Highcharts.chart('microcontroladorSensorTres', Highcharts.merge(gaugeOptions, { - yAxis: { - min: 0, - max: 200, - title: { - text: $scope.sensores[2].tipo.nombre - } - }, - - credits: { - enabled: false - }, - - series: [{ - name: $scope.sensores[2].tipo.nombre, - data: [80], - dataLabels: { - format: '
{y}
' + - '$scope.sensores[2].tipo.uniadadDeMedida
' - }, - tooltip: { - valueSuffix: ' km/h' - } - }] - - })); - Highcharts.chart('microcontroladorSensorCuatro', Highcharts.merge(gaugeOptions, { - yAxis: { - min: 0, - max: 200, - title: { - text: $scope.sensores[3].tipo.nombre - } - }, - - credits: { - enabled: false - }, - - series: [{ - name: $scope.sensores[3].tipo.nombre, - data: [80], - dataLabels: { - format: '
{y}
' + - '$scope.sensores[3].tipo.uniadadDeMedida
' - }, - tooltip: { - valueSuffix: ' km/h' - } - }] - - })); - - Highcharts.chart('microcontroladorGraph', { - - title: { - text: 'Informacion de Sensores' - }, - - subtitle: { - text: 'Microcontrolador ' + $scope.idMicroontrolador - }, - - yAxis: { - title: { - text: '' - } - }, - legend: { - layout: 'vertical', - align: 'right', - verticalAlign: 'middle' - }, - - plotOptions: { - series: { - label: { - connectorAllowed: false - }, - pointStart: 2010 - } - }, - - series: [{ - name: $scope.sensores[0].tipo.nombre, - data: [43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175] - }, { - name: $scope.sensores[1].tipo.nombre, - data: [24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434] - }, { - name: $scope.sensores[2].tipo.nombre, - data: [11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387] - }, { - name: $scope.sensores[3].tipo.nombre, - data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227] - }], - - responsive: { - rules: [{ - condition: { - maxWidth: 500 - }, - chartOptions: { - legend: { - layout: 'horizontal', - align: 'center', - verticalAlign: 'bottom' - } - } - }] - } - - }); - }); - } + $scope.sensores = function () { + $http( { + method: 'GET', + headers: { + 'user': SessionService.user.login, + 'token': SessionService.user.token + }, + url: urlBack + '/microcontroladores/' + $scope.idMicrocontrolador + '/sensores ' + } ) + .then( function ( response ) { + $scope.sensores = response.data; + + Highcharts.chart( 'microcontroladorSensorUno', Highcharts.merge( gaugeOptions, { + yAxis: { + min: 0, + max: 200, + title: { + text: $scope.sensores[ 0 ].tipo.nombre + } + }, + + credits: { + enabled: false + }, + + series: [ { + name: $scope.sensores[ 0 ].tipo.nombre, + data: [ 80 ], + dataLabels: { + format: '
{y}
' + + '$scope.sensores[0].tipo.uniadadDeMedida
' + }, + tooltip: { + valueSuffix: ' km/h' + } + } ] + + } ) ); + Highcharts.chart( 'microcontroladorSensorDos', Highcharts.merge( gaugeOptions, { + yAxis: { + min: 0, + max: 200, + title: { + text: $scope.sensores[ 1 ].tipo.nombre + } + }, + + credits: { + enabled: false + }, + + series: [ { + name: $scope.sensores[ 1 ].tipo.nombre, + data: [ 80 ], + dataLabels: { + format: '
{y}
' + + '$scope.sensores[1].tipo.uniadadDeMedida
' + }, + tooltip: { + valueSuffix: ' km/h' + } + } ] + + } ) ); + Highcharts.chart( 'microcontroladorSensorTres', Highcharts.merge( gaugeOptions, { + yAxis: { + min: 0, + max: 200, + title: { + text: $scope.sensores[ 2 ].tipo.nombre + } + }, + + credits: { + enabled: false + }, + + series: [ { + name: $scope.sensores[ 2 ].tipo.nombre, + data: [ 80 ], + dataLabels: { + format: '
{y}
' + + '$scope.sensores[2].tipo.uniadadDeMedida
' + }, + tooltip: { + valueSuffix: ' km/h' + } + } ] + + } ) ); + Highcharts.chart( 'microcontroladorSensorCuatro', Highcharts.merge( gaugeOptions, { + yAxis: { + min: 0, + max: 200, + title: { + text: $scope.sensores[ 3 ].tipo.nombre + } + }, + + credits: { + enabled: false + }, + + series: [ { + name: $scope.sensores[ 3 ].tipo.nombre, + data: [ 80 ], + dataLabels: { + format: '
{y}
' + + '$scope.sensores[3].tipo.uniadadDeMedida
' + }, + tooltip: { + valueSuffix: ' km/h' + } + } ] + + } ) ); + + Highcharts.chart( 'microcontroladorGraph', { + + title: { + text: 'Informacion de Sensores' + }, + + subtitle: { + text: 'Microcontrolador ' + $scope.idMicrocontrolador + }, + + yAxis: { + title: { + text: '' + } + }, + legend: { + layout: 'vertical', + align: 'right', + verticalAlign: 'middle' + }, + + plotOptions: { + series: { + label: { + connectorAllowed: false + }, + pointStart: 2010 + } + }, + + series: [ { + name: $scope.sensores[ 0 ].tipo.nombre, + data: [ 43934, 52503, 57177, 69658, 97031, 119931, 137133, 154175 ] + }, { + name: $scope.sensores[ 1 ].tipo.nombre, + data: [ 24916, 24064, 29742, 29851, 32490, 30282, 38121, 40434 ] + }, { + name: $scope.sensores[ 2 ].tipo.nombre, + data: [ 11744, 17722, 16005, 19771, 20185, 24377, 32147, 39387 ] + }, { + name: $scope.sensores[ 3 ].tipo.nombre, + data: [ null, null, 7988, 12169, 15112, 22452, 34400, 34227 ] + } ], + + responsive: { + rules: [ { + condition: { + maxWidth: 500 + }, + chartOptions: { + legend: { + layout: 'horizontal', + align: 'center', + verticalAlign: 'bottom' + } + } + } ] + } + + } ); + + } ); + }; + + $scope.sensores(); + } ); + } ); } ] ); })( angular ); diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontroladores.detail.html b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontroladores.detail.html index f52de9b..05a5362 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontroladores.detail.html +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/detail/microcontroladores.detail.html @@ -1,8 +1,6 @@

{{'Microcontrolador' + microcontrolador.id}}

-
- -
+
diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontrolador.mod.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontrolador.mod.js index a0f0fb2..ba9fdd7 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontrolador.mod.js +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontrolador.mod.js @@ -6,26 +6,15 @@ $urlRouterProvider.otherwise( '/microcontroladores' ); $stateProvider - .state( 'microcontrolador', { - url: '/microcontroladores', - parent: 'menu', - - views: { - 'listView': { - templateUrl: 'app/src/modules/microcontrolador/microcontroladores.html', - controller: 'microcontroladoresCtrl' - } - } - } ) .state( 'microcontroladoresDetail', { - url: '/microcontroladores/:idMicroontrolador', + url: '/microcontroladores/:idMicrocontrolador', params: { - idMicroontrolador: null, + idMicrocontrolador: null, }, parent: 'menu', views: { 'listView': { - templateUrl: 'app/src/modules/microcontroladores/detail/microcontrolador.detail.html', + templateUrl: 'app/src/modules/microcontrolador/detail/microcontroladores.detail.html', controller: 'microcontroladorDetailCtrl' } } diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontroladores.ctrl.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontroladores.ctrl.js deleted file mode 100644 index e560e8f..0000000 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/microcontrolador/microcontroladores.ctrl.js +++ /dev/null @@ -1,123 +0,0 @@ -(function ( ng ) { - let mod = ng.module( 'microcontroladorModule' ); - - mod.controller( 'microcontroladoresCtrl', [ '$scope', '$http', 'SessionService', 'urlBack', 'AuthService', '$state','$stateParams', - function ( $scope, $http, SessionService, urlBack, AuthService, $state, $stateParams ) { - - AuthService.checkUser( $scope.$parent.user ) - .then( function ( response ) { - $http( { - method: 'GET', - headers: { - 'user': SessionService.user.login, - 'token': SessionService.user.token - }, - url: urlBack + '/microcontroladores' - } ) - .then( function ( response ) { - $scope.microcontroladores = response.data; - } ); - } ); - - $scope.seemicrocontrolador = function ( idmicrocontrolador ) { - - - $scope.microcontroladores.some( function ( item ) { - if ( item.id === idmicrocontrolador ) { - $state.go( 'microcontroladoresDetail', { idmicrocontrolador: item.id, microcontrolador: item } ); - return true; - } - } ); - - }; - - Highcharts.chart('container', { - chart: { - type: 'tilemap', - inverted: true, - height: '80%' - }, - - title: { - text: 'microcontroladores' - }, - - subtitle: { - // text: 'Source:Wikipedia' - }, - - xAxis: { - visible: false - }, - - yAxis: { - visible: false - }, - - colorAxis: { - dataClasses: [{ - from: 0, - to: 50, - color: '#FFC428', - name: '< 50' - }, { - from: 51, - to: 100, - color: '#FF7987', - name: '50 - 100' - }, { - from: 101, - color: '#FF2371', - name: '> 100' - }] - }, - - tooltip: { - headerFormat: '', - pointFormat: 'The population of {point.name} is {point.value}' - }, - - plotOptions: { - series: { - dataLabels: { - enabled: true, - format: '{point.hc-a2}', - color: '#000000', - style: { - textOutline: false - } - } - } - }, - - series: [{ - name: '', - data: [{ - 'hc-a2': '4', - name: 'Alabama', - region: 'South', - x: 0, - y: 0, - value: 4849377 - }, { - 'hc-a2': '67', - name: 'Alaska', - region: 'West', - x: 0, - y: 1, - value: 737732 - }, { - 'hc-a2': '105', - name: 'Arizona', - region: 'West', - x: 0, - y: 2, - value: 6745408 - },] - }] - }); - - - } - ] ); -})( angular ); diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/nivel.detail.ctrl.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/nivel.detail.ctrl.js index 88fea08..6390127 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/nivel.detail.ctrl.js +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/nivel.detail.ctrl.js @@ -1,9 +1,111 @@ (function ( ng ) { let mod = ng.module( 'nivelesModule' ); - mod.controller( 'nivelDetailCtrl', [ '$scope', '$stateParams', - function ( $scope, $stateParams ) { - $scope.nivel = $stateParams.nivel; + mod.controller( 'nivelDetailCtrl', [ '$scope', '$stateParams', 'AuthService', '$http', 'urlBack', 'SessionService', '$state', + function ( $scope, $stateParams, AuthService, $http, urlBack, SessionService, $state ) { + AuthService.checkUser( $scope.$parent.user ) + .then( function ( response ) { + $http( { + method: 'GET', + url: urlBack + '/niveles/' + $stateParams.idNivel, + headers: { + 'user': SessionService.user.login, + 'token': SessionService.user.token + } + } ) + .then( function ( response ) { + $scope.nivel = response.data; + $scope.areas = $scope.nivel.areas; + + const maxInRow = 10; + let row = -1; + let temp = []; + $scope.areas.forEach( function ( item, index ) { + if ( index % maxInRow === 0 ) { + row++; + } + let nuevo = { + id: item.id, + tipo: item.tipo, + actuadores: item.actuadores, + alertas: item.alertas, + microcontroladores: item.microcontroladores, + x: row, + y: index % maxInRow, + value: 10, //TODO + 'hc-a2': 'Area ' + item.id + }; + temp.push( nuevo ); + } ); + + $scope.areas = temp; + let info = { + chart: { + type: 'tilemap', + inverted: true, + // height: '50%', + }, + title: { + text: 'Niveles Del Sistema' + }, + xAxis: { + visible: false + }, + yAxis: { + visible: false + }, + colorAxis: { + dataClasses: [ { + from: 0, + to: 50, + color: '#F9EDB3', + name: '< 50' + }, { + from: 51, + to: 100, + color: '#FFC428', + name: '50 - 100' + }, { + from: 101, + color: '#FF7987', + name: '> 100' + } ] + }, + tooltip: { + headerFormat: '', + pointFormat: 'The population of {point.name} is {point.value}' + }, + plotOptions: { + series: { + dataLabels: { + enabled: true, + format: '{point.hc-a2}', + color: '#000000', + style: { + textOutline: false + } + }, + point: { + events: { + click: function () { + $scope.seeArea( this.id ); + } + } + } + } + }, + series: [ { + name: '', + data: $scope.areas + } ] + }; + Highcharts.chart( 'containerArea', info ); + } ); + } ); + + $scope.seeArea = function ( id ) { + $state.go( 'areas', { idArea: id } ); + }; } ] ); })( angular ); diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/niveles.detail.html b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/niveles.detail.html index 1b88ffd..f41cf14 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/niveles.detail.html +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/detail/niveles.detail.html @@ -1,37 +1,7 @@ -
-

{{'Nivel' + nivel.nivel}}

-
-
-
- ID - Tipo - Notificaciones -
+

{{'Nivel ' + nivel.nivel}}

-
-
- {{area.id}} - {{area.tipo}} - 0 -
-
-
- -
-
- ID - Fecha - Notificaciones -
- -
-
- {{reporte.id}} - {{reporte.fecha}} - 0 -
-
-
-
+
+
+
diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.ctrl.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.ctrl.js index 9ef4719..d0924f0 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.ctrl.js +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.ctrl.js @@ -16,443 +16,90 @@ } ) .then( function ( response ) { $scope.niveles = response.data; + let temp = []; + $scope.niveles.forEach( function ( item, index ) { + let nuevo = { + areas: item.areas, + id: item.id, + nivel: item.nivel, + reportes: item.reportes, + x: 0, + y: index, + value: 10, + 'hc-a2': 'Nivel ' + item.id + }; + temp.push( nuevo ); + } ); + $scope.niveles = temp; + + let info = { + chart: { + type: 'tilemap', + inverted: true, + // height: '50%', + }, + title: { + text: 'Niveles Del Sistema' + }, + xAxis: { + visible: false + }, + yAxis: { + visible: false + }, + colorAxis: { + dataClasses: [ { + from: 0, + to: 50, + color: '#F9EDB3', + name: '< 50' + }, { + from: 51, + to: 100, + color: '#FFC428', + name: '50 - 100' + }, { + from: 101, + color: '#FF7987', + name: '> 100' + } ] + }, + tooltip: { + headerFormat: '', + pointFormat: 'The population of {point.name} is {point.value}' + }, + plotOptions: { + series: { + dataLabels: { + enabled: true, + format: '{point.hc-a2}', + color: '#000000', + style: { + textOutline: false + } + }, + point: { + events: { + click: function () { + $scope.seeNivel( this.id ); + } + } + } + } + }, + series: [ { + name: '', + data: $scope.niveles + } ] + }; + Highcharts.chart( 'container', info ); } ); } ); $scope.seeNivel = function ( idNivel ) { - $scope.niveles.some( function ( item ) { - if ( item.id === idNivel ) { - $state.go( 'nivelesDetail', { idNivel: item.id, nivel: item } ); - return true; - } - } ); + $state.go( 'nivelesDetail', { idNivel: idNivel } ); + return true; }; - Highcharts.chart('container', { - chart: { - type: 'tilemap', - inverted: true, - height: '100%' - }, - - title: { - text: 'U.S. states by population in 2016' - }, - - subtitle: { - text: 'Source:Wikipedia' - }, - - xAxis: { - visible: false - }, - - yAxis: { - visible: false - }, - - colorAxis: { - dataClasses: [{ - from: 0, - to: 1000000, - color: '#F9EDB3', - name: '< 1M' - }, { - from: 1000000, - to: 5000000, - color: '#FFC428', - name: '1M - 5M' - }, { - from: 5000000, - to: 20000000, - color: '#FF7987', - name: '5M - 20M' - }, { - from: 20000000, - color: '#FF2371', - name: '> 20M' - }] - }, - - tooltip: { - headerFormat: '', - pointFormat: 'The population of {point.name} is {point.value}' - }, - - plotOptions: { - series: { - dataLabels: { - enabled: true, - format: '{point.hc-a2}', - color: '#000000', - style: { - textOutline: false - } - } - } - }, - - series: [{ - name: '', - data: [{ - 'hc-a2': 'AL', - name: 'Alabama', - region: 'South', - x: 6, - y: 7, - value: 4849377 - }, { - 'hc-a2': 'AK', - name: 'Alaska', - region: 'West', - x: 0, - y: 0, - value: 737732 - }, { - 'hc-a2': 'AZ', - name: 'Arizona', - region: 'West', - x: 5, - y: 3, - value: 6745408 - }, { - 'hc-a2': 'AR', - name: 'Arkansas', - region: 'South', - x: 5, - y: 6, - value: 2994079 - }, { - 'hc-a2': 'CA', - name: 'California', - region: 'West', - x: 5, - y: 2, - value: 39250017 - }, { - 'hc-a2': 'CO', - name: 'Colorado', - region: 'West', - x: 4, - y: 3, - value: 5540545 - }, { - 'hc-a2': 'CT', - name: 'Connecticut', - region: 'Northeast', - x: 3, - y: 11, - value: 3596677 - }, { - 'hc-a2': 'DE', - name: 'Delaware', - region: 'South', - x: 4, - y: 9, - value: 935614 - }, { - 'hc-a2': 'DC', - name: 'District of Columbia', - region: 'South', - x: 4, - y: 10, - value: 7288000 - }, { - 'hc-a2': 'FL', - name: 'Florida', - region: 'South', - x: 8, - y: 8, - value: 20612439 - }, { - 'hc-a2': 'GA', - name: 'Georgia', - region: 'South', - x: 7, - y: 8, - value: 10310371 - }, { - 'hc-a2': 'HI', - name: 'Hawaii', - region: 'West', - x: 8, - y: 0, - value: 1419561 - }, { - 'hc-a2': 'ID', - name: 'Idaho', - region: 'West', - x: 3, - y: 2, - value: 1634464 - }, { - 'hc-a2': 'IL', - name: 'Illinois', - region: 'Midwest', - x: 3, - y: 6, - value: 12801539 - }, { - 'hc-a2': 'IN', - name: 'Indiana', - region: 'Midwest', - x: 3, - y: 7, - value: 6596855 - }, { - 'hc-a2': 'IA', - name: 'Iowa', - region: 'Midwest', - x: 3, - y: 5, - value: 3107126 - }, { - 'hc-a2': 'KS', - name: 'Kansas', - region: 'Midwest', - x: 5, - y: 5, - value: 2904021 - }, { - 'hc-a2': 'KY', - name: 'Kentucky', - region: 'South', - x: 4, - y: 6, - value: 4413457 - }, { - 'hc-a2': 'LA', - name: 'Louisiana', - region: 'South', - x: 6, - y: 5, - value: 4649676 - }, { - 'hc-a2': 'ME', - name: 'Maine', - region: 'Northeast', - x: 0, - y: 11, - value: 1330089 - }, { - 'hc-a2': 'MD', - name: 'Maryland', - region: 'South', - x: 4, - y: 8, - value: 6016447 - }, { - 'hc-a2': 'MA', - name: 'Massachusetts', - region: 'Northeast', - x: 2, - y: 10, - value: 6811779 - }, { - 'hc-a2': 'MI', - name: 'Michigan', - region: 'Midwest', - x: 2, - y: 7, - value: 9928301 - }, { - 'hc-a2': 'MN', - name: 'Minnesota', - region: 'Midwest', - x: 2, - y: 4, - value: 5519952 - }, { - 'hc-a2': 'MS', - name: 'Mississippi', - region: 'South', - x: 6, - y: 6, - value: 2984926 - }, { - 'hc-a2': 'MO', - name: 'Missouri', - region: 'Midwest', - x: 4, - y: 5, - value: 6093000 - }, { - 'hc-a2': 'MT', - name: 'Montana', - region: 'West', - x: 2, - y: 2, - value: 1023579 - }, { - 'hc-a2': 'NE', - name: 'Nebraska', - region: 'Midwest', - x: 4, - y: 4, - value: 1881503 - }, { - 'hc-a2': 'NV', - name: 'Nevada', - region: 'West', - x: 4, - y: 2, - value: 2839099 - }, { - 'hc-a2': 'NH', - name: 'New Hampshire', - region: 'Northeast', - x: 1, - y: 11, - value: 1326813 - }, { - 'hc-a2': 'NJ', - name: 'New Jersey', - region: 'Northeast', - x: 3, - y: 10, - value: 8944469 - }, { - 'hc-a2': 'NM', - name: 'New Mexico', - region: 'West', - x: 6, - y: 3, - value: 2085572 - }, { - 'hc-a2': 'NY', - name: 'New York', - region: 'Northeast', - x: 2, - y: 9, - value: 19745289 - }, { - 'hc-a2': 'NC', - name: 'North Carolina', - region: 'South', - x: 5, - y: 9, - value: 10146788 - }, { - 'hc-a2': 'ND', - name: 'North Dakota', - region: 'Midwest', - x: 2, - y: 3, - value: 739482 - }, { - 'hc-a2': 'OH', - name: 'Ohio', - region: 'Midwest', - x: 3, - y: 8, - value: 11614373 - }, { - 'hc-a2': 'OK', - name: 'Oklahoma', - region: 'South', - x: 6, - y: 4, - value: 3878051 - }, { - 'hc-a2': 'OR', - name: 'Oregon', - region: 'West', - x: 4, - y: 1, - value: 3970239 - }, { - 'hc-a2': 'PA', - name: 'Pennsylvania', - region: 'Northeast', - x: 3, - y: 9, - value: 12784227 - }, { - 'hc-a2': 'RI', - name: 'Rhode Island', - region: 'Northeast', - x: 2, - y: 11, - value: 1055173 - }, { - 'hc-a2': 'SC', - name: 'South Carolina', - region: 'South', - x: 6, - y: 8, - value: 4832482 - }, { - 'hc-a2': 'SD', - name: 'South Dakota', - region: 'Midwest', - x: 3, - y: 4, - value: 853175 - }, { - 'hc-a2': 'TN', - name: 'Tennessee', - region: 'South', - x: 5, - y: 7, - value: 6651194 - }, { - 'hc-a2': 'TX', - name: 'Texas', - region: 'South', - x: 7, - y: 4, - value: 27862596 - }, { - 'hc-a2': 'UT', - name: 'Utah', - region: 'West', - x: 5, - y: 4, - value: 2942902 - }, { - 'hc-a2': 'VT', - name: 'Vermont', - region: 'Northeast', - x: 1, - y: 10, - value: 626011 - }, { - 'hc-a2': 'VA', - name: 'Virginia', - region: 'South', - x: 5, - y: 8, - value: 8411808 - }, { - 'hc-a2': 'WA', - name: 'Washington', - region: 'West', - x: 2, - y: 1, - value: 7288000 - }, { - 'hc-a2': 'WV', - name: 'West Virginia', - region: 'South', - x: 4, - y: 7, - value: 1850326 - }, { - 'hc-a2': 'WI', - name: 'Wisconsin', - region: 'Midwest', - x: 2, - y: 5, - value: 5778708 - }, { - 'hc-a2': 'WY', - name: 'Wyoming', - region: 'West', - x: 3, - y: 3, - value: 584153 - }] - }] - }); } ] ); })( angular ); diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.html b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.html index de9464c..e828f63 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.html +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.html @@ -1,10 +1,7 @@

Niveles

- - -
- +
+
+
diff --git a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.mod.js b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.mod.js index 020a219..482dd31 100644 --- a/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.mod.js +++ b/Proyecto/Proyecto-FrontEnd/app/src/modules/niveles/niveles.mod.js @@ -20,7 +20,6 @@ url: '/niveles/:idNivel', params: { idNivel: null, - nivel: null }, parent: 'menu', views: { diff --git a/Proyecto/Proyecto-FrontEnd/app/utils/styles/style.css b/Proyecto/Proyecto-FrontEnd/app/utils/styles/style.css index 23d0065..c814dbe 100644 --- a/Proyecto/Proyecto-FrontEnd/app/utils/styles/style.css +++ b/Proyecto/Proyecto-FrontEnd/app/utils/styles/style.css @@ -278,10 +278,6 @@ html, body, .full-size { padding: 10px; } -.niveles-container { - display: grid; - text-align: center; -} .item-nivel { } diff --git a/Proyecto/Proyecto-FrontEnd/index.html b/Proyecto/Proyecto-FrontEnd/index.html index 84484f9..9bd8e16 100644 --- a/Proyecto/Proyecto-FrontEnd/index.html +++ b/Proyecto/Proyecto-FrontEnd/index.html @@ -29,6 +29,9 @@ + + + @@ -46,7 +49,11 @@ - + + + +