add modal add colaborador
This commit is contained in:
parent
184dc96556
commit
b068359da6
|
@ -100,6 +100,8 @@ export class EncuestaService {
|
||||||
return this.http.delete(`${this.resourceUrl}/notify/${encuesta.id}`, { observe: 'response' });
|
return this.http.delete(`${this.resourceUrl}/notify/${encuesta.id}`, { observe: 'response' });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendCorreoInvitacion(correo: string) {}
|
||||||
|
|
||||||
addEncuestaToCollectionIfMissing(encuestaCollection: IEncuesta[], ...encuestasToCheck: (IEncuesta | null | undefined)[]): IEncuesta[] {
|
addEncuestaToCollectionIfMissing(encuestaCollection: IEncuesta[], ...encuestasToCheck: (IEncuesta | null | undefined)[]): IEncuesta[] {
|
||||||
const encuestas: IEncuesta[] = encuestasToCheck.filter(isPresent);
|
const encuestas: IEncuesta[] = encuestasToCheck.filter(isPresent);
|
||||||
if (encuestas.length > 0) {
|
if (encuestas.length > 0) {
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<div class="col-12 ds-list-collabs">
|
<div class="col-12 ds-list-collabs">
|
||||||
<div class="row" style="flex-direction: row-reverse">
|
<div class="row" style="flex-direction: row-reverse">
|
||||||
<div class="col-mb-2 iconos-colab">
|
<div class="col-mb-2 iconos-colab">
|
||||||
<div class="add-collab">
|
<div class="add-collab" data-toggle="modal" data-target="modalAddColaborators">
|
||||||
<fa-icon icon="sync" [icon]="faPlus"></fa-icon>
|
<fa-icon icon="sync" [icon]="faPlus"></fa-icon>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -443,7 +443,7 @@
|
||||||
|
|
||||||
<!-- ------------------------------------------------------------------------------------------------- -->
|
<!-- ------------------------------------------------------------------------------------------------- -->
|
||||||
|
|
||||||
<!-- Survey Parameters Information -->
|
<!-- Survey Update Colaborator -->
|
||||||
<div
|
<div
|
||||||
class="modal fade ds-modal"
|
class="modal fade ds-modal"
|
||||||
id="modalUpdateColaborators"
|
id="modalUpdateColaborators"
|
||||||
|
@ -498,3 +498,63 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ------------------------------------------------------------------------------------------------- -->
|
<!-- ------------------------------------------------------------------------------------------------- -->
|
||||||
|
|
||||||
|
<!-- Survey Add Colaborator -->
|
||||||
|
<div
|
||||||
|
class="modal fade ds-modal"
|
||||||
|
id="modalAddColaborators"
|
||||||
|
tabindex="-1"
|
||||||
|
role="dialog"
|
||||||
|
aria-labelledby="verColaboradoresTitle"
|
||||||
|
aria-hidden="true"
|
||||||
|
*ngIf="isAutor()"
|
||||||
|
>
|
||||||
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<form class="ds-form" name="editFormAddCollab" role="form" (ngSubmit)="saveAddCollab()" [formGroup]="editFormAddCollab">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h1 class="modal-title" id="modalAddColaboradores">Colaborador</h1>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div>
|
||||||
|
<div class="mb-5">
|
||||||
|
<p class="ds-subtitle">Correo electrónico</p>
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
class="form-control"
|
||||||
|
name="email_collab"
|
||||||
|
id="field_add_email"
|
||||||
|
data-cy="email_collab"
|
||||||
|
formControlName="email_collab"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label for="field_update_rol">Rol</label>
|
||||||
|
<select class="form-control" name="add_rol" formControlName="add_rol" id="field_add_rol" data-cy="rol">
|
||||||
|
<option value="" selected disabled>Seleccione un rol</option>
|
||||||
|
<option value="READ">Lector</option>
|
||||||
|
<option value="WRITE">Escritor</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="btnCancelAddColaboradores" type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal">
|
||||||
|
<fa-icon icon="arrow-left"></fa-icon> <span>Cancelar</span>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="btnAddColaboradores"
|
||||||
|
type="submit"
|
||||||
|
class="ds-btn ds-btn--primary"
|
||||||
|
data-cy="entityAddButton"
|
||||||
|
[disabled]="isSavingCollab"
|
||||||
|
>
|
||||||
|
<span>Guardar</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ------------------------------------------------------------------------------------------------- -->
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
import { EPreguntaAbierta, IEPreguntaAbierta } from './../../e-pregunta-abierta/e-pregunta-abierta.model';
|
import { EPreguntaAbierta, IEPreguntaAbierta } from './../../e-pregunta-abierta/e-pregunta-abierta.model';
|
||||||
import { EPreguntaCerrada } from './../../e-pregunta-cerrada/e-pregunta-cerrada.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 { IEPreguntaCerradaOpcion } from './../../e-pregunta-cerrada-opcion/e-pregunta-cerrada-opcion.model';
|
||||||
import { EPreguntaAbiertaService } from './../../e-pregunta-abierta/service/e-pregunta-abierta.service';
|
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 { EPreguntaCerradaOpcionService } from './../../e-pregunta-cerrada-opcion/service/e-pregunta-cerrada-opcion.service';
|
||||||
import { AfterViewChecked, Component, OnInit } from '@angular/core';
|
import { AfterViewChecked, Component, OnInit } from '@angular/core';
|
||||||
import { HttpResponse } from '@angular/common/http';
|
import { HttpResponse } from '@angular/common/http';
|
||||||
import { FormBuilder, Validators } from '@angular/forms';
|
import { FormBuilder, Validators } from '@angular/forms';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { finalize, map } from 'rxjs/operators';
|
import { finalize } from 'rxjs/operators';
|
||||||
|
|
||||||
import * as dayjs from 'dayjs';
|
import * as dayjs from 'dayjs';
|
||||||
import { DATE_TIME_FORMAT } from 'app/config/input.constants';
|
import { DATE_TIME_FORMAT } from 'app/config/input.constants';
|
||||||
|
|
||||||
import { IEncuesta, Encuesta } from '../encuesta.model';
|
import { Encuesta } from '../encuesta.model';
|
||||||
import { EncuestaService } from '../service/encuesta.service';
|
import { EncuestaService } from '../service/encuesta.service';
|
||||||
import { ICategoria } from 'app/entities/categoria/categoria.model';
|
import { ICategoria } from 'app/entities/categoria/categoria.model';
|
||||||
import { CategoriaService } from 'app/entities/categoria/service/categoria.service';
|
import { CategoriaService } from 'app/entities/categoria/service/categoria.service';
|
||||||
|
@ -25,24 +25,25 @@ import { IEPreguntaCerrada } from 'app/entities/e-pregunta-cerrada/e-pregunta-ce
|
||||||
import { EPreguntaCerradaService } from 'app/entities/e-pregunta-cerrada/service/e-pregunta-cerrada.service';
|
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 { EPreguntaCerradaDeleteDialogComponent } from 'app/entities/e-pregunta-cerrada/delete/e-pregunta-cerrada-delete-dialog.component';
|
||||||
|
|
||||||
import { faTimes, faPlus, faQuestion, faPollH, faEye } from '@fortawesome/free-solid-svg-icons';
|
import { faEye, faPlus, faPollH, faQuestion, faTimes } from '@fortawesome/free-solid-svg-icons';
|
||||||
import { PreguntaCerradaTipo } from 'app/entities/enumerations/pregunta-cerrada-tipo.model';
|
import { PreguntaCerradaTipo } from 'app/entities/enumerations/pregunta-cerrada-tipo.model';
|
||||||
import { EncuestaDeleteQuestionDialogComponent } from '../encuesta-delete-question-dialog/encuesta-delete-question-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';
|
import { EncuestaDeleteOptionDialogComponent } from '../encuesta-delete-option-dialog/encuesta-delete-option-dialog.component';
|
||||||
|
|
||||||
import { ParametroAplicacionService } from './../../parametro-aplicacion/service/parametro-aplicacion.service';
|
import { ParametroAplicacionService } from './../../parametro-aplicacion/service/parametro-aplicacion.service';
|
||||||
import { IParametroAplicacion } from './../../parametro-aplicacion/parametro-aplicacion.model';
|
import { IParametroAplicacion } from './../../parametro-aplicacion/parametro-aplicacion.model';
|
||||||
import { Router } from '@angular/router';
|
|
||||||
|
|
||||||
import { UsuarioEncuestaService } from 'app/entities/usuario-encuesta/service/usuario-encuesta.service';
|
import { UsuarioEncuestaService } from 'app/entities/usuario-encuesta/service/usuario-encuesta.service';
|
||||||
import { IUsuarioEncuesta } from '../../usuario-encuesta/usuario-encuesta.model';
|
import { IUsuarioEncuesta, UsuarioEncuesta } from '../../usuario-encuesta/usuario-encuesta.model';
|
||||||
import { RolColaborador } from '../../enumerations/rol-colaborador.model';
|
import { RolColaborador } from '../../enumerations/rol-colaborador.model';
|
||||||
import { Account } from '../../../core/auth/account.model';
|
import { Account } from '../../../core/auth/account.model';
|
||||||
import { AccountService } from 'app/core/auth/account.service';
|
import { AccountService } from 'app/core/auth/account.service';
|
||||||
import { EncuestaDeleteDialogComponent } from '../delete/encuesta-delete-dialog.component';
|
|
||||||
import { EncuestaDeleteColaboratorDialogComponent } from '../encuesta-delete-colaborator-dialog/encuesta-delete-colaborator-dialog.component';
|
import { EncuestaDeleteColaboratorDialogComponent } from '../encuesta-delete-colaborator-dialog/encuesta-delete-colaborator-dialog.component';
|
||||||
|
import { IUser } from '../../user/user.model';
|
||||||
|
|
||||||
import * as $ from 'jquery';
|
import * as $ from 'jquery';
|
||||||
|
import { UserService } from '../../user/user.service';
|
||||||
|
import { EstadoColaborador } from '../../enumerations/estado-colaborador.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'jhi-encuesta-update',
|
selector: 'jhi-encuesta-update',
|
||||||
|
@ -102,6 +103,10 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
|
||||||
editFormUpdateCollab = this.fb.group({
|
editFormUpdateCollab = this.fb.group({
|
||||||
rol: [null, [Validators.required]],
|
rol: [null, [Validators.required]],
|
||||||
});
|
});
|
||||||
|
editFormAddCollab = this.fb.group({
|
||||||
|
email: [null, [Validators.required, Validators.email]],
|
||||||
|
rol: [null, [Validators.required]],
|
||||||
|
});
|
||||||
|
|
||||||
ePreguntas?: any[];
|
ePreguntas?: any[];
|
||||||
ePreguntasOpciones?: any[];
|
ePreguntasOpciones?: any[];
|
||||||
|
@ -114,6 +119,9 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
|
||||||
createAnotherQuestion: Boolean = false;
|
createAnotherQuestion: Boolean = false;
|
||||||
selectedQuestionToCreateOption: IEPreguntaCerrada | null = null;
|
selectedQuestionToCreateOption: IEPreguntaCerrada | null = null;
|
||||||
|
|
||||||
|
userPublicCollab: IUser | null = null;
|
||||||
|
usuarioExtraCollab: UsuarioExtra | null = null;
|
||||||
|
userCollabNotExist: boolean = false;
|
||||||
constructor(
|
constructor(
|
||||||
protected encuestaService: EncuestaService,
|
protected encuestaService: EncuestaService,
|
||||||
protected categoriaService: CategoriaService,
|
protected categoriaService: CategoriaService,
|
||||||
|
@ -127,7 +135,8 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
|
||||||
protected ePreguntaAbiertaService: EPreguntaAbiertaService,
|
protected ePreguntaAbiertaService: EPreguntaAbiertaService,
|
||||||
protected usuarioEncuestaService: UsuarioEncuestaService,
|
protected usuarioEncuestaService: UsuarioEncuestaService,
|
||||||
protected router: Router,
|
protected router: Router,
|
||||||
protected accountService: AccountService
|
protected accountService: AccountService,
|
||||||
|
protected userService: UserService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
loadAll(): void {
|
loadAll(): void {
|
||||||
|
@ -623,6 +632,13 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
/* methods for colaborators*/
|
/* methods for colaborators*/
|
||||||
|
protected createFromFormCollab(): UsuarioEncuesta {
|
||||||
|
return {
|
||||||
|
id: undefined,
|
||||||
|
rol: this.editFormAddCollab.get(['rol_add'])!.value,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
selectColaborator(c: IUsuarioEncuesta) {
|
selectColaborator(c: IUsuarioEncuesta) {
|
||||||
this.colaborador = c;
|
this.colaborador = c;
|
||||||
this.rolSeleccionado = c.rol;
|
this.rolSeleccionado = c.rol;
|
||||||
|
@ -643,6 +659,40 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
saveAddCollab(): void {
|
||||||
|
this.isSavingCollab = true;
|
||||||
|
const collab = this.createFromFormCollab();
|
||||||
|
let correoCollab = this.editFormAddCollab.get('email_collab')!.value;
|
||||||
|
|
||||||
|
this.usuarioExtraService
|
||||||
|
.retrieveAllPublicUsers()
|
||||||
|
.pipe(
|
||||||
|
finalize(() => {
|
||||||
|
if (this.userPublicCollab?.id !== undefined) {
|
||||||
|
this.usuarioExtraService.find(this.userPublicCollab?.id).subscribe(res => {
|
||||||
|
this.usuarioExtraCollab = res.body;
|
||||||
|
collab.fechaAgregado = dayjs(new Date(), DATE_TIME_FORMAT);
|
||||||
|
collab.usuarioExtra = this.usuarioExtraCollab;
|
||||||
|
collab.estado = EstadoColaborador.PENDING;
|
||||||
|
collab.encuesta = this.encuesta;
|
||||||
|
let id = 0;
|
||||||
|
this.subscribeToSaveResponseUpdateCollab(this.usuarioEncuestaService.create(collab));
|
||||||
|
this.sendInvitation(correoCollab);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.userCollabNotExist = true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.subscribe(res => {
|
||||||
|
res.forEach(user => {
|
||||||
|
if (user.login === correoCollab) {
|
||||||
|
this.userPublicCollab = user;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
protected subscribeToSaveResponseUpdateCollab(result: Observable<HttpResponse<IUsuarioEncuesta>>): void {
|
protected subscribeToSaveResponseUpdateCollab(result: Observable<HttpResponse<IUsuarioEncuesta>>): void {
|
||||||
result.pipe(finalize(() => this.onSaveFinalizeUpdateCollab())).subscribe(
|
result.pipe(finalize(() => this.onSaveFinalizeUpdateCollab())).subscribe(
|
||||||
() => this.onSaveSuccessUpdateCollab(),
|
() => this.onSaveSuccessUpdateCollab(),
|
||||||
|
@ -681,4 +731,8 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
|
||||||
isAutor() {
|
isAutor() {
|
||||||
return this.usuarioExtra?.id == this.encuesta?.usuarioExtra?.id;
|
return this.usuarioExtra?.id == this.encuesta?.usuarioExtra?.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendInvitation(correo: string) {
|
||||||
|
this.encuestaService.sendCorreoInvitacion(correo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue