datasurvey/src/main/webapp/app/entities/usuario-plantillas/list/usuario-plantillas.componen...

101 lines
3.4 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { UsuarioExtra } from '../../usuario-extra/usuario-extra.model';
import { IPlantilla } from '../../plantilla/plantilla.model';
import { PlantillaService } from '../../plantilla/service/plantilla.service';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { CategoriaService } from '../../categoria/service/categoria.service';
import { UsuarioExtraService } from '../../usuario-extra/service/usuario-extra.service';
import { ActivatedRoute, Router } from '@angular/router';
import { FormBuilder } from '@angular/forms';
import { AccountService } from '../../../core/auth/account.service';
import * as dayjs from 'dayjs';
import { DATE_TIME_FORMAT } from 'app/config/input.constants';
import { Account } from '../../../core/auth/account.model';
import { Encuesta } from './../../encuesta/encuesta.model';
import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service';
import { AccesoEncuesta } from 'app/entities/enumerations/acceso-encuesta.model';
import { EstadoEncuesta } from 'app/entities/enumerations/estado-encuesta.model';
@Component({
selector: 'jhi-usuario-plantillas',
templateUrl: './usuario-plantillas.component.html',
styleUrls: ['./usuario-plantillas.component.scss'],
})
export class UsuarioPlantillasComponent implements OnInit {
misPlantillas?: IPlantilla[] | null | undefined;
isLoading = false;
usuarioExtra: UsuarioExtra | null = null;
account: Account | null = null;
searchString: string;
constructor(
protected plantillaService: PlantillaService,
protected modalService: NgbModal,
protected categoriaService: CategoriaService,
protected usuarioExtraService: UsuarioExtraService,
protected activatedRoute: ActivatedRoute,
protected fb: FormBuilder,
protected accountService: AccountService,
protected encuestaService: EncuestaService,
protected router: Router
) {
this.searchString = '';
}
ngOnInit(): void {
this.accountService.getAuthenticationState().subscribe(account => {
if (account !== null) {
this.account = account;
this.loadAll();
}
});
}
loadAll() {
this.isLoading = true;
// Get jhi_user and usuario_extra information
if (this.account !== null) {
this.usuarioExtraService.find(this.account.id).subscribe(usuarioExtra => {
this.usuarioExtra = usuarioExtra.body;
this.misPlantillas = usuarioExtra.body?.plantillas;
this.isLoading = false;
if (this.usuarioExtra !== null) {
if (this.usuarioExtra.id === undefined) {
const today = dayjs().startOf('day');
this.usuarioExtra.fechaNacimiento = today;
}
}
});
}
}
trackId(_index: number, item: IPlantilla): number {
return item.id!;
}
crearEncuesta(plantillaId: any): void {
const now = dayjs();
const newSurvey = {
...new Encuesta(),
id: undefined,
nombre: 'This is a survey',
descripcion: 'This is a survey',
fechaCreacion: dayjs(now, DATE_TIME_FORMAT),
calificacion: 5.1,
acceso: AccesoEncuesta.PUBLIC,
contrasenna: undefined,
estado: EstadoEncuesta.DRAFT,
categoria: undefined,
usuarioExtra: this.usuarioExtra,
};
console.log(plantillaId, newSurvey);
this.encuestaService.createFromTemplate(newSurvey, plantillaId).subscribe(_res => {
this.router.navigate(['/encuesta']);
});
}
}