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 0a45aa8..2858a9a 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 @@ -20,7 +20,13 @@ -
+
+ + + + + + + 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 21a171e..bd76505 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 @@ -17,7 +17,7 @@ import { IEncuesta, Encuesta } from '../encuesta.model'; import { EncuestaService } from '../service/encuesta.service'; import { ICategoria } from 'app/entities/categoria/categoria.model'; import { CategoriaService } from 'app/entities/categoria/service/categoria.service'; -import { IUsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model'; +import { IUsuarioExtra, UsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model'; import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; @@ -36,6 +36,9 @@ import { Router } from '@angular/router'; import { UsuarioEncuestaService } from 'app/entities/usuario-encuesta/service/usuario-encuesta.service'; import { IUsuarioEncuesta } from '../../usuario-encuesta/usuario-encuesta.model'; +import { RolColaborador } from '../../enumerations/rol-colaborador.model'; +import { Account } from '../../../core/auth/account.model'; +import { AccountService } from 'app/core/auth/account.service'; @Component({ selector: 'jhi-encuesta-update', @@ -50,11 +53,15 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { isSaving = false; isSavingQuestion = false; - + isSavingCollab = false; + public rolSeleccionado: RolColaborador | undefined = undefined; categoriasSharedCollection: ICategoria[] = []; usuarioExtrasSharedCollection: IUsuarioExtra[] = []; usuariosColaboradores: IUsuarioEncuesta[] = []; + colaborador: IUsuarioEncuesta | null = null; + account: Account | null = null; + usuarioExtra: UsuarioExtra | null = null; // editForm = this.fb.group({ // id: [], // nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]], @@ -87,6 +94,11 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { tipopregunta: ['CLOSED'], }); + editFormUpdateCollab = this.fb.group({ + id: [], + rol: [null, [Validators.required]], + }); + ePreguntas?: any[]; ePreguntasOpciones?: any[]; encuesta: Encuesta | null = null; @@ -110,7 +122,8 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { protected parametroAplicacionService: ParametroAplicacionService, protected ePreguntaAbiertaService: EPreguntaAbiertaService, protected usuarioEncuestaService: UsuarioEncuestaService, - protected router: Router + protected router: Router, + protected accountService: AccountService ) {} loadAll(): void { @@ -170,6 +183,15 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { // this.loadRelationshipsOptions(); }); + + // Get jhi_user and usuario_extra information + this.accountService.getAuthenticationState().subscribe(account => { + if (account !== null) { + this.usuarioExtraService.find(account.id).subscribe(usuarioExtra => { + this.usuarioExtra = usuarioExtra.body; + }); + } + }); } ngAfterViewChecked(): void { @@ -595,4 +617,49 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked { // usuarioExtra: this.editForm.get(['usuarioExtra'])!.value, // }; // } + + /* methods for colaborators*/ + + selectColaborator(c: IUsuarioEncuesta) { + this.colaborador = c; + this.rolSeleccionado = c.rol; + } + + saveCollab(): void { + this.isSavingCollab = true; + const collab = this.colaborador; + if (collab !== null) { + collab.rol = this.editFormUpdateCollab.get('rol')!.value; + collab.fechaAgregado = dayjs(this.colaborador?.fechaAgregado, DATE_TIME_FORMAT); + /*this.usuarioEncuestaService.update(collab).subscribe( + res => {}, + (error) => {console.log(error)} + );*/ + + this.subscribeToSaveResponseUpdateCollab(this.usuarioEncuestaService.update(collab)); + } + } + protected subscribeToSaveResponseUpdateCollab(result: Observable>): void { + result.pipe(finalize(() => this.onSaveFinalizeUpdateCollab())).subscribe( + () => this.onSaveSuccessUpdateCollab(), + () => this.onSaveErrorUpdateCollab() + ); + } + + protected onSaveSuccessUpdateCollab(): void { + this.loadAll(); + $('#btnCancelUbdateColaboradores').click(); + } + + protected onSaveErrorUpdateCollab(): void { + // Api for inheritance. + } + + protected onSaveFinalizeUpdateCollab(): void { + this.isSavingCollab = false; + } + + isAutor() { + return this.usuarioExtra?.id == this.encuesta?.usuarioExtra?.id; + } } diff --git a/src/main/webapp/app/entities/usuario-encuesta/service/usuario-encuesta.service.ts b/src/main/webapp/app/entities/usuario-encuesta/service/usuario-encuesta.service.ts index fc47e76..dd7aee7 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/service/usuario-encuesta.service.ts +++ b/src/main/webapp/app/entities/usuario-encuesta/service/usuario-encuesta.service.ts @@ -27,8 +27,9 @@ export class UsuarioEncuestaService { update(usuarioEncuesta: IUsuarioEncuesta): Observable { const copy = this.convertDateFromClient(usuarioEncuesta); + const url = `${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`; return this.http - .put(`${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`, copy, { + .put(url, copy, { observe: 'response', }) .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); @@ -36,8 +37,9 @@ export class UsuarioEncuestaService { partialUpdate(usuarioEncuesta: IUsuarioEncuesta): Observable { const copy = this.convertDateFromClient(usuarioEncuesta); + const url = `${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`; return this.http - .patch(`${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`, copy, { + .patch(url, copy, { observe: 'response', }) .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));