validaciones y fix mensajes de correos

This commit is contained in:
Mariela Bonilla 2021-08-01 19:05:42 -06:00
parent 7545affd77
commit af8394b222
3 changed files with 61 additions and 14 deletions

View File

@ -55,12 +55,12 @@ email.private.text2=Saludos,
#Invitation Colaborator #Invitation Colaborator
email.invitation.title=Se le ha invitado a colaborar en una encuesta email.invitation.title=Se le ha invitado a colaborar en una encuesta
email.invitation.greeting=¡Nueva invitacion, {0}! email.invitation.greeting=¡Nueva invitación, {0}!
email.invitation.text1=Fue invitado a la encuesta "{0}(#{1})". Para aceptar la solicitud de colaborador, ingrese al área de colaboraciones. email.invitation.text1=Fue invitado a la encuesta "{0}(#{1})". Para aceptar la solicitud de colaborador, ingrese al área de colaboraciones
email.invitation.text2=Saludos, email.invitation.text2=Saludos,
#Delete Colaborator #Delete Colaborator
email.deleteColaborator.title=Se le ha expulsado de una encuesta como colaborador email.deleteColaborator.title=Se le ha expulsado de una encuesta como colaborador
email.deleteColaborator.greeting=¡Se le ha expulsado, {0}! email.deleteColaborator.greeting=¡Se le ha expulsado, {0}!
email.deleteColaborator.text1=Fue expulsado de la encuesta {0}(#{1})". email.deleteColaborator.text1=Fue expulsado de la encuesta {0}(#{1})"
email.deleteColaborator.text2=Saludos, email.deleteColaborator.text2=Saludos,

View File

@ -524,6 +524,12 @@
<div *ngIf="userCollabNotExist" class="alert alert-danger alert-dismissible fade show" role="alert"> <div *ngIf="userCollabNotExist" class="alert alert-danger alert-dismissible fade show" role="alert">
No existe un usuario con ese correo No existe un usuario con ese correo
</div> </div>
<div *ngIf="userCollabIsCollab" class="alert alert-danger alert-dismissible fade show" role="alert">
Este usuario ya se encuentra colaborando
</div>
<div *ngIf="userCollabIsAutor" class="alert alert-danger alert-dismissible fade show" role="alert">
Usted es el autor de la encuesta, no puede ser colaborador
</div>
<div> <div>
<div class="mb-5"> <div class="mb-5">
<p class="ds-subtitle">Correo electrónico</p> <p class="ds-subtitle">Correo electrónico</p>
@ -575,7 +581,13 @@
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button id="btnCancelAddColaboradores" type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal"> <button
id="btnCancelAddColaboradores"
(click)="resetFormAddCollab()"
type="button"
class="ds-btn ds-btn--secondary"
data-dismiss="modal"
>
<fa-icon icon="arrow-left"></fa-icon>&nbsp;&nbsp;<span>Cancelar</span> <fa-icon icon="arrow-left"></fa-icon>&nbsp;&nbsp;<span>Cancelar</span>
</button> </button>
<button <button

View File

@ -126,6 +126,8 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
userPublicCollab: IUser | null = null; userPublicCollab: IUser | null = null;
usuarioExtraCollab: UsuarioExtra | null = null; usuarioExtraCollab: UsuarioExtra | null = null;
userCollabNotExist: boolean = false; userCollabNotExist: boolean = false;
userCollabIsCollab: boolean = false;
userCollabIsAutor: boolean = false;
constructor( constructor(
protected encuestaService: EncuestaService, protected encuestaService: EncuestaService,
protected categoriaService: CategoriaService, protected categoriaService: CategoriaService,
@ -663,8 +665,17 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
} }
} }
resetFormAddCollab(): void {
this.editFormAddCollab.reset();
this.userPublicCollab = null;
}
saveAddCollab(): void { saveAddCollab(): void {
this.isSavingAddCollab = true; this.isSavingAddCollab = true;
this.userCollabIsAutor = false;
this.userCollabIsCollab = false;
this.userCollabNotExist = false;
const collab = this.createFromFormCollab(); const collab = this.createFromFormCollab();
let rol = this.editFormAddCollab.get('rol_add')!.value; let rol = this.editFormAddCollab.get('rol_add')!.value;
if (rol === 'READ') { if (rol === 'READ') {
@ -679,6 +690,13 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
.pipe( .pipe(
finalize(() => { finalize(() => {
if (this.userPublicCollab?.id !== undefined) { if (this.userPublicCollab?.id !== undefined) {
if (correoCollab === this.usuarioExtra?.user?.login) {
this.userCollabIsAutor = true;
this.isSavingAddCollab = false;
} else if (this.validarUserIsCollab(correoCollab)) {
this.userCollabIsCollab = true;
this.isSavingAddCollab = false;
} else {
this.usuarioExtraService.find(this.userPublicCollab?.id).subscribe(res => { this.usuarioExtraService.find(this.userPublicCollab?.id).subscribe(res => {
this.usuarioExtraCollab = res.body; this.usuarioExtraCollab = res.body;
let now = new Date(); let now = new Date();
@ -689,9 +707,12 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
let id = 0; let id = 0;
this.subscribeToSaveResponseAddCollab(this.usuarioEncuestaService.create(collab)); this.subscribeToSaveResponseAddCollab(this.usuarioEncuestaService.create(collab));
}); });
}
} else { } else {
this.userCollabNotExist = true; this.userCollabNotExist = true;
this.isSavingAddCollab = false;
} }
this.resetFormAddCollab();
}) })
) )
.subscribe(res => { .subscribe(res => {
@ -699,6 +720,10 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
if (user.login === correoCollab) { if (user.login === correoCollab) {
this.userPublicCollab = user; this.userPublicCollab = user;
} }
if (user.id === this.usuarioExtra?.id) {
// @ts-ignore
this.usuarioExtra?.user?.login = user.login;
}
}); });
}); });
} }
@ -773,6 +798,16 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
return escritor; return escritor;
} }
validarUserIsCollab(correoCollab: string) {
let isCollab = false;
this.usuariosColaboradores.forEach(c => {
if (c.usuarioExtra?.id === this.userPublicCollab?.id) {
isCollab = true;
}
});
return isCollab;
}
finalizar(): void { finalizar(): void {
const modalRef = this.modalService.open(EncuestaFinalizarDialogComponent, { size: 'lg', backdrop: 'static' }); const modalRef = this.modalService.open(EncuestaFinalizarDialogComponent, { size: 'lg', backdrop: 'static' });
modalRef.componentInstance.encuesta = this.encuesta; modalRef.componentInstance.encuesta = this.encuesta;