Skip to content
Snippets Groups Projects
Commit c4e92be6 authored by ramoncalabozo's avatar ramoncalabozo
Browse files

filtrado por comunidad funciona

parent 6df1665c
No related branches found
No related tags found
No related merge requests found
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<h3 class="comunidades">Elementos de filtrado</h3> <h3 class="comunidades">Elementos de filtrado</h3>
<br>
<span class="select_all_span"> <span class="select_all_span">
<input id="allElements" type="checkbox" (change)="checkUncheckAll()" [(ngModel)]="seleccion "/> <input id="allElements" type="checkbox" (change)="checkUncheckAll()" [(ngModel)]="seleccion "/>
<label for="allElements">Seleccionar todos</label> <label for="allElements">Seleccionar todos</label>
...@@ -24,8 +25,8 @@ ...@@ -24,8 +25,8 @@
<br> <br>
<div class="filter_elements_container"> <div class="filter_elements_container">
<div *ngFor="let e of filterElements; index as i"> <div *ngFor="let e of elementsFilters; index as i">
<input id="checkbox{{i}}" type="checkbox" (change)="isAllSelected()" [(ngModel)]="e.isSelected"/> <input id="checkbox{{i}}" type="checkbox" (change)="select()" [(ngModel)]="e.isSelected"/>
<label for="checkbox{{i}}">{{e.value}}</label> <label for="checkbox{{i}}">{{e.value}}</label>
</div> </div>
</div> </div>
...@@ -35,7 +36,7 @@ ...@@ -35,7 +36,7 @@
</div> </div>
</div> </div>
<div class="col-8"> <div class="col-8">
<app-line-chart></app-line-chart> <app-line-chart [filterElements]="elementsFilters"></app-line-chart>
</div> </div>
</div> </div>
</div> </div>
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { DataService } from 'src/app/service/data.service'; import { DataService } from 'src/app/service/comunidadData.service';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
...@@ -9,7 +9,7 @@ import { DataService } from 'src/app/service/data.service'; ...@@ -9,7 +9,7 @@ import { DataService } from 'src/app/service/data.service';
export class AppComponent implements OnInit { export class AppComponent implements OnInit {
dataService: DataService = new DataService; dataService: DataService = new DataService;
seleccion!: boolean seleccion!: boolean
filterElements!: any[] elementsFilters!: any[]
ngOnInit(): void{ ngOnInit(): void{
this.seleccion = true this.seleccion = true
...@@ -17,21 +17,20 @@ export class AppComponent implements OnInit { ...@@ -17,21 +17,20 @@ export class AppComponent implements OnInit {
} }
inicializar(): void{ inicializar(): void{
this.filterElements = [] this.elementsFilters = []
//let comunidades: string[] = this.dataService.COMUNIDADES;
for(let element of this.dataService.COMUNIDADES ) { for(let element of this.dataService.COMUNIDADES ) {
this.filterElements.push({ value: element, isSelected: true }) this.elementsFilters.push({ value: element, isSelected: true })
} }
} }
checkUncheckAll() { checkUncheckAll() {
for (let element of this.filterElements) { for (let element of this.elementsFilters) {
element.isSelected = this.seleccion element.isSelected = this.seleccion
} }
} }
isAllSelected() {
this.seleccion = this.filterElements.every(e => e.isSelected === true) select() {
this.seleccion = this.elementsFilters.every(e => e.isSelected === true)
} }
} }
\ No newline at end of file
import { Component, OnInit } from '@angular/core'; import { Component, OnInit, Input } from '@angular/core';
import { ChartDataset, ChartConfiguration} from 'chart.js'; import { ChartDataset} from 'chart.js';
import { NgChartsModule} from 'ng2-charts';
import { UniversidadService } from '../../service/universidad.service'; import { UniversidadService } from '../../service/universidad.service';
import { Universidad } from '../../model/universidad'; import { Universidad } from '../../model/universidad';
import { Comunidad } from '../../model/comunidad'; import { Comunidad } from '../../model/comunidad';
import { Grafico } from '../../service/grafico.service';
@Component({ @Component({
selector: 'app-line-chart', selector: 'app-line-chart',
...@@ -13,54 +13,65 @@ import { Comunidad } from '../../model/comunidad'; ...@@ -13,54 +13,65 @@ import { Comunidad } from '../../model/comunidad';
export class LineChartComponent implements OnInit{ export class LineChartComponent implements OnInit{
private universidades!: Universidad[] private universidades!: Universidad[]
private comunidades!: Comunidad[] private comunidades!: Comunidad[]
graphData!: any[] graphData!: any[]
graphLabels!: any[] graphLabels!: any[]
tipoGrafico: Grafico = Grafico.COMUNIDADES
@Input() filterElements!: any[]
// Estos datos están aquí por defecto // Estos datos están aquí por defecto
lineChartData: ChartDataset[] = []; lineChartData: ChartDataset[] = [];
lineChartLabels:string[] = []; lineChartLabels:string[] = ["Publicaciones"];
lineChartOptions = { responsive: true}; lineChartOptions = { responsive: true};
lineChartLegend = true; lineChartLegend = true;
lineChartPlugins = []; lineChartPlugins = [];
lineChartType = 'line'; lineChartType = 'line';
constructor( constructor(
private UniversidadService: UniversidadService private UniversidadService: UniversidadService
) {} ) {}
ngOnInit():void { ngOnInit():void {
/*if(this.tipoGrafico==Grafico.COMUNIDADES){
this.Comunidades()
} else {
this.GUniversidades()
}*/
this.Comunidades() this.Comunidades()
} }
Comunidades() { Comunidades() {
this.graphData = [] this.graphData = []
this.UniversidadService.getTotalPorComunidad().subscribe((comunidades: Comunidad[]) =>{ this.UniversidadService.getTotalPorComunidad().subscribe((comunidades: Comunidad[]) =>{
if(comunidades) {
this.comunidades = comunidades this.comunidades = comunidades
this.createGraphCom() this.createGraphCom()
}
}); });
this.lineChartLabels = ["Publicaciones"] // this.tipoGrafico = Grafico.UNIVERSIDADES
} }
GUniversidades(){ GUniversidades(){
this.graphData = [] this.graphData = []
this.UniversidadService.getAllUniversidades().subscribe((universidades: Universidad[]) =>{ this.UniversidadService.getAllUniversidades().subscribe((universidades: Universidad[]) =>{
if(universidades) {
this.universidades = universidades this.universidades = universidades
this.createGraphUniv() this.createGraphUniv()
}
}); });
this.lineChartLabels = ["Publicaciones"] // this.tipoGrafico = Grafico.UNIVERSIDADES
} }
createGraphCom(){ createGraphCom(){
this.graphData = [] this.graphData = []
let auxData: number[] = [] let auxData: number[] = []
for(let com of this.comunidades) { for(let com of this.comunidades) {
if(this.filtrado(com.comunidad)){ // Mejorar esto
auxData.push(com.total) auxData.push(com.total)
this.graphData.push({ data: auxData , label: com.comunidad }) this.graphData.push({ data: auxData , label: com.comunidad })
auxData=[] auxData=[]
} }
}
this.lineChartData = this.graphData this.lineChartData = this.graphData
} }
...@@ -68,10 +79,23 @@ export class LineChartComponent implements OnInit{ ...@@ -68,10 +79,23 @@ export class LineChartComponent implements OnInit{
this.graphData = [] this.graphData = []
let auxData: number[] = [] let auxData: number[] = []
for(let uni of this.universidades) { for(let uni of this.universidades) {
if(this.filtrado(uni.comunidad)){
auxData.push(uni.totalPublicaciones) auxData.push(uni.totalPublicaciones)
this.graphData.push({ data: auxData , label: uni.siglas }) this.graphData.push({ data: auxData , label: uni.siglas })
auxData=[] auxData=[]
} }
}
this.lineChartData = this.graphData this.lineChartData = this.graphData
} }
filtrado(com: string): boolean {
for(let f of this.filterElements){
if(f.value==com){
console.log(f.isSelected)
return f.isSelected
}
}
return false
}
} }
export enum Grafico {
COMUNIDADES = 0,
UNIVERSIDADES = 1
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment