registrar respuestas
This commit is contained in:
parent
aa5fddb08e
commit
1c9f45db89
|
@ -80,6 +80,14 @@ public class EPreguntaCerradaOpcionResource {
|
||||||
.body(result);
|
.body(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/e-pregunta-cerrada-opcions/count/{id}")
|
||||||
|
public ResponseEntity<EPreguntaCerradaOpcion> updateOpcionCount(@PathVariable(value = "id", required = true) final Long id) {
|
||||||
|
EPreguntaCerradaOpcion updatedOpcion = getEPreguntaCerradaOpcion(id).getBody();
|
||||||
|
int cantidad = updatedOpcion.getCantidad();
|
||||||
|
updatedOpcion.setCantidad(cantidad += 1);
|
||||||
|
return ResponseEntity.ok(updatedOpcion);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@code PUT /e-pregunta-cerrada-opcions/:id} : Updates an existing ePreguntaCerradaOpcion.
|
* {@code PUT /e-pregunta-cerrada-opcions/:id} : Updates an existing ePreguntaCerradaOpcion.
|
||||||
*
|
*
|
||||||
|
|
|
@ -16,6 +16,10 @@ export class EPreguntaCerradaOpcionService {
|
||||||
|
|
||||||
constructor(protected http: HttpClient, protected applicationConfigService: ApplicationConfigService) {}
|
constructor(protected http: HttpClient, protected applicationConfigService: ApplicationConfigService) {}
|
||||||
|
|
||||||
|
updateCount(id: any) {
|
||||||
|
return this.http.post(`${this.resourceUrl}/count/${id}`, id, { observe: 'response' });
|
||||||
|
}
|
||||||
|
|
||||||
create(ePreguntaCerradaOpcion: IEPreguntaCerradaOpcion, preguntaId?: number): Observable<EntityResponseType> {
|
create(ePreguntaCerradaOpcion: IEPreguntaCerradaOpcion, preguntaId?: number): Observable<EntityResponseType> {
|
||||||
return this.http.post<IEPreguntaCerradaOpcion>(`${this.resourceUrl}/${preguntaId}`, ePreguntaCerradaOpcion, { observe: 'response' });
|
return this.http.post<IEPreguntaCerradaOpcion>(`${this.resourceUrl}/${preguntaId}`, ePreguntaCerradaOpcion, { observe: 'response' });
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,10 @@ import { EPreguntaCerradaOpcionService } from '../../e-pregunta-cerrada-opcion/s
|
||||||
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';
|
import { PreguntaCerradaTipo } from 'app/entities/enumerations/pregunta-cerrada-tipo.model';
|
||||||
|
import { EPreguntaAbiertaRespuesta } from 'app/entities/e-pregunta-abierta-respuesta/e-pregunta-abierta-respuesta.model';
|
||||||
|
import { Observable } from 'rxjs/internal/Observable';
|
||||||
|
import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'jhi-complete',
|
selector: 'jhi-complete',
|
||||||
|
@ -36,6 +38,7 @@ export class EncuestaCompleteComponent implements OnInit {
|
||||||
selectedOpenOptions: any;
|
selectedOpenOptions: any;
|
||||||
selectedSingleOptions: any;
|
selectedSingleOptions: any;
|
||||||
selectedMultiOptions: any;
|
selectedMultiOptions: any;
|
||||||
|
error: boolean;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
protected activatedRoute: ActivatedRoute,
|
protected activatedRoute: ActivatedRoute,
|
||||||
|
@ -46,12 +49,14 @@ export class EncuestaCompleteComponent implements OnInit {
|
||||||
protected ePreguntaCerradaService: EPreguntaCerradaService,
|
protected ePreguntaCerradaService: EPreguntaCerradaService,
|
||||||
protected ePreguntaCerradaOpcionService: EPreguntaCerradaOpcionService,
|
protected ePreguntaCerradaOpcionService: EPreguntaCerradaOpcionService,
|
||||||
protected ePreguntaAbiertaService: EPreguntaAbiertaService,
|
protected ePreguntaAbiertaService: EPreguntaAbiertaService,
|
||||||
protected ePreguntaAbiertaAbiertaRespuestaService: EPreguntaAbiertaRespuestaService
|
protected ePreguntaAbiertaRespuestaService: EPreguntaAbiertaRespuestaService
|
||||||
) {
|
) {
|
||||||
this.selectedOpenOptions = {};
|
this.selectedOpenOptions = {};
|
||||||
this.selectedSingleOptions = {};
|
this.selectedSingleOptions = {};
|
||||||
this.selectedMultiOptions = [];
|
this.selectedMultiOptions = [];
|
||||||
|
this.error = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.activatedRoute.data.subscribe(({ encuesta }) => {
|
this.activatedRoute.data.subscribe(({ encuesta }) => {
|
||||||
if (encuesta) {
|
if (encuesta) {
|
||||||
|
@ -171,5 +176,54 @@ export class EncuestaCompleteComponent implements OnInit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
finish(): void {}
|
finish(): void {
|
||||||
|
this.getOpenQuestionAnswers();
|
||||||
|
this.registerOpenQuestionAnswers();
|
||||||
|
this.updateClosedOptionsCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
updateClosedOptionsCount() {
|
||||||
|
for (let key in this.selectedSingleOptions) {
|
||||||
|
this.subscribeToSaveResponse(this.ePreguntaCerradaOpcionService.updateCount(this.selectedSingleOptions[key]));
|
||||||
|
}
|
||||||
|
this.selectedMultiOptions.forEach((option: any) => {
|
||||||
|
this.subscribeToSaveResponse(this.ePreguntaCerradaOpcionService.updateCount(option));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
registerOpenQuestionAnswers() {
|
||||||
|
for (let id in this.selectedOpenOptions) {
|
||||||
|
let pregunta = this.ePreguntas!.find(p => {
|
||||||
|
return p.id == id;
|
||||||
|
});
|
||||||
|
let newRespuesta = new EPreguntaAbiertaRespuesta(0, this.selectedOpenOptions[id], pregunta);
|
||||||
|
this.subscribeToSaveResponse(this.ePreguntaAbiertaRespuestaService.create(newRespuesta));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected onSaveFinalize(): void {
|
||||||
|
// this.isSaving = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
processError(response: HttpErrorResponse): void {
|
||||||
|
if (response.status === 400) {
|
||||||
|
this.error = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected subscribeToSaveResponse(result: Observable<HttpResponse<any>>): void {
|
||||||
|
result.pipe(finalize(() => this.onSaveFinalize())).subscribe(
|
||||||
|
() => this.previousState(),
|
||||||
|
response => this.processError(response)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
getOpenQuestionAnswers() {
|
||||||
|
this.ePreguntas!.forEach(pregunta => {
|
||||||
|
if (!pregunta.tipo) {
|
||||||
|
let textValue = (document.getElementById(pregunta.id) as HTMLInputElement).value;
|
||||||
|
this.selectedOpenOptions[pregunta.id] = textValue;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue