diff --git a/package-lock.json b/package-lock.json
index 8294f38..eb76f57 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3039,6 +3039,14 @@
"@types/jquery": "*"
}
},
+ "@types/chart.js": {
+ "version": "2.9.34",
+ "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.34.tgz",
+ "integrity": "sha512-CtZVk+kh1IN67dv+fB0CWmCLCRrDJgqOj15qPic2B1VCMovNO6B7Vhf/TgPpNscjhAL1j+qUntDMWb9A4ZmPTg==",
+ "requires": {
+ "moment": "^2.10.2"
+ }
+ },
"@types/chartist": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/@types/chartist/-/chartist-0.11.1.tgz",
@@ -12486,6 +12494,11 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
@@ -13151,6 +13164,11 @@
"mkdirp": "^1.0.3"
}
},
+ "moment": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -13280,6 +13298,16 @@
"tslib": "^2.1.0"
}
},
+ "ng2-charts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-2.4.2.tgz",
+ "integrity": "sha512-mY3C2uKCaApHCQizS2YxEOqQ7sSZZLxdV6N1uM9u/VvUgVtYvlPtdcXbKpN52ak93ZE22I73DiLWVDnDNG4/AQ==",
+ "requires": {
+ "@types/chart.js": "^2.9.24",
+ "lodash-es": "^4.17.15",
+ "tslib": "^2.0.0"
+ }
+ },
"ngx-infinite-scroll": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz",
diff --git a/package.json b/package.json
index 9890af0..8dcb5f7 100644
--- a/package.json
+++ b/package.json
@@ -94,6 +94,7 @@
"jspdf": "^2.3.1",
"jw-angular-social-buttons": "^1.0.0",
"ng-chartist": "^5.0.0",
+ "ng2-charts": "^2.4.2",
"ngx-infinite-scroll": "10.0.1",
"ngx-paypal": "^8.0.0",
"ngx-sharebuttons": "^8.0.5",
diff --git a/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.html b/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.html
index 4e901ae..efd5518 100644
--- a/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.html
+++ b/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.html
@@ -1,8 +1,236 @@
+
+
+
+
+
+
-
+
Reportes generales
En esta sección encontrará los reportes generales de todas sus encuestas
+
+
+
Reportes por encuesta
+ En esta sección encontrará los reportes de cada una de sus encuestas
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cantidad de encuestas creadas
+ {{ cantEncuestas }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cantidad de usuario que han completado las encuestas
+ {{ cantPersonas }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cantidad de encuestas por estado
+
+
+
+
+
+
+
+
+
+
Cantidad de encuestas por acceso
+
+
+
+
+
+
+
+
+
+
+
+
+
0">
+
+
+
+
{{ encuesta.nombre }}
+
+ {{ encuesta.categoria?.nombre | lowercase }}
+
+
+ {{ encuesta.descripcion | titlecase }}
+
+
+
+
+ 0"
+ > Duración: {{
+ duracion
+ }}
+ Duración: Un día o
+ menos
+
+ Duración: No ha
+ finalizado
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No se encontraron preguntas
+
+
+
0">
+
+
+
+
+ {{ i + 1 }}. {{ ePregunta.nombre }}
+
+
+ Pregunta de respuesta {{ 'dataSurveyApp.PreguntaCerradaTipo.SINGLE' | translate | lowercase }}
+ {{ ePregunta.opcional ? '(opcional)' : '' }}
+ Pregunta de respuesta {{ 'dataSurveyApp.PreguntaCerradaTipo.MULTIPLE' | translate | lowercase }}
+ {{ ePregunta.opcional ? '(opcional)' : '' }}
+ Pregunta de respuesta abierta {{ ePregunta.opcional ? '(opcional)' : '' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.ts b/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.ts
index 9647422..5bb315b 100644
--- a/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.ts
+++ b/src/main/webapp/app/entities/dashboard/dashboard-user/dashboard-user.component.ts
@@ -7,6 +7,8 @@ import { UsuarioExtra } from '../../usuario-extra/usuario-extra.model';
import { Account } from '../../../core/auth/account.model';
import { AccountService } from '../../../core/auth/account.service';
import { UsuarioExtraService } from '../../usuario-extra/service/usuario-extra.service';
+import { faListAlt, faUser, faEye, faStar, faCalendarAlt } from '@fortawesome/free-solid-svg-icons';
+import * as Chartist from 'chartist';
@Component({
selector: 'jhi-dashboard-user',
@@ -21,6 +23,14 @@ export class DashboardUserComponent implements OnInit {
cantDraft: number = 0;
cantPublicas: number = 0;
cantPrivadas: number = 0;
+ faListAlt = faListAlt;
+ faUser = faUser;
+ faEye = faEye;
+ faStar = faStar;
+ faCalendarAlt = faCalendarAlt;
+ reportsGeneral = false;
+ reportForEncuestas = true;
+ duracion?: number = 0;
isLoading = false;
encuestas?: IEncuesta[];
@@ -37,6 +47,16 @@ export class DashboardUserComponent implements OnInit {
this.loadUser();
}
+ cambiarVista() {
+ if (this.reportsGeneral) {
+ this.reportsGeneral = false;
+ this.reportForEncuestas = true;
+ } else if (this.reportForEncuestas) {
+ this.reportsGeneral = true;
+ this.reportForEncuestas = false;
+ }
+ }
+
loadEncuestas() {
this.encuestaService.query().subscribe(
(res: HttpResponse
) => {
@@ -45,12 +65,30 @@ export class DashboardUserComponent implements OnInit {
this.encuestas = tmpEncuestas.filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id);
this.cantEncuestas = this.encuestas.length;
- this.cantActivas = tmpEncuestas.filter(e => e.estado === 'ACTIVE').length;
- this.cantDraft = tmpEncuestas.filter(e => e.estado === 'DRAFT').length;
- this.cantFinalizadas = tmpEncuestas.filter(e => e.estado === 'FINISHED').length;
- this.cantPublicas = tmpEncuestas.filter(e => e.acceso === 'PUBLIC').length;
- this.cantPrivadas = tmpEncuestas.filter(e => e.acceso === 'PRIVATE').length;
+ this.cantActivas = tmpEncuestas.filter(e => e.estado === 'ACTIVE' && e.usuarioExtra?.id === this.usuarioExtra?.id).length;
+ this.cantDraft = tmpEncuestas.filter(e => e.estado === 'DRAFT' && e.usuarioExtra?.id === this.usuarioExtra?.id).length;
+ this.cantFinalizadas = tmpEncuestas.filter(e => e.estado === 'FINISHED' && e.usuarioExtra?.id === this.usuarioExtra?.id).length;
+ this.cantPublicas = tmpEncuestas.filter(e => e.acceso === 'PUBLIC' && e.usuarioExtra?.id === this.usuarioExtra?.id).length;
+ this.cantPrivadas = tmpEncuestas.filter(e => e.acceso === 'PRIVATE' && e.usuarioExtra?.id === this.usuarioExtra?.id).length;
+
+ tmpEncuestas.forEach(encuesta => {
+ const _calificacion = encuesta.calificacion;
+ encuesta.calificacion = Number(_calificacion?.toString().split('.')[0]);
+
+ debugger;
+
+ if (encuesta.fechaFinalizada == null) {
+ this.duracion = -1;
+ } else {
+ this.duracion = encuesta.fechaPublicacion?.diff(encuesta.fechaFinalizada!, 'days');
+ }
+ });
+
+ this.cantPersonas = tmpEncuestas.filter(e => e.calificacion && e.usuarioExtra?.id === this.usuarioExtra?.id).length;
//cantidad de personas que han completado la encuesta
+
+ this.loadFirstChart();
+ this.loadSecondChart();
},
() => {
this.isLoading = false;
@@ -69,4 +107,24 @@ export class DashboardUserComponent implements OnInit {
this.loadEncuestas();
}
+
+ loadFirstChart(): void {
+ var dataEstado = {
+ labels: ['ACTIVOS', 'BORRADOR', 'FINALIZADOS'],
+ series: [this.cantActivas, this.cantDraft, this.cantFinalizadas],
+ };
+
+ new Chartist.Pie('#chartEstado', dataEstado);
+ }
+
+ loadSecondChart(): void {
+ var dataAcceso = {
+ labels: ['PÚBLICA', 'PRIVADA'],
+ series: [this.cantPublicas, this.cantPrivadas],
+ };
+
+ new Chartist.Pie('#chartAcceso', dataAcceso);
+ }
+
+ detallesPreguntas(): void {}
}