diff --git a/src/main/java/org/datasurvey/service/MailService.java b/src/main/java/org/datasurvey/service/MailService.java index 85e1f77..13b50b3 100644 --- a/src/main/java/org/datasurvey/service/MailService.java +++ b/src/main/java/org/datasurvey/service/MailService.java @@ -192,4 +192,15 @@ public class MailService { "email.invitation.title" ); } + + @Async + public void sendNotifyDeleteColaborator(UsuarioEncuesta user) { + log.debug("Sending delete collaboration notification mail to '{}'", user.getUsuarioExtra().getUser().getEmail()); + sendEmailFromTemplateUsuarioEncuesta( + user.getUsuarioExtra().getUser(), + user, + "mail/deleteColaboratorEmail", + "email.deleteColaborator.title" + ); + } } diff --git a/src/main/java/org/datasurvey/web/rest/UsuarioEncuestaResource.java b/src/main/java/org/datasurvey/web/rest/UsuarioEncuestaResource.java index 030f40c..f440cd7 100644 --- a/src/main/java/org/datasurvey/web/rest/UsuarioEncuestaResource.java +++ b/src/main/java/org/datasurvey/web/rest/UsuarioEncuestaResource.java @@ -205,7 +205,11 @@ public class UsuarioEncuestaResource { @DeleteMapping("/usuario-encuestas/{id}") public ResponseEntity deleteUsuarioEncuesta(@PathVariable Long id) { log.debug("REST request to delete UsuarioEncuesta : {}", id); + Optional usuarioEncuesta = usuarioEncuestaService.findOne(id); usuarioEncuestaService.delete(id); + if (usuarioEncuesta != null) { + mailService.sendNotifyDeleteColaborator(usuarioEncuesta.get()); + } return ResponseEntity .noContent() .headers(HeaderUtil.createEntityDeletionAlert(applicationName, true, ENTITY_NAME, id.toString())) @@ -232,7 +236,7 @@ public class UsuarioEncuestaResource { } @PostMapping("/usuario-encuestas/notify/{id}") - public ResponseEntity notifyEncuestaDeleted(@PathVariable Long id, @Valid @RequestBody UsuarioEncuesta usuarioEncuesta) { + public ResponseEntity notifyInvitationColaborator(@PathVariable Long id, @Valid @RequestBody UsuarioEncuesta usuarioEncuesta) { log.debug("REST request to notify {} of invitation to Encuesta", usuarioEncuesta.getUsuarioExtra().getUser().getEmail()); mailService.sendInvitationColaborator(usuarioEncuesta); return ResponseEntity.noContent().build(); diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties index e86ee22..e3392c0 100644 --- a/src/main/resources/i18n/messages.properties +++ b/src/main/resources/i18n/messages.properties @@ -48,7 +48,7 @@ email.public.text2=Saludos, #PrivateEncuesta email.private.title=Su encuesta ha sido publicada de manera privada -email.private.greeting=�Felicidades {0}! +email.private.greeting=¡Felicidades {0}! email.private.text1=Su encuesta ha sdo publicada de manera privada. Su contraseña de acceso es: {0} email.private.text2=Saludos, @@ -56,5 +56,11 @@ email.private.text2=Saludos, #Invitation Colaborator email.invitation.title=Se le ha invitado a colaborar en una encuesta email.invitation.greeting=¡Nueva invitacion, {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, + +#Delete Colaborator +email.deleteColaborator.title=Se le ha expulsado de una encuesta como colaborador +email.deleteColaborator.greeting=¡Se le ha expulsado, {0}! +email.deleteColaborator.text1=Fue expulsado de la encuesta {0}(#{1})". +email.deleteColaborator.text2=Saludos, diff --git a/src/main/resources/templates/mail/deleteColaboratorEmail.html b/src/main/resources/templates/mail/deleteColaboratorEmail.html new file mode 100644 index 0000000..9f9104f --- /dev/null +++ b/src/main/resources/templates/mail/deleteColaboratorEmail.html @@ -0,0 +1,322 @@ + + + + + + + + + + + JHipster activation + + + + + + + +
+
+ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌  +
+ +
+ + diff --git a/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.html b/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.html index b882e9a..fb4f56a 100644 --- a/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.html +++ b/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.html @@ -518,21 +518,59 @@ diff --git a/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.ts b/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.ts index 5ca6a19..c66ba09 100644 --- a/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.ts +++ b/src/main/webapp/app/entities/encuesta/update/encuesta-update.component.ts @@ -38,11 +38,7 @@ import { IUsuarioEncuesta, UsuarioEncuesta } from '../../usuario-encuesta/usuari import { RolColaborador } from '../../enumerations/rol-colaborador.model'; import { Account } from '../../../core/auth/account.model'; import { AccountService } from 'app/core/auth/account.service'; - -import { EncuestaPublishDialogComponent } from '../encuesta-publish-dialog/encuesta-publish-dialog.component'; import { EncuestaFinalizarDialogComponent } from '../encuesta-finalizar-dialog/encuesta-finalizar-dialog.component'; - -import { EncuestaDeleteDialogComponent } from '../delete/encuesta-delete-dialog.component'; import { EncuestaDeleteColaboratorDialogComponent } from '../encuesta-delete-colaborator-dialog/encuesta-delete-colaborator-dialog.component'; import { IUser } from '../../user/user.model'; @@ -64,6 +60,7 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { isSaving = false; isSavingQuestion = false; isSavingCollab = false; + isSavingAddCollab = false; finalizada = false; public rolSeleccionado: RolColaborador | undefined = undefined; categoriasSharedCollection: ICategoria[] = []; @@ -109,9 +106,10 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { editFormUpdateCollab = this.fb.group({ rol: [null, [Validators.required]], }); + editFormAddCollab = this.fb.group({ - email: [null, [Validators.required, Validators.email]], - rol: [null, [Validators.required]], + email_add: [null, [Validators.required, Validators.email]], + rol_add: [null, [Validators.required]], }); ePreguntas?: any[]; @@ -641,7 +639,7 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { protected createFromFormCollab(): UsuarioEncuesta { return { id: undefined, - rol: this.editFormAddCollab.get(['rol'])!.value, + rol: this.editFormAddCollab.get(['rol_add'])!.value, }; } @@ -666,9 +664,15 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { } saveAddCollab(): void { - this.isSavingCollab = true; + this.isSavingAddCollab = true; const collab = this.createFromFormCollab(); - let correoCollab = this.editFormAddCollab.get('email')!.value; + let rol = this.editFormAddCollab.get('rol_add')!.value; + if (rol === 'READ') { + collab.rol = RolColaborador.READ; + } else if (rol === 'WRITE') { + collab.rol = RolColaborador.WRITE; + } + let correoCollab = this.editFormAddCollab.get('email_add')!.value; this.userService .retrieveAllPublicUsers() @@ -683,8 +687,7 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { collab.estado = EstadoColaborador.PENDING; collab.encuesta = this.encuesta; let id = 0; - this.subscribeToSaveResponseUpdateCollab(this.usuarioEncuestaService.create(collab)); - // this.sendInvitation(correoCollab); + this.subscribeToSaveResponseAddCollab(this.usuarioEncuestaService.create(collab)); }); } else { this.userCollabNotExist = true; @@ -720,6 +723,25 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { this.isSavingCollab = false; } + protected subscribeToSaveResponseAddCollab(result: Observable>): void { + result.pipe(finalize(() => this.onSaveFinalizeAddCollab())).subscribe( + () => this.onSaveSuccessAddCollab(), + () => this.onSaveErrorAddCollab() + ); + } + + protected onSaveSuccessAddCollab(): void { + this.loadAll(); + $('#btnCancelAddColaboradores').click(); + } + + protected onSaveErrorAddCollab(): void { + // Api for inheritance. + } + + protected onSaveFinalizeAddCollab(): void { + this.isSavingAddCollab = false; + } deleteCollab(collab: IUsuarioEncuesta) { //$('#btnCancelUbdateColaboradores').click(); //setTimeout(() => { diff --git a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html index 6359d32..3d47290 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html +++ b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html @@ -64,6 +64,7 @@
+