guardar en memoria info sobre opciones seleccionadas

This commit is contained in:
Eduardo Quiros 2021-08-06 03:08:36 -06:00
parent 48d7ad03b8
commit 622233ce3f
No known key found for this signature in database
GPG Key ID: B77F36C3F12720B4
2 changed files with 66 additions and 14 deletions

View File

@ -56,6 +56,8 @@
<div class="radio" *ngIf="ePregunta.tipo === 'SINGLE'"> <div class="radio" *ngIf="ePregunta.tipo === 'SINGLE'">
<input <input
type="radio" type="radio"
(change)="onCheck(ePreguntaOpcionFinal)"
[value]="ePreguntaOpcionFinal.id"
style="border-radius: 3px" style="border-radius: 3px"
name="{{ 'radio' + ePregunta.id }}" name="{{ 'radio' + ePregunta.id }}"
id="{{ 'radio' + ePreguntaOpcionFinal.id }}" id="{{ 'radio' + ePreguntaOpcionFinal.id }}"
@ -63,7 +65,12 @@
<label for="{{ 'radio' + ePreguntaOpcionFinal.id }}">{{ ePreguntaOpcionFinal.nombre }}</label> <label for="{{ 'radio' + ePreguntaOpcionFinal.id }}">{{ ePreguntaOpcionFinal.nombre }}</label>
</div> </div>
<div class="checkbox" *ngIf="ePregunta.tipo === 'MULTIPLE'"> <div class="checkbox" *ngIf="ePregunta.tipo === 'MULTIPLE'">
<input type="checkbox" style="border-radius: 3px" id="{{ 'checkbox' + ePreguntaOpcionFinal.id }}" /> <input
(change)="toggleOption(ePreguntaOpcionFinal)"
type="checkbox"
style="border-radius: 3px"
id="{{ 'checkbox' + ePreguntaOpcionFinal.id }}"
/>
<label for="{{ 'checkbox' + ePreguntaOpcionFinal.id }}">{{ ePreguntaOpcionFinal.nombre }}</label> <label for="{{ 'checkbox' + ePreguntaOpcionFinal.id }}">{{ ePreguntaOpcionFinal.nombre }}</label>
</div> </div>
</div> </div>
@ -76,6 +83,7 @@
</div> </div>
</div> </div>
</div> </div>
<button class="ds-btn ds-btn--primary" (click)="finish()">Terminar</button>
</div> </div>
<div <div
class="modal fade ds-modal" class="modal fade ds-modal"

View File

