Merge branch 'dev' into fix/edit-duplicate-survey
This commit is contained in:
commit
7f534ee129
|
@ -37,7 +37,7 @@ email.reactivation.text2=Regards,
|
||||||
#suspended accounr
|
#suspended accounr
|
||||||
email.suspended.title=Your account has been suspended
|
email.suspended.title=Your account has been suspended
|
||||||
email.suspended.greeting=Dear {0}
|
email.suspended.greeting=Dear {0}
|
||||||
email.suspended.text1=Su cuenta en DatSurvey se encuentra temporalmente suspendida. Si cree que es un error por favor haga clic en el siguiente enlace para enviar una solicitud para reactivar su cuenta:
|
email.suspended.text1=Su cuenta en DataSurvey se encuentra temporalmente suspendida. Si cree que es un error por favor haga clic en el siguiente enlace para enviar una solicitud para reactivar su cuenta:
|
||||||
email.suspended.text2=Saludos,
|
email.suspended.text2=Saludos,
|
||||||
|
|
||||||
#PublicEncuesta
|
#PublicEncuesta
|
||||||
|
|
|
@ -38,7 +38,7 @@ email.reactivation.text2=Saludos,
|
||||||
#suspended accounr
|
#suspended accounr
|
||||||
email.suspended.title=Su cuenta ha sido suspendida
|
email.suspended.title=Su cuenta ha sido suspendida
|
||||||
email.suspended.greeting=Estimado {0}
|
email.suspended.greeting=Estimado {0}
|
||||||
email.suspended.text1=Lamentamos informarle que su cuenta en DatSurvey se encuentra temporalmente suspendida. Si cree que es un error por favor responda a este correo
|
email.suspended.text1=Lamentamos informarle que su cuenta en DataSurvey se encuentra temporalmente suspendida. Si cree que es un error por favor responda a este correo
|
||||||
email.suspended.text2=Saludos,
|
email.suspended.text2=Saludos,
|
||||||
|
|
||||||
#PublicEncuesta
|
#PublicEncuesta
|
||||||
|
|
|
@ -136,10 +136,6 @@ export class SettingsComponent implements OnInit {
|
||||||
save(): void {
|
save(): void {
|
||||||
this.isSaving = true;
|
this.isSaving = true;
|
||||||
const usuarioExtra = this.createFromForm();
|
const usuarioExtra = this.createFromForm();
|
||||||
|
|
||||||
console.log(usuarioExtra.iconoPerfil);
|
|
||||||
console.log(usuarioExtra.fechaNacimiento);
|
|
||||||
|
|
||||||
this.subscribeToSaveResponse(this.usuarioExtraService.update(usuarioExtra));
|
this.subscribeToSaveResponse(this.usuarioExtraService.update(usuarioExtra));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,6 @@ export class EncuestaDeleteDialogComponent {
|
||||||
this.encuestaService.deleteEncuesta(encuesta).subscribe(() => {
|
this.encuestaService.deleteEncuesta(encuesta).subscribe(() => {
|
||||||
this.activeModal.close('deleted');
|
this.activeModal.close('deleted');
|
||||||
});
|
});
|
||||||
if (encuesta.usuarioExtra != undefined) {
|
this.encuestaService.deletedNotification(encuesta);
|
||||||
const userEmail = encuesta.usuarioExtra!.user!.login;
|
|
||||||
this.encuestaService.deletedNotification(userEmail!);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,46 @@
|
||||||
<form *ngIf="encuesta" name="deleteForm" (ngSubmit)="confirmPublish(encuesta)">
|
<form *ngIf="encuesta" name="deleteForm" (ngSubmit)="confirmPublish(encuesta!)">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<!-- <h4 class="modal-title" data-cy="encuestaDeleteDialogHeading" jhiTranslate="entity.publish.title">Confirm delete operation</h4>-->
|
<!-- <h4 class="modal-title" data-cy="encuestaDeleteDialogHeading" jhiTranslate="entity.publish.title">Confirm delete operation</h4>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<!-- <jhi-alert-error></jhi-alert-error> -->
|
<div class="alert alert-danger" *ngIf="fechaFinalizarInvalid && !fechaFinalizarInvalidMax" data-cy="fechaError">
|
||||||
<p class="ds-title--small">Publicar encuesta</p>
|
Debe ingresar un rango de fechas mayor al indicado
|
||||||
<p class="ds-subtitle" id="jhi-delete-encuesta-heading" jhiTranslate="entity.publish.detail">
|
</div>
|
||||||
Are you sure you want to delete this Encuesta?
|
|
||||||
</p>
|
<div class="alert alert-danger" *ngIf="fechaFinalizarInvalidMax && !fechaFinalizarInvalid" data-cy="fechaError">
|
||||||
|
Debe ingresar un rango de fechas menor al indicado
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p id="jhi-delete-encuesta-heading">Elija la fecha de finalización de su encuesta</p>
|
||||||
|
<hr />
|
||||||
|
<!--<input type="date" onchange="fechaFinalizacionIsInvalid()" />-->
|
||||||
|
<div class="d-flex" [formGroup]="fechaForm">
|
||||||
|
<input
|
||||||
|
id="field_fechaFinalizacion"
|
||||||
|
data-cy="fechaFinalizacion"
|
||||||
|
type="date"
|
||||||
|
class="form-control"
|
||||||
|
name="fechaFinalizacion"
|
||||||
|
formControlName="fechaFinalizacion"
|
||||||
|
placeholder="YYYY-MM-DD HH:mm"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
*ngIf="
|
||||||
|
fechaForm.get('fechaFinalizacion')!.invalid &&
|
||||||
|
(fechaForm.get('fechaFinalizacion')!.dirty || fechaForm.get('fechaFinalizacion')!.touched)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<small
|
||||||
|
class="form-text text-danger"
|
||||||
|
*ngIf="fechaForm.get('fechaFinalizacion')?.errors?.required"
|
||||||
|
jhiTranslate="entity.validation.required"
|
||||||
|
>
|
||||||
|
This field is required.
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
|
@ -16,7 +48,13 @@
|
||||||
<fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
|
<fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button id="jhi-confirm-delete-encuesta" data-cy="entityConfirmDeleteButton" type="submit" class="ds-btn ds-btn--primary">
|
<button
|
||||||
|
[disabled]="fechaForm.invalid"
|
||||||
|
id="jhi-confirm-delete-encuesta"
|
||||||
|
data-cy="entityConfirmDeleteButton"
|
||||||
|
type="submit"
|
||||||
|
class="ds-btn ds-btn--primary"
|
||||||
|
>
|
||||||
<span jhiTranslate="entity.action.publish">Delete</span>
|
<span jhiTranslate="entity.action.publish">Delete</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,6 +5,13 @@ import { EncuestaService } from '../service/encuesta.service';
|
||||||
import { EstadoEncuesta } from '../../enumerations/estado-encuesta.model';
|
import { EstadoEncuesta } from '../../enumerations/estado-encuesta.model';
|
||||||
import { AccesoEncuesta } from '../../enumerations/acceso-encuesta.model';
|
import { AccesoEncuesta } from '../../enumerations/acceso-encuesta.model';
|
||||||
import { passwordResetFinishRoute } from '../../../account/password-reset/finish/password-reset-finish.route';
|
import { passwordResetFinishRoute } from '../../../account/password-reset/finish/password-reset-finish.route';
|
||||||
|
import { FormBuilder, Validators } from '@angular/forms';
|
||||||
|
import { IParametroAplicacion } from 'app/entities/parametro-aplicacion/parametro-aplicacion.model';
|
||||||
|
import { ParametroAplicacionService } from 'app/entities/parametro-aplicacion/service/parametro-aplicacion.service';
|
||||||
|
import { HttpResponse } from '@angular/common/http';
|
||||||
|
import { DATE_FORMAT, DATE_TIME_FORMAT } from '../../../config/input.constants';
|
||||||
|
import * as dayjs from 'dayjs';
|
||||||
|
import { finalize } from 'rxjs/operators';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'jhi-encuesta-publish-dialog',
|
selector: 'jhi-encuesta-publish-dialog',
|
||||||
|
@ -13,14 +20,52 @@ import { passwordResetFinishRoute } from '../../../account/password-reset/finish
|
||||||
})
|
})
|
||||||
export class EncuestaPublishDialogComponent implements OnInit {
|
export class EncuestaPublishDialogComponent implements OnInit {
|
||||||
encuesta?: IEncuesta;
|
encuesta?: IEncuesta;
|
||||||
|
//fechaFinalizacion?: Date;
|
||||||
|
fechaFinalizarInvalid?: boolean = false;
|
||||||
|
fechaFinalizarInvalidMax?: boolean = false;
|
||||||
|
isLoading?: boolean;
|
||||||
|
parametroAplicacions?: IParametroAplicacion[];
|
||||||
|
isMin = false;
|
||||||
|
isMax = false;
|
||||||
|
datoMin?: number;
|
||||||
|
datoMax?: number;
|
||||||
|
now = new Date();
|
||||||
|
fechaForm = this.fb.group({
|
||||||
|
fechaFinalizacion: [null, [Validators.required]],
|
||||||
|
});
|
||||||
|
|
||||||
constructor(protected encuestaService: EncuestaService, protected activeModal: NgbActiveModal) {}
|
constructor(
|
||||||
|
protected parametroAplicacionService: ParametroAplicacionService,
|
||||||
|
protected encuestaService: EncuestaService,
|
||||||
|
protected fb: FormBuilder,
|
||||||
|
protected activeModal: NgbActiveModal
|
||||||
|
) {}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.loadAll();
|
||||||
|
}
|
||||||
|
|
||||||
cancel(): void {
|
cancel(): void {
|
||||||
this.activeModal.dismiss();
|
this.activeModal.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmPublish(encuesta: IEncuesta): void {
|
confirmPublish(encuesta: IEncuesta): void {
|
||||||
|
this.fechaFinalizarInvalid = false;
|
||||||
|
this.fechaFinalizarInvalidMax = false;
|
||||||
|
|
||||||
|
const now = dayjs();
|
||||||
|
|
||||||
|
/*this.loadAll()
|
||||||
|
|
||||||
|
this.parametroAplicacions?.forEach(datos => {
|
||||||
|
this.datoMin = datos.minDiasEncuesta;
|
||||||
|
this.datoMax = datos.maxDiasEncuesta;
|
||||||
|
});*/
|
||||||
|
|
||||||
|
encuesta.fechaFinalizar = dayjs(this.fechaForm.get(['fechaFinalizacion'])!.value);
|
||||||
|
encuesta.fechaPublicacion = dayjs(now, DATE_TIME_FORMAT);
|
||||||
|
|
||||||
|
if (this.fechaFinalizacionIsInvalid(encuesta.fechaFinalizar, encuesta.fechaPublicacion)) {
|
||||||
if (encuesta.estado === 'DRAFT') {
|
if (encuesta.estado === 'DRAFT') {
|
||||||
encuesta.estado = EstadoEncuesta.ACTIVE;
|
encuesta.estado = EstadoEncuesta.ACTIVE;
|
||||||
}
|
}
|
||||||
|
@ -29,10 +74,53 @@ export class EncuestaPublishDialogComponent implements OnInit {
|
||||||
encuesta.contrasenna = this.generatePassword();
|
encuesta.contrasenna = this.generatePassword();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.encuestaService.publishEncuesta(encuesta).subscribe(() => {
|
this.encuestaService.update(encuesta).subscribe(() => {
|
||||||
this.activeModal.close('published');
|
this.activeModal.close('published');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
loadAll(): void {
|
||||||
|
this.isLoading = true;
|
||||||
|
|
||||||
|
this.parametroAplicacionService
|
||||||
|
.query()
|
||||||
|
.pipe(finalize(() => this.onLoadFinalize()))
|
||||||
|
.subscribe(
|
||||||
|
(res: HttpResponse<IParametroAplicacion[]>) => {
|
||||||
|
this.isLoading = false;
|
||||||
|
this.parametroAplicacions = res.body ?? [];
|
||||||
|
},
|
||||||
|
() => {
|
||||||
|
this.isLoading = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
onLoadFinalize() {
|
||||||
|
this.parametroAplicacions?.forEach(datos => {
|
||||||
|
this.datoMin = datos.minDiasEncuesta;
|
||||||
|
this.datoMax = datos.maxDiasEncuesta;
|
||||||
|
});
|
||||||
|
this.isLoading = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
fechaFinalizacionIsInvalid(fechaFinalizar: dayjs.Dayjs, fechaPublicacion: dayjs.Dayjs): boolean {
|
||||||
|
let numberDays: number;
|
||||||
|
debugger;
|
||||||
|
|
||||||
|
numberDays = fechaFinalizar?.diff(fechaPublicacion, 'days');
|
||||||
|
|
||||||
|
if (numberDays <= this.datoMin!) {
|
||||||
|
this.fechaFinalizarInvalid = true;
|
||||||
|
return false;
|
||||||
|
} else if (numberDays >= this.datoMax!) {
|
||||||
|
this.fechaFinalizarInvalidMax = true;
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
generatePassword(): string {
|
generatePassword(): string {
|
||||||
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||||
|
@ -43,6 +131,4 @@ export class EncuestaPublishDialogComponent implements OnInit {
|
||||||
}
|
}
|
||||||
return password;
|
return password;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,8 +88,8 @@ export class EncuestaService {
|
||||||
return this.http.delete(`${this.resourceUrl}/${id}`, { observe: 'response' });
|
return this.http.delete(`${this.resourceUrl}/${id}`, { observe: 'response' });
|
||||||
}
|
}
|
||||||
|
|
||||||
deletedNotification(email: string): Observable<HttpResponse<{}>> {
|
deletedNotification(encuesta: IEncuesta): Observable<HttpResponse<{}>> {
|
||||||
return this.http.delete(`${this.resourceUrl}/${email}`, { observe: 'response' });
|
return this.http.delete(`${this.resourceUrl}/notify/${encuesta.id}`, { observe: 'response' });
|
||||||
}
|
}
|
||||||
|
|
||||||
addEncuestaToCollectionIfMissing(encuestaCollection: IEncuesta[], ...encuestasToCheck: (IEncuesta | null | undefined)[]): IEncuesta[] {
|
addEncuestaToCollectionIfMissing(encuestaCollection: IEncuesta[], ...encuestasToCheck: (IEncuesta | null | undefined)[]): IEncuesta[] {
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.iconoPerfil">Icono</span></th>
|
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.iconoPerfil">Icono</span></th>
|
||||||
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.nombre">Nombre Usuario</span></th>
|
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.nombre">Nombre Usuario</span></th>
|
||||||
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.correo">Correo electrónico</span></th>
|
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.correo">Correo electrónico</span></th>
|
||||||
|
<th scope="col"><span>Fecha de nacimiento</span></th>
|
||||||
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.estado">Estado</span></th>
|
<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.estado">Estado</span></th>
|
||||||
<!--<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.plantilla">Plantilla</span></th>-->
|
<!--<th scope="col"><span jhiTranslate="dataSurveyApp.usuarioExtra.plantilla">Plantilla</span></th>-->
|
||||||
<th scope="col"></th>
|
<th scope="col"></th>
|
||||||
|
@ -75,6 +76,8 @@
|
||||||
</td>
|
</td>
|
||||||
<td>{{ usuarioExtra.nombre }}</td>
|
<td>{{ usuarioExtra.nombre }}</td>
|
||||||
<td *ngIf="usuarioExtra.user">{{ usuarioExtra.user.email }}</td>
|
<td *ngIf="usuarioExtra.user">{{ usuarioExtra.user.email }}</td>
|
||||||
|
<td *ngIf="usuarioExtra.fechaNacimiento == null">No establecida</td>
|
||||||
|
<td *ngIf="usuarioExtra.fechaNacimiento != null">{{ usuarioExtra.fechaNacimiento | formatMediumDate }}</td>
|
||||||
<td jhiTranslate="{{ 'dataSurveyApp.EstadoUsuario.' + usuarioExtra.estado }}">{{ usuarioExtra.estado }}</td>
|
<td jhiTranslate="{{ 'dataSurveyApp.EstadoUsuario.' + usuarioExtra.estado }}">{{ usuarioExtra.estado }}</td>
|
||||||
<!--<td>
|
<!--<td>
|
||||||
<span *ngFor="let plantilla of usuarioExtra.plantillas; let last = last">
|
<span *ngFor="let plantilla of usuarioExtra.plantillas; let last = last">
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
<button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Iniciar Sesión</button>
|
<button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Iniciar Sesión</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!--<a href="account/register" [hidden]="!notAccount">
|
<a href="account/register" [hidden]="!notAccount">
|
||||||
<button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Registrarse</button>
|
<button class="ds-btn ds-btn--primary fw-500 ms-lg-4">Registrarse</button>
|
||||||
</a>-->
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue