merge conflict fix
| 
						 | 
				
			
			@ -2,11 +2,13 @@ package org.datasurvey.web.rest;
 | 
			
		|||
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URISyntaxException;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
import org.datasurvey.domain.EPreguntaCerrada;
 | 
			
		||||
import org.datasurvey.domain.EPreguntaCerradaOpcion;
 | 
			
		||||
import org.datasurvey.repository.EPreguntaCerradaOpcionRepository;
 | 
			
		||||
import org.datasurvey.service.EPreguntaCerradaOpcionQueryService;
 | 
			
		||||
| 
						 | 
				
			
			@ -58,10 +60,15 @@ public class EPreguntaCerradaOpcionResource {
 | 
			
		|||
     * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new ePreguntaCerradaOpcion, or with status {@code 400 (Bad Request)} if the ePreguntaCerradaOpcion has already an ID.
 | 
			
		||||
     * @throws URISyntaxException if the Location URI syntax is incorrect.
 | 
			
		||||
     */
 | 
			
		||||
    @PostMapping("/e-pregunta-cerrada-opcions")
 | 
			
		||||
    @PostMapping("/e-pregunta-cerrada-opcions/{id}")
 | 
			
		||||
    public ResponseEntity<EPreguntaCerradaOpcion> createEPreguntaCerradaOpcion(
 | 
			
		||||
        @Valid @RequestBody EPreguntaCerradaOpcion ePreguntaCerradaOpcion
 | 
			
		||||
        @Valid @RequestBody EPreguntaCerradaOpcion ePreguntaCerradaOpcion,
 | 
			
		||||
        @PathVariable(value = "id", required = false) final Long id
 | 
			
		||||
    ) throws URISyntaxException {
 | 
			
		||||
        EPreguntaCerrada ePreguntaCerrada = new EPreguntaCerrada();
 | 
			
		||||
        ePreguntaCerrada.setId(id);
 | 
			
		||||
        ePreguntaCerradaOpcion.setEPreguntaCerrada(ePreguntaCerrada);
 | 
			
		||||
 | 
			
		||||
        log.debug("REST request to save EPreguntaCerradaOpcion : {}", ePreguntaCerradaOpcion);
 | 
			
		||||
        if (ePreguntaCerradaOpcion.getId() != null) {
 | 
			
		||||
            throw new BadRequestAlertException("A new ePreguntaCerradaOpcion cannot already have an ID", ENTITY_NAME, "idexists");
 | 
			
		||||
| 
						 | 
				
			
			@ -76,7 +83,7 @@ public class EPreguntaCerradaOpcionResource {
 | 
			
		|||
    /**
 | 
			
		||||
     * {@code PUT  /e-pregunta-cerrada-opcions/:id} : Updates an existing ePreguntaCerradaOpcion.
 | 
			
		||||
     *
 | 
			
		||||
     * @param id the id of the ePreguntaCerradaOpcion to save.
 | 
			
		||||
     * @param id                     the id of the ePreguntaCerradaOpcion to save.
 | 
			
		||||
     * @param ePreguntaCerradaOpcion the ePreguntaCerradaOpcion to update.
 | 
			
		||||
     * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated ePreguntaCerradaOpcion,
 | 
			
		||||
     * or with status {@code 400 (Bad Request)} if the ePreguntaCerradaOpcion is not valid,
 | 
			
		||||
| 
						 | 
				
			
			@ -110,7 +117,7 @@ public class EPreguntaCerradaOpcionResource {
 | 
			
		|||
    /**
 | 
			
		||||
     * {@code PATCH  /e-pregunta-cerrada-opcions/:id} : Partial updates given fields of an existing ePreguntaCerradaOpcion, field will ignore if it is null
 | 
			
		||||
     *
 | 
			
		||||
     * @param id the id of the ePreguntaCerradaOpcion to save.
 | 
			
		||||
     * @param id                     the id of the ePreguntaCerradaOpcion to save.
 | 
			
		||||
     * @param ePreguntaCerradaOpcion the ePreguntaCerradaOpcion to update.
 | 
			
		||||
     * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated ePreguntaCerradaOpcion,
 | 
			
		||||
     * or with status {@code 400 (Bad Request)} if the ePreguntaCerradaOpcion is not valid,
 | 
			
		||||
| 
						 | 
				
			
			@ -196,4 +203,15 @@ public class EPreguntaCerradaOpcionResource {
 | 
			
		|||
            .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString()))
 | 
			
		||||
            .build();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PostMapping("/e-pregunta-cerrada-opcions/deleteMany")
 | 
			
		||||
    public ResponseEntity<Void> deleteManyEPreguntaCerradaOpcion(@Valid @RequestBody int[] ids) {
 | 
			
		||||
        for (int id : ids) {
 | 
			
		||||
            ePreguntaCerradaOpcionService.delete((long) id);
 | 
			
		||||
        }
 | 
			
		||||
        return ResponseEntity
 | 
			
		||||
            .noContent()
 | 
			
		||||
            .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, Arrays.toString(ids)))
 | 
			
		||||
            .build();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,14 +2,21 @@ package org.datasurvey.web.rest;
 | 
			
		|||
 | 
			
		||||
import java.net.URI;
 | 
			
		||||
import java.net.URISyntaxException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
import java.util.stream.Stream;
 | 
			
		||||
import javax.validation.Valid;
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
import org.datasurvey.domain.EPreguntaAbierta;
 | 
			
		||||
import org.datasurvey.domain.EPreguntaCerrada;
 | 
			
		||||
import org.datasurvey.domain.EPreguntaCerradaOpcion;
 | 
			
		||||
import org.datasurvey.domain.Encuesta;
 | 
			
		||||
import org.datasurvey.domain.enumeration.AccesoEncuesta;
 | 
			
		||||
import org.datasurvey.repository.EncuestaRepository;
 | 
			
		||||
import org.datasurvey.service.*;
 | 
			
		||||
import org.datasurvey.service.EncuestaQueryService;
 | 
			
		||||
import org.datasurvey.service.EncuestaService;
 | 
			
		||||
import org.datasurvey.service.MailService;
 | 
			
		||||
| 
						 | 
				
			
			@ -45,16 +52,28 @@ public class EncuestaResource {
 | 
			
		|||
 | 
			
		||||
    private final MailService mailService;
 | 
			
		||||
 | 
			
		||||
    private final EPreguntaCerradaService ePreguntaCerradaService;
 | 
			
		||||
 | 
			
		||||
    private final EPreguntaAbiertaService ePreguntaAbiertaService;
 | 
			
		||||
 | 
			
		||||
    private final EPreguntaCerradaOpcionService ePreguntaCerradaOpcionService;
 | 
			
		||||
 | 
			
		||||
    public EncuestaResource(
 | 
			
		||||
        EncuestaService encuestaService,
 | 
			
		||||
        EncuestaRepository encuestaRepository,
 | 
			
		||||
        EncuestaQueryService encuestaQueryService,
 | 
			
		||||
        MailService mailService
 | 
			
		||||
        MailService mailService,
 | 
			
		||||
        EPreguntaCerradaService ePreguntaCerradaService,
 | 
			
		||||
        EPreguntaAbiertaService ePreguntaAbiertaService,
 | 
			
		||||
        EPreguntaCerradaOpcionService ePreguntaCerradaOpcionService
 | 
			
		||||
    ) {
 | 
			
		||||
        this.encuestaService = encuestaService;
 | 
			
		||||
        this.encuestaRepository = encuestaRepository;
 | 
			
		||||
        this.encuestaQueryService = encuestaQueryService;
 | 
			
		||||
        this.mailService = mailService;
 | 
			
		||||
        this.ePreguntaCerradaService = ePreguntaCerradaService;
 | 
			
		||||
        this.ePreguntaAbiertaService = ePreguntaAbiertaService;
 | 
			
		||||
        this.ePreguntaCerradaOpcionService = ePreguntaCerradaOpcionService;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +99,7 @@ public class EncuestaResource {
 | 
			
		|||
    /**
 | 
			
		||||
     * {@code PUT  /encuestas/:id} : Updates an existing encuesta.
 | 
			
		||||
     *
 | 
			
		||||
     * @param id the id of the encuesta to save.
 | 
			
		||||
     * @param id       the id of the encuesta to save.
 | 
			
		||||
     * @param encuesta the encuesta to update.
 | 
			
		||||
     * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated encuesta,
 | 
			
		||||
     * or with status {@code 400 (Bad Request)} if the encuesta is not valid,
 | 
			
		||||
| 
						 | 
				
			
			@ -120,7 +139,7 @@ public class EncuestaResource {
 | 
			
		|||
    /**
 | 
			
		||||
     * {@code PATCH  /encuestas/:id} : Partial updates given fields of an existing encuesta, field will ignore if it is null
 | 
			
		||||
     *
 | 
			
		||||
     * @param id the id of the encuesta to save.
 | 
			
		||||
     * @param id       the id of the encuesta to save.
 | 
			
		||||
     * @param encuesta the encuesta to update.
 | 
			
		||||
     * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the updated encuesta,
 | 
			
		||||
     * or with status {@code 400 (Bad Request)} if the encuesta is not valid,
 | 
			
		||||
| 
						 | 
				
			
			@ -166,6 +185,55 @@ public class EncuestaResource {
 | 
			
		|||
        return ResponseEntity.ok().body(entityList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/encuestas/preguntas/{id}")
 | 
			
		||||
    public ResponseEntity<List<Object>> getPreguntasByIdEncuesta(@PathVariable Long id) {
 | 
			
		||||
        List<EPreguntaCerrada> preguntasCerradas = ePreguntaCerradaService.findAll();
 | 
			
		||||
        List<EPreguntaAbierta> preguntasAbiertas = ePreguntaAbiertaService.findAll();
 | 
			
		||||
        List<Object> preguntas = Stream.concat(preguntasCerradas.stream(), preguntasAbiertas.stream()).collect(Collectors.toList());
 | 
			
		||||
        List<Object> preguntasFiltered = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        for (Object obj : preguntas) {
 | 
			
		||||
            if (obj.getClass() == EPreguntaCerrada.class) {
 | 
			
		||||
                if (((EPreguntaCerrada) obj).getEncuesta() != null) {
 | 
			
		||||
                    if (((EPreguntaCerrada) obj).getEncuesta().getId().equals(id)) {
 | 
			
		||||
                        preguntasFiltered.add(obj);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            } else if (obj.getClass() == EPreguntaAbierta.class) {
 | 
			
		||||
                if (((EPreguntaAbierta) obj).getEncuesta() != null) {
 | 
			
		||||
                    if (((EPreguntaAbierta) obj).getEncuesta().getId().equals(id)) {
 | 
			
		||||
                        preguntasFiltered.add(obj);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return ResponseEntity.ok().body(preguntasFiltered);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @GetMapping("/encuestas/preguntas-opciones/{id}")
 | 
			
		||||
    public ResponseEntity<List<List<EPreguntaCerradaOpcion>>> getPreguntaCerradaOpcionByIdEncuesta(@PathVariable Long id) {
 | 
			
		||||
        List<List<EPreguntaCerradaOpcion>> res = new ArrayList<>();
 | 
			
		||||
        List<EPreguntaCerrada> preguntasCerradas = ePreguntaCerradaService.findAll();
 | 
			
		||||
        List<EPreguntaCerrada> preguntasCerradasFiltered = preguntasCerradas
 | 
			
		||||
            .stream()
 | 
			
		||||
            .filter(p -> Objects.nonNull(p.getEncuesta()))
 | 
			
		||||
            .filter(p -> p.getEncuesta().getId().equals(id))
 | 
			
		||||
            .collect(Collectors.toList());
 | 
			
		||||
        List<EPreguntaCerradaOpcion> opciones = ePreguntaCerradaOpcionService.findAll();
 | 
			
		||||
 | 
			
		||||
        for (EPreguntaCerrada ePreguntaCerrada : preguntasCerradasFiltered) {
 | 
			
		||||
            long preguntaCerradaId = ePreguntaCerrada.getId();
 | 
			
		||||
            List<EPreguntaCerradaOpcion> opcionesFiltered = opciones
 | 
			
		||||
                .stream()
 | 
			
		||||
                .filter(o -> Objects.nonNull(o.getEPreguntaCerrada()))
 | 
			
		||||
                .filter(o -> o.getEPreguntaCerrada().getId().equals(preguntaCerradaId))
 | 
			
		||||
                .collect(Collectors.toList());
 | 
			
		||||
            res.add(opcionesFiltered);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return ResponseEntity.ok().body(res);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * {@code GET  /encuestas/count} : count all the encuestas.
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,8 +16,8 @@ export class EPreguntaCerradaOpcionService {
 | 
			
		|||
 | 
			
		||||
  constructor(protected http: HttpClient, protected applicationConfigService: ApplicationConfigService) {}
 | 
			
		||||
 | 
			
		||||
  create(ePreguntaCerradaOpcion: IEPreguntaCerradaOpcion): Observable<EntityResponseType> {
 | 
			
		||||
    return this.http.post<IEPreguntaCerradaOpcion>(this.resourceUrl, ePreguntaCerradaOpcion, { observe: 'response' });
 | 
			
		||||
  create(ePreguntaCerradaOpcion: IEPreguntaCerradaOpcion, preguntaId?: number): Observable<EntityResponseType> {
 | 
			
		||||
    return this.http.post<IEPreguntaCerradaOpcion>(`${this.resourceUrl}/${preguntaId}`, ePreguntaCerradaOpcion, { observe: 'response' });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  update(ePreguntaCerradaOpcion: IEPreguntaCerradaOpcion): Observable<EntityResponseType> {
 | 
			
		||||
| 
						 | 
				
			
			@ -49,6 +49,10 @@ export class EPreguntaCerradaOpcionService {
 | 
			
		|||
    return this.http.delete(`${this.resourceUrl}/${id}`, { observe: 'response' });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  deleteMany(ids: number[]): Observable<EntityResponseType> {
 | 
			
		||||
    return this.http.post<IEPreguntaCerradaOpcion>(`${this.resourceUrl}/deleteMany`, ids, { observe: 'response' });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addEPreguntaCerradaOpcionToCollectionIfMissing(
 | 
			
		||||
    ePreguntaCerradaOpcionCollection: IEPreguntaCerradaOpcion[],
 | 
			
		||||
    ...ePreguntaCerradaOpcionsToCheck: (IEPreguntaCerradaOpcion | null | undefined)[]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
<form *ngIf="encuesta" name="deleteForm" (ngSubmit)="confirmDelete(encuesta)">
 | 
			
		||||
<form class="ds-form" *ngIf="encuesta" name="deleteForm" (ngSubmit)="confirmDelete(encuesta!)">
 | 
			
		||||
  <div class="modal-header">
 | 
			
		||||
    <h4 class="modal-title" data-cy="encuestaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4>
 | 
			
		||||
    <h2 class="ds-title" data-cy="encuestaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h2>
 | 
			
		||||
 | 
			
		||||
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -14,11 +14,11 @@
 | 
			
		|||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="modal-footer">
 | 
			
		||||
    <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()">
 | 
			
		||||
      <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
    <button type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal" (click)="cancel()">
 | 
			
		||||
      <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
    </button>
 | 
			
		||||
 | 
			
		||||
    <button id="jhi-confirm-delete-encuesta" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger">
 | 
			
		||||
    <button id="jhi-confirm-delete-encuesta" data-cy="entityConfirmDeleteButton" type="submit" class="ds-btn ds-btn--danger">
 | 
			
		||||
      <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span>
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,8 @@
 | 
			
		|||
import { Component } from '@angular/core';
 | 
			
		||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
 | 
			
		||||
import { EstadoEncuesta } from 'app/entities/enumerations/estado-encuesta.model';
 | 
			
		||||
 | 
			
		||||
import { IEncuesta } from '../encuesta.model';
 | 
			
		||||
import { EncuestaService } from '../service/encuesta.service';
 | 
			
		||||
import { EstadoEncuesta } from 'app/entities/enumerations/estado-encuesta.model';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  templateUrl: './encuesta-delete-dialog.component.html',
 | 
			
		||||
| 
						 | 
				
			
			@ -17,9 +16,9 @@ export class EncuestaDeleteDialogComponent {
 | 
			
		|||
    this.activeModal.dismiss();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  confirmDelete(encuesta: IEncuesta): void {
 | 
			
		||||
    encuesta.estado = EstadoEncuesta.DELETED;
 | 
			
		||||
    this.encuestaService.update(encuesta).subscribe(() => {
 | 
			
		||||
  confirmDelete(encuest: IEncuesta): void {
 | 
			
		||||
    encuest.estado = EstadoEncuesta.DELETED;
 | 
			
		||||
    this.encuestaService.deleteEncuesta(encuest).subscribe(() => {
 | 
			
		||||
      this.activeModal.close('deleted');
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
<form name="deleteForm" (ngSubmit)="confirmDelete()">
 | 
			
		||||
  <div class="modal-header">
 | 
			
		||||
    <h4 class="modal-title" data-cy="encuestaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4>
 | 
			
		||||
 | 
			
		||||
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="modal-body">
 | 
			
		||||
    <jhi-alert-error></jhi-alert-error>
 | 
			
		||||
 | 
			
		||||
    <p id="jhi-delete-encuesta-heading" jhiTranslate="dataSurveyApp.encuesta.delete.deleteoption">
 | 
			
		||||
      Are you sure you want to delete this option?
 | 
			
		||||
    </p>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="modal-footer">
 | 
			
		||||
    <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()">
 | 
			
		||||
      <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
    </button>
 | 
			
		||||
 | 
			
		||||
    <button id="jhi-confirm-delete-encuesta" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger">
 | 
			
		||||
      <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span>
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
</form>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
import { Component } from '@angular/core';
 | 
			
		||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  templateUrl: './encuesta-delete-option-dialog.component.html',
 | 
			
		||||
})
 | 
			
		||||
export class EncuestaDeleteOptionDialogComponent {
 | 
			
		||||
  constructor(protected activeModal: NgbActiveModal) {}
 | 
			
		||||
 | 
			
		||||
  cancel(): void {
 | 
			
		||||
    this.activeModal.dismiss();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  confirmDelete(): void {
 | 
			
		||||
    this.activeModal.close('confirm');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
<form name="deleteForm" (ngSubmit)="confirmDelete()">
 | 
			
		||||
  <div class="modal-header">
 | 
			
		||||
    <h4 class="modal-title" data-cy="encuestaDeleteDialogHeading" jhiTranslate="entity.delete.title">Confirm delete operation</h4>
 | 
			
		||||
 | 
			
		||||
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" (click)="cancel()">×</button>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="modal-body">
 | 
			
		||||
    <jhi-alert-error></jhi-alert-error>
 | 
			
		||||
 | 
			
		||||
    <p id="jhi-delete-encuesta-heading" jhiTranslate="dataSurveyApp.encuesta.delete.deletequestion">
 | 
			
		||||
      Are you sure you want to delete this question?
 | 
			
		||||
    </p>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="modal-footer">
 | 
			
		||||
    <button type="button" class="btn btn-secondary" data-dismiss="modal" (click)="cancel()">
 | 
			
		||||
      <fa-icon icon="ban"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
    </button>
 | 
			
		||||
 | 
			
		||||
    <button id="jhi-confirm-delete-encuesta" data-cy="entityConfirmDeleteButton" type="submit" class="btn btn-danger">
 | 
			
		||||
      <fa-icon icon="times"></fa-icon> <span jhiTranslate="entity.action.delete">Delete</span>
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
</form>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
import { Component } from '@angular/core';
 | 
			
		||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  templateUrl: './encuesta-delete-question-dialog.component.html',
 | 
			
		||||
})
 | 
			
		||||
export class EncuestaDeleteQuestionDialogComponent {
 | 
			
		||||
  constructor(protected activeModal: NgbActiveModal) {}
 | 
			
		||||
 | 
			
		||||
  cancel(): void {
 | 
			
		||||
    this.activeModal.dismiss();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  confirmDelete(): void {
 | 
			
		||||
    this.activeModal.close('confirm');
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7,6 +7,8 @@ import { EncuestaDeleteDialogComponent } from './delete/encuesta-delete-dialog.c
 | 
			
		|||
import { EncuestaRoutingModule } from './route/encuesta-routing.module';
 | 
			
		||||
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
 | 
			
		||||
import { EncuestaPublishDialogComponent } from './encuesta-publish-dialog/encuesta-publish-dialog.component';
 | 
			
		||||
import { EncuestaDeleteQuestionDialogComponent } from './encuesta-delete-question-dialog/encuesta-delete-question-dialog.component';
 | 
			
		||||
import { EncuestaDeleteOptionDialogComponent } from './encuesta-delete-option-dialog/encuesta-delete-option-dialog.component';
 | 
			
		||||
 | 
			
		||||
@NgModule({
 | 
			
		||||
  imports: [SharedModule, EncuestaRoutingModule, FontAwesomeModule],
 | 
			
		||||
| 
						 | 
				
			
			@ -16,6 +18,8 @@ import { EncuestaPublishDialogComponent } from './encuesta-publish-dialog/encues
 | 
			
		|||
    EncuestaUpdateComponent,
 | 
			
		||||
    EncuestaDeleteDialogComponent,
 | 
			
		||||
    EncuestaPublishDialogComponent,
 | 
			
		||||
    EncuestaDeleteQuestionDialogComponent,
 | 
			
		||||
    EncuestaDeleteOptionDialogComponent,
 | 
			
		||||
  ],
 | 
			
		||||
  entryComponents: [EncuestaDeleteDialogComponent],
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,6 +40,45 @@
 | 
			
		|||
    <span jhiTranslate="dataSurveyApp.encuesta.home.notFound">No surveys found</span>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <form class="ds-form">
 | 
			
		||||
    <div class="input-group">
 | 
			
		||||
      <div class="col-3">
 | 
			
		||||
        <div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
 | 
			
		||||
        <input type="text" name="searchString" placeholder="Buscar por nombre..." [(ngModel)]="searchString" />
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="col-3">
 | 
			
		||||
        <div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
 | 
			
		||||
        <select name="accesoEncuestas" id="accesoEncuesta" [(ngModel)]="accesoEncuesta" style="width: 200px">
 | 
			
		||||
          <option value="" selected="selected" disabled="disabled">Filtrar por acceso</option>
 | 
			
		||||
          <option value="">Todos Accesos</option>
 | 
			
		||||
          <option value="Public">Públicas</option>
 | 
			
		||||
          <option value="Private">Privadas</option>
 | 
			
		||||
        </select>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="col-3">
 | 
			
		||||
        <div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
 | 
			
		||||
        <select name="estadoEncuesta" id="estadoEncuesta" [(ngModel)]="estadoEncuesta" style="width: 200px">
 | 
			
		||||
          <option value="" selected="selected" disabled="disabled">Filtrar por estado</option>
 | 
			
		||||
          <option value="">Todos Estados</option>
 | 
			
		||||
          <option value="Draft">Borradores</option>
 | 
			
		||||
          <option value="Active">Activadas</option>
 | 
			
		||||
          <option value="Finished">Finalizadas</option>
 | 
			
		||||
        </select>
 | 
			
		||||
      </div>
 | 
			
		||||
      <!--<div class="col-3">
 | 
			
		||||
          <div class="input-group-addon "><i class="glyphicon glyphicon-search"></i></div>
 | 
			
		||||
          <select id="categoriaEncuesta"  name="categoriaEncuesta" [(ngModel)]="categoriaEncuesta">
 | 
			
		||||
            <option [ngValue]="null" selected>Filtre por categoría</option>
 | 
			
		||||
            <option
 | 
			
		||||
              *ngFor="let categoriaOption of categoriasSharedCollection; trackBy: trackCategoriaById"
 | 
			
		||||
              [ngValue]="categoriaOption.nombre"    >
 | 
			
		||||
              {{ categoriaOption.nombre }}
 | 
			
		||||
            </option>
 | 
			
		||||
          </select>
 | 
			
		||||
        </div>-->
 | 
			
		||||
    </div>
 | 
			
		||||
  </form>
 | 
			
		||||
 | 
			
		||||
  <!-- Lista de Encuestas del Usuario -->
 | 
			
		||||
  <div class="ds-list" (contextmenu)="openContextMenu($event)" *ngIf="!isAdmin()">
 | 
			
		||||
    <!-- Context Menu -->
 | 
			
		||||
| 
						 | 
				
			
			@ -85,17 +124,22 @@
 | 
			
		|||
        </div>
 | 
			
		||||
        <div class="ds-contextmenu__divider" id="contextmenu-delete--separator">
 | 
			
		||||
          <li>
 | 
			
		||||
            <button type="button"><fa-icon class="contextmenu__icon" [icon]="faTrashAlt"></fa-icon>Eliminar</button>
 | 
			
		||||
            <button type="button" (click)="deleteSurvey()">
 | 
			
		||||
              <fa-icon class="contextmenu__icon" [icon]="faTrashAlt"></fa-icon>Eliminar
 | 
			
		||||
            </button>
 | 
			
		||||
          </li>
 | 
			
		||||
        </div>
 | 
			
		||||
      </ul>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div
 | 
			
		||||
      class="ds-list--entity"
 | 
			
		||||
      *ngFor="let encuesta of encuestas; trackBy: trackId"
 | 
			
		||||
      class="ds-list--entity card-encuesta lift"
 | 
			
		||||
      *ngFor="
 | 
			
		||||
        let encuesta of encuestas! | filter: 'nombre':searchString | filter: 'acceso':accesoEncuesta | filter: 'estado':estadoEncuesta;
 | 
			
		||||
        trackBy: trackId
 | 
			
		||||
      "
 | 
			
		||||
      (dblclick)="openSurvey($event)"
 | 
			
		||||
      (click)="selectSurvey($event)"
 | 
			
		||||
      [hidden]="encuesta.estado == 'DELETED'"
 | 
			
		||||
      [attr.data-id]="encuesta.id"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="entity-header">
 | 
			
		||||
| 
						 | 
				
			
			@ -165,21 +209,55 @@
 | 
			
		|||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!-- <p>
 | 
			
		||||
        <a [routerLink]="['/encuesta', encuesta.id, 'view']">{{ encuesta.id }}</a>
 | 
			
		||||
      </p>
 | 
			
		||||
      <p>{{ encuesta.nombre }}</p>
 | 
			
		||||
      <p>{{ encuesta.descripcion }}</p>
 | 
			
		||||
      <p>{{ encuesta.fechaCreacion | formatMediumDatetime }}</p>
 | 
			
		||||
      <p>{{ encuesta.fechaPublicacion | formatMediumDatetime }}</p>
 | 
			
		||||
      <p>{{ encuesta.fechaFinalizar | formatMediumDatetime }}</p>
 | 
			
		||||
      <p>{{ encuesta.fechaFinalizada | formatMediumDatetime }}</p>
 | 
			
		||||
      <p>{{ encuesta.calificacion }}</p>
 | 
			
		||||
      <p jhiTranslate="{{ 'dataSurveyApp.AccesoEncuesta.' + encuesta.acceso }}">{{ encuesta.acceso }}</p>
 | 
			
		||||
      <p>{{ encuesta.contrasenna }}</p>
 | 
			
		||||
      <p jhiTranslate="{{ 'dataSurveyApp.EstadoEncuesta.' + encuesta.estado }}">{{ encuesta.estado }}</p>
 | 
			
		||||
      <div>
 | 
			
		||||
        <div *ngIf="encuesta.categoria">
 | 
			
		||||
          <a [routerLink]="['/categoria', encuesta.categoria?.id, 'view']">{{ encuesta.categoria?.nombre }}</a>
 | 
			
		||||
          <a [routerLink]="['/encuesta', encuesta.id, 'view']">{{ encuesta.id }}</a>
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>{{ encuesta.nombre }}</p>
 | 
			
		||||
        <p>{{ encuesta.descripcion }}</p>
 | 
			
		||||
        <p>{{ encuesta.fechaCreacion | formatMediumDatetime }}</p>
 | 
			
		||||
        <p>{{ encuesta.fechaPublicacion | formatMediumDatetime }}</p>
 | 
			
		||||
        <p>{{ encuesta.fechaFinalizar | formatMediumDatetime }}</p>
 | 
			
		||||
        <p>{{ encuesta.fechaFinalizada | formatMediumDatetime }}</p>
 | 
			
		||||
        <p>{{ encuesta.calificacion }}</p>
 | 
			
		||||
        <p jhiTranslate="{{ 'dataSurveyApp.AccesoEncuesta.' + encuesta.acceso }}">{{ encuesta.acceso }}</p>
 | 
			
		||||
        <p>{{ encuesta.contrasenna }}</p>
 | 
			
		||||
        <p jhiTranslate="{{ 'dataSurveyApp.EstadoEncuesta.' + encuesta.estado }}">{{ encuesta.estado }}</p>
 | 
			
		||||
        <div>
 | 
			
		||||
          <div *ngIf="encuesta.categoria">
 | 
			
		||||
            <a [routerLink]="['/categoria', encuesta.categoria?.id, 'view']">{{ encuesta.categoria?.nombre }}</a>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div>
 | 
			
		||||
          <div *ngIf="encuesta.usuarioExtra">
 | 
			
		||||
            <a [routerLink]="['/usuario-extra', encuesta.usuarioExtra?.id, 'view']">{{ encuesta.usuarioExtra?.id }}</a>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="text-right">
 | 
			
		||||
          <div class="btn-group">
 | 
			
		||||
            <button
 | 
			
		||||
              type="submit"
 | 
			
		||||
              [routerLink]="['/encuesta', encuesta.id, 'view']"
 | 
			
		||||
              class="btn btn-info btn-sm"
 | 
			
		||||
              data-cy="entityDetailsButton"
 | 
			
		||||
            >
 | 
			
		||||
              <fa-icon icon="eye"></fa-icon>
 | 
			
		||||
              <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span>
 | 
			
		||||
            </button>
 | 
			
		||||
 | 
			
		||||
            <button
 | 
			
		||||
              type="submit"
 | 
			
		||||
              [routerLink]="['/encuesta', encuesta.id, 'edit']"
 | 
			
		||||
              class="btn btn-primary btn-sm"
 | 
			
		||||
              data-cy="entityEditButton"
 | 
			
		||||
            >
 | 
			
		||||
              <fa-icon icon="pencil-alt"></fa-icon>
 | 
			
		||||
              <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span>
 | 
			
		||||
            </button>
 | 
			
		||||
 | 
			
		||||
            <button type="submit" (click)="delete(encuesta)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton">
 | 
			
		||||
              <fa-icon icon="times"></fa-icon>
 | 
			
		||||
              <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
 | 
			
		||||
            </button>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div>
 | 
			
		||||
| 
						 | 
				
			
			@ -218,7 +296,6 @@
 | 
			
		|||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div class="table-responsive" id="entities" *ngIf="isAdmin() && encuestas && encuestas.length > 0">
 | 
			
		||||
  <table class="table table-striped" aria-describedby="page-heading">
 | 
			
		||||
    <thead>
 | 
			
		||||
| 
						 | 
				
			
			@ -233,9 +310,15 @@
 | 
			
		|||
      </tr>
 | 
			
		||||
    </thead>
 | 
			
		||||
    <tbody>
 | 
			
		||||
      <tr *ngFor="let encuesta of encuestas; trackBy: trackId" data-cy="entityTable">
 | 
			
		||||
      <tr
 | 
			
		||||
        *ngFor="
 | 
			
		||||
          let encuesta of encuestas | filter: 'nombre':searchString | filter: 'acceso':accesoEncuesta | filter: 'estado':estadoEncuesta;
 | 
			
		||||
          trackBy: trackId
 | 
			
		||||
        "
 | 
			
		||||
        data-cy="entityTable"
 | 
			
		||||
      >
 | 
			
		||||
        <td>{{ encuesta.nombre }}</td>
 | 
			
		||||
        <td>{{ encuesta.fechaCreacion | formatMediumDatetime }}</td>
 | 
			
		||||
        <td>{{ encuesta.fechaCreacion | formatShortDatetime | titlecase }}</td>
 | 
			
		||||
        <td jhiTranslate="{{ 'dataSurveyApp.AccesoEncuesta.' + encuesta.acceso }}">{{ encuesta.acceso }}</td>
 | 
			
		||||
        <td jhiTranslate="{{ 'dataSurveyApp.EstadoEncuesta.' + encuesta.estado }}">{{ encuesta.estado }}</td>
 | 
			
		||||
        <td>
 | 
			
		||||
| 
						 | 
				
			
			@ -245,9 +328,7 @@
 | 
			
		|||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <div *ngIf="encuesta.usuarioExtra">
 | 
			
		||||
            <a [routerLink]="['/usuario-extra', encuesta.usuarioExtra?.nombre, 'view']">
 | 
			
		||||
              {{ encuesta.usuarioExtra?.nombre }}
 | 
			
		||||
            </a>
 | 
			
		||||
            {{ encuesta.usuarioExtra?.user?.login }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td class="text-right">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,8 @@ import { EstadoEncuesta } from 'app/entities/enumerations/estado-encuesta.model'
 | 
			
		|||
import { AccountService } from 'app/core/auth/account.service';
 | 
			
		||||
import { Account } from 'app/core/auth/account.model';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { EncuestaPublishDialogComponent } from '../encuesta-publish-dialog/encuesta-publish-dialog.component';
 | 
			
		||||
import { IUser } from '../../user/user.model';
 | 
			
		||||
 | 
			
		||||
import {
 | 
			
		||||
  faShareAlt,
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +40,6 @@ import {
 | 
			
		|||
} from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
 | 
			
		||||
import * as $ from 'jquery';
 | 
			
		||||
import { EncuestaPublishDialogComponent } from '../encuesta-publish-dialog/encuesta-publish-dialog.component';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'jhi-encuesta',
 | 
			
		||||
| 
						 | 
				
			
			@ -70,6 +71,15 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
 | 
			
		|||
 | 
			
		||||
  categoriasSharedCollection: ICategoria[] = [];
 | 
			
		||||
  usuarioExtrasSharedCollection: IUsuarioExtra[] = [];
 | 
			
		||||
  userSharedCollection: IUser[] = [];
 | 
			
		||||
 | 
			
		||||
  selectedIdSurvey: number | null = null;
 | 
			
		||||
  encuestaencontrada: IEncuesta | null = null;
 | 
			
		||||
 | 
			
		||||
  public searchString: string;
 | 
			
		||||
  public accesoEncuesta: string;
 | 
			
		||||
  //public categoriaEncuesta: string;
 | 
			
		||||
  public estadoEncuesta: string;
 | 
			
		||||
 | 
			
		||||
  editForm = this.fb.group({
 | 
			
		||||
    id: [],
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +109,11 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
 | 
			
		|||
    protected fb: FormBuilder,
 | 
			
		||||
    protected accountService: AccountService,
 | 
			
		||||
    protected router: Router
 | 
			
		||||
  ) {}
 | 
			
		||||
  ) {
 | 
			
		||||
    this.searchString = '';
 | 
			
		||||
    this.accesoEncuesta = '';
 | 
			
		||||
    this.estadoEncuesta = '';
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  resetForm(): void {
 | 
			
		||||
    this.editForm.reset();
 | 
			
		||||
| 
						 | 
				
			
			@ -108,25 +122,69 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
 | 
			
		|||
  loadAll(): void {
 | 
			
		||||
    this.isLoading = true;
 | 
			
		||||
 | 
			
		||||
    this.encuestaService.query().subscribe(
 | 
			
		||||
      (res: HttpResponse<IEncuesta[]>) => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
        const tmpEncuestas = res.body ?? [];
 | 
			
		||||
        if (this.isAdmin()) {
 | 
			
		||||
          this.encuestas = tmpEncuestas;
 | 
			
		||||
        } else {
 | 
			
		||||
          this.encuestas = tmpEncuestas
 | 
			
		||||
            .filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id)
 | 
			
		||||
            .filter(e => e.estado !== EstadoEncuesta.DELETED);
 | 
			
		||||
    this.usuarioExtraService
 | 
			
		||||
      .retrieveAllPublicUsers()
 | 
			
		||||
      .pipe(finalize(() => this.loadUserExtras()))
 | 
			
		||||
      .subscribe(res => {
 | 
			
		||||
        this.userSharedCollection = res;
 | 
			
		||||
      });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  loadPublicUser(): void {
 | 
			
		||||
    this.usuarioExtraService
 | 
			
		||||
      .retrieveAllPublicUsers()
 | 
			
		||||
      .pipe(finalize(() => this.loadUserExtras()))
 | 
			
		||||
      .subscribe(res => {
 | 
			
		||||
        this.userSharedCollection = res;
 | 
			
		||||
      });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  loadUserExtras() {
 | 
			
		||||
    this.usuarioExtraService
 | 
			
		||||
      .query()
 | 
			
		||||
      .pipe(
 | 
			
		||||
        finalize(() =>
 | 
			
		||||
          this.encuestaService.query().subscribe(
 | 
			
		||||
            (res: HttpResponse<IEncuesta[]>) => {
 | 
			
		||||
              this.isLoading = false;
 | 
			
		||||
              const tmpEncuestas = res.body ?? [];
 | 
			
		||||
              if (this.isAdmin()) {
 | 
			
		||||
                this.encuestas = tmpEncuestas;
 | 
			
		||||
                this.encuestas.forEach(e => {
 | 
			
		||||
                  e.usuarioExtra = this.usuarioExtrasSharedCollection?.find(pU => pU.id == e.usuarioExtra?.id);
 | 
			
		||||
                });
 | 
			
		||||
              } else {
 | 
			
		||||
                this.encuestas = tmpEncuestas
 | 
			
		||||
                  .filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id)
 | 
			
		||||
                  .filter(e => e.estado !== EstadoEncuesta.DELETED);
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            () => {
 | 
			
		||||
              this.isLoading = false;
 | 
			
		||||
            }
 | 
			
		||||
          )
 | 
			
		||||
        )
 | 
			
		||||
      )
 | 
			
		||||
      .subscribe(
 | 
			
		||||
        (res: HttpResponse<IUsuarioExtra[]>) => {
 | 
			
		||||
          this.isLoading = false;
 | 
			
		||||
          this.usuarioExtrasSharedCollection = res.body ?? [];
 | 
			
		||||
          this.usuarioExtrasSharedCollection.forEach(uE => {
 | 
			
		||||
            uE.user = this.userSharedCollection?.find(pU => pU.id == uE.user?.id);
 | 
			
		||||
          });
 | 
			
		||||
        },
 | 
			
		||||
        () => {
 | 
			
		||||
          this.isLoading = false;
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      () => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
      );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
    this.searchString = '';
 | 
			
		||||
    this.accesoEncuesta = '';
 | 
			
		||||
    //this.categoriaEncuesta = '';
 | 
			
		||||
    this.estadoEncuesta = '';
 | 
			
		||||
 | 
			
		||||
    document.body.addEventListener('click', e => {
 | 
			
		||||
      document.getElementById('contextmenu')!.classList.add('ds-contextmenu--closed');
 | 
			
		||||
      document.getElementById('contextmenu')!.classList.remove('ds-contextmenu--open');
 | 
			
		||||
| 
						 | 
				
			
			@ -159,6 +217,7 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
 | 
			
		|||
        this.usuarioExtraService.find(account.id).subscribe(usuarioExtra => {
 | 
			
		||||
          this.usuarioExtra = usuarioExtra.body;
 | 
			
		||||
          this.loadAll();
 | 
			
		||||
 | 
			
		||||
          this.loadRelationshipsOptions();
 | 
			
		||||
          if (this.usuarioExtra !== null) {
 | 
			
		||||
            if (this.usuarioExtra.id === undefined) {
 | 
			
		||||
| 
						 | 
				
			
			@ -190,6 +249,49 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
 | 
			
		|||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  deleteSurvey(): void {
 | 
			
		||||
    if (this.selectedIdSurvey != null) {
 | 
			
		||||
      this.getEncuesta(this.selectedIdSurvey)
 | 
			
		||||
        .pipe(
 | 
			
		||||
          finalize(() => {
 | 
			
		||||
            const modalRef = this.modalService.open(EncuestaDeleteDialogComponent, { size: 'lg', backdrop: 'static' });
 | 
			
		||||
            modalRef.componentInstance.encuesta = this.encuestaencontrada;
 | 
			
		||||
 | 
			
		||||
            modalRef.closed.subscribe(reason => {
 | 
			
		||||
              if (reason === 'deleted') {
 | 
			
		||||
                this.loadAll();
 | 
			
		||||
              }
 | 
			
		||||
            });
 | 
			
		||||
          })
 | 
			
		||||
        )
 | 
			
		||||
        .subscribe(data => {
 | 
			
		||||
          console.log(data);
 | 
			
		||||
          this.encuestaencontrada = data;
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
      /*const modalRef = this.modalService.open(EncuestaDeleteDialogComponent, { size: 'lg', backdrop: 'static' });
 | 
			
		||||
      modalRef.componentInstance.encuesta = this.getEncuesta(this.selectedSurvey)
 | 
			
		||||
        .pipe(finalize(() =>
 | 
			
		||||
          modalRef.closed.subscribe(reason => {
 | 
			
		||||
            if (reason === 'deleted') {
 | 
			
		||||
              this.loadAll();
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
        ))
 | 
			
		||||
        .subscribe(data=> {
 | 
			
		||||
          console.log(data);
 | 
			
		||||
          //this.encuestaencontrada = data;
 | 
			
		||||
        });
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
      // unsubscribe not needed because closed completes on modal close
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  getEncuesta(id: number) {
 | 
			
		||||
    return this.encuestaService.findEncuesta(id);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  previousState(): void {
 | 
			
		||||
    window.history.back();
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -375,6 +477,9 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
 | 
			
		|||
      } else if ((event.target as HTMLElement).classList.contains('ds-list--entity')) {
 | 
			
		||||
        event.target.classList.add('active');
 | 
			
		||||
        document.getElementById('contextmenu-create--separator')!.style.display = 'none';
 | 
			
		||||
 | 
			
		||||
        this.selectedIdSurvey = Number(event.target.dataset.id);
 | 
			
		||||
        //this.selectedSurvey = event.target.dataset.encuesta;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      document.getElementById('contextmenu')!.style.top = event.layerY + 'px';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,6 +45,27 @@ export class EncuestaService {
 | 
			
		|||
      .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  findQuestions(id: number): Observable<EntityResponseType> {
 | 
			
		||||
    return this.http
 | 
			
		||||
      .get<any>(`${this.resourceUrl}/preguntas/${id}`, { observe: 'response' })
 | 
			
		||||
      .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  findQuestionsOptions(id: number): Observable<EntityResponseType> {
 | 
			
		||||
    return this.http
 | 
			
		||||
      .get<any>(`${this.resourceUrl}/preguntas-opciones/${id}`, { observe: 'response' })
 | 
			
		||||
      .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  findEncuesta(id: number): Observable<IEncuesta> {
 | 
			
		||||
    return this.http.get<IEncuesta>(`${this.resourceUrl}/${id}`);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  deleteEncuesta(encuesta: IEncuesta): Observable<EntityResponseType> {
 | 
			
		||||
    //const copy = this.convertDateFromClient(encuesta);
 | 
			
		||||
    return this.http.put<IEncuesta>(`${this.resourceUrl}/${getEncuestaIdentifier(encuesta) as number}`, encuesta, { observe: 'response' });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  query(req?: any): Observable<EntityArrayResponseType> {
 | 
			
		||||
    const options = createRequestOption(req);
 | 
			
		||||
    return this.http
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,401 @@
 | 
			
		|||
<div class="row justify-content-center">
 | 
			
		||||
<div>
 | 
			
		||||
  <h2 id="page-heading" data-cy="EPreguntaCerradaHeading">
 | 
			
		||||
    <p class="ds-title">{{ encuesta!.nombre }}</p>
 | 
			
		||||
    <p class="ds-subtitle">Creada el día {{ encuesta!.fechaCreacion | formatShortDatetime | lowercase }}</p>
 | 
			
		||||
 | 
			
		||||
    <div class="d-flex justify-content-end">
 | 
			
		||||
      <button type="button" class="ds-btn ds-btn--secondary" (click)="previousState()">
 | 
			
		||||
        <fa-icon icon="arrow-left"></fa-icon>  <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
      </button>
 | 
			
		||||
      <button type="button" class="ds-btn ds-btn--secondary" (click)="loadAll()" [disabled]="isLoading">
 | 
			
		||||
        <fa-icon icon="sync" [spin]="isLoading"></fa-icon>  <span>Refrescar preguntas</span>
 | 
			
		||||
      </button>
 | 
			
		||||
      <button
 | 
			
		||||
        type="button"
 | 
			
		||||
        class="ds-btn ds-btn--secondary"
 | 
			
		||||
        (click)="createQuestion()"
 | 
			
		||||
        [disabled]="isLoading"
 | 
			
		||||
        data-toggle="modal"
 | 
			
		||||
        data-target="#crearPregunta"
 | 
			
		||||
      >
 | 
			
		||||
        <fa-icon icon="sync" [icon]="faPlus"></fa-icon>  <span>Crear pregunta</span>
 | 
			
		||||
      </button>
 | 
			
		||||
      <ng-container *ngIf="encuesta!.estado === 'DRAFT'">
 | 
			
		||||
        <button type="button" class="ds-btn ds-btn--primary" (click)="publishSurvey()">Publicar encuesta</button>
 | 
			
		||||
      </ng-container>
 | 
			
		||||
      <ng-container *ngIf="encuesta!.estado === 'ACTIVE'">
 | 
			
		||||
        <button type="button" class="ds-btn ds-btn--danger" (click)="finishSurvey()">Finalizar encuesta</button>
 | 
			
		||||
      </ng-container>
 | 
			
		||||
    </div>
 | 
			
		||||
  </h2>
 | 
			
		||||
 | 
			
		||||
  <jhi-alert-error></jhi-alert-error>
 | 
			
		||||
 | 
			
		||||
  <!-- <jhi-alert></jhi-alert> -->
 | 
			
		||||
 | 
			
		||||
  <div class="alert alert-warning" id="no-result" *ngIf="ePreguntas?.length === 0">
 | 
			
		||||
    <span>No se encontraron preguntas</span>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="ds-survey" id="entities" *ngIf="ePreguntas && ePreguntas.length > 0">
 | 
			
		||||
    <div class="ds-survey--all-question-wrapper">
 | 
			
		||||
      <div class="ds-survey--question-wrapper" *ngFor="let ePregunta of ePreguntas; let i = index; trackBy: trackId">
 | 
			
		||||
        <div
 | 
			
		||||
          [attr.data-index]="ePregunta.id"
 | 
			
		||||
          [attr.data-tipo]="ePregunta.tipo"
 | 
			
		||||
          [attr.data-opcional]="ePregunta.opcional"
 | 
			
		||||
          class="ds-survey--question"
 | 
			
		||||
        >
 | 
			
		||||
          <div class="ds-survey--titulo">
 | 
			
		||||
            <span class="ds-survey--titulo--name">{{ i + 1 }}. {{ ePregunta.nombre }}</span>
 | 
			
		||||
            <fa-icon
 | 
			
		||||
              *ngIf="encuesta!.estado === 'DRAFT'"
 | 
			
		||||
              class="ds-survey--titulo--icon"
 | 
			
		||||
              [icon]="faTimes"
 | 
			
		||||
              (click)="deleteQuestion($event)"
 | 
			
		||||
              [attr.data-id]="ePregunta.id"
 | 
			
		||||
              [attr.data-type]="ePregunta.tipo"
 | 
			
		||||
            ></fa-icon>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div>
 | 
			
		||||
            <span *ngIf="ePregunta.tipo === 'SINGLE'" class="ds-subtitle"
 | 
			
		||||
              >Pregunta de respuesta {{ 'dataSurveyApp.PreguntaCerradaTipo.SINGLE' | translate | lowercase }}
 | 
			
		||||
              {{ ePregunta.opcional ? '(opcional)' : '' }}</span
 | 
			
		||||
            >
 | 
			
		||||
            <span *ngIf="ePregunta.tipo === 'MULTIPLE'" class="ds-subtitle"
 | 
			
		||||
              >Pregunta de respuesta {{ 'dataSurveyApp.PreguntaCerradaTipo.MULTIPLE' | translate | lowercase }}
 | 
			
		||||
              {{ ePregunta.opcional ? '(opcional)' : '' }}</span
 | 
			
		||||
            >
 | 
			
		||||
            <span *ngIf="!ePregunta.tipo" class="ds-subtitle"
 | 
			
		||||
              >Pregunta de respuesta abierta {{ ePregunta.opcional ? '(opcional)' : '' }}</span
 | 
			
		||||
            >
 | 
			
		||||
          </div>
 | 
			
		||||
          <ng-container *ngIf="ePregunta.tipo">
 | 
			
		||||
            <ng-container *ngFor="let ePreguntaOpcion of ePreguntasOpciones; let j = index; trackBy: trackId">
 | 
			
		||||
              <ng-container *ngFor="let ePreguntaOpcionFinal of ePreguntaOpcion">
 | 
			
		||||
                <ng-container *ngIf="ePregunta.id === ePreguntaOpcionFinal.epreguntaCerrada.id">
 | 
			
		||||
                  <div
 | 
			
		||||
                    class="ds-survey--option ds-survey--option--base ds-survey--closed-option can-delete"
 | 
			
		||||
                    [attr.data-id]="ePreguntaOpcionFinal.id"
 | 
			
		||||
                  >
 | 
			
		||||
                    <!-- <input class="ds-survey--checkbox" id="{{ ePregunta.id }}-{{ ePreguntaOpcionFinal.id }}" type="checkbox" disabled /> -->
 | 
			
		||||
                    <label for="{{ ePregunta.id }}-{{ ePreguntaOpcionFinal.id }}">{{ ePreguntaOpcionFinal.nombre }}</label>
 | 
			
		||||
                    <fa-icon
 | 
			
		||||
                      *ngIf="encuesta!.estado === 'DRAFT'"
 | 
			
		||||
                      class="ds-survey--titulo--icon ds-survey--titulo--icon--small"
 | 
			
		||||
                      [icon]="faTimes"
 | 
			
		||||
                      (click)="deleteOption($event)"
 | 
			
		||||
                      [attr.data-optionid]="ePreguntaOpcionFinal.id"
 | 
			
		||||
                    ></fa-icon>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </ng-container>
 | 
			
		||||
              </ng-container>
 | 
			
		||||
            </ng-container>
 | 
			
		||||
            <div
 | 
			
		||||
              class="ds-survey--option ds-survey--option--add ds-survey--closed-option"
 | 
			
		||||
              (click)="resetForm($event)"
 | 
			
		||||
              data-toggle="modal"
 | 
			
		||||
              data-target="#crearOpcion"
 | 
			
		||||
              [attr.data-id]="ePregunta.id"
 | 
			
		||||
            >
 | 
			
		||||
              <fa-icon
 | 
			
		||||
                class="ds-survey--add-option--icon"
 | 
			
		||||
                [icon]="faPlus"
 | 
			
		||||
                [attr.data-id]="ePregunta.id"
 | 
			
		||||
                [attr.data-type]="ePregunta.tipo"
 | 
			
		||||
              ></fa-icon>
 | 
			
		||||
              <span class="ds-survey--add-option">Añadir opción</span>
 | 
			
		||||
            </div>
 | 
			
		||||
          </ng-container>
 | 
			
		||||
          <div class="ds-survey--option ds-survey--option--base ds-survey--open-option" *ngIf="!ePregunta.tipo">
 | 
			
		||||
            <textarea name="" id="" cols="30" rows="10" disabled></textarea>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <!-- <table class="table table-striped" aria-describedby="page-heading">
 | 
			
		||||
      <thead>
 | 
			
		||||
        <tr>
 | 
			
		||||
          <th scope="col"><span jhiTranslate="global.field.id">ID</span></th>
 | 
			
		||||
          <th scope="col"><span jhiTranslate="dataSurveyApp.ePreguntaCerrada.nombre">Nombre</span></th>
 | 
			
		||||
          <th scope="col"><span jhiTranslate="dataSurveyApp.ePreguntaCerrada.tipo">Tipo</span></th>
 | 
			
		||||
          <th scope="col"><span jhiTranslate="dataSurveyApp.ePreguntaCerrada.opcional">Opcional</span></th>
 | 
			
		||||
          <th scope="col"><span jhiTranslate="dataSurveyApp.ePreguntaCerrada.orden">Orden</span></th>
 | 
			
		||||
          <th scope="col"><span jhiTranslate="dataSurveyApp.ePreguntaCerrada.encuesta">Encuesta</span></th>
 | 
			
		||||
          <th scope="col"></th>
 | 
			
		||||
        </tr>
 | 
			
		||||
      </thead>
 | 
			
		||||
      <tbody>
 | 
			
		||||
        <tr *ngFor="let ePreguntaCerrada of ePreguntaCerradas; trackBy: trackId" data-cy="entityTable">
 | 
			
		||||
          <td>
 | 
			
		||||
            <a [routerLink]="['/e-pregunta-cerrada', ePreguntaCerrada.id, 'view']">{{ ePreguntaCerrada.id }}</a>
 | 
			
		||||
          </td>
 | 
			
		||||
          <td>{{ ePreguntaCerrada.nombre }}</td>
 | 
			
		||||
          <td *ngIf="ePreguntaCerrada.tipo != undefined" jhiTranslate="{{ 'dataSurveyApp.PreguntaCerradaTipo.' + ePreguntaCerrada.tipo }}">{{ ePreguntaCerrada.tipo }}</td>
 | 
			
		||||
          <td *ngIf="ePreguntaCerrada.tipo == undefined"></td>
 | 
			
		||||
          
 | 
			
		||||
          <td>{{ ePreguntaCerrada.opcional }}</td>
 | 
			
		||||
          <td>{{ ePreguntaCerrada.orden }}</td>
 | 
			
		||||
          <td>
 | 
			
		||||
            <div *ngIf="ePreguntaCerrada.encuesta">
 | 
			
		||||
              <a [routerLink]="['/encuesta', ePreguntaCerrada.encuesta?.id, 'view']">{{ ePreguntaCerrada.encuesta?.id }}</a>
 | 
			
		||||
            </div>
 | 
			
		||||
          </td>
 | 
			
		||||
          <td class="text-right">
 | 
			
		||||
            <div class="btn-group">
 | 
			
		||||
              <button
 | 
			
		||||
                type="submit"
 | 
			
		||||
                [routerLink]="['/e-pregunta-cerrada', ePreguntaCerrada.id, 'view']"
 | 
			
		||||
                class="btn btn-info btn-sm"
 | 
			
		||||
                data-cy="entityDetailsButton"
 | 
			
		||||
              >
 | 
			
		||||
                <fa-icon icon="eye"></fa-icon>
 | 
			
		||||
                <span class="d-none d-md-inline" jhiTranslate="entity.action.view">View</span>
 | 
			
		||||
              </button>
 | 
			
		||||
 | 
			
		||||
              <button
 | 
			
		||||
                type="submit"
 | 
			
		||||
                [routerLink]="['/e-pregunta-cerrada', ePreguntaCerrada.id, 'edit']"
 | 
			
		||||
                class="btn btn-primary btn-sm"
 | 
			
		||||
                data-cy="entityEditButton"
 | 
			
		||||
              >
 | 
			
		||||
                <fa-icon icon="pencil-alt"></fa-icon>
 | 
			
		||||
                <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span>
 | 
			
		||||
              </button>
 | 
			
		||||
 | 
			
		||||
              <button type="submit" (click)="delete(ePreguntaCerrada)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton">
 | 
			
		||||
                <fa-icon icon="times"></fa-icon>
 | 
			
		||||
                <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
 | 
			
		||||
              </button>
 | 
			
		||||
            </div>
 | 
			
		||||
          </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
      </tbody>
 | 
			
		||||
    </table> -->
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- Create Option Modal -->
 | 
			
		||||
<div class="modal fade ds-modal" id="crearOpcion" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
 | 
			
		||||
  <div class="modal-dialog modal-dialog-centered" role="document">
 | 
			
		||||
    <div class="modal-content">
 | 
			
		||||
      <form autocomplete="off" class="ds-form" name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm">
 | 
			
		||||
        <div class="modal-header">
 | 
			
		||||
          <h1 class="modal-title" id="exampleModalLongTitle">Crear Opción</h1>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="modal-body">
 | 
			
		||||
          <!-- Survey Closed Question Create Option Modal -->
 | 
			
		||||
          <div>
 | 
			
		||||
            <jhi-alert-error></jhi-alert-error>
 | 
			
		||||
 | 
			
		||||
            <div class="form-group">
 | 
			
		||||
              <label class="form-control-label" jhiTranslate="dataSurveyApp.ePreguntaCerradaOpcion.nombre" for="field_nombre">Nombre</label>
 | 
			
		||||
              <input type="text" class="form-control" name="nombre" id="field_nombre" data-cy="nombre" formControlName="nombre" />
 | 
			
		||||
              <div *ngIf="editForm.get('nombre')!.invalid && (editForm.get('nombre')!.dirty || editForm.get('nombre')!.touched)">
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editForm.get('nombre')?.errors?.required"
 | 
			
		||||
                  jhiTranslate="entity.validation.required"
 | 
			
		||||
                >
 | 
			
		||||
                  This field is required.
 | 
			
		||||
                </small>
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editForm.get('nombre')?.errors?.minlength"
 | 
			
		||||
                  jhiTranslate="entity.validation.minlength"
 | 
			
		||||
                  [translateValues]="{ min: 1 }"
 | 
			
		||||
                >
 | 
			
		||||
                  This field is required to be at least 1 characters.
 | 
			
		||||
                </small>
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editForm.get('nombre')?.errors?.maxlength"
 | 
			
		||||
                  jhiTranslate="entity.validation.maxlength"
 | 
			
		||||
                  [translateValues]="{ max: 500 }"
 | 
			
		||||
                >
 | 
			
		||||
                  This field cannot be longer than 500 characters.
 | 
			
		||||
                </small>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="modal-footer">
 | 
			
		||||
          <input id="createAnother" type="checkbox" (change)="createAnotherChange($event)" />
 | 
			
		||||
          <label for="createAnother">Crear otra</label>
 | 
			
		||||
          <button id="cancelBtn" type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal">
 | 
			
		||||
            <fa-icon icon="arrow-left"></fa-icon>  <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <button
 | 
			
		||||
            type="submit"
 | 
			
		||||
            id="save-entity"
 | 
			
		||||
            data-cy="entityCreateSaveButton"
 | 
			
		||||
            class="ds-btn ds-btn--primary"
 | 
			
		||||
            [disabled]="editForm.invalid || isSaving"
 | 
			
		||||
          >
 | 
			
		||||
            <span jhiTranslate="entity.action.create">Create</span>
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </form>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- ------------------------------------------------------------------------------------------------- -->
 | 
			
		||||
 | 
			
		||||
<!-- Create Question Modal -->
 | 
			
		||||
<div
 | 
			
		||||
  class="modal fade ds-modal"
 | 
			
		||||
  id="crearPregunta"
 | 
			
		||||
  tabindex="-1"
 | 
			
		||||
  role="dialog"
 | 
			
		||||
  aria-labelledby="exampleModalCenterTitle"
 | 
			
		||||
  aria-hidden="true"
 | 
			
		||||
>
 | 
			
		||||
  <div class="modal-dialog modal-dialog-centered" role="document">
 | 
			
		||||
    <div class="modal-content">
 | 
			
		||||
      <form
 | 
			
		||||
        autocomplete="off"
 | 
			
		||||
        class="ds-form"
 | 
			
		||||
        name="editFormQuestion"
 | 
			
		||||
        role="form"
 | 
			
		||||
        novalidate
 | 
			
		||||
        (ngSubmit)="saveQuestion()"
 | 
			
		||||
        [formGroup]="editFormQuestion"
 | 
			
		||||
      >
 | 
			
		||||
        <div class="modal-header">
 | 
			
		||||
          <h1 class="modal-title" id="exampleModalLongTitle">Crear Pregunta</h1>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="modal-body">
 | 
			
		||||
          <!-- Survey Create Question Modal -->
 | 
			
		||||
          <div>
 | 
			
		||||
            <jhi-alert-error></jhi-alert-error>
 | 
			
		||||
 | 
			
		||||
            <div class="form-group">
 | 
			
		||||
              <label class="form-control-label" for="field_nombre">Pregunta</label>
 | 
			
		||||
              <input type="text" class="form-control" name="nombre" id="field_nombre" data-cy="nombre" formControlName="nombre" />
 | 
			
		||||
              <div
 | 
			
		||||
                *ngIf="
 | 
			
		||||
                  editFormQuestion.get('nombre')!.invalid &&
 | 
			
		||||
                  (editFormQuestion.get('nombre')!.dirty || editFormQuestion.get('nombre')!.touched)
 | 
			
		||||
                "
 | 
			
		||||
              >
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editFormQuestion.get('nombre')?.errors?.required"
 | 
			
		||||
                  jhiTranslate="entity.validation.required"
 | 
			
		||||
                >
 | 
			
		||||
                  This field is required.
 | 
			
		||||
                </small>
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editFormQuestion.get('nombre')?.errors?.minlength"
 | 
			
		||||
                  jhiTranslate="entity.validation.minlength"
 | 
			
		||||
                  [translateValues]="{ min: 1 }"
 | 
			
		||||
                >
 | 
			
		||||
                  This field is required to be at least 1 characters.
 | 
			
		||||
                </small>
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editFormQuestion.get('nombre')?.errors?.maxlength"
 | 
			
		||||
                  jhiTranslate="entity.validation.maxlength"
 | 
			
		||||
                  [translateValues]="{ max: 500 }"
 | 
			
		||||
                >
 | 
			
		||||
                  This field cannot be longer than 500 characters.
 | 
			
		||||
                </small>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <!-- Custom Form Group (Closed & Open Question Validation) -->
 | 
			
		||||
            <div class="form-group">
 | 
			
		||||
              <label class="form-control-label" for="field_tipo">Tipo de pregunta</label>
 | 
			
		||||
              <select class="form-control" name="tipopregunta" formControlName="tipopregunta" id="field_tipo" data-cy="tipopregunta">
 | 
			
		||||
                <option selected value="CLOSED">Opción multiple</option>
 | 
			
		||||
                <option value="OPEN">Respuesta abierta</option>
 | 
			
		||||
              </select>
 | 
			
		||||
              <div
 | 
			
		||||
                *ngIf="
 | 
			
		||||
                  editFormQuestion.get('tipopregunta')!.invalid &&
 | 
			
		||||
                  (editFormQuestion.get('tipopregunta')!.dirty || editFormQuestion.get('tipopregunta')!.touched)
 | 
			
		||||
                "
 | 
			
		||||
              >
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editFormQuestion.get('tipopregunta')?.errors?.required"
 | 
			
		||||
                  jhiTranslate="entity.validation.required"
 | 
			
		||||
                >
 | 
			
		||||
                  This field is required.
 | 
			
		||||
                </small>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <ng-container *ngIf="editFormQuestion.get('tipopregunta')!.value === 'CLOSED'">
 | 
			
		||||
              <div class="form-group">
 | 
			
		||||
                <label class="form-control-label" jhiTranslate="dataSurveyApp.ePreguntaCerrada.tiporespuesta" for="field_tipo">Tipo</label>
 | 
			
		||||
                <select class="form-control" name="tipo" formControlName="tipo" id="field_tipo" data-cy="tipo">
 | 
			
		||||
                  <option selected value="SINGLE">{{ 'dataSurveyApp.PreguntaCerradaTipo.SINGLE' | translate }}</option>
 | 
			
		||||
                  <option value="MULTIPLE">{{ 'dataSurveyApp.PreguntaCerradaTipo.MULTIPLE' | translate }}</option>
 | 
			
		||||
                </select>
 | 
			
		||||
                <div
 | 
			
		||||
                  *ngIf="
 | 
			
		||||
                    editFormQuestion.get('tipo')!.invalid && (editFormQuestion.get('tipo')!.dirty || editFormQuestion.get('tipo')!.touched)
 | 
			
		||||
                  "
 | 
			
		||||
                >
 | 
			
		||||
                  <small
 | 
			
		||||
                    class="form-text text-danger"
 | 
			
		||||
                    *ngIf="editFormQuestion.get('tipo')?.errors?.required"
 | 
			
		||||
                    jhiTranslate="entity.validation.required"
 | 
			
		||||
                  >
 | 
			
		||||
                    This field is required.
 | 
			
		||||
                  </small>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
            </ng-container>
 | 
			
		||||
 | 
			
		||||
            <div class="form-group">
 | 
			
		||||
              <label class="form-control-label" for="field_opcional">Opcional</label>
 | 
			
		||||
              <input type="checkbox" class="form-check" name="opcional" id="field_opcional" data-cy="opcional" formControlName="opcional" />
 | 
			
		||||
              <div
 | 
			
		||||
                *ngIf="
 | 
			
		||||
                  editFormQuestion.get('opcional')!.invalid &&
 | 
			
		||||
                  (editFormQuestion.get('opcional')!.dirty || editFormQuestion.get('opcional')!.touched)
 | 
			
		||||
                "
 | 
			
		||||
              >
 | 
			
		||||
                <small
 | 
			
		||||
                  class="form-text text-danger"
 | 
			
		||||
                  *ngIf="editFormQuestion.get('opcional')?.errors?.required"
 | 
			
		||||
                  jhiTranslate="entity.validation.required"
 | 
			
		||||
                >
 | 
			
		||||
                  This field is required.
 | 
			
		||||
                </small>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="modal-footer">
 | 
			
		||||
          <input id="createAnotherQuestion" type="checkbox" (change)="createAnotherQuestionChange($event)" />
 | 
			
		||||
          <label for="createAnotherQuestion">Crear otra</label>
 | 
			
		||||
          <button id="cancelBtnQuestion" type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal">
 | 
			
		||||
            <fa-icon icon="arrow-left"></fa-icon>  <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
          </button>
 | 
			
		||||
          <button
 | 
			
		||||
            type="submit"
 | 
			
		||||
            id="save-question"
 | 
			
		||||
            data-cy="entityCreateSaveButton"
 | 
			
		||||
            class="ds-btn ds-btn--primary"
 | 
			
		||||
            [disabled]="editFormQuestion.invalid || isSaving"
 | 
			
		||||
          >
 | 
			
		||||
            <span jhiTranslate="entity.action.create">Create</span>
 | 
			
		||||
          </button>
 | 
			
		||||
        </div>
 | 
			
		||||
      </form>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<!-- ------------------------------------------------------------------------------------------------- -->
 | 
			
		||||
 | 
			
		||||
<!-- <div class="row justify-content-center">
 | 
			
		||||
  <div class="col-8">
 | 
			
		||||
    <form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm">
 | 
			
		||||
      <h2 id="jhi-encuesta-heading" data-cy="EncuestaCreateUpdateHeading" jhiTranslate="dataSurveyApp.encuesta.home.createOrEditLabel">
 | 
			
		||||
| 
						 | 
				
			
			@ -259,4 +656,4 @@
 | 
			
		|||
      </div>
 | 
			
		||||
    </form>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
</div> -->
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,9 @@
 | 
			
		|||
import { Component, OnInit } from '@angular/core';
 | 
			
		||||
import { IEPreguntaAbierta } from './../../e-pregunta-abierta/e-pregunta-abierta.model';
 | 
			
		||||
import { EPreguntaCerrada } from './../../e-pregunta-cerrada/e-pregunta-cerrada.model';
 | 
			
		||||
import { EPreguntaCerradaOpcion, IEPreguntaCerradaOpcion } from './../../e-pregunta-cerrada-opcion/e-pregunta-cerrada-opcion.model';
 | 
			
		||||
import { EPreguntaAbiertaService } from './../../e-pregunta-abierta/service/e-pregunta-abierta.service';
 | 
			
		||||
import { EPreguntaCerradaOpcionService } from './../../e-pregunta-cerrada-opcion/service/e-pregunta-cerrada-opcion.service';
 | 
			
		||||
import { AfterViewChecked, Component, OnInit } from '@angular/core';
 | 
			
		||||
import { HttpResponse } from '@angular/common/http';
 | 
			
		||||
import { FormBuilder, Validators } from '@angular/forms';
 | 
			
		||||
import { ActivatedRoute } from '@angular/router';
 | 
			
		||||
| 
						 | 
				
			
			@ -15,82 +20,254 @@ import { CategoriaService } from 'app/entities/categoria/service/categoria.servi
 | 
			
		|||
import { IUsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model';
 | 
			
		||||
import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service';
 | 
			
		||||
 | 
			
		||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
 | 
			
		||||
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 { EPreguntaCerradaDeleteDialogComponent } from 'app/entities/e-pregunta-cerrada/delete/e-pregunta-cerrada-delete-dialog.component';
 | 
			
		||||
 | 
			
		||||
import { faTimes, faPlus } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import { PreguntaCerradaTipo } from 'app/entities/enumerations/pregunta-cerrada-tipo.model';
 | 
			
		||||
import { EncuestaDeleteQuestionDialogComponent } from '../encuesta-delete-question-dialog/encuesta-delete-question-dialog.component';
 | 
			
		||||
import { EncuestaDeleteOptionDialogComponent } from '../encuesta-delete-option-dialog/encuesta-delete-option-dialog.component';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'jhi-encuesta-update',
 | 
			
		||||
  templateUrl: './encuesta-update.component.html',
 | 
			
		||||
})
 | 
			
		||||
export class EncuestaUpdateComponent implements OnInit {
 | 
			
		||||
export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
 | 
			
		||||
  faTimes = faTimes;
 | 
			
		||||
  faPlus = faPlus;
 | 
			
		||||
 | 
			
		||||
  isSaving = false;
 | 
			
		||||
  isSavingQuestion = false;
 | 
			
		||||
 | 
			
		||||
  categoriasSharedCollection: ICategoria[] = [];
 | 
			
		||||
  usuarioExtrasSharedCollection: IUsuarioExtra[] = [];
 | 
			
		||||
 | 
			
		||||
  // editForm = this.fb.group({
 | 
			
		||||
  //   id: [],
 | 
			
		||||
  //   nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],
 | 
			
		||||
  //   descripcion: [],
 | 
			
		||||
  //   fechaCreacion: [null, [Validators.required]],
 | 
			
		||||
  //   fechaPublicacion: [],
 | 
			
		||||
  //   fechaFinalizar: [],
 | 
			
		||||
  //   fechaFinalizada: [],
 | 
			
		||||
  //   calificacion: [null, [Validators.required]],
 | 
			
		||||
  //   acceso: [null, [Validators.required]],
 | 
			
		||||
  //   contrasenna: [],
 | 
			
		||||
  //   estado: [null, [Validators.required]],
 | 
			
		||||
  //   categoria: [],
 | 
			
		||||
  //   usuarioExtra: [],
 | 
			
		||||
  // });
 | 
			
		||||
 | 
			
		||||
  editForm = this.fb.group({
 | 
			
		||||
    id: [],
 | 
			
		||||
    nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],
 | 
			
		||||
    descripcion: [],
 | 
			
		||||
    fechaCreacion: [null, [Validators.required]],
 | 
			
		||||
    fechaPublicacion: [],
 | 
			
		||||
    fechaFinalizar: [],
 | 
			
		||||
    fechaFinalizada: [],
 | 
			
		||||
    calificacion: [null, [Validators.required]],
 | 
			
		||||
    acceso: [null, [Validators.required]],
 | 
			
		||||
    contrasenna: [],
 | 
			
		||||
    estado: [null, [Validators.required]],
 | 
			
		||||
    categoria: [],
 | 
			
		||||
    usuarioExtra: [],
 | 
			
		||||
    nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(500)]],
 | 
			
		||||
    // orden: [null, [Validators.required]],
 | 
			
		||||
    // cantidad: [null, [Validators.required]],
 | 
			
		||||
    // ePreguntaCerrada: [],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  editFormQuestion = this.fb.group({
 | 
			
		||||
    id: [],
 | 
			
		||||
    nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(500)]],
 | 
			
		||||
    tipo: [PreguntaCerradaTipo.SINGLE],
 | 
			
		||||
    opcional: [false],
 | 
			
		||||
    tipopregunta: ['CLOSED'],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  ePreguntas?: any[];
 | 
			
		||||
  ePreguntasOpciones?: any[];
 | 
			
		||||
  encuesta: Encuesta | null = null;
 | 
			
		||||
 | 
			
		||||
  isLoading = false;
 | 
			
		||||
 | 
			
		||||
  createAnother: Boolean = false;
 | 
			
		||||
  createAnotherQuestion: Boolean = false;
 | 
			
		||||
  selectedQuestionToCreateOption: IEPreguntaCerrada | null = null;
 | 
			
		||||
 | 
			
		||||
  constructor(
 | 
			
		||||
    protected encuestaService: EncuestaService,
 | 
			
		||||
    protected categoriaService: CategoriaService,
 | 
			
		||||
    protected usuarioExtraService: UsuarioExtraService,
 | 
			
		||||
    protected activatedRoute: ActivatedRoute,
 | 
			
		||||
    protected fb: FormBuilder
 | 
			
		||||
    protected fb: FormBuilder,
 | 
			
		||||
    protected modalService: NgbModal,
 | 
			
		||||
    protected ePreguntaCerradaService: EPreguntaCerradaService,
 | 
			
		||||
    protected ePreguntaCerradaOpcionService: EPreguntaCerradaOpcionService,
 | 
			
		||||
    protected ePreguntaAbiertaService: EPreguntaAbiertaService
 | 
			
		||||
  ) {}
 | 
			
		||||
 | 
			
		||||
  loadAll(): void {
 | 
			
		||||
    this.isLoading = true;
 | 
			
		||||
 | 
			
		||||
    this.encuestaService.findQuestions(this.encuesta?.id!).subscribe(
 | 
			
		||||
      (res: any) => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
        this.ePreguntas = res.body ?? [];
 | 
			
		||||
        console.log(this.ePreguntas);
 | 
			
		||||
      },
 | 
			
		||||
      () => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    this.encuestaService.findQuestionsOptions(this.encuesta?.id!).subscribe(
 | 
			
		||||
      (res: any) => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
        this.ePreguntasOpciones = res.body ?? [];
 | 
			
		||||
      },
 | 
			
		||||
      () => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
    this.activatedRoute.data.subscribe(({ encuesta }) => {
 | 
			
		||||
      console.log(this.activatedRoute.data);
 | 
			
		||||
      console.log(encuesta);
 | 
			
		||||
 | 
			
		||||
      if (encuesta.id === undefined) {
 | 
			
		||||
        const today = dayjs().startOf('day');
 | 
			
		||||
        encuesta.fechaCreacion = today;
 | 
			
		||||
        encuesta.fechaPublicacion = today;
 | 
			
		||||
        encuesta.fechaFinalizar = today;
 | 
			
		||||
        encuesta.fechaFinalizada = today;
 | 
			
		||||
      } else {
 | 
			
		||||
        this.encuesta = encuesta;
 | 
			
		||||
        this.loadAll();
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.updateForm(encuesta);
 | 
			
		||||
      // this.updateForm(encuesta);
 | 
			
		||||
 | 
			
		||||
      this.loadRelationshipsOptions();
 | 
			
		||||
      // this.loadRelationshipsOptions();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngAfterViewChecked(): void {
 | 
			
		||||
    this.initListeners();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  trackId(index: number, item: IEPreguntaCerrada): number {
 | 
			
		||||
    return item.id!;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  delete(ePreguntaCerrada: IEPreguntaCerrada): void {
 | 
			
		||||
    const modalRef = this.modalService.open(EPreguntaCerradaDeleteDialogComponent, { size: 'lg', backdrop: 'static' });
 | 
			
		||||
    modalRef.componentInstance.ePreguntaCerrada = ePreguntaCerrada;
 | 
			
		||||
    // unsubscribe not needed because closed completes on modal close
 | 
			
		||||
    modalRef.closed.subscribe(reason => {
 | 
			
		||||
      if (reason === 'deleted') {
 | 
			
		||||
        this.loadAll();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  initListeners(): void {
 | 
			
		||||
    const checkboxes = document.getElementsByClassName('ds-survey--checkbox');
 | 
			
		||||
    for (let i = 0; i < checkboxes.length; i++) {
 | 
			
		||||
      checkboxes[i].addEventListener('click', e => {
 | 
			
		||||
        if ((e.target as HTMLInputElement).checked) {
 | 
			
		||||
          (e.target as HTMLElement).offsetParent!.classList.add('ds-survey--closed-option--active');
 | 
			
		||||
        } else {
 | 
			
		||||
          (e.target as HTMLElement).offsetParent!.classList.remove('ds-survey--closed-option--active');
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  previousState(): void {
 | 
			
		||||
    window.history.back();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  save(): void {
 | 
			
		||||
    this.isSaving = true;
 | 
			
		||||
    const encuesta = this.createFromForm();
 | 
			
		||||
    if (encuesta.id !== undefined) {
 | 
			
		||||
      this.subscribeToSaveResponse(this.encuestaService.update(encuesta));
 | 
			
		||||
    } else {
 | 
			
		||||
      this.subscribeToSaveResponse(this.encuestaService.create(encuesta));
 | 
			
		||||
  publishSurvey(): void {}
 | 
			
		||||
 | 
			
		||||
  finishSurvey(): void {}
 | 
			
		||||
 | 
			
		||||
  addOption(event: any): void {}
 | 
			
		||||
 | 
			
		||||
  resetForm(event: any): void {
 | 
			
		||||
    this.editForm.reset();
 | 
			
		||||
    if (event !== null) {
 | 
			
		||||
      const id = event.target.dataset.id;
 | 
			
		||||
      this.ePreguntaCerradaService.find(id).subscribe(e => {
 | 
			
		||||
        this.selectedQuestionToCreateOption = e.body;
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  trackCategoriaById(index: number, item: ICategoria): number {
 | 
			
		||||
  deleteQuestion(event: any) {
 | 
			
		||||
    const modalRef = this.modalService.open(EncuestaDeleteQuestionDialogComponent, { size: 'lg', backdrop: 'static' });
 | 
			
		||||
    modalRef.closed.subscribe(reason => {
 | 
			
		||||
      if (reason === 'confirm') {
 | 
			
		||||
        const id = event.target.dataset.id;
 | 
			
		||||
        if (event.target.dataset.type) {
 | 
			
		||||
          // Delete closed question
 | 
			
		||||
          const questionElement = (event.target as HTMLElement).parentElement?.parentElement;
 | 
			
		||||
          const optionIdsToDelete: number[] = [];
 | 
			
		||||
 | 
			
		||||
          // Get options IDs
 | 
			
		||||
          questionElement?.childNodes.forEach((e, i) => {
 | 
			
		||||
            if (e.nodeName !== 'DIV') return;
 | 
			
		||||
            if (i === 0) return;
 | 
			
		||||
            if ((e as HTMLElement).dataset.id === undefined) return;
 | 
			
		||||
            if (!(e as HTMLElement).classList.contains('can-delete')) return;
 | 
			
		||||
            let optionId = (e as HTMLElement).dataset.id;
 | 
			
		||||
            optionIdsToDelete.push(+optionId!);
 | 
			
		||||
          });
 | 
			
		||||
 | 
			
		||||
          if (optionIdsToDelete.length === 0) {
 | 
			
		||||
            this.ePreguntaCerradaService.delete(id).subscribe(e => {
 | 
			
		||||
              this.loadAll();
 | 
			
		||||
            });
 | 
			
		||||
          } else {
 | 
			
		||||
            // Delete question options
 | 
			
		||||
            this.ePreguntaCerradaOpcionService.deleteMany(optionIdsToDelete).subscribe(e => {
 | 
			
		||||
              // Delete question
 | 
			
		||||
              this.ePreguntaCerradaService.delete(id).subscribe(e => {
 | 
			
		||||
                this.loadAll();
 | 
			
		||||
              });
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          // Delete open question
 | 
			
		||||
          this.ePreguntaAbiertaService.delete(id).subscribe(e => {
 | 
			
		||||
            this.loadAll();
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  deleteOption(event: any): void {
 | 
			
		||||
    const modalRef = this.modalService.open(EncuestaDeleteOptionDialogComponent, { size: 'lg', backdrop: 'static' });
 | 
			
		||||
    modalRef.closed.subscribe(reason => {
 | 
			
		||||
      if (reason === 'confirm') {
 | 
			
		||||
        const id = event.target.dataset.optionid;
 | 
			
		||||
        this.ePreguntaCerradaOpcionService.delete(id).subscribe(e => {
 | 
			
		||||
          this.ePreguntas = [];
 | 
			
		||||
          this.ePreguntasOpciones = [];
 | 
			
		||||
          this.loadAll();
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  save(): void {
 | 
			
		||||
    this.isSaving = true;
 | 
			
		||||
    const ePreguntaCerradaOpcion = this.createFromForm();
 | 
			
		||||
    if (ePreguntaCerradaOpcion.id !== undefined) {
 | 
			
		||||
      this.subscribeToSaveResponse(this.ePreguntaCerradaOpcionService.update(ePreguntaCerradaOpcion));
 | 
			
		||||
    } else {
 | 
			
		||||
      this.subscribeToSaveResponse(
 | 
			
		||||
        this.ePreguntaCerradaOpcionService.create(ePreguntaCerradaOpcion, this.selectedQuestionToCreateOption?.id!)
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  trackEPreguntaCerradaById(index: number, item: IEPreguntaCerrada): number {
 | 
			
		||||
    return item.id!;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  trackUsuarioExtraById(index: number, item: IUsuarioExtra): number {
 | 
			
		||||
    return item.id!;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected subscribeToSaveResponse(result: Observable<HttpResponse<IEncuesta>>): void {
 | 
			
		||||
  protected subscribeToSaveResponse(result: Observable<HttpResponse<IEPreguntaCerradaOpcion>>): void {
 | 
			
		||||
    result.pipe(finalize(() => this.onSaveFinalize())).subscribe(
 | 
			
		||||
      () => this.onSaveSuccess(),
 | 
			
		||||
      () => this.onSaveError()
 | 
			
		||||
| 
						 | 
				
			
			@ -98,7 +275,14 @@ export class EncuestaUpdateComponent implements OnInit {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  protected onSaveSuccess(): void {
 | 
			
		||||
    this.previousState();
 | 
			
		||||
    // this.previousState();
 | 
			
		||||
    this.resetForm(null);
 | 
			
		||||
    this.ePreguntas = [];
 | 
			
		||||
    this.ePreguntasOpciones = [];
 | 
			
		||||
    this.loadAll();
 | 
			
		||||
    if (!this.createAnother) {
 | 
			
		||||
      $('#cancelBtn').click();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected onSaveError(): void {
 | 
			
		||||
| 
						 | 
				
			
			@ -109,79 +293,221 @@ export class EncuestaUpdateComponent implements OnInit {
 | 
			
		|||
    this.isSaving = false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected updateForm(encuesta: IEncuesta): void {
 | 
			
		||||
    this.editForm.patchValue({
 | 
			
		||||
      id: encuesta.id,
 | 
			
		||||
      nombre: encuesta.nombre,
 | 
			
		||||
      descripcion: encuesta.descripcion,
 | 
			
		||||
      fechaCreacion: encuesta.fechaCreacion ? encuesta.fechaCreacion.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
      fechaPublicacion: encuesta.fechaPublicacion ? encuesta.fechaPublicacion.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
      fechaFinalizar: encuesta.fechaFinalizar ? encuesta.fechaFinalizar.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
      fechaFinalizada: encuesta.fechaFinalizada ? encuesta.fechaFinalizada.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
      calificacion: encuesta.calificacion,
 | 
			
		||||
      acceso: encuesta.acceso,
 | 
			
		||||
      contrasenna: encuesta.contrasenna,
 | 
			
		||||
      estado: encuesta.estado,
 | 
			
		||||
      categoria: encuesta.categoria,
 | 
			
		||||
      usuarioExtra: encuesta.usuarioExtra,
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    this.categoriasSharedCollection = this.categoriaService.addCategoriaToCollectionIfMissing(
 | 
			
		||||
      this.categoriasSharedCollection,
 | 
			
		||||
      encuesta.categoria
 | 
			
		||||
    );
 | 
			
		||||
    this.usuarioExtrasSharedCollection = this.usuarioExtraService.addUsuarioExtraToCollectionIfMissing(
 | 
			
		||||
      this.usuarioExtrasSharedCollection,
 | 
			
		||||
      encuesta.usuarioExtra
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected loadRelationshipsOptions(): void {
 | 
			
		||||
    this.categoriaService
 | 
			
		||||
      .query()
 | 
			
		||||
      .pipe(map((res: HttpResponse<ICategoria[]>) => res.body ?? []))
 | 
			
		||||
      .pipe(
 | 
			
		||||
        map((categorias: ICategoria[]) =>
 | 
			
		||||
          this.categoriaService.addCategoriaToCollectionIfMissing(categorias, this.editForm.get('categoria')!.value)
 | 
			
		||||
        )
 | 
			
		||||
      )
 | 
			
		||||
      .subscribe((categorias: ICategoria[]) => (this.categoriasSharedCollection = categorias));
 | 
			
		||||
 | 
			
		||||
    this.usuarioExtraService
 | 
			
		||||
      .query()
 | 
			
		||||
      .pipe(map((res: HttpResponse<IUsuarioExtra[]>) => res.body ?? []))
 | 
			
		||||
      .pipe(
 | 
			
		||||
        map((usuarioExtras: IUsuarioExtra[]) =>
 | 
			
		||||
          this.usuarioExtraService.addUsuarioExtraToCollectionIfMissing(usuarioExtras, this.editForm.get('usuarioExtra')!.value)
 | 
			
		||||
        )
 | 
			
		||||
      )
 | 
			
		||||
      .subscribe((usuarioExtras: IUsuarioExtra[]) => (this.usuarioExtrasSharedCollection = usuarioExtras));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected createFromForm(): IEncuesta {
 | 
			
		||||
  protected createFromForm(): IEPreguntaCerradaOpcion {
 | 
			
		||||
    return {
 | 
			
		||||
      ...new Encuesta(),
 | 
			
		||||
      id: this.editForm.get(['id'])!.value,
 | 
			
		||||
      // ...new EPreguntaCerradaOpcion(),
 | 
			
		||||
      id: undefined,
 | 
			
		||||
      nombre: this.editForm.get(['nombre'])!.value,
 | 
			
		||||
      descripcion: this.editForm.get(['descripcion'])!.value,
 | 
			
		||||
      fechaCreacion: this.editForm.get(['fechaCreacion'])!.value
 | 
			
		||||
        ? dayjs(this.editForm.get(['fechaCreacion'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
        : undefined,
 | 
			
		||||
      fechaPublicacion: this.editForm.get(['fechaPublicacion'])!.value
 | 
			
		||||
        ? dayjs(this.editForm.get(['fechaPublicacion'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
        : undefined,
 | 
			
		||||
      fechaFinalizar: this.editForm.get(['fechaFinalizar'])!.value
 | 
			
		||||
        ? dayjs(this.editForm.get(['fechaFinalizar'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
        : undefined,
 | 
			
		||||
      fechaFinalizada: this.editForm.get(['fechaFinalizada'])!.value
 | 
			
		||||
        ? dayjs(this.editForm.get(['fechaFinalizada'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
        : undefined,
 | 
			
		||||
      calificacion: this.editForm.get(['calificacion'])!.value,
 | 
			
		||||
      acceso: this.editForm.get(['acceso'])!.value,
 | 
			
		||||
      contrasenna: this.editForm.get(['contrasenna'])!.value,
 | 
			
		||||
      estado: this.editForm.get(['estado'])!.value,
 | 
			
		||||
      categoria: this.editForm.get(['categoria'])!.value,
 | 
			
		||||
      usuarioExtra: this.editForm.get(['usuarioExtra'])!.value,
 | 
			
		||||
      orden: 10,
 | 
			
		||||
      cantidad: 0,
 | 
			
		||||
      ePreguntaCerrada: this.selectedQuestionToCreateOption,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createAnotherChange(event: any) {
 | 
			
		||||
    this.createAnother = event.target.checked;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createQuestion(): void {
 | 
			
		||||
    const surveyId = this.encuesta?.id;
 | 
			
		||||
    console.log(surveyId);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected createFromFormClosedQuestion(): IEPreguntaCerrada {
 | 
			
		||||
    return {
 | 
			
		||||
      // ...new EPreguntaCerrada(),
 | 
			
		||||
      id: undefined,
 | 
			
		||||
      nombre: this.editFormQuestion.get(['nombre'])!.value,
 | 
			
		||||
      tipo: this.editFormQuestion.get(['tipo'])!.value,
 | 
			
		||||
      opcional: this.editFormQuestion.get(['opcional'])!.value,
 | 
			
		||||
      orden: 10,
 | 
			
		||||
      encuesta: this.encuesta,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected createFromFormOpenQuestion(): IEPreguntaAbierta {
 | 
			
		||||
    return {
 | 
			
		||||
      // ...new EPreguntaAbierta(),
 | 
			
		||||
      id: undefined,
 | 
			
		||||
      nombre: this.editFormQuestion.get(['nombre'])!.value,
 | 
			
		||||
      opcional: this.editFormQuestion.get(['opcional'])!.value,
 | 
			
		||||
      orden: 10,
 | 
			
		||||
      encuesta: this.encuesta,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createAnotherQuestionChange(event: any) {
 | 
			
		||||
    this.createAnotherQuestion = event.target.checked;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  saveQuestion(): void {
 | 
			
		||||
    this.isSavingQuestion = true;
 | 
			
		||||
    const tipoPregunta = this.editFormQuestion.get(['tipopregunta'])!.value;
 | 
			
		||||
 | 
			
		||||
    if (tipoPregunta === 'CLOSED') {
 | 
			
		||||
      const ePreguntaCerrada = this.createFromFormClosedQuestion();
 | 
			
		||||
      if (ePreguntaCerrada.id !== undefined) {
 | 
			
		||||
        this.subscribeToSaveResponseQuestionClosed(this.ePreguntaCerradaService.update(ePreguntaCerrada));
 | 
			
		||||
      } else {
 | 
			
		||||
        this.subscribeToSaveResponseQuestionClosed(this.ePreguntaCerradaService.create(ePreguntaCerrada));
 | 
			
		||||
      }
 | 
			
		||||
    } else if (tipoPregunta === 'OPEN') {
 | 
			
		||||
      const ePreguntaAbierta = this.createFromFormOpenQuestion();
 | 
			
		||||
      if (ePreguntaAbierta.id !== undefined) {
 | 
			
		||||
        this.subscribeToSaveResponseQuestionOpen(this.ePreguntaAbiertaService.update(ePreguntaAbierta));
 | 
			
		||||
      } else {
 | 
			
		||||
        this.subscribeToSaveResponseQuestionOpen(this.ePreguntaAbiertaService.create(ePreguntaAbierta));
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected subscribeToSaveResponseQuestionClosed(result: Observable<HttpResponse<IEPreguntaCerrada>>): void {
 | 
			
		||||
    result.pipe(finalize(() => this.onSaveFinalizeQuestion())).subscribe(
 | 
			
		||||
      () => this.onSaveSuccessQuestion(),
 | 
			
		||||
      () => this.onSaveErrorQuestion()
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected subscribeToSaveResponseQuestionOpen(result: Observable<HttpResponse<IEPreguntaAbierta>>): void {
 | 
			
		||||
    result.pipe(finalize(() => this.onSaveFinalizeQuestion())).subscribe(
 | 
			
		||||
      () => this.onSaveSuccessQuestion(),
 | 
			
		||||
      () => this.onSaveErrorQuestion()
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected onSaveSuccessQuestion(): void {
 | 
			
		||||
    this.editFormQuestion.reset({ tipo: PreguntaCerradaTipo.SINGLE, tipopregunta: 'CLOSED', opcional: false });
 | 
			
		||||
    this.editForm.reset();
 | 
			
		||||
    this.ePreguntas = [];
 | 
			
		||||
    this.ePreguntasOpciones = [];
 | 
			
		||||
    this.loadAll();
 | 
			
		||||
    if (!this.createAnotherQuestion) {
 | 
			
		||||
      $('#cancelBtnQuestion').click();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected onSaveErrorQuestion(): void {
 | 
			
		||||
    // Api for inheritance.
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  protected onSaveFinalizeQuestion(): void {
 | 
			
		||||
    this.isSavingQuestion = false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // previousState(): void {
 | 
			
		||||
  //   window.history.back();
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // save(): void {
 | 
			
		||||
  //   this.isSaving = true;
 | 
			
		||||
  //   const encuesta = this.createFromForm();
 | 
			
		||||
  //   if (encuesta.id !== undefined) {
 | 
			
		||||
  //     this.subscribeToSaveResponse(this.encuestaService.update(encuesta));
 | 
			
		||||
  //   } else {
 | 
			
		||||
  //     this.subscribeToSaveResponse(this.encuestaService.create(encuesta));
 | 
			
		||||
  //   }
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  trackCategoriaById(index: number, item: ICategoria): number {
 | 
			
		||||
    return item.id!;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  trackUsuarioExtraById(index: number, item: IUsuarioExtra): number {
 | 
			
		||||
    return item.id!;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // protected subscribeToSaveResponse(result: Observable<HttpResponse<IEncuesta>>): void {
 | 
			
		||||
  //   result.pipe(finalize(() => this.onSaveFinalize())).subscribe(
 | 
			
		||||
  //     () => this.onSaveSuccess(),
 | 
			
		||||
  //     () => this.onSaveError()
 | 
			
		||||
  //   );
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // protected onSaveSuccess(): void {
 | 
			
		||||
  //   this.previousState();
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // protected onSaveError(): void {
 | 
			
		||||
  //   // Api for inheritance.
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // protected onSaveFinalize(): void {
 | 
			
		||||
  //   this.isSaving = false;
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // protected updateForm(encuesta: IEncuesta): void {
 | 
			
		||||
  //   this.editForm.patchValue({
 | 
			
		||||
  //     id: encuesta.id,
 | 
			
		||||
  //     nombre: encuesta.nombre,
 | 
			
		||||
  //     descripcion: encuesta.descripcion,
 | 
			
		||||
  //     fechaCreacion: encuesta.fechaCreacion ? encuesta.fechaCreacion.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
  //     fechaPublicacion: encuesta.fechaPublicacion ? encuesta.fechaPublicacion.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
  //     fechaFinalizar: encuesta.fechaFinalizar ? encuesta.fechaFinalizar.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
  //     fechaFinalizada: encuesta.fechaFinalizada ? encuesta.fechaFinalizada.format(DATE_TIME_FORMAT) : null,
 | 
			
		||||
  //     calificacion: encuesta.calificacion,
 | 
			
		||||
  //     acceso: encuesta.acceso,
 | 
			
		||||
  //     contrasenna: encuesta.contrasenna,
 | 
			
		||||
  //     estado: encuesta.estado,
 | 
			
		||||
  //     categoria: encuesta.categoria,
 | 
			
		||||
  //     usuarioExtra: encuesta.usuarioExtra,
 | 
			
		||||
  //   });
 | 
			
		||||
 | 
			
		||||
  //   this.categoriasSharedCollection = this.categoriaService.addCategoriaToCollectionIfMissing(
 | 
			
		||||
  //     this.categoriasSharedCollection,
 | 
			
		||||
  //     encuesta.categoria
 | 
			
		||||
  //   );
 | 
			
		||||
  //   this.usuarioExtrasSharedCollection = this.usuarioExtraService.addUsuarioExtraToCollectionIfMissing(
 | 
			
		||||
  //     this.usuarioExtrasSharedCollection,
 | 
			
		||||
  //     encuesta.usuarioExtra
 | 
			
		||||
  //   );
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // protected loadRelationshipsOptions(): void {
 | 
			
		||||
  //   this.categoriaService
 | 
			
		||||
  //     .query()
 | 
			
		||||
  //     .pipe(map((res: HttpResponse<ICategoria[]>) => res.body ?? []))
 | 
			
		||||
  //     .pipe(
 | 
			
		||||
  //       map((categorias: ICategoria[]) =>
 | 
			
		||||
  //         this.categoriaService.addCategoriaToCollectionIfMissing(categorias, this.editForm.get('categoria')!.value)
 | 
			
		||||
  //       )
 | 
			
		||||
  //     )
 | 
			
		||||
  //     .subscribe((categorias: ICategoria[]) => (this.categoriasSharedCollection = categorias));
 | 
			
		||||
 | 
			
		||||
  //   this.usuarioExtraService
 | 
			
		||||
  //     .query()
 | 
			
		||||
  //     .pipe(map((res: HttpResponse<IUsuarioExtra[]>) => res.body ?? []))
 | 
			
		||||
  //     .pipe(
 | 
			
		||||
  //       map((usuarioExtras: IUsuarioExtra[]) =>
 | 
			
		||||
  //         this.usuarioExtraService.addUsuarioExtraToCollectionIfMissing(usuarioExtras, this.editForm.get('usuarioExtra')!.value)
 | 
			
		||||
  //       )
 | 
			
		||||
  //     )
 | 
			
		||||
  //     .subscribe((usuarioExtras: IUsuarioExtra[]) => (this.usuarioExtrasSharedCollection = usuarioExtras));
 | 
			
		||||
  // }
 | 
			
		||||
 | 
			
		||||
  // protected createFromForm(): IEncuesta {
 | 
			
		||||
  //   return {
 | 
			
		||||
  //     ...new Encuesta(),
 | 
			
		||||
  //     id: this.editForm.get(['id'])!.value,
 | 
			
		||||
  //     nombre: this.editForm.get(['nombre'])!.value,
 | 
			
		||||
  //     descripcion: this.editForm.get(['descripcion'])!.value,
 | 
			
		||||
  //     fechaCreacion: this.editForm.get(['fechaCreacion'])!.value
 | 
			
		||||
  //       ? dayjs(this.editForm.get(['fechaCreacion'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
  //       : undefined,
 | 
			
		||||
  //     fechaPublicacion: this.editForm.get(['fechaPublicacion'])!.value
 | 
			
		||||
  //       ? dayjs(this.editForm.get(['fechaPublicacion'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
  //       : undefined,
 | 
			
		||||
  //     fechaFinalizar: this.editForm.get(['fechaFinalizar'])!.value
 | 
			
		||||
  //       ? dayjs(this.editForm.get(['fechaFinalizar'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
  //       : undefined,
 | 
			
		||||
  //     fechaFinalizada: this.editForm.get(['fechaFinalizada'])!.value
 | 
			
		||||
  //       ? dayjs(this.editForm.get(['fechaFinalizada'])!.value, DATE_TIME_FORMAT)
 | 
			
		||||
  //       : undefined,
 | 
			
		||||
  //     calificacion: this.editForm.get(['calificacion'])!.value,
 | 
			
		||||
  //     acceso: this.editForm.get(['acceso'])!.value,
 | 
			
		||||
  //     contrasenna: this.editForm.get(['contrasenna'])!.value,
 | 
			
		||||
  //     estado: this.editForm.get(['estado'])!.value,
 | 
			
		||||
  //     categoria: this.editForm.get(['categoria'])!.value,
 | 
			
		||||
  //     usuarioExtra: this.editForm.get(['usuarioExtra'])!.value,
 | 
			
		||||
  //   };
 | 
			
		||||
  // }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,23 @@
 | 
			
		|||
  <div class="alert alert-warning" id="no-result" *ngIf="usuarioExtras?.length === 0">
 | 
			
		||||
    <span jhiTranslate="dataSurveyApp.usuarioExtra.home.notFound">No usuarioExtras found</span>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <form class="ds-form d-inline">
 | 
			
		||||
    <div class="input-group">
 | 
			
		||||
      <div class="col-3">
 | 
			
		||||
        <div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
 | 
			
		||||
        <input type="text" name="searchNombreUsuario" placeholder="Buscar por nombre..." [(ngModel)]="searchNombreUsuario" />
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="col-3">
 | 
			
		||||
        <div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
 | 
			
		||||
        <select name="searchEstadoUsuario" id="searchEstadoUsuario" [(ngModel)]="searchEstadoUsuario" style="width: 200px">
 | 
			
		||||
          <option value="" selected="selected" disabled="disabled">Filtrar por estado</option>
 | 
			
		||||
          <option value="">Todos Estados</option>
 | 
			
		||||
          <option value="Active">Activos</option>
 | 
			
		||||
          <option value="Suspended">Bloqueados</option>
 | 
			
		||||
        </select>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </form>
 | 
			
		||||
  <div class="table-responsive" id="entities" *ngIf="usuarioExtras && usuarioExtras.length > 0">
 | 
			
		||||
    <table class="table table-striped" aria-describedby="page-heading">
 | 
			
		||||
      <thead>
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +53,13 @@
 | 
			
		|||
        </tr>
 | 
			
		||||
      </thead>
 | 
			
		||||
      <tbody>
 | 
			
		||||
        <tr *ngFor="let usuarioExtra of usuarioExtras; trackBy: trackId" data-cy="entityTable">
 | 
			
		||||
        <tr
 | 
			
		||||
          *ngFor="
 | 
			
		||||
            let usuarioExtra of usuarioExtras | filter: 'nombre':searchNombreUsuario | filter: 'estado':searchEstadoUsuario;
 | 
			
		||||
            trackBy: trackId
 | 
			
		||||
          "
 | 
			
		||||
          data-cy="entityTable"
 | 
			
		||||
        >
 | 
			
		||||
          <td *ngIf="usuarioExtra.user">
 | 
			
		||||
            <ul class="listRoles">
 | 
			
		||||
              <li *ngFor="let userRole of usuarioExtra.user.authorities">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,8 +18,13 @@ export class UsuarioExtraComponent implements OnInit {
 | 
			
		|||
  publicUsers?: IUser[];
 | 
			
		||||
  isLoading = false;
 | 
			
		||||
  successChange = false;
 | 
			
		||||
  public searchNombreUsuario: string;
 | 
			
		||||
  public searchEstadoUsuario: string;
 | 
			
		||||
 | 
			
		||||
  constructor(protected usuarioExtraService: UsuarioExtraService, protected modalService: NgbModal) {}
 | 
			
		||||
  constructor(protected usuarioExtraService: UsuarioExtraService, protected modalService: NgbModal) {
 | 
			
		||||
    this.searchNombreUsuario = '';
 | 
			
		||||
    this.searchEstadoUsuario = '';
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  loadPublicUser(): void {
 | 
			
		||||
    this.usuarioExtraService
 | 
			
		||||
| 
						 | 
				
			
			@ -61,6 +66,8 @@ export class UsuarioExtraComponent implements OnInit {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
    this.searchNombreUsuario = '';
 | 
			
		||||
    this.searchEstadoUsuario = '';
 | 
			
		||||
    this.loadAll();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,78 +1,272 @@
 | 
			
		|||
<div class="row">
 | 
			
		||||
  <div class="col-md-3">
 | 
			
		||||
    <span class="hipster img-fluid rounded"></span>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div class="col">
 | 
			
		||||
    <div class="container-fluid navbar navbar-marketing navbar-expand-lg bg-white navbar-light">
 | 
			
		||||
      <div class="container px-5 py-4">
 | 
			
		||||
        <a class="text-dark" href="index.html"
 | 
			
		||||
          ><img src="http://datasurvey.org/content/img_datasurvey/datasurvey-logo-text-black.svg" width="300" alt=""
 | 
			
		||||
        /></a>
 | 
			
		||||
 | 
			
		||||
  <div class="col-md-9">
 | 
			
		||||
    <h1 class="display-4"><span jhiTranslate="home.title">Welcome, Java Hipster!</span> (Data Survey)</h1>
 | 
			
		||||
        <div class="col-6" style="text-align: end">
 | 
			
		||||
          <a href="#">
 | 
			
		||||
            <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Encuestas</button>
 | 
			
		||||
          </a>
 | 
			
		||||
          <a href="login" [hidden]="!notAccount">
 | 
			
		||||
            <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Iniciar Sesión</button>
 | 
			
		||||
          </a>
 | 
			
		||||
 | 
			
		||||
    <p class="lead" jhiTranslate="home.subtitle">This is your homepage</p>
 | 
			
		||||
 | 
			
		||||
    <div [ngSwitch]="account !== null">
 | 
			
		||||
      <div class="alert alert-success" *ngSwitchCase="true">
 | 
			
		||||
        <span id="home-logged-message" *ngIf="account" jhiTranslate="home.logged.message" [translateValues]="{ username: account.login }"
 | 
			
		||||
          >You are logged in as user "{{ account.login }}".</span
 | 
			
		||||
        >
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="alert alert-warning" *ngSwitchCase="false">
 | 
			
		||||
        <span jhiTranslate="global.messages.info.authenticated.prefix">If you want to </span>
 | 
			
		||||
        <a class="alert-link" (click)="login()" jhiTranslate="global.messages.info.authenticated.link">sign in</a
 | 
			
		||||
        ><span jhiTranslate="global.messages.info.authenticated.suffix"
 | 
			
		||||
          >, you can try the default accounts:<br />- Administrator (login="admin" and password="admin") <br />- User (login="user" and
 | 
			
		||||
          password="user").</span
 | 
			
		||||
        >
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="alert alert-warning" *ngSwitchCase="false">
 | 
			
		||||
        <span jhiTranslate="global.messages.info.register.noaccount">You don't have an account yet?</span> 
 | 
			
		||||
        <a class="alert-link" routerLink="account/register" jhiTranslate="global.messages.info.register.link">Register a new account</a>
 | 
			
		||||
          <a href="account/register" [hidden]="!notAccount">
 | 
			
		||||
            <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Registrarse</button>
 | 
			
		||||
          </a>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <!-- Page Header-->
 | 
			
		||||
    <div
 | 
			
		||||
      class="page-header-ui page-header-ui-dark bg-img-cover overlay overlay-40"
 | 
			
		||||
      style="background-image: url('../../content/img_datasurvey/banner2.png')"
 | 
			
		||||
    >
 | 
			
		||||
      <div class="page-header-ui-content py-5 position-relative">
 | 
			
		||||
        <div class="container px-5">
 | 
			
		||||
          <div class="row gx-5 justify-content-center">
 | 
			
		||||
            <div class="col-xl-8 col-lg-10 text-center">
 | 
			
		||||
              <div data-aos="fade-up">
 | 
			
		||||
                <h1 class="page-header-ui-title">¡Le damos la bienvenida a DataSurvey!</h1>
 | 
			
		||||
                <h5 class="page-header-ui-text">
 | 
			
		||||
                  Somos su mejor aliado para la recolección de información, a través de nuestra plataforma.
 | 
			
		||||
                </h5>
 | 
			
		||||
                <div class="row" [hidden]="!notAccount">
 | 
			
		||||
                  <div class="col">
 | 
			
		||||
                    <a routerLink="/login">
 | 
			
		||||
                      <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Comenzar</button>
 | 
			
		||||
                    </a>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
              <!--<div class="row">
 | 
			
		||||
                <div class="col">
 | 
			
		||||
                  <a routerLink="/login">
 | 
			
		||||
                    <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Iniciar Sesión</button>
 | 
			
		||||
                  </a>
 | 
			
		||||
                  <a routerLink="/account/register">
 | 
			
		||||
                    <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Registrarse</button>
 | 
			
		||||
                  </a>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>-->
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="svg-border-rounded text-white">
 | 
			
		||||
        <!-- Rounded SVG Border-->
 | 
			
		||||
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144.54 17.34" preserveAspectRatio="none" fill="currentColor">
 | 
			
		||||
          <path d="M144.54,17.34H0V0H144.54ZM0,0S32.36,17.34,72.27,17.34,144.54,0,144.54,0"></path>
 | 
			
		||||
        </svg>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="bg-white py-10" id="get-started">
 | 
			
		||||
      <div class="container px-5">
 | 
			
		||||
        <div class="row gx-5 text-center">
 | 
			
		||||
          <div class="col-lg-4 mb-5 mb-lg-0">
 | 
			
		||||
            <div class="icon-stack icon-stack-xl bg-gradient-primary-to-secondary text-white mb-4"><i class="fa fa-droplet"></i></div>
 | 
			
		||||
            <h2>El Mejor diseño</h2>
 | 
			
		||||
            <p class="mb-0">Tenemos el mejor diseño para que pueda disfrutar visualmente de la plataforma.</p>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-lg-4 mb-5 mb-lg-0">
 | 
			
		||||
            <div class="icon-stack icon-stack-xl bg-gradient-primary-to-secondary text-white mb-4"><i class="fa fa-code"></i></div>
 | 
			
		||||
            <h2>Fácil uso</h2>
 | 
			
		||||
            <p class="mb-0">Contamos con una plataforma muy sencilla de usar.</p>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="col-lg-4">
 | 
			
		||||
            <div class="icon-stack icon-stack-xl bg-gradient-primary-to-secondary text-white mb-4"><i class="fa fa-truck"></i></div>
 | 
			
		||||
            <h2>Diverso contenido</h2>
 | 
			
		||||
            <p class="mb-0">Podrá encontrar y crear encuestas de diferentes categorías.</p>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="svg-border-rounded text-light">
 | 
			
		||||
        <!-- Rounded SVG Border-->
 | 
			
		||||
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144.54 17.34" preserveAspectRatio="none" fill="currentColor">
 | 
			
		||||
          <path d="M144.54,17.34H0V0H144.54ZM0,0S32.36,17.34,72.27,17.34,144.54,0,144.54,0"></path>
 | 
			
		||||
        </svg>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="bg-light py-10 container-encuestas">
 | 
			
		||||
      <div class="container px-0">
 | 
			
		||||
        <h1 class="text-center mb-4">Encuestas</h1>
 | 
			
		||||
        <div class="row gx-5" *ngIf="encuestas && encuestas.length > 0">
 | 
			
		||||
          <div class="col-xl-4 col-lg-4 col-md-6 mb-5" *ngFor="let encuesta of encuestasMostradas; trackBy: trackId">
 | 
			
		||||
            <div
 | 
			
		||||
              class="card-encuesta lift h-100"
 | 
			
		||||
              (dblclick)="openSurvey($event)"
 | 
			
		||||
              (click)="selectSurvey($event)"
 | 
			
		||||
              [attr.data-id]="encuesta.id"
 | 
			
		||||
            >
 | 
			
		||||
              <div class="card-body p-3">
 | 
			
		||||
                <div class="card-title mb-0">{{ encuesta.nombre }}</div>
 | 
			
		||||
                <div class="entity-body--row m-2">
 | 
			
		||||
                  <span class="tag mt-2">{{ encuesta.categoria?.nombre | lowercase }}</span>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="entity-body--row m-2">
 | 
			
		||||
                  <span class="subtitle mt-2">{{ encuesta.descripcion | titlecase }}</span>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="text-xs text-gray-500">
 | 
			
		||||
                  <div class="entity-body">
 | 
			
		||||
                    <div class="entity-body--row m-2">
 | 
			
		||||
                      <span class="mt-2"
 | 
			
		||||
                        >Fecha Publicada  <fa-icon class="entity-icon--access" [icon]="faCalendarAlt"></fa-icon>  {{
 | 
			
		||||
                          encuesta.fechaPublicacion | formatShortDatetime | titlecase
 | 
			
		||||
                        }}</span
 | 
			
		||||
                      >
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="entity-body--row m-2">
 | 
			
		||||
                      <span class="mt-2"
 | 
			
		||||
                        >Fecha de Finalización   <fa-icon class="entity-icon--access" [icon]="faCalendarAlt"></fa-icon
 | 
			
		||||
                        >  {{ encuesta.fechaFinalizar | formatShortDatetime | titlecase }}</span
 | 
			
		||||
                      >
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="entity-body--row m-2">
 | 
			
		||||
                      <p>Calificacion</p>
 | 
			
		||||
                      <fa-icon *ngFor="let i of [].constructor(encuesta.calificacion)" class="entity-icon--star" [icon]="faStar"></fa-icon>
 | 
			
		||||
                      <fa-icon
 | 
			
		||||
                        *ngFor="let i of [].constructor(5 - encuesta.calificacion!)"
 | 
			
		||||
                        class="entity-icon--star--off"
 | 
			
		||||
                        [icon]="faStar"
 | 
			
		||||
                      ></fa-icon>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class="entity-body--row m-2">
 | 
			
		||||
                      <button class="ds-btn btn-card"><fa-icon [icon]="faPollH"></fa-icon>  Completar encuesta</button>
 | 
			
		||||
                    </div>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="row">
 | 
			
		||||
            <div class="col">
 | 
			
		||||
              <a routerLink="#">
 | 
			
		||||
                <button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Ver todas las encuestas</button>
 | 
			
		||||
              </a>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="container my-5">
 | 
			
		||||
      <div class="text-center mb-4">
 | 
			
		||||
        <h1>Preguntas frecuentes</h1>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
    <p jhiTranslate="home.question">If you have any question on JHipster:</p>
 | 
			
		||||
      <!--Accordion wrapper-->
 | 
			
		||||
      <div class="accordion md-accordion" id="accordionEx" role="tablist" aria-multiselectable="true">
 | 
			
		||||
        <!-- Accordion card -->
 | 
			
		||||
        <div class="card accordion-item">
 | 
			
		||||
          <!-- Card header -->
 | 
			
		||||
          <div class="card-header" role="tab" id="headingOne1">
 | 
			
		||||
            <a
 | 
			
		||||
              data-toggle="collapse"
 | 
			
		||||
              data-parent="#accordionEx"
 | 
			
		||||
              href="#collapseOne1"
 | 
			
		||||
              aria-expanded="true"
 | 
			
		||||
              aria-controls="collapseOne1"
 | 
			
		||||
              class="accordion-header"
 | 
			
		||||
            >
 | 
			
		||||
              <h2 class="mb-0">
 | 
			
		||||
                <button
 | 
			
		||||
                  class="accordion-button py-4 collapsed"
 | 
			
		||||
                  type="button"
 | 
			
		||||
                  data-bs-toggle="collapse"
 | 
			
		||||
                  data-bs-target="#collapseOne1"
 | 
			
		||||
                  aria-expanded="true"
 | 
			
		||||
                  aria-controls="collapseOne"
 | 
			
		||||
                >
 | 
			
		||||
                  ¿Qué métodos de pago estás disponibles en DataSurvey?
 | 
			
		||||
                </button>
 | 
			
		||||
              </h2>
 | 
			
		||||
            </a>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li>
 | 
			
		||||
        <a href="https://www.jhipster.tech/" target="_blank" rel="noopener noreferrer" jhiTranslate="home.link.homepage"
 | 
			
		||||
          >JHipster homepage</a
 | 
			
		||||
        >
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>
 | 
			
		||||
        <a
 | 
			
		||||
          href="https://stackoverflow.com/tags/jhipster/info"
 | 
			
		||||
          target="_blank"
 | 
			
		||||
          rel="noopener noreferrer"
 | 
			
		||||
          jhiTranslate="home.link.stackoverflow"
 | 
			
		||||
          >JHipster on Stack Overflow</a
 | 
			
		||||
        >
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>
 | 
			
		||||
        <a
 | 
			
		||||
          href="https://github.com/jhipster/generator-jhipster/issues?state=open"
 | 
			
		||||
          target="_blank"
 | 
			
		||||
          rel="noopener noreferrer"
 | 
			
		||||
          jhiTranslate="home.link.bugtracker"
 | 
			
		||||
          >JHipster bug tracker</a
 | 
			
		||||
        >
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>
 | 
			
		||||
        <a href="https://gitter.im/jhipster/generator-jhipster" target="_blank" rel="noopener noreferrer" jhiTranslate="home.link.chat"
 | 
			
		||||
          >JHipster public chat room</a
 | 
			
		||||
        >
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>
 | 
			
		||||
        <a href="https://twitter.com/jhipster" target="_blank" rel="noopener noreferrer" jhiTranslate="home.link.follow"
 | 
			
		||||
          >follow @jhipster on Twitter</a
 | 
			
		||||
        >
 | 
			
		||||
      </li>
 | 
			
		||||
    </ul>
 | 
			
		||||
          <!-- Card body -->
 | 
			
		||||
          <div id="collapseOne1" class="collapse show" role="tabpanel" aria-labelledby="headingOne1" data-parent="#accordionEx">
 | 
			
		||||
            <div class="card-body">DataSurvey utiliza PayPal como método de pago para la compra de plantillas.</div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- Accordion card -->
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
      <span jhiTranslate="home.like">If you like JHipster, don't forget to give us a star on</span>
 | 
			
		||||
      <a href="https://github.com/jhipster/generator-jhipster" target="_blank" rel="noopener noreferrer" jhiTranslate="home.github"
 | 
			
		||||
        >GitHub</a
 | 
			
		||||
      >!
 | 
			
		||||
    </p>
 | 
			
		||||
        <!-- Accordion card -->
 | 
			
		||||
        <div class="card accordion-item">
 | 
			
		||||
          <!-- Card header -->
 | 
			
		||||
          <div class="card-header" role="tab" id="headingTwo2">
 | 
			
		||||
            <a
 | 
			
		||||
              data-toggle="collapse"
 | 
			
		||||
              data-parent="#accordionEx"
 | 
			
		||||
              href="#collapseTwo2"
 | 
			
		||||
              aria-expanded="true"
 | 
			
		||||
              aria-controls="collapseTwo2"
 | 
			
		||||
              class="accordion-header"
 | 
			
		||||
            >
 | 
			
		||||
              <h2 class="mb-0">
 | 
			
		||||
                <button
 | 
			
		||||
                  class="accordion-button py-4 collapsed"
 | 
			
		||||
                  type="button"
 | 
			
		||||
                  data-bs-toggle="collapse"
 | 
			
		||||
                  data-bs-target="#collapseTwo2"
 | 
			
		||||
                  aria-expanded="true"
 | 
			
		||||
                  aria-controls="collapseTwo"
 | 
			
		||||
                >
 | 
			
		||||
                  ¿Debo iniciar sesión o registrarme para poder completar encuestas?
 | 
			
		||||
                </button>
 | 
			
		||||
              </h2>
 | 
			
		||||
            </a>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <!-- Card body -->
 | 
			
		||||
          <div id="collapseTwo2" class="collapse" role="tabpanel" aria-labelledby="headingTwo2" data-parent="#accordionEx">
 | 
			
		||||
            <div class="card-body">
 | 
			
		||||
              Uno de los objetivos de DataSurvey es que se puedan compartir las encuestas con todos los usuarios, sin necesidad de tener una
 | 
			
		||||
              cuenta en la plataforma.
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- Accordion card -->
 | 
			
		||||
 | 
			
		||||
        <!-- Accordion card -->
 | 
			
		||||
        <div class="card">
 | 
			
		||||
          <!-- Card header -->
 | 
			
		||||
          <!-- Card header -->
 | 
			
		||||
          <div class="card-header" role="tab" id="headingThree3">
 | 
			
		||||
            <a
 | 
			
		||||
              data-toggle="collapse"
 | 
			
		||||
              data-parent="#accordionEx"
 | 
			
		||||
              href="#collapseThree3"
 | 
			
		||||
              aria-expanded="true"
 | 
			
		||||
              aria-controls="collapseThree3"
 | 
			
		||||
              class="accordion-header"
 | 
			
		||||
            >
 | 
			
		||||
              <h2 class="mb-0">
 | 
			
		||||
                <button
 | 
			
		||||
                  class="accordion-button py-4 collapsed"
 | 
			
		||||
                  type="button"
 | 
			
		||||
                  data-bs-toggle="collapse"
 | 
			
		||||
                  data-bs-target="#collapseThree3"
 | 
			
		||||
                  aria-expanded="true"
 | 
			
		||||
                  aria-controls="collapseThree"
 | 
			
		||||
                >
 | 
			
		||||
                  ¿Cómo comparto una encuesta?
 | 
			
		||||
                </button>
 | 
			
		||||
              </h2>
 | 
			
		||||
            </a>
 | 
			
		||||
          </div>
 | 
			
		||||
          <!-- Card body -->
 | 
			
		||||
          <div id="collapseThree3" class="collapse" role="tabpanel" aria-labelledby="headingThree3" data-parent="#accordionEx">
 | 
			
		||||
            <div class="card-body">
 | 
			
		||||
              La plataforma tiene dos tipos de encuestas: públicas y privadas. Las públicas pueden ser compartidas con todo tipo de usuario,
 | 
			
		||||
              sin ninguna excepción, mientras que las encuestas privadas, necesitan de una clave para poder ser completadas.
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <!-- Accordion card -->
 | 
			
		||||
      </div>
 | 
			
		||||
      <!-- Accordion wrapper -->
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,201 @@ Main page styles
 | 
			
		|||
  background-size: contain;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bg-img-cover {
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  background-size: cover;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.overlay:before {
 | 
			
		||||
  content: '';
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  background-color: #000;
 | 
			
		||||
  opacity: 0.5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-10:before {
 | 
			
		||||
  opacity: 0.1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-20:before {
 | 
			
		||||
  opacity: 0.2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-30:before {
 | 
			
		||||
  opacity: 0.3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-40:before {
 | 
			
		||||
  opacity: 0.4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-50:before {
 | 
			
		||||
  opacity: 0.5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-60:before {
 | 
			
		||||
  opacity: 0.6;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-70:before {
 | 
			
		||||
  opacity: 0.7;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-80:before {
 | 
			
		||||
  opacity: 0.8;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.overlay-90:before {
 | 
			
		||||
  opacity: 0.9;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fixed-top,
 | 
			
		||||
.page-header-ui.navbar-fixed .navbar {
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  z-index: 1030;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.text-white-75,
 | 
			
		||||
.page-header-ui-dark .page-header-ui-text a {
 | 
			
		||||
  color: rgba(255, 255, 255, 0.75) !important;
 | 
			
		||||
}
 | 
			
		||||
.page-header-ui {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  padding-top: 8rem;
 | 
			
		||||
  padding-bottom: 8rem;
 | 
			
		||||
}
 | 
			
		||||
.page-header-ui .page-header-ui-content .page-header-ui-title {
 | 
			
		||||
  font-size: 2.5rem;
 | 
			
		||||
}
 | 
			
		||||
.page-header-ui .page-header-ui-content .page-header-ui-text {
 | 
			
		||||
  font-size: 1.15rem;
 | 
			
		||||
}
 | 
			
		||||
.page-header-ui .page-header-ui-content .page-header-ui-text.small {
 | 
			
		||||
  font-size: 0.9rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.page-header-ui-dark {
 | 
			
		||||
  color: #fff;
 | 
			
		||||
  background-color: #212832;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.svg-border-rounded svg {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  height: 1rem;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
@media (min-width: 576px) {
 | 
			
		||||
  .svg-border-rounded svg {
 | 
			
		||||
    height: 1.5rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (min-width: 768px) {
 | 
			
		||||
  .svg-border-rounded svg {
 | 
			
		||||
    height: 2rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (min-width: 992px) {
 | 
			
		||||
  .svg-border-rounded svg {
 | 
			
		||||
    height: 2.5rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (min-width: 1200px) {
 | 
			
		||||
  .svg-border-rounded svg {
 | 
			
		||||
    height: 3rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  Cards
 | 
			
		||||
**/
 | 
			
		||||
.lift {
 | 
			
		||||
  box-shadow: 0 0.15rem 1.75rem 0 rgba(33, 40, 50, 0.15);
 | 
			
		||||
  transition: transform 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
 | 
			
		||||
}
 | 
			
		||||
.lift:hover {
 | 
			
		||||
  transform: translateY(-0.3333333333rem);
 | 
			
		||||
  box-shadow: 0 0.5rem 2rem 0 rgba(33, 40, 50, 0.25);
 | 
			
		||||
}
 | 
			
		||||
.lift:active {
 | 
			
		||||
  transform: none;
 | 
			
		||||
  box-shadow: 0 0.15rem 1.75rem 0 rgba(33, 40, 50, 0.15);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.lift-sm {
 | 
			
		||||
  box-shadow: 0 0.125rem 0.25rem 0 rgba(33, 40, 50, 0.2);
 | 
			
		||||
}
 | 
			
		||||
.lift-sm:hover {
 | 
			
		||||
  transform: translateY(-0.1666666667rem);
 | 
			
		||||
  box-shadow: 0 0.25rem 1rem 0 rgba(33, 40, 50, 0.25);
 | 
			
		||||
}
 | 
			
		||||
.lift-sm:active {
 | 
			
		||||
  transform: none;
 | 
			
		||||
  box-shadow: 0 0.125rem 0.25rem 0 rgba(33, 40, 50, 0.2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*.card.lift {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  font-size: 0.7rem;
 | 
			
		||||
  padding: 0.3rem 0.5rem;
 | 
			
		||||
  line-height: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-dark {
 | 
			
		||||
  background-color: rgba(33, 40, 50, 0.7);
 | 
			
		||||
  color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-light {
 | 
			
		||||
  background-color: rgba(255, 255, 255, 0.7);
 | 
			
		||||
  color: #69707a;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-lg {
 | 
			
		||||
  font-size: 0.9rem;
 | 
			
		||||
  padding: 0.5rem 0.65rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-top-right {
 | 
			
		||||
  border-top-left-radius: 0.25rem;
 | 
			
		||||
  border-bottom-left-radius: 0.25rem;
 | 
			
		||||
  top: 0.5rem;
 | 
			
		||||
  right: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-top-left {
 | 
			
		||||
  border-top-right-radius: 0.25rem;
 | 
			
		||||
  border-bottom-right-radius: 0.25rem;
 | 
			
		||||
  top: 0.5rem;
 | 
			
		||||
  left: 0;
 | 
			
		||||
}*/
 | 
			
		||||
 | 
			
		||||
.border-cyan {
 | 
			
		||||
  border-color: #00cfd5 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.py-10 {
 | 
			
		||||
  padding-top: 6rem !important;
 | 
			
		||||
  padding-bottom: 6rem !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 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),
 | 
			
		||||
| 
						 | 
				
			
			@ -21,3 +216,199 @@ Main page styles
 | 
			
		|||
    background-size: contain;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon-stack {
 | 
			
		||||
  display: inline-flex;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  border-radius: 100%;
 | 
			
		||||
  height: 2.5rem;
 | 
			
		||||
  width: 2.5rem;
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
  background-color: #f2f6fc;
 | 
			
		||||
  flex-shrink: 0;
 | 
			
		||||
}
 | 
			
		||||
.icon-stack svg {
 | 
			
		||||
  height: 1rem;
 | 
			
		||||
  width: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon-stack-sm {
 | 
			
		||||
  height: 2rem;
 | 
			
		||||
  width: 2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon-stack-lg {
 | 
			
		||||
  height: 4rem;
 | 
			
		||||
  width: 4rem;
 | 
			
		||||
  font-size: 1.5rem;
 | 
			
		||||
}
 | 
			
		||||
.icon-stack-lg svg {
 | 
			
		||||
  height: 1.5rem;
 | 
			
		||||
  width: 1.5rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.icon-stack-xl {
 | 
			
		||||
  height: 5rem;
 | 
			
		||||
  width: 5rem;
 | 
			
		||||
  font-size: 1.75rem;
 | 
			
		||||
}
 | 
			
		||||
.icon-stack-xl svg {
 | 
			
		||||
  height: 1.75rem;
 | 
			
		||||
  width: 1.75rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.container-encuestas {
 | 
			
		||||
  background-image: url('../../content/img_datasurvey/background encuestas landing.png');
 | 
			
		||||
  max-height: 1536px;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.bg-gradient-primary-to-secondary {
 | 
			
		||||
  background-color: #1c44b2 !important;
 | 
			
		||||
  background-image: linear-gradient(135deg, #1c44b2 0%, #00b88d 100%) !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*.card .entity-icon--star {
 | 
			
		||||
  color: #ffcc47;
 | 
			
		||||
  margin-right: 0.2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card .card-title {
 | 
			
		||||
  font-size: 2em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card .tag {
 | 
			
		||||
  font-size: 0.8rem;
 | 
			
		||||
  color: #f8f8f8;
 | 
			
		||||
  margin-top: 0.5rem;
 | 
			
		||||
  padding: 0.2rem 1.5rem;
 | 
			
		||||
  background-color: #2962ff94;
 | 
			
		||||
  border-radius: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card .subtitle {
 | 
			
		||||
  color: rgba(0, 0, 0, 0.54);
 | 
			
		||||
  font-size: 0.9rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card .btn-card {
 | 
			
		||||
  padding: 11px 10px !important;
 | 
			
		||||
}*/
 | 
			
		||||
 | 
			
		||||
.accordion-button {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding: 1rem 1.25rem;
 | 
			
		||||
  font-size: 1rem;
 | 
			
		||||
  color: #69707a;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  border: 0;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
  overflow-anchor: none;
 | 
			
		||||
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out,
 | 
			
		||||
    border-radius 0.15s ease;
 | 
			
		||||
}
 | 
			
		||||
@media (prefers-reduced-motion: reduce) {
 | 
			
		||||
  .accordion-button {
 | 
			
		||||
    transition: none;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.accordion-button:not(.collapsed) {
 | 
			
		||||
  color: #0057da;
 | 
			
		||||
  background-color: #e6effe;
 | 
			
		||||
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);
 | 
			
		||||
}
 | 
			
		||||
.accordion-button:not(.collapsed)::after {
 | 
			
		||||
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230057da'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
 | 
			
		||||
  transform: rotate(-180deg);
 | 
			
		||||
}
 | 
			
		||||
.accordion-button::after {
 | 
			
		||||
  flex-shrink: 0;
 | 
			
		||||
  width: 1.25rem;
 | 
			
		||||
  height: 1.25rem;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  content: '';
 | 
			
		||||
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2369707a'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-size: 1.25rem;
 | 
			
		||||
  transition: transform 0.2s ease-in-out;
 | 
			
		||||
}
 | 
			
		||||
@media (prefers-reduced-motion: reduce) {
 | 
			
		||||
  .accordion-button::after {
 | 
			
		||||
    transition: none;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.accordion-button:hover {
 | 
			
		||||
  z-index: 2;
 | 
			
		||||
}
 | 
			
		||||
.accordion-button:focus {
 | 
			
		||||
  z-index: 3;
 | 
			
		||||
  border-color: transparent;
 | 
			
		||||
  outline: 0;
 | 
			
		||||
  box-shadow: 0 0 0 0.25rem #00b88d3a;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.accordion-header {
 | 
			
		||||
  margin-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.accordion-item {
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
  border: 1px solid rgba(0, 0, 0, 0.125);
 | 
			
		||||
}
 | 
			
		||||
.accordion-item:first-of-type {
 | 
			
		||||
  border-top-left-radius: 0.35rem;
 | 
			
		||||
  border-top-right-radius: 0.35rem;
 | 
			
		||||
}
 | 
			
		||||
.accordion-item:first-of-type .accordion-button {
 | 
			
		||||
  border-top-left-radius: calc(0.35rem - 1px);
 | 
			
		||||
  border-top-right-radius: calc(0.35rem - 1px);
 | 
			
		||||
}
 | 
			
		||||
.accordion-item:not(:first-of-type) {
 | 
			
		||||
  border-top: 0;
 | 
			
		||||
}
 | 
			
		||||
.accordion-item:last-of-type {
 | 
			
		||||
  border-bottom-right-radius: 0.35rem;
 | 
			
		||||
  border-bottom-left-radius: 0.35rem;
 | 
			
		||||
}
 | 
			
		||||
.accordion-item:last-of-type .accordion-button.collapsed {
 | 
			
		||||
  border-bottom-right-radius: calc(0.35rem - 1px);
 | 
			
		||||
  border-bottom-left-radius: calc(0.35rem - 1px);
 | 
			
		||||
}
 | 
			
		||||
.accordion-item:last-of-type .accordion-collapse {
 | 
			
		||||
  border-bottom-right-radius: 0.35rem;
 | 
			
		||||
  border-bottom-left-radius: 0.35rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.accordion-body {
 | 
			
		||||
  padding: 1rem 1.25rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.accordion-flush .accordion-collapse {
 | 
			
		||||
  border-width: 0;
 | 
			
		||||
}
 | 
			
		||||
.accordion-flush .accordion-item {
 | 
			
		||||
  border-right: 0;
 | 
			
		||||
  border-left: 0;
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
}
 | 
			
		||||
.accordion-flush .accordion-item:first-child {
 | 
			
		||||
  border-top: 0;
 | 
			
		||||
}
 | 
			
		||||
.accordion-flush .accordion-item:last-child {
 | 
			
		||||
  border-bottom: 0;
 | 
			
		||||
}
 | 
			
		||||
.accordion-flush .accordion-item .accordion-button {
 | 
			
		||||
  border-radius: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-header {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-header .collapsed {
 | 
			
		||||
  background-color: #e6effe;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,26 @@
 | 
			
		|||
import { Component, OnInit, OnDestroy } from '@angular/core';
 | 
			
		||||
import { HttpResponse } from '@angular/common/http';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { Subject } from 'rxjs';
 | 
			
		||||
import { takeUntil } from 'rxjs/operators';
 | 
			
		||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
 | 
			
		||||
 | 
			
		||||
import { IEncuesta } from 'app/entities/encuesta/encuesta.model';
 | 
			
		||||
import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service';
 | 
			
		||||
import { FormBuilder } from '@angular/forms';
 | 
			
		||||
import { ActivatedRoute } from '@angular/router';
 | 
			
		||||
 | 
			
		||||
import { ICategoria } from 'app/entities/categoria/categoria.model';
 | 
			
		||||
import { CategoriaService } from 'app/entities/categoria/service/categoria.service';
 | 
			
		||||
import { IUsuarioExtra, UsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model';
 | 
			
		||||
import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service';
 | 
			
		||||
import { AccountService } from 'app/core/auth/account.service';
 | 
			
		||||
import { Account } from 'app/core/auth/account.model';
 | 
			
		||||
 | 
			
		||||
import { faPollH, faCalendarAlt, faStar } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
 | 
			
		||||
import * as $ from 'jquery';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'jhi-home',
 | 
			
		||||
  templateUrl: './home.component.html',
 | 
			
		||||
| 
						 | 
				
			
			@ -13,16 +28,48 @@ import { Account } from 'app/core/auth/account.model';
 | 
			
		|||
})
 | 
			
		||||
export class HomeComponent implements OnInit, OnDestroy {
 | 
			
		||||
  account: Account | null = null;
 | 
			
		||||
 | 
			
		||||
  private readonly destroy$ = new Subject<void>();
 | 
			
		||||
 | 
			
		||||
  constructor(private accountService: AccountService, private router: Router) {}
 | 
			
		||||
  usuarioExtra: UsuarioExtra | null = null;
 | 
			
		||||
  encuestas?: IEncuesta[];
 | 
			
		||||
  encuestasMostradas: IEncuesta[] = new Array(3);
 | 
			
		||||
  isLoading = false;
 | 
			
		||||
 | 
			
		||||
  faStar = faStar;
 | 
			
		||||
  faCalendarAlt = faCalendarAlt;
 | 
			
		||||
  faPollH = faPollH;
 | 
			
		||||
 | 
			
		||||
  notAccount: boolean = true;
 | 
			
		||||
 | 
			
		||||
  public searchEncuestaPublica: string;
 | 
			
		||||
 | 
			
		||||
  constructor(
 | 
			
		||||
    protected encuestaService: EncuestaService,
 | 
			
		||||
    protected modalService: NgbModal,
 | 
			
		||||
    protected categoriaService: CategoriaService,
 | 
			
		||||
    protected usuarioExtraService: UsuarioExtraService,
 | 
			
		||||
    protected activatedRoute: ActivatedRoute,
 | 
			
		||||
    protected fb: FormBuilder,
 | 
			
		||||
    protected accountService: AccountService,
 | 
			
		||||
    protected router: Router
 | 
			
		||||
  ) {
 | 
			
		||||
    this.searchEncuestaPublica = '';
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {
 | 
			
		||||
    this.searchEncuestaPublica = '';
 | 
			
		||||
    this.accountService
 | 
			
		||||
      .getAuthenticationState()
 | 
			
		||||
      .pipe(takeUntil(this.destroy$))
 | 
			
		||||
      .subscribe(account => (this.account = account));
 | 
			
		||||
      .subscribe(account => {
 | 
			
		||||
        if (account !== null) {
 | 
			
		||||
          this.account = account;
 | 
			
		||||
          this.notAccount = false;
 | 
			
		||||
        } else {
 | 
			
		||||
          this.notAccount = true;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    this.loadAll();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  login(): void {
 | 
			
		||||
| 
						 | 
				
			
			@ -33,4 +80,44 @@ export class HomeComponent implements OnInit, OnDestroy {
 | 
			
		|||
    this.destroy$.next();
 | 
			
		||||
    this.destroy$.complete();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ngAfterViewInit(): void {}
 | 
			
		||||
 | 
			
		||||
  trackId(index: number, item: IEncuesta): number {
 | 
			
		||||
    return item.id!;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  loadAll(): void {
 | 
			
		||||
    this.isLoading = true;
 | 
			
		||||
 | 
			
		||||
    this.encuestaService.query().subscribe(
 | 
			
		||||
      (res: HttpResponse<IEncuesta[]>) => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
        const tmpEncuestas = res.body ?? [];
 | 
			
		||||
        this.encuestas = tmpEncuestas.filter(e => e.estado === 'ACTIVE' && e.acceso === 'PUBLIC');
 | 
			
		||||
        this.encuestasMostradas = this.encuestas.reverse().slice(0, 3);
 | 
			
		||||
      },
 | 
			
		||||
      () => {
 | 
			
		||||
        this.isLoading = false;
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  openSurvey(event: any): void {
 | 
			
		||||
    const surveyId = event.target.getAttribute('data-id');
 | 
			
		||||
    this.router.navigate(['/encuesta', surveyId, 'edit']);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  selectSurvey(event: any): void {
 | 
			
		||||
    document.querySelectorAll('.ds-list--entity').forEach(e => {
 | 
			
		||||
      e.classList.remove('active');
 | 
			
		||||
    });
 | 
			
		||||
    if (event.target.classList.contains('ds-list--entity')) {
 | 
			
		||||
      event.target.classList.add('active');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  counter(i: number) {
 | 
			
		||||
    return new Array(i);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,9 +4,10 @@ import { RouterModule } from '@angular/router';
 | 
			
		|||
import { SharedModule } from 'app/shared/shared.module';
 | 
			
		||||
import { HOME_ROUTE } from './home.route';
 | 
			
		||||
import { HomeComponent } from './home.component';
 | 
			
		||||
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
 | 
			
		||||
 | 
			
		||||
@NgModule({
 | 
			
		||||
  imports: [SharedModule, RouterModule.forChild([HOME_ROUTE])],
 | 
			
		||||
  imports: [SharedModule, RouterModule.forChild([HOME_ROUTE]), FontAwesomeModule],
 | 
			
		||||
  declarations: [HomeComponent],
 | 
			
		||||
})
 | 
			
		||||
export class HomeModule {}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
<div class="footer">
 | 
			
		||||
  <p jhiTranslate="footer">This is your footer</p>
 | 
			
		||||
<div #footer class="footer">
 | 
			
		||||
  <div>
 | 
			
		||||
    <p>
 | 
			
		||||
      Copyright © Derechos reservados - Desarrollado por
 | 
			
		||||
      <a style="color: #00b88d" href="http://pablobonilla.io/quantum" target="_blank">Quantum</a>
 | 
			
		||||
    </p>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
.footer {
 | 
			
		||||
  background: #192e4d;
 | 
			
		||||
  color: white;
 | 
			
		||||
  padding: 12px 0;
 | 
			
		||||
  font-size: 0.8em;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,5 +3,6 @@ import { Component } from '@angular/core';
 | 
			
		|||
@Component({
 | 
			
		||||
  selector: 'jhi-footer',
 | 
			
		||||
  templateUrl: './footer.component.html',
 | 
			
		||||
  styleUrls: ['./footer.component.scss'],
 | 
			
		||||
})
 | 
			
		||||
export class FooterComponent {}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,3 +19,4 @@
 | 
			
		|||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</ng-template>
 | 
			
		||||
<jhi-footer></jhi-footer>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<div class="logo">
 | 
			
		||||
  <a routerLink="/" class="simple-text">
 | 
			
		||||
    <div class="logo-image-small">
 | 
			
		||||
      <img src="../../../content/img_datasurvey/datasurvey-logo-text.svg" />
 | 
			
		||||
      <img src="../../../content/img_datasurvey/datasurvey-logo-text-white-PNG.png" />
 | 
			
		||||
    </div>
 | 
			
		||||
  </a>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -103,7 +103,7 @@
 | 
			
		|||
    <li class="position-absolute fixed-bottom w-100 mb-5">
 | 
			
		||||
      <a (click)="logout()" class="p-3 w-100 m-0 text-center">
 | 
			
		||||
        <!-- <i class="nc-icon nc-user-run"></i> -->
 | 
			
		||||
        <p style="letter-spacing: 0.3rem">Cerrar Sesion</p>
 | 
			
		||||
        <p style="letter-spacing: 0.3rem">Cerrar Sesión</p>
 | 
			
		||||
      </a>
 | 
			
		||||
    </li>
 | 
			
		||||
    <li class="position-absolute fixed-bottom w-100 mb-5" style="bottom: -4rem">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,8 +61,11 @@ export class SidebarComponent {
 | 
			
		|||
      if (account !== null) {
 | 
			
		||||
        this.usuarioExtraService.find(account.id).subscribe(usuarioExtra => {
 | 
			
		||||
          this.usuarioExtra = usuarioExtra.body;
 | 
			
		||||
          this.usuarioExtra!.nombre =
 | 
			
		||||
            usuarioExtra.body!.nombre!.trim().split(' ')[0] + ' ' + usuarioExtra.body!.nombre!.trim().split(' ')[1];
 | 
			
		||||
          const fullName = this.usuarioExtra!.nombre;
 | 
			
		||||
          const firstName = fullName?.split(' ')[0] === undefined ? '' : fullName?.split(' ')[0];
 | 
			
		||||
          const lastName = fullName?.split(' ')[1] === undefined ? '' : fullName?.split(' ')[1];
 | 
			
		||||
 | 
			
		||||
          this.usuarioExtra!.nombre = `${firstName} ${lastName}`;
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
.app-loading .container {
 | 
			
		||||
  margin: auto auto;
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .tittle {
 | 
			
		||||
  margin-bottom: 40px;
 | 
			
		||||
  color: #44b9ff;
 | 
			
		||||
  letter-spacing: 4px;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square-container {
 | 
			
		||||
  list-style-type: none;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square {
 | 
			
		||||
  margin: 4px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  border-radius: 7px;
 | 
			
		||||
  animation: rotating 2s ease infinite;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square1 {
 | 
			
		||||
  background: #192e4d;
 | 
			
		||||
  animation-delay: 0.2s;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square2 {
 | 
			
		||||
  background: #018adf;
 | 
			
		||||
  animation-delay: 0.4s;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square3 {
 | 
			
		||||
  background: #20a9fe;
 | 
			
		||||
  animation-delay: 0.6s;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square4 {
 | 
			
		||||
  background: #00e0ac;
 | 
			
		||||
  animation-delay: 0.8s;
 | 
			
		||||
}
 | 
			
		||||
.app-loading .square5 {
 | 
			
		||||
  background: #70ffde;
 | 
			
		||||
  animation-delay: 1s;
 | 
			
		||||
}
 | 
			
		||||
@keyframes rotating {
 | 
			
		||||
  0% {
 | 
			
		||||
    transform: rotate(0) scale(1);
 | 
			
		||||
  }
 | 
			
		||||
  50% {
 | 
			
		||||
    transform: rotate(90deg) scale(0.6);
 | 
			
		||||
  }
 | 
			
		||||
  100% {
 | 
			
		||||
    transform: rotate(90deg) scale(1);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,199 @@
 | 
			
		|||
.loader {
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
.loader .l_main {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 20%;
 | 
			
		||||
  left: 50%;
 | 
			
		||||
  width: 172px;
 | 
			
		||||
  height: 128px;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  -webkit-transform: translate(-50%, -50%);
 | 
			
		||||
  transform: translate(-50%, -50%);
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 550px) {
 | 
			
		||||
  .loader {
 | 
			
		||||
    -webkit-transform: scale(0.75);
 | 
			
		||||
    transform: scale(0.75);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 440px) {
 | 
			
		||||
  .loader {
 | 
			
		||||
    -webkit-transform: scale(0.5);
 | 
			
		||||
    transform: scale(0.5);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.l_square {
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(1) {
 | 
			
		||||
  margin-left: 0px;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(2) {
 | 
			
		||||
  margin-left: 44px;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(3) {
 | 
			
		||||
  margin-left: 88px;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(4) {
 | 
			
		||||
  margin-left: 132px;
 | 
			
		||||
}
 | 
			
		||||
.l_square span {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0px;
 | 
			
		||||
  left: 20px;
 | 
			
		||||
  height: 36px;
 | 
			
		||||
  width: 36px;
 | 
			
		||||
  border-radius: 2px;
 | 
			
		||||
  background-color: #1c44b2;
 | 
			
		||||
}
 | 
			
		||||
.l_square span:nth-child(1) {
 | 
			
		||||
  top: 0px;
 | 
			
		||||
}
 | 
			
		||||
.l_square span:nth-child(2) {
 | 
			
		||||
  top: 44px;
 | 
			
		||||
}
 | 
			
		||||
.l_square span:nth-child(3) {
 | 
			
		||||
  top: 88px;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(1) span {
 | 
			
		||||
  -webkit-animation: animsquare1 2s infinite ease-in;
 | 
			
		||||
  animation: animsquare1 2s infinite ease-in;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(2) span {
 | 
			
		||||
  -webkit-animation: animsquare2 2s infinite ease-in;
 | 
			
		||||
  animation: animsquare2 2s infinite ease-in;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(3) span {
 | 
			
		||||
  -webkit-animation: animsquare3 2s infinite ease-in;
 | 
			
		||||
  animation: animsquare3 2s infinite ease-in;
 | 
			
		||||
}
 | 
			
		||||
.l_square:nth-child(4) span {
 | 
			
		||||
  -webkit-animation: animsquare4 2s infinite ease-in;
 | 
			
		||||
  animation: animsquare4 2s infinite ease-in;
 | 
			
		||||
}
 | 
			
		||||
.l_square span:nth-child(1) {
 | 
			
		||||
  -webkit-animation-delay: 0s;
 | 
			
		||||
  animation-delay: 0s;
 | 
			
		||||
}
 | 
			
		||||
.l_square span:nth-child(2) {
 | 
			
		||||
  -webkit-animation-delay: 0.15s;
 | 
			
		||||
  animation-delay: 0.15s;
 | 
			
		||||
}
 | 
			
		||||
.l_square span:nth-child(3) {
 | 
			
		||||
  -webkit-animation-delay: 0.3s;
 | 
			
		||||
  animation-delay: 0.3s;
 | 
			
		||||
}
 | 
			
		||||
@-webkit-keyframes animsquare1 {
 | 
			
		||||
  0%,
 | 
			
		||||
  5%,
 | 
			
		||||
  95%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  30%,
 | 
			
		||||
  70% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@keyframes animsquare1 {
 | 
			
		||||
  0%,
 | 
			
		||||
  5%,
 | 
			
		||||
  95%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  30%,
 | 
			
		||||
  70% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@-webkit-keyframes animsquare2 {
 | 
			
		||||
  0%,
 | 
			
		||||
  10%,
 | 
			
		||||
  90%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  35%,
 | 
			
		||||
  65% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@keyframes animsquare2 {
 | 
			
		||||
  0%,
 | 
			
		||||
  10%,
 | 
			
		||||
  90%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  35%,
 | 
			
		||||
  65% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@-webkit-keyframes animsquare3 {
 | 
			
		||||
  0%,
 | 
			
		||||
  15%,
 | 
			
		||||
  85%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  40%,
 | 
			
		||||
  60% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@keyframes animsquare3 {
 | 
			
		||||
  0%,
 | 
			
		||||
  15%,
 | 
			
		||||
  85%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  40%,
 | 
			
		||||
  60% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@-webkit-keyframes animsquare4 {
 | 
			
		||||
  0%,
 | 
			
		||||
  20%,
 | 
			
		||||
  80%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  45%,
 | 
			
		||||
  55% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@keyframes animsquare4 {
 | 
			
		||||
  0%,
 | 
			
		||||
  20%,
 | 
			
		||||
  80%,
 | 
			
		||||
  100% {
 | 
			
		||||
    -webkit-transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
    transform: translate(0px, 0px) rotate(0deg);
 | 
			
		||||
  }
 | 
			
		||||
  45%,
 | 
			
		||||
  55% {
 | 
			
		||||
    -webkit-transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
    transform: translate(-40px, 0px) rotate(-90deg);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +102,7 @@
 | 
			
		|||
  font-weight: normal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.app-loading .lds-pacman {
 | 
			
		||||
/*.app-loading .lds-pacman {
 | 
			
		||||
  position: relative;
 | 
			
		||||
  margin: auto;
 | 
			
		||||
  width: 200px !important;
 | 
			
		||||
| 
						 | 
				
			
			@ -149,4 +149,4 @@
 | 
			
		|||
.app-loading .lds-pacman > div:nth-child(1) div:nth-child(3) {
 | 
			
		||||
  -webkit-animation-delay: 0s;
 | 
			
		||||
  animation-delay: 0s;
 | 
			
		||||
}
 | 
			
		||||
}*/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
		 After Width: | Height: | Size: 1.3 MiB  | 
| 
		 After Width: | Height: | Size: 141 KiB  | 
| 
		 After Width: | Height: | Size: 1.8 MiB  | 
| 
		 After Width: | Height: | Size: 769 KiB  | 
| 
		 After Width: | Height: | Size: 74 KiB  | 
| 
						 | 
				
			
			@ -1 +1 @@
 | 
			
		|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 2528.24 410.62"><defs><style>.cls-1{font-size:300px;fill:#282828;font-family:Avenir-Heavy, "Avenir 85 Heavy";font-weight:800;}.cls-2{fill:#1072e8;}.cls-3{opacity:0.3;isolation:isolate;}.cls-4{fill:#2f92dd;}</style></defs><title>Asset 5</title><g id="Layer_2" data-name="Layer 2"><g id="Quantum"><text class="cls-1" transform="translate(540.01 301.05)">DATASURVEY</text><g id="Logo"><path class="cls-2" d="M210,210v99.82l-.72.15H110V210Z"/><path class="cls-2" d="M406.53,209.47c0,69.41-38.34,130.67-96.74,167.11a234.09,234.09,0,0,1-99.79,34V309.78c55.73-11.31,97-51.71,97-99.81,0-46-37.74-85-89.8-98.19A58.58,58.58,0,0,0,202.63,110H110V210H10V80H80V10H193.46c48,0,95.09,14.89,133.34,44.07C375.53,91.21,406.53,147,406.53,209.47Z"/><image class="cls-3" width="89" height="89" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAYAAABVC4ivAAAACXBIWXMAAAsSAAALEgHS3X78AAAIBElEQVR4Xu3d3VLiTBcF4LV354eIyIBazOEceAfeAJfuDXg4Z96ARfnVG/GHkO5e30E6DCKIKM4IZFVRapmK8Ljd6VDlbiGJJl8bXXdAk88nWndAk9cREZn/mmvaQYP8zszBvgAO3wOwGrtBXpMFXBkOhzIej2fQnU6HV1dXBMBV2NJc+FYnAAsAuby81DzPdTKZ6GAwkLIsJY5j3t7estVq+W6366+vrz0AonKewTbIKzIHrBcXF6bb7Zo8z6Msy0xZlgoAxhjGcezLsrR5nrvBYGADtG+Q16QGvry8NHd3d6bdbkcAEgCJMSYyxhiSYq11zjlLckpyWhRF+evXL3t1deUxV81NT17IInAURUmSJGlZlq0oilre+xSAEREYY2ySJIW11kynU7TbbY5Go1nLqM/ZrJPnMg98e3sbRVGUtFqtzDl3rKpdkj1jzKlz7sw5dyoiP5xzHVXNsixL4ziO8jw3w+HwxQqkqeSQReAkSZI0TTMAbVXtiMgJyQ6ADECkqo7ks6pGqHpwaYyZ9vv9Mqw+BKGaG2QsB86yLANwrKon3vsegF6APgKgIlKSfCBJ730hIs9FURiS4pxrKnk+a4C7qtr33p+pah9Al2SGasHwLCJKslDVR5JxHMdmPB5rmqazc5PkQSO/BSwiPwLsuaqekzwF0AWQiogH8EDSisgDycQYY6y12u12Jc/zppKB9cDGmFMA5yQHAM5F5DT05EhEpiQhIo8AEhGJnHPGez+Pe9g9+b3AAAYi8jN83hORI5J1q5iSTFU18t4rSUnT9FU/Bg4QeVNgkoNQxScikgLwodWmIhJ5742qajjv0hwU8geAfwI4I9kD0EZ1E1KSnIpIRFJVdSVunYNB/iDwuYj056oYJKUGFhFFtdKQuY+vchDInwA+BdANvTgSES8iNgCvreA6e4/8SeAfANqh/yqAcr6Cw2Nt9vq9i88CkzxGdRudsLqnUCyYrWoR89nbSt4GsIhkAGJUt9E+9GNggyoG9hR5i8AJqhVFfWOxEW6dvUPeMnDdIhiqeGNgYM968raBZcML3KrsTSV/BTBJDeeuW8WHsheV/JXA28jWTvSv8sXAH67e+ew08i4AAzuMvCvAwI4i7xIwsIPIuwYM7BjyLgIDO4S8q8DAjiDvMjCwA8i7Dgx8c+R9AAa+MfK+AAPfFHmfgIFviLxvwMA3Q95HYOAbIe8rMPBNkPcZGPgGyPsODPxj5EMABv4h8qEAA/8I+ZCAgX+AfGjAwF9GPkRg4C8iHyow8JeQDxkY+AvIhw4MfDFyA1zly5Ab4D/5EuQG+GW2jtwAv85WkRvg5dkacgO8OltBboDfzqeRG+D1+RRyA/y+fBi5AX5/PoTcAG+WjZEb4M2zEXID/LG8G7kB/njehdwAfy5rkRvgz+dN5AZ4O1mJ3ABvL0uR54Hv7u5Mq9WKa2BV7Rpj+jgwYKn+if3N76vq+2ba18AAtJ4f3Gq1MlTTV0/q0Yqs5qX9ZDUB8ExE+qjGLLZFpIVq4okBoHw5QmbXpmIzBKjm1tezkQlUuFwz6HvVKAa5uLgwaZpGSZKkzrkjVe1473thOOg5qko+F5FTkj1WY72OSKbhvPXEqdmTWfGzvnWCoJdqPmc9Rr3eKMDjD/zKvECeaxMKwEwmk6Qsy5aqtkXkBEBPVfskT0Nr6JE8QVW9KauxXspqjmU9cryu4p1rE3WVhtdSshqAagFYAI6kB+C99wRA5xziOH51nmWVLHmeK4AoTdMkiqIWySOSnQDdRTXitiMiR1INpTMAZk9GRFzAlfCL28nULQJVBVsReSY5AVCISIEK3qmqQ8A2xtRVPavuRWQZDodyc3OjvV7PSDWLMjXGZACygJ0BSAFEAdJLNVpRJAymQ9UqgB2s3sWEamZ4bRMRGZN8APAkIhOSBYDSOeeMMT7Pc6Zp+qJ9zJDrihuPxzIYDOTx8VGzLDMAjHMuCsdqONRLNXX1OTyJ2exKEdnpVcSS1D3YAigC8H8k71HNUH5W1Wkcx7YoCjdXybNNXZZe+MqylHBQbU9VdaFin8PJEaDTOeB6ZQLsH7ILLeKJ5L2I3InIf977B+/9s7W2TJLEGWN8HMfLK3k+cRzTOUdrrTPGWFUtSD6TfJDqwmZF5HEBeN8qeBapBu/V15sJgIcA/D9VvXfOPYlIYa21x8fHPrSLlT0ZnU6HNzc3PDs780VR2CRJCufck6pGrFKIyAOAJAxoNmG87QyX7xituCuRP+tiT9KRLEg+e+8fVPWe5D3JJ1UtiqKwo9HI39zcvKjkFzvmhD93vbi4iNI0jZ1zaZIkmapmInLknMtUtUUykT/zgxXYL9jFiAidcwyriFJEpt77Z5JPJJ+8909xHE+yLCum06m9vr52wNs75rDb7frb21vXbren0+kUWZZ5kqVUS5jYGGOcc4Yvp/7tHbK8vMkgAO+cc3EcW2ttKSKFqhZxHE+NMdP7+3v3+/fvF1sSAXi991NdzZeXl1rvexTHcWSMiYqiMHEcG+eceu8lTdMZ7MLQ/L3I/HsRk8kEIkJjjLfWuiRJnLXWTqdT2+/3bQB2wDt2MZtbIchwOJTRaKR5npt+v6/OOSmKQrvdrgDAsiH5+xxjDPM8pzGGaZr6drvtR6PRm9vEAUuQgT9rZsxhj8djmUwmAgBFURwU7nzqG41Wq8X5DQ/DY+nukm9uFTeHDbzuuYcIvYj16sZjWTbej28B/iDzFuiybIzcZPP8H+Y/C/188ppfAAAAAElFTkSuQmCC"/><polygon class="cls-4" points="80 10.36 80 80 10.35 80 80 10.36"/></g></g></g></svg>
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 2528.24 410.62"><defs><style>.cls-1{font-size:285px;fill:#282828;font-family:"Noto Sans JP", "Helvetica Neue";font-weight:800;}.cls-2{fill:#1072e8;}.cls-3{opacity:0.3;isolation:isolate;}.cls-4{fill:#2f92dd;}</style></defs><title>Asset 5</title><g id="Layer_2" data-name="Layer 2"><g id="Quantum"><text class="cls-1" transform="translate(540.01 301.05)">DATASURVEY</text><g id="Logo"><path class="cls-2" d="M210,210v99.82l-.72.15H110V210Z"/><path class="cls-2" d="M406.53,209.47c0,69.41-38.34,130.67-96.74,167.11a234.09,234.09,0,0,1-99.79,34V309.78c55.73-11.31,97-51.71,97-99.81,0-46-37.74-85-89.8-98.19A58.58,58.58,0,0,0,202.63,110H110V210H10V80H80V10H193.46c48,0,95.09,14.89,133.34,44.07C375.53,91.21,406.53,147,406.53,209.47Z"/><image class="cls-3" width="89" height="89" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAABZCAYAAABVC4ivAAAACXBIWXMAAAsSAAALEgHS3X78AAAIBElEQVR4Xu3d3VLiTBcF4LV354eIyIBazOEceAfeAJfuDXg4Z96ARfnVG/GHkO5e30E6DCKIKM4IZFVRapmK8Ljd6VDlbiGJJl8bXXdAk88nWndAk9cREZn/mmvaQYP8zszBvgAO3wOwGrtBXpMFXBkOhzIej2fQnU6HV1dXBMBV2NJc+FYnAAsAuby81DzPdTKZ6GAwkLIsJY5j3t7estVq+W6366+vrz0AonKewTbIKzIHrBcXF6bb7Zo8z6Msy0xZlgoAxhjGcezLsrR5nrvBYGADtG+Q16QGvry8NHd3d6bdbkcAEgCJMSYyxhiSYq11zjlLckpyWhRF+evXL3t1deUxV81NT17IInAURUmSJGlZlq0oilre+xSAEREYY2ySJIW11kynU7TbbY5Go1nLqM/ZrJPnMg98e3sbRVGUtFqtzDl3rKpdkj1jzKlz7sw5dyoiP5xzHVXNsixL4ziO8jw3w+HwxQqkqeSQReAkSZI0TTMAbVXtiMgJyQ6ADECkqo7ks6pGqHpwaYyZ9vv9Mqw+BKGaG2QsB86yLANwrKon3vsegF6APgKgIlKSfCBJ730hIs9FURiS4pxrKnk+a4C7qtr33p+pah9Al2SGasHwLCJKslDVR5JxHMdmPB5rmqazc5PkQSO/BSwiPwLsuaqekzwF0AWQiogH8EDSisgDycQYY6y12u12Jc/zppKB9cDGmFMA5yQHAM5F5DT05EhEpiQhIo8AEhGJnHPGez+Pe9g9+b3AAAYi8jN83hORI5J1q5iSTFU18t4rSUnT9FU/Bg4QeVNgkoNQxScikgLwodWmIhJ5742qajjv0hwU8geAfwI4I9kD0EZ1E1KSnIpIRFJVdSVunYNB/iDwuYj056oYJKUGFhFFtdKQuY+vchDInwA+BdANvTgSES8iNgCvreA6e4/8SeAfANqh/yqAcr6Cw2Nt9vq9i88CkzxGdRudsLqnUCyYrWoR89nbSt4GsIhkAGJUt9E+9GNggyoG9hR5i8AJqhVFfWOxEW6dvUPeMnDdIhiqeGNgYM968raBZcML3KrsTSV/BTBJDeeuW8WHsheV/JXA28jWTvSv8sXAH67e+ew08i4AAzuMvCvAwI4i7xIwsIPIuwYM7BjyLgIDO4S8q8DAjiDvMjCwA8i7Dgx8c+R9AAa+MfK+AAPfFHmfgIFviLxvwMA3Q95HYOAbIe8rMPBNkPcZGPgGyPsODPxj5EMABv4h8qEAA/8I+ZCAgX+AfGjAwF9GPkRg4C8iHyow8JeQDxkY+AvIhw4MfDFyA1zly5Ab4D/5EuQG+GW2jtwAv85WkRvg5dkacgO8OltBboDfzqeRG+D1+RRyA/y+fBi5AX5/PoTcAG+WjZEb4M2zEXID/LG8G7kB/njehdwAfy5rkRvgz+dN5AZ4O1mJ3ABvL0uR54Hv7u5Mq9WKa2BV7Rpj+jgwYKn+if3N76vq+2ba18AAtJ4f3Gq1MlTTV0/q0Yqs5qX9ZDUB8ExE+qjGLLZFpIVq4okBoHw5QmbXpmIzBKjm1tezkQlUuFwz6HvVKAa5uLgwaZpGSZKkzrkjVe1473thOOg5qko+F5FTkj1WY72OSKbhvPXEqdmTWfGzvnWCoJdqPmc9Rr3eKMDjD/zKvECeaxMKwEwmk6Qsy5aqtkXkBEBPVfskT0Nr6JE8QVW9KauxXspqjmU9cryu4p1rE3WVhtdSshqAagFYAI6kB+C99wRA5xziOH51nmWVLHmeK4AoTdMkiqIWySOSnQDdRTXitiMiR1INpTMAZk9GRFzAlfCL28nULQJVBVsReSY5AVCISIEK3qmqQ8A2xtRVPavuRWQZDodyc3OjvV7PSDWLMjXGZACygJ0BSAFEAdJLNVpRJAymQ9UqgB2s3sWEamZ4bRMRGZN8APAkIhOSBYDSOeeMMT7Pc6Zp+qJ9zJDrihuPxzIYDOTx8VGzLDMAjHMuCsdqONRLNXX1OTyJ2exKEdnpVcSS1D3YAigC8H8k71HNUH5W1Wkcx7YoCjdXybNNXZZe+MqylHBQbU9VdaFin8PJEaDTOeB6ZQLsH7ILLeKJ5L2I3InIf977B+/9s7W2TJLEGWN8HMfLK3k+cRzTOUdrrTPGWFUtSD6TfJDqwmZF5HEBeN8qeBapBu/V15sJgIcA/D9VvXfOPYlIYa21x8fHPrSLlT0ZnU6HNzc3PDs780VR2CRJCufck6pGrFKIyAOAJAxoNmG87QyX7xituCuRP+tiT9KRLEg+e+8fVPWe5D3JJ1UtiqKwo9HI39zcvKjkFzvmhD93vbi4iNI0jZ1zaZIkmapmInLknMtUtUUykT/zgxXYL9jFiAidcwyriFJEpt77Z5JPJJ+8909xHE+yLCum06m9vr52wNs75rDb7frb21vXbren0+kUWZZ5kqVUS5jYGGOcc4Yvp/7tHbK8vMkgAO+cc3EcW2ttKSKFqhZxHE+NMdP7+3v3+/fvF1sSAXi991NdzZeXl1rvexTHcWSMiYqiMHEcG+eceu8lTdMZ7MLQ/L3I/HsRk8kEIkJjjLfWuiRJnLXWTqdT2+/3bQB2wDt2MZtbIchwOJTRaKR5npt+v6/OOSmKQrvdrgDAsiH5+xxjDPM8pzGGaZr6drvtR6PRm9vEAUuQgT9rZsxhj8djmUwmAgBFURwU7nzqG41Wq8X5DQ/DY+nukm9uFTeHDbzuuYcIvYj16sZjWTbej28B/iDzFuiybIzcZPP8H+Y/C/188ppfAAAAAElFTkSuQmCC"/><polygon class="cls-4" points="80 10.36 80 80 10.35 80 80 10.36"/></g></g></g></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB  | 
| 
		 After Width: | Height: | Size: 70 KiB  | 
| 
						 | 
				
			
			@ -98,3 +98,4 @@
 | 
			
		|||
@import 'paper-dashboard/datasurvey-list';
 | 
			
		||||
@import 'paper-dashboard/datasurvey-table';
 | 
			
		||||
@import 'paper-dashboard/datasurvey-contextmenu';
 | 
			
		||||
@import 'paper-dashboard/datasurvey-survey-update';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,12 +61,21 @@
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
.ds-btn--danger {
 | 
			
		||||
  background-color: transparent;
 | 
			
		||||
  color: #e73636;
 | 
			
		||||
  background-color: #e73636;
 | 
			
		||||
  color: #fff;
 | 
			
		||||
 | 
			
		||||
  &:hover {
 | 
			
		||||
    background-color: #f7f9ff;
 | 
			
		||||
    color: #d33232;
 | 
			
		||||
    background-color: #d33232;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--light {
 | 
			
		||||
    background-color: transparent;
 | 
			
		||||
    color: #e73636;
 | 
			
		||||
 | 
			
		||||
    &:hover {
 | 
			
		||||
      background-color: #f7f9ff;
 | 
			
		||||
      color: #d33232;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,7 +75,9 @@ $form-background: #f1f5f9;
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  label {
 | 
			
		||||
    font-size: 0.8rem;
 | 
			
		||||
    color: #757d94;
 | 
			
		||||
    margin-bottom: 0.5rem;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
    margin: 1rem;
 | 
			
		||||
    word-wrap: break-word;
 | 
			
		||||
 | 
			
		||||
    *:not(div) {
 | 
			
		||||
    * {
 | 
			
		||||
      pointer-events: none;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -78,6 +78,7 @@
 | 
			
		|||
      width: 25px;
 | 
			
		||||
      height: 25px;
 | 
			
		||||
      color: #313747;
 | 
			
		||||
      pointer-events: visible !important;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .entity-share:hover {
 | 
			
		||||
| 
						 | 
				
			
			@ -131,3 +132,116 @@
 | 
			
		|||
    background-color: #e8f0fe !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
  Cards
 | 
			
		||||
**/
 | 
			
		||||
.lift {
 | 
			
		||||
  box-shadow: 0 0.15rem 1.75rem 0 rgba(33, 40, 50, 0.15);
 | 
			
		||||
  transition: transform 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
 | 
			
		||||
}
 | 
			
		||||
.lift:hover {
 | 
			
		||||
  transform: translateY(-0.3333333333rem);
 | 
			
		||||
  box-shadow: 0 0.5rem 2rem 0 rgba(33, 40, 50, 0.25);
 | 
			
		||||
}
 | 
			
		||||
.lift:active {
 | 
			
		||||
  transform: none;
 | 
			
		||||
  box-shadow: 0 0.15rem 1.75rem 0 rgba(33, 40, 50, 0.15);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.lift-sm {
 | 
			
		||||
  box-shadow: 0 0.125rem 0.25rem 0 rgba(33, 40, 50, 0.2);
 | 
			
		||||
}
 | 
			
		||||
.lift-sm:hover {
 | 
			
		||||
  transform: translateY(-0.1666666667rem);
 | 
			
		||||
  box-shadow: 0 0.25rem 1rem 0 rgba(33, 40, 50, 0.25);
 | 
			
		||||
}
 | 
			
		||||
.lift-sm:active {
 | 
			
		||||
  transform: none;
 | 
			
		||||
  box-shadow: 0 0.125rem 0.25rem 0 rgba(33, 40, 50, 0.2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta {
 | 
			
		||||
  border-radius: 12px;
 | 
			
		||||
  background-color: #ffffff;
 | 
			
		||||
  margin-bottom: 20px;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  border: 0 none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta.lift {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  font-size: 0.7rem;
 | 
			
		||||
  padding: 0.3rem 0.5rem;
 | 
			
		||||
  line-height: 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-dark {
 | 
			
		||||
  background-color: rgba(33, 40, 50, 0.7);
 | 
			
		||||
  color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-light {
 | 
			
		||||
  background-color: rgba(255, 255, 255, 0.7);
 | 
			
		||||
  color: #69707a;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-lg {
 | 
			
		||||
  font-size: 0.9rem;
 | 
			
		||||
  padding: 0.5rem 0.65rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-top-right {
 | 
			
		||||
  border-top-left-radius: 0.25rem;
 | 
			
		||||
  border-bottom-left-radius: 0.25rem;
 | 
			
		||||
  top: 0.5rem;
 | 
			
		||||
  right: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-flag-top-left {
 | 
			
		||||
  border-top-right-radius: 0.25rem;
 | 
			
		||||
  border-bottom-right-radius: 0.25rem;
 | 
			
		||||
  top: 0.5rem;
 | 
			
		||||
  left: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta .entity-icon--star {
 | 
			
		||||
  color: #ffcc47;
 | 
			
		||||
  margin-right: 0.2rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta .card-title {
 | 
			
		||||
  font-size: 2em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta .tag {
 | 
			
		||||
  font-size: 0.8rem;
 | 
			
		||||
  color: #f8f8f8;
 | 
			
		||||
  margin-top: 0.5rem;
 | 
			
		||||
  padding: 0.2rem 1.5rem;
 | 
			
		||||
  background-color: #2962ff94;
 | 
			
		||||
  border-radius: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta .subtitle {
 | 
			
		||||
  color: rgba(0, 0, 0, 0.54);
 | 
			
		||||
  font-size: 0.9rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-encuesta .btn-card {
 | 
			
		||||
  padding: 11px 10px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.border-cyan {
 | 
			
		||||
  border-color: #00cfd5 !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.py-10 {
 | 
			
		||||
  padding-top: 6rem !important;
 | 
			
		||||
  padding-bottom: 6rem !important;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,12 @@
 | 
			
		|||
  .modal-footer {
 | 
			
		||||
    border: none;
 | 
			
		||||
    padding: 2rem;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
    label {
 | 
			
		||||
      margin: 0 0.2rem 0 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .modal-body {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,164 @@
 | 
			
		|||
.ds-survey {
 | 
			
		||||
  display: flex;
 | 
			
		||||
 | 
			
		||||
  &--titulo {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
    &--name {
 | 
			
		||||
      color: #1f3779;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &--icon {
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
      background-color: #f1f5f9;
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      transition: background-color 0.2s ease-in-out;
 | 
			
		||||
      font-size: 1rem;
 | 
			
		||||
      padding: 0.8rem;
 | 
			
		||||
      width: 25px;
 | 
			
		||||
      height: 25px;
 | 
			
		||||
      color: #1f3779;
 | 
			
		||||
      pointer-events: visible !important;
 | 
			
		||||
      transition: all 0.1s ease-in-out;
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        pointer-events: none;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:hover {
 | 
			
		||||
        background-color: #e73636;
 | 
			
		||||
        color: #fff;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &--small {
 | 
			
		||||
        font-size: 0.8rem;
 | 
			
		||||
        padding: 0.3rem;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--all-question-wrapper {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    border: 2px dashed #f1f1f1;
 | 
			
		||||
    border-radius: $border-radius-x-large;
 | 
			
		||||
    padding: 2rem 5rem;
 | 
			
		||||
    margin: 0 auto;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--question-wrapper {
 | 
			
		||||
    margin: 0 auto;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--question {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    font-size: 1.2rem;
 | 
			
		||||
    color: #15131d;
 | 
			
		||||
    padding: 2rem;
 | 
			
		||||
    border-bottom: 1px solid #e9e9e9;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--option {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    margin: 0.5rem 0;
 | 
			
		||||
    border-radius: 5px;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    letter-spacing: 0.025rem;
 | 
			
		||||
    color: #787878;
 | 
			
		||||
    background-color: transparent;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    transition: all 0.1s ease-in-out;
 | 
			
		||||
 | 
			
		||||
    &--base {
 | 
			
		||||
      border: 1px solid #e6e6e6;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &--add {
 | 
			
		||||
      border: 2px dashed #9c9c9c;
 | 
			
		||||
      transition: all 0.1s ease-in-out;
 | 
			
		||||
 | 
			
		||||
      &:hover {
 | 
			
		||||
        border: 2px dashed #727272;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:hover .ds-survey--add-option {
 | 
			
		||||
        color: #727272;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:hover .ds-survey--add-option--icon {
 | 
			
		||||
        color: #727272;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--closed-option {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    width: 25rem;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    font-size: 0.9rem;
 | 
			
		||||
    color: #15131d;
 | 
			
		||||
    padding: 1rem;
 | 
			
		||||
    transition: all 0.1s ease-in-out;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    position: relative;
 | 
			
		||||
 | 
			
		||||
    label {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      color: #1f3779;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--open-option {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    font-size: 0.9rem;
 | 
			
		||||
    color: #15131d;
 | 
			
		||||
    transition: all 0.1s ease-in-out;
 | 
			
		||||
    position: relative;
 | 
			
		||||
 | 
			
		||||
    & textarea {
 | 
			
		||||
      width: 25rem;
 | 
			
		||||
      height: 20rem;
 | 
			
		||||
      padding: 1rem 3rem;
 | 
			
		||||
      color: #787878;
 | 
			
		||||
      border: none;
 | 
			
		||||
      resize: none;
 | 
			
		||||
 | 
			
		||||
      &:disabled {
 | 
			
		||||
        background-color: transparent;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &--add-option {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    color: #919191;
 | 
			
		||||
    transition: all 0.1s ease-in-out;
 | 
			
		||||
    pointer-events: none;
 | 
			
		||||
 | 
			
		||||
    &--icon {
 | 
			
		||||
      margin: 0 1rem;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      width: 25px;
 | 
			
		||||
      height: 25px;
 | 
			
		||||
      color: #919191;
 | 
			
		||||
      pointer-events: visible !important;
 | 
			
		||||
      transition: all 0.1s ease-in-out;
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        pointer-events: none;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,8 @@
 | 
			
		|||
      "opcional": "Opcional",
 | 
			
		||||
      "orden": "Orden",
 | 
			
		||||
      "ePreguntaCerradaOpcion": "E Pregunta Cerrada Opcion",
 | 
			
		||||
      "encuesta": "Encuesta"
 | 
			
		||||
      "encuesta": "Encuesta",
 | 
			
		||||
      "tiporespuesta": "Tipo de respuesta"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,9 @@
 | 
			
		|||
      "updated": "Una encuesta ha sido actualizado con el identificador {{ param }}",
 | 
			
		||||
      "deleted": "Una encuesta ha sido eliminada con el identificador {{ param }}",
 | 
			
		||||
      "delete": {
 | 
			
		||||
        "question": "¿Seguro que quiere eliminar la encuesta {{ id }}?"
 | 
			
		||||
        "question": "¿Seguro que quiere eliminar la encuesta {{ id }}?",
 | 
			
		||||
        "deletequestion": "¿Seguro que quiere eliminar esta pregunta?",
 | 
			
		||||
        "deleteoption": "¿Seguro que quiere eliminar esta opción?"
 | 
			
		||||
      },
 | 
			
		||||
      "detail": {
 | 
			
		||||
        "title": "Encuesta"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,7 +137,7 @@
 | 
			
		|||
      "value": "Valor"
 | 
			
		||||
    },
 | 
			
		||||
    "delete": {
 | 
			
		||||
      "title": "Confirmar operación de borrado",
 | 
			
		||||
      "title": "Confirmar de operación",
 | 
			
		||||
      "status": "Confirmar cambio de estado"
 | 
			
		||||
    },
 | 
			
		||||
    "validation": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,8 @@
 | 
			
		|||
    <link rel="icon" href="favicon.ico" />
 | 
			
		||||
    <link rel="manifest" href="manifest.webapp" />
 | 
			
		||||
    <link rel="stylesheet" href="content/css/loading.css" />
 | 
			
		||||
    <link rel="stylesheet" href="content/css/loading-2.css" />
 | 
			
		||||
    <link rel="stylesheet" href="content/css/loading-boxes.css" />
 | 
			
		||||
    <!-- jhipster-needle-add-resources-to-root - JHipster will add new resources here -->
 | 
			
		||||
  </head>
 | 
			
		||||
  <body>
 | 
			
		||||
| 
						 | 
				
			
			@ -23,16 +25,23 @@
 | 
			
		|||
    <![endif]-->
 | 
			
		||||
    <jhi-main>
 | 
			
		||||
      <div class="app-loading">
 | 
			
		||||
        <div class="lds-pacman">
 | 
			
		||||
          <div>
 | 
			
		||||
            <div></div>
 | 
			
		||||
            <div></div>
 | 
			
		||||
            <div></div>
 | 
			
		||||
        <div class="loader">
 | 
			
		||||
          <div class="l_main">
 | 
			
		||||
            <div class="l_square"><span></span><span></span><span></span></div>
 | 
			
		||||
            <div class="l_square"><span></span><span></span><span></span></div>
 | 
			
		||||
            <div class="l_square"><span></span><span></span><span></span></div>
 | 
			
		||||
            <div class="l_square"><span></span><span></span><span></span></div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div>
 | 
			
		||||
            <div></div>
 | 
			
		||||
            <div></div>
 | 
			
		||||
            <div></div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="container">
 | 
			
		||||
          <div class="tittle"><h2>Cargando</h2></div>
 | 
			
		||||
          <div class="square-container">
 | 
			
		||||
            <div class="square square1"> </div>
 | 
			
		||||
            <div class="square square2"> </div>
 | 
			
		||||
            <div class="square square3"> </div>
 | 
			
		||||
            <div class="square square4"> </div>
 | 
			
		||||
            <div class="square square5"> </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||