@ -11,10 +11,13 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { IEPreguntaCerrada } from 'app/entities/e-pregunta-cerrada/e-pregunta-cerrada.model'; import { IEPreguntaCerrada } from 'app/entities/e-pregunta-cerrada/e-pregunta-cerrada.model';
import { EPreguntaCerradaService } from 'app/entities/e-pregunta-cerrada/service/e-pregunta-cerrada.service'; import { EPreguntaCerradaService } from 'app/entities/e-pregunta-cerrada/service/e-pregunta-cerrada.service';
import { EPreguntaAbiertaService } from '../../e-pregunta-abierta/service/e-pregunta-abierta.service'; import { EPreguntaAbiertaService } from '../../e-pregunta-abierta/service/e-pregunta-abierta.service';
import { EPreguntaAbiertaRespuestaService } from '../../e-pregunta-abierta-respuesta/service/e-pregunta-abierta-respuesta.service';
import { EPreguntaCerradaOpcionService } from '../../e-pregunta-cerrada-opcion/service/e-pregunta-cerrada-opcion.service'; import { EPreguntaCerradaOpcionService } from '../../e-pregunta-cerrada-opcion/service/e-pregunta-cerrada-opcion.service';
import { faStar, faQuestion } from '@fortawesome/free-solid-svg-icons'; import { faStar, faQuestion } from '@fortawesome/free-solid-svg-icons';
import { AccesoEncuesta } from 'app/entities/enumerations/acceso-encuesta.model'; import { AccesoEncuesta } from 'app/entities/enumerations/acceso-encuesta.model';
import { EncuestaPasswordDialogComponent } from '../encuesta-password-dialog/encuesta-password-dialog.component'; import { EncuestaPasswordDialogComponent } from '../encuesta-password-dialog/encuesta-password-dialog.component';
import { EPreguntaCerradaOpcion } from 'app/entities/e-pregunta-cerrada-opcion/e-pregunta-cerrada-opcion.model';
import { PreguntaCerradaTipo } from 'app/entities/enumerations/pregunta-cerrada-tipo.model';
@Component({ @Component({
selector: 'jhi-complete', selector: 'jhi-complete',
@ -30,6 +33,9 @@ export class EncuestaCompleteComponent implements OnInit {
ePreguntas?: any[]; ePreguntas?: any[];
ePreguntasOpciones?: any[]; ePreguntasOpciones?: any[];
isLocked?: boolean; isLocked?: boolean;
selectedOpenOptions: any;
selectedSingleOptions: any;
selectedMultiOptions: any;
constructor( constructor(
protected activatedRoute: ActivatedRoute, protected activatedRoute: ActivatedRoute,
@ -39,9 +45,13 @@ export class EncuestaCompleteComponent implements OnInit {
protected modalService: NgbModal, protected modalService: NgbModal,
protected ePreguntaCerradaService: EPreguntaCerradaService, protected ePreguntaCerradaService: EPreguntaCerradaService,
protected ePreguntaCerradaOpcionService: EPreguntaCerradaOpcionService, protected ePreguntaCerradaOpcionService: EPreguntaCerradaOpcionService,
protected ePreguntaAbiertaService: EPreguntaAbiertaService protected ePreguntaAbiertaService: EPreguntaAbiertaService,
) {} protected ePreguntaAbiertaAbiertaRespuestaService: EPreguntaAbiertaRespuestaService
) {
this.selectedOpenOptions = {};
this.selectedSingleOptions = {};
this.selectedMultiOptions = [];
}
ngOnInit(): void { ngOnInit(): void {
this.activatedRoute.data.subscribe(({ encuesta }) => { this.activatedRoute.data.subscribe(({ encuesta }) => {
if (encuesta) { if (encuesta) {
@ -54,6 +64,11 @@ export class EncuestaCompleteComponent implements OnInit {
this.loadAll(); this.loadAll();
} }
}); });
for (let pregunta of this.ePreguntas!) {
if (pregunta.tipo && pregunta.tipo === PreguntaCerradaTipo.SINGLE) {
this.selectedSingleOptions[pregunta.id] = null;
}
}
} }
verifyPassword(): boolean { verifyPassword(): boolean {
@ -74,18 +89,22 @@ export class EncuestaCompleteComponent implements OnInit {
} }
initListeners(): void { initListeners(): void {
const checkboxes = document.getElementsByClassName('ds-survey--checkbox'); const questions = document.getElementsByClassName('ds-survey--question-wrapper');
for (let i = 0; i < checkboxes.length; i++) { for (let i = 0; i < questions.length; i++) {
checkboxes[i].addEventListener('click', e => { if (questions[i].classList.contains('ds-survey--closed-option')) {
questions[i].addEventListener('click', e => {
if ((e.target as HTMLInputElement).checked) { if ((e.target as HTMLInputElement).checked) {
(e.target as HTMLElement).offsetParent!.classList.add('ds-survey--closed-option--active'); (e.target as HTMLElement).offsetParent!.classList.add('ds-survey--closed-option--active');
(e.target as HTMLElement).id;
debugger; debugger;
} else { } else {
(e.target as HTMLElement).offsetParent!.classList.remove('ds-survey--closed-option--active'); (e.target as HTMLElement).offsetParent!.classList.remove('ds-survey--closed-option--active');
debugger;
} }
}); });
} }
} }
}
trackId(_index: number, item: IEPreguntaCerrada): number { trackId(_index: number, item: IEPreguntaCerrada): number {
return item.id!; return item.id!;
@ -137,4 +156,29 @@ export class EncuestaCompleteComponent implements OnInit {
previousState(): void { previousState(): void {
window.history.back(); window.history.back();
} }
onCheck(preguntaOpcion: { epreguntaCerrada: any; id: any }): void {
this.selectedSingleOptions[preguntaOpcion.epreguntaCerrada!.id!] = preguntaOpcion.id;
console.log(this.selectedSingleOptions);
debugger;
}
toggleOption(ePreguntaOpcionFinal: { id: any }): void {
if (this.selectedMultiOptions.includes(ePreguntaOpcionFinal.id)) {
for (let i = 0; i < this.selectedMultiOptions.length; i++) {
if (this.selectedMultiOptions[i] === ePreguntaOpcionFinal.id) {
this.selectedMultiOptions.splice(i, 1);
}
}
} else {
this.selectedMultiOptions.push(ePreguntaOpcionFinal.id);
}
debugger;
}
finish(): void {
console.log(this.selectedMultiOptions);
console.log(this.selectedSingleOptions);
console.log(this.selectedOpenOptions);
}
} }