diff --git a/package-lock.json b/package-lock.json index bea9194..31d4427 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,9 +1,8 @@ { "name": "data-survey", "version": "0.0.1-SNAPSHOT", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "packages": { "": { "name": "data-survey", @@ -30,6 +29,7 @@ "@types/gapi.auth2": "0.0.54", "angularx-social-login": "^4.0.1", "bootstrap": "4.6.0", + "chart.js": "^3.5.0", "chartist": "^0.11.4", "dayjs": "1.10.5", "file-saver": "^2.0.5", @@ -37,6 +37,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", @@ -4395,6 +4396,14 @@ "@types/jquery": "*" } }, + "node_modules/@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==", + "dependencies": { + "moment": "^2.10.2" + } + }, "node_modules/@types/chartist": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/@types/chartist/-/chartist-0.11.1.tgz", @@ -6959,6 +6968,11 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "node_modules/chart.js": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.0.tgz", + "integrity": "sha512-J1a4EAb1Gi/KbhwDRmoovHTRuqT8qdF0kZ4XgwxpGethJHUdDrkqyPYwke0a+BuvSeUxPf8Cos6AX2AB8H8GLA==" + }, "node_modules/chartist": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/chartist/-/chartist-0.11.4.tgz", @@ -16609,6 +16623,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/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==" + }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -17459,6 +17478,14 @@ "node": ">=10" } }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -17619,6 +17646,22 @@ "chartist": ">=0.11.4" } }, + "node_modules/ng2-charts": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-2.4.3.tgz", + "integrity": "sha512-tPrhHSS2DfVyipXQ0gykOPc8zFNnj2b7sAebUVty392vHnEGYCwsP6YbFfpr1iXu4yBSRm4Gt5lffR5w0uyYSw==", + "dependencies": { + "@types/chart.js": "^2.9.24", + "lodash-es": "^4.17.15", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=7.2.0", + "@angular/core": ">=7.2.0", + "chart.js": "^2.9.3", + "rxjs": "^6.3.3" + } + }, "node_modules/ngx-infinite-scroll": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/ngx-infinite-scroll/-/ngx-infinite-scroll-10.0.1.tgz", @@ -23821,11 +23864,6 @@ "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, "engines": { "node": ">=0.10.0" } @@ -41283,9 +41321,9 @@ } }, "ng2-charts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-2.4.2.tgz", - "integrity": "sha512-mY3C2uKCaApHCQizS2YxEOqQ7sSZZLxdV6N1uM9u/VvUgVtYvlPtdcXbKpN52ak93ZE22I73DiLWVDnDNG4/AQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-2.4.3.tgz", + "integrity": "sha512-tPrhHSS2DfVyipXQ0gykOPc8zFNnj2b7sAebUVty392vHnEGYCwsP6YbFfpr1iXu4yBSRm4Gt5lffR5w0uyYSw==", "requires": { "@types/chart.js": "^2.9.24", "lodash-es": "^4.17.15", @@ -42251,7 +42289,8 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "devOptional": true }, "picomatch": { "version": "2.3.0", @@ -44547,7 +44586,6 @@ } }, "regenerator-runtime": { - "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", @@ -46176,6 +46214,23 @@ "readable-stream": "^3.0.6" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, "string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", @@ -46202,23 +46257,6 @@ "strip-ansi": "^6.0.0" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -48167,6 +48205,15 @@ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -48195,15 +48242,6 @@ } } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/src/main/java/org/datasurvey/domain/UsuarioEncuesta.java b/src/main/java/org/datasurvey/domain/UsuarioEncuesta.java index d1522eb..c9a1937 100644 --- a/src/main/java/org/datasurvey/domain/UsuarioEncuesta.java +++ b/src/main/java/org/datasurvey/domain/UsuarioEncuesta.java @@ -43,10 +43,7 @@ public class UsuarioEncuesta implements Serializable { private UsuarioExtra usuarioExtra; @ManyToOne - @JsonIgnoreProperties( - value = { "usuarioEncuestas", "ePreguntaAbiertas", "ePreguntaCerradas", "categoria", "usuarioExtra" }, - allowSetters = true - ) + @JsonIgnoreProperties(value = { "usuarioEncuestas", "usuarioExtra" }, allowSetters = true) private Encuesta encuesta; // jhipster-needle-entity-add-field - JHipster will add fields here diff --git a/src/main/java/org/datasurvey/web/rest/EncuestaResource.java b/src/main/java/org/datasurvey/web/rest/EncuestaResource.java index 5744a97..820a112 100644 --- a/src/main/java/org/datasurvey/web/rest/EncuestaResource.java +++ b/src/main/java/org/datasurvey/web/rest/EncuestaResource.java @@ -432,7 +432,7 @@ public class EncuestaResource { newEncuesta.setNombre(encuesta.get().getNombre()); newEncuesta.setDescripcion(encuesta.get().getDescripcion()); newEncuesta.setFechaCreacion(ZonedDateTime.now()); - newEncuesta.setCalificacion(5d); + newEncuesta.setCalificacion(5.1d); newEncuesta.setAcceso(encuesta.get().getAcceso()); newEncuesta.setEstado(encuesta.get().getEstado()); newEncuesta.setCategoria(encuesta.get().getCategoria()); diff --git a/src/main/webapp/app/entities/categoria/list/categoria.component.html b/src/main/webapp/app/entities/categoria/list/categoria.component.html index 780d299..a51969f 100644 --- a/src/main/webapp/app/entities/categoria/list/categoria.component.html +++ b/src/main/webapp/app/entities/categoria/list/categoria.component.html @@ -33,8 +33,13 @@ -
- No categorias found +
+
+ +

No existen categorías

+

Inicie creando categorías para identificar las encuestas de los usuarios

+
+
diff --git a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html index 3a64b9c..377ac43 100644 --- a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html +++ b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html @@ -101,7 +101,7 @@
- +
@@ -127,7 +127,7 @@
-
{{ categoria.nombre }}
+
@@ -199,7 +199,7 @@
-
{{ categoria.nombre }}
+
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 e1abbc3..9f38135 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,10 +1,10 @@
- + + + - +
@@ -41,6 +59,14 @@

Detalles de la encuesta

En esta sección encontrará los reportes con respecto al contenido de las preguntas de su encuesta

+
+

Reportes de colaboraciones

+

En esta sección encontrará los reportes generales de todas las colaboraciones en las que esté participando

+
+
+

Detalles de la encuesta en la que colabora

+

En esta sección encontrará los reportes con respecto al contenido de las preguntas de la encuesta a la que colabora

+

@@ -123,6 +149,13 @@
+
+
+ +

No posee encuestas

+
+
+
@@ -136,22 +169,22 @@
-
- Duración:     {{ - duracion +

Calificación:

@@ -178,11 +211,14 @@
-
-
- No se encontraron preguntas +
+
+ +

No se encontraron preguntas

+
- +
+
@@ -251,7 +287,173 @@ --> -
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+ +

No posee colaboraciones

+
+
+
+
+
+
+
+
{{ colaboracion.encuesta.nombre }}
+
+ {{ colaboracion.encuesta.categoria?.nombre | lowercase }} +
+
+ {{ colaboracion.encuesta.descripcion | titlecase }} +
+
+
+
+ Duración:     {{ + duracionColaboracion + }} + Duración:     Un día o + menos + + Duración:     No ha + finalizado +
+ +
+

Calificación:

+ + +
+
+ +
+
+
+
+
+
+
+
+ + + +
+
+
+
+ +

No se encontraron preguntas

+
+
+
+ +
+
+
+
+
+ {{ 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 2318998..8c03821 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 @@ -1,4 +1,6 @@ import { Component, OnInit } from '@angular/core'; +import { UsuarioEncuestaService } from '../../usuario-encuesta/service/usuario-encuesta.service'; +import { IUser } from '../../user/user.model'; import { HttpResponse } from '@angular/common/http'; import { IEncuesta } from '../../encuesta/encuesta.model'; import { EstadoEncuesta } from '../../enumerations/estado-encuesta.model'; @@ -11,8 +13,11 @@ import { faListAlt, faUser, faEye, faStar, faCalendarAlt } from '@fortawesome/fr import * as Chartist from 'chartist'; import { finalize } from 'rxjs/operators'; import { EPreguntaAbiertaRespuestaService } from '../../e-pregunta-abierta-respuesta/service/e-pregunta-abierta-respuesta.service'; -import { each } from 'chart.js/helpers'; import { IEPreguntaAbiertaRespuesta } from '../../e-pregunta-abierta-respuesta/e-pregunta-abierta-respuesta.model'; +import { IUsuarioEncuesta } from '../../usuario-encuesta/usuario-encuesta.model'; +import { exportAsExcelFile } from '../export/export_excel'; +import { jsPDF } from 'jspdf'; +import { createPDFTableHeaders, generatePDFTable, generatePDFTableData, saveGeneratedPDF } from '../export/export_pdf'; @Component({ selector: 'jhi-dashboard-user', @@ -20,6 +25,7 @@ import { IEPreguntaAbiertaRespuesta } from '../../e-pregunta-abierta-respuesta/e styleUrls: ['./dashboard-user.component.scss'], }) export class DashboardUserComponent implements OnInit { + user: IUser | null = null; cantEncuestas: number = 0; cantPersonas: number = 0; cantActivas: number = 0; @@ -35,6 +41,8 @@ export class DashboardUserComponent implements OnInit { reportsGeneral = false; reportForEncuestas = true; reportPreguntas = true; + reportColaboraciones = true; + reportColaboracionPreguntas = true; duracion?: number = 0; ePreguntas?: any[]; ePreguntasOpciones?: any[]; @@ -44,12 +52,22 @@ export class DashboardUserComponent implements OnInit { usuarioExtra: UsuarioExtra | null = null; account: Account | null = null; encuesta: IEncuesta | null = null; + colaboracion: IEncuesta | null = null; preguntaId?: number = 0; + usuarioEncuestas?: IUsuarioEncuesta[]; + colaboraciones?: IEncuesta[]; + duracionColaboracion?: number = 0; + ePreguntasColaboracion?: any[]; + ePreguntasOpcionesColaboracion?: any[]; + respuestaAbiertaColaboracion?: IEPreguntaAbiertaRespuesta[]; + preguntaIdColaboracion?: number = 0; + duracionArray?: number[] | null = null; constructor( protected encuestaService: EncuestaService, protected accountService: AccountService, protected usuarioExtraService: UsuarioExtraService, + protected usuarioEncuestaService: UsuarioEncuestaService, protected resAbierta: EPreguntaAbiertaRespuestaService ) {} @@ -62,14 +80,36 @@ export class DashboardUserComponent implements OnInit { this.reportsGeneral = false; this.reportForEncuestas = true; this.reportPreguntas = true; + this.reportColaboraciones = true; + this.reportColaboracionPreguntas = true; } else if (this.reportForEncuestas) { this.reportsGeneral = true; this.reportForEncuestas = false; this.reportPreguntas = true; + this.reportColaboraciones = true; + this.reportColaboracionPreguntas = true; } else if (this.reportPreguntas) { this.reportForEncuestas = false; this.reportPreguntas = true; this.reportsGeneral = true; + this.reportColaboraciones = true; + this.reportColaboracionPreguntas = true; + } + } + + cambiarVistaColaboracion(cambio: string) { + if (cambio === 'colaboracion') { + this.reportForEncuestas = true; + this.reportPreguntas = true; + this.reportsGeneral = true; + this.reportColaboraciones = false; + this.reportColaboracionPreguntas = true; + } else if (cambio === 'preguntasColaboracion') { + this.reportForEncuestas = true; + this.reportPreguntas = true; + this.reportsGeneral = true; + this.reportColaboraciones = true; + this.reportColaboracionPreguntas = false; } } @@ -79,26 +119,42 @@ export class DashboardUserComponent implements OnInit { this.isLoading = false; const tmpEncuestas = res.body ?? []; - this.encuestas = tmpEncuestas.filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id); + this.encuestas = tmpEncuestas.filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id && e.estado !== 'DELETED'); this.cantEncuestas = this.encuestas.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; + this.cantPublicas = tmpEncuestas.filter( + e => e.acceso === 'PUBLIC' && e.usuarioExtra?.id === this.usuarioExtra?.id && e.estado !== 'DELETED' + ).length; + this.cantPrivadas = tmpEncuestas.filter( + e => e.acceso === 'PRIVATE' && e.usuarioExtra?.id === this.usuarioExtra?.id && e.estado !== 'DELETED' + ).length; + let cantidadCompletadas: number = 0; + tmpEncuestas + .filter(e => e.estado === 'ACTIVE') + .forEach(e => { + const _contadorCompletadas = e.calificacion; + cantidadCompletadas = cantidadCompletadas + (Number(_contadorCompletadas?.toString().split('.')[1]) - 1); + }); + this.cantPersonas = cantidadCompletadas; tmpEncuestas.forEach(encuesta => { const _calificacion = encuesta.calificacion; encuesta.calificacion = Number(_calificacion?.toString().split('.')[0]); - if (encuesta.fechaFinalizada == null) { + /* if (encuesta.fechaFinalizada == null) { this.duracion = -1; + this.duracionArray?.push(this.duracion); } else { this.duracion = encuesta.fechaPublicacion?.diff(encuesta.fechaFinalizada!, 'days'); - } + this.duracionArray?.push(this.duracion!); + }*/ }); - this.cantPersonas = tmpEncuestas.filter(e => e.calificacion && e.usuarioExtra?.id === this.usuarioExtra?.id).length; + /*this.cantPersonas = tmpEncuestas.filter( + e => e.calificacion && e.usuarioExtra?.id === this.usuarioExtra?.id && e.estado !== 'DELETED' + ).length;*/ //cantidad de personas que han completado la encuesta this.loadFirstChart(); @@ -120,6 +176,7 @@ export class DashboardUserComponent implements OnInit { }); this.loadEncuestas(); + this.loadAllColaboraciones(); } loadFirstChart(): void { @@ -215,4 +272,192 @@ export class DashboardUserComponent implements OnInit { } }); } + + loadAllColaboraciones(): void { + this.usuarioEncuestaService.query().subscribe((res: HttpResponse) => { + const tempUsuarioEncuestas = res.body ?? []; + this.usuarioEncuestas = tempUsuarioEncuestas + .filter(c => c.usuarioExtra?.id === this.usuarioExtra?.id) + .filter(c => c.encuesta?.estado !== 'DELETED'); + + // Fix calificacion + tempUsuarioEncuestas.forEach(colaboracion => { + if (colaboracion.encuesta) { + const _calificacion = colaboracion.encuesta.calificacion; + colaboracion.encuesta.calificacion = Number(_calificacion?.toString().split('.')[0]); + + if (colaboracion.encuesta.fechaFinalizada == null) { + this.duracionColaboracion = -1; + } else { + this.duracionColaboracion = colaboracion.encuesta.fechaPublicacion?.diff(colaboracion.encuesta.fechaFinalizada!, 'days'); + } + } + }); + }); + } + + detallesPreguntasColaboracion(encuesta: IEncuesta): void { + if (!this.reportColaboraciones) { + this.reportPreguntas = true; + this.reportForEncuestas = true; + this.reportsGeneral = true; + this.reportColaboraciones = true; + this.reportColaboracionPreguntas = false; + } + + this.colaboracion = encuesta; + debugger; + this.isLoading = true; + this.encuestaService + .findQuestions(encuesta?.id!) + .pipe( + finalize(() => + this.encuestaService.findQuestionsOptions(encuesta?.id!).subscribe( + (res: any) => { + this.isLoading = false; + this.ePreguntasOpcionesColaboracion = res.body ?? []; + + //debugger; + + this.getOpenQuestionAnswersColaboracion(); + }, + () => { + this.isLoading = false; + } + ) + ) + ) + .subscribe( + (res: any) => { + this.isLoading = false; + this.ePreguntasColaboracion = res.body ?? []; + }, + () => { + this.isLoading = false; + } + ); + } + + getOpenQuestionAnswersColaboracion() { + this.ePreguntasColaboracion!.forEach(pregunta => { + debugger; + if (!pregunta.tipo) { + this.resAbierta.query().subscribe(res => { + debugger; + + this.preguntaIdColaboracion = pregunta.id; + + this.respuestaAbiertaColaboracion = res.body ?? []; + /* const respuesta = res.body ?? []; + + respuesta.forEach( e => { + debugger + + + if (e.epreguntaAbierta?.id == pregunta.id){ + this.respuestaAbierta?.push(e); + } + /!*debugger + this.eRespuestaAbierta?.push(respuesta.filter(e.ePreguntaAbierta?.id == pregunta.id));*!/ + }) +*/ + console.log(this.respuestaAbiertaColaboracion); + }); + } + }); + } + + exportReportesGeneralesUserExcel(): void { + /*REPORTES GENERALES: + *Cantidad de encuestas creadas + * cantidad de personas que han completado las encuestas + *Cantidad de encuestas por estado + * Cantidad de encuestas por acceso + * */ + + if (!this.reportsGeneral) { + const _sheets = [ + 'Cantidad encuestas creadas', + 'Cantidad usuarios encuestas', + 'Cantidad encuestas por estado', + 'Cantidad encuestas por acceso', + ]; + + const _reporteEncuestasCreadas = [{ total_encuestas: this.cantEncuestas }]; + + const _reporteUsuariosCompletadas = [{ total_usuarios: this.cantPersonas }]; + + const _reporteEncuestasEstado = [ + { total_borrador: this.cantPersonas, total_activas: this.cantActivas, total_finalizadas: this.cantFinalizadas }, + ]; + + const _reporteEncuestasAcceso = [{ total_publicas: this.cantPublicas, total_privadas: this.cantPrivadas }]; + + const _excelFinalData = [_reporteEncuestasCreadas, _reporteUsuariosCompletadas, _reporteEncuestasEstado, _reporteEncuestasAcceso]; + const _fileName = 'reportes_generales_encuestas_DataSurvey'; + exportAsExcelFile(_sheets, _excelFinalData, _fileName); + } + } + + exportReportesGeneralesUserPDF(): void { + /*REPORTES GENERALES: + *Cantidad de encuestas creadas + * cantidad de personas que han completado las encuestas + *Cantidad de encuestas por estado + * Cantidad de encuestas por acceso + * */ + + if (!this.reportsGeneral) { + const doc = new jsPDF(); + const _fileName = 'reportes_generales_encuestas_datasurvey'; + let _docData, _headers, _docHeaders, _docTitle; + + debugger; + const _reporteEncuestasCreadas = [{ total_encuestas_creadas: this.cantEncuestas!.toString() }]; + debugger; + + _docData = generatePDFTableData(_reporteEncuestasCreadas); + _headers = ['total_encuestas_creadas']; + _docHeaders = createPDFTableHeaders(_headers); + _docTitle = 'Reporte General Cantidad Encuestas Creadas'; + + generatePDFTable(doc, _docData, _docHeaders, _docTitle); + doc.addPage('p'); + + const _reporteUsuariosCompletadas = [{ total_usuarios_completados: this.cantPersonas.toString() }]; + _docData = generatePDFTableData(_reporteUsuariosCompletadas); + _headers = ['total_usuarios_completados']; + _docHeaders = createPDFTableHeaders(_headers); + _docTitle = 'Reporte General Cantidad Usuarios'; + + generatePDFTable(doc, _docData, _docHeaders, _docTitle); + doc.addPage('p'); + + const _reporteEncuestasEstado = [ + { + total_borrador: this.cantPersonas.toString(), + total_activas: this.cantActivas.toString(), + total_finalizadas: this.cantFinalizadas.toString(), + }, + ]; + _docData = generatePDFTableData(_reporteEncuestasEstado); + _headers = ['total_borrador', 'total_activas', 'total_finalizadas']; + _docHeaders = createPDFTableHeaders(_headers); + _docTitle = 'Reporte General Cantidad Encuestas Por Estado'; + + generatePDFTable(doc, _docData, _docHeaders, _docTitle); + doc.addPage('p'); + + const _reporteEncuestasAcceso = [{ total_publicas: this.cantPublicas.toString(), total_privadas: this.cantPrivadas.toString() }]; + _docData = generatePDFTableData(_reporteEncuestasAcceso); + _headers = ['total_publicas', 'total_privadas']; + _docHeaders = createPDFTableHeaders(_headers); + _docTitle = 'Reporte General Cantidad Encuestas Por Acceso'; + + generatePDFTable(doc, _docData, _docHeaders, _docTitle); + doc.addPage('p'); + + saveGeneratedPDF(doc, _fileName); + } + } } diff --git a/src/main/webapp/app/entities/encuesta/list/encuesta.component.html b/src/main/webapp/app/entities/encuesta/list/encuesta.component.html index 4c1d9c9..7b14d3f 100644 --- a/src/main/webapp/app/entities/encuesta/list/encuesta.component.html +++ b/src/main/webapp/app/entities/encuesta/list/encuesta.component.html @@ -79,11 +79,11 @@
-
+

No posee encuestas

-

Incie a explorar, colaborar y adquirir datos al crear encuestas mundialmente

+

Inicie a explorar, colaborar y adquirir datos al crear encuestas mundialmente

diff --git a/src/main/webapp/app/entities/plantilla/list/plantilla.component.html b/src/main/webapp/app/entities/plantilla/list/plantilla.component.html index 4c2782e..5a0e239 100644 --- a/src/main/webapp/app/entities/plantilla/list/plantilla.component.html +++ b/src/main/webapp/app/entities/plantilla/list/plantilla.component.html @@ -59,8 +59,13 @@ --> -
- No templates found +
+
+ +

No existen plantillas

+

Inicie creando plantillas de encuestas para publicarlas en la tienda

+
+
diff --git a/src/main/webapp/app/entities/tienda/listar-tienda-plantilla/listar-tienda-plantilla.component.html b/src/main/webapp/app/entities/tienda/listar-tienda-plantilla/listar-tienda-plantilla.component.html index 3dd2031..7d7ce96 100644 --- a/src/main/webapp/app/entities/tienda/listar-tienda-plantilla/listar-tienda-plantilla.component.html +++ b/src/main/webapp/app/entities/tienda/listar-tienda-plantilla/listar-tienda-plantilla.component.html @@ -1,21 +1,34 @@
-
-
-

¡Compre y utilice las plantillas!

+
+
+
+
+
+
+

¡Compre y utilice las plantillas!

-

Puede comprar sus plantillas mediante PayPal

+

+ Puede comprar sus plantillas mediante PayPal + +

+
+
+
+
-
-
+
- +
-
diff --git a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html index 167dae8..2da950d 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html +++ b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html @@ -43,7 +43,7 @@
-
+
Usuario
diff --git a/src/main/webapp/app/home/home.component.scss b/src/main/webapp/app/home/home.component.scss index d56f7c7..be2e72f 100644 --- a/src/main/webapp/app/home/home.component.scss +++ b/src/main/webapp/app/home/home.component.scss @@ -2,13 +2,13 @@ Main page styles ========================================================================== */ -.hipster { - display: inline-block; - width: 347px; - height: 497px; - background: url('../../content/images/jhipster_family_member_0.svg') no-repeat center top; - background-size: contain; -} +// .hipster { +// display: inline-block; +// width: 347px; +// height: 497px; +// background: url('../../content/images/jhipster_family_member_0.svg') no-repeat center top; +// background-size: contain; +// } .bg-img-cover { background-position: center; @@ -206,16 +206,16 @@ Main page styles } /* wait autoprefixer update to allow simple generation of high pixel density media query */ -@media only screen and (-webkit-min-device-pixel-ratio: 2), - only screen and (-moz-min-device-pixel-ratio: 2), - only screen and (-o-min-device-pixel-ratio: 2/1), - only screen and (min-resolution: 192dpi), - only screen and (min-resolution: 2dppx) { - .hipster { - background: url('../../content/images/jhipster_family_member_0.svg') no-repeat center top; - background-size: contain; - } -} +// @media only screen and (-webkit-min-device-pixel-ratio: 2), +// only screen and (-moz-min-device-pixel-ratio: 2), +// only screen and (-o-min-device-pixel-ratio: 2/1), +// only screen and (min-resolution: 192dpi), +// only screen and (min-resolution: 2dppx) { +// .hipster { +// background: url('../../content/images/jhipster_family_member_0.svg') no-repeat center top; +// background-size: contain; +// } +// } .icon-stack { display: inline-flex; diff --git a/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts b/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts index 08121cf..c477259 100644 --- a/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts +++ b/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts @@ -26,7 +26,7 @@ export const ADMIN_ROUTES: RouteInfo[] = [ { path: '/pagina-principal', title: 'Inicio', type: 'link', icontype: 'nc-icon nc-world-2' }, { path: '/dashboard/admin', - title: 'Dashboard', + title: 'Reportes', type: 'link', icontype: 'nc-icon nc-chart-bar-32', }, diff --git a/src/main/webapp/app/pagina-principal/pagina-principal.component.html b/src/main/webapp/app/pagina-principal/pagina-principal.component.html index 95b744d..1caba47 100644 --- a/src/main/webapp/app/pagina-principal/pagina-principal.component.html +++ b/src/main/webapp/app/pagina-principal/pagina-principal.component.html @@ -1,6 +1,6 @@