Merge pull request #99 from Quantum-P3/feature/US-62

add Modificar permisos de un colaborador
This commit is contained in:
Eduardo Quiros 2021-08-01 02:56:07 +00:00 committed by GitHub
commit ba7b12fbdc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 135 additions and 6 deletions

View File

@ -20,7 +20,13 @@
<fa-icon icon="sync" [icon]="faPlus"></fa-icon> <fa-icon icon="sync" [icon]="faPlus"></fa-icon>
</div> </div>
</div> </div>
<div class="col-mb-2 iconos-colab" *ngFor="let colaborador of usuariosColaboradores"> <div
class="col-mb-2 iconos-colab"
*ngFor="let colaborador of usuariosColaboradores"
(click)="selectColaborator(colaborador)"
data-toggle="modal"
data-target="#modalColaborators"
>
<img <img
class="photo-collab" class="photo-collab"
*ngIf="colaborador.usuarioExtra" *ngIf="colaborador.usuarioExtra"
@ -432,3 +438,57 @@
</div> </div>
<!-- ------------------------------------------------------------------------------------------------- --> <!-- ------------------------------------------------------------------------------------------------- -->
<!-- ------------------------------------------------------------------------------------------------- -->
<!-- Survey Parameters Information -->
<div
class="modal fade ds-modal"
id="modalColaborators"
tabindex="-1"
role="dialog"
aria-labelledby="verColaboradoresTitle"
aria-hidden="true"
*ngIf="colaborador && isAutor()"
>
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<form class="ds-form" name="editFormUpdateCollab" role="form" (ngSubmit)="saveCollab()" [formGroup]="editFormUpdateCollab">
<div class="modal-header">
<h1 class="modal-title" id="modalColaboradores">Colaboradores</h1>
</div>
<div class="modal-body">
<div>
<div class="mb-5" *ngIf="colaborador.usuarioExtra">
<p class="ds-subtitle">Nombre</p>
<p>{{ colaborador!.usuarioExtra.nombre }}</p>
</div>
<div>
<label for="field_update_rol">Rol</label>
<select class="form-control" name="rol" formControlName="rol" id="field_update_rol" data-cy="rol">
<option value="READ" [selected]="colaborador.rol === 'READ'">Lector</option>
<option value="WRITE" [selected]="colaborador.rol === 'WRITE'">Escritor</option>
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button id="btnCancelUbdateColaboradores" type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal">
<fa-icon icon="arrow-left"></fa-icon>&nbsp;&nbsp;<span>Cancelar</span>
</button>
<button
id="btnUpdateColaboradores"
type="submit"
class="ds-btn ds-btn--primary"
data-cy="entityUpdateButton"
[disabled]="isSavingCollab"
>
&nbsp;<span>Guardar cambios</span>
</button>
</div>
</form>
</div>
</div>
</div>
<!-- ------------------------------------------------------------------------------------------------- -->

View File

@ -17,7 +17,7 @@ import { IEncuesta, 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';
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 { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; 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 { UsuarioEncuestaService } from 'app/entities/usuario-encuesta/service/usuario-encuesta.service';
import { IUsuarioEncuesta } from '../../usuario-encuesta/usuario-encuesta.model'; 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({ @Component({
selector: 'jhi-encuesta-update', selector: 'jhi-encuesta-update',
@ -50,11 +53,15 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
isSaving = false; isSaving = false;
isSavingQuestion = false; isSavingQuestion = false;
isSavingCollab = false;
public rolSeleccionado: RolColaborador | undefined = undefined;
categoriasSharedCollection: ICategoria[] = []; categoriasSharedCollection: ICategoria[] = [];
usuarioExtrasSharedCollection: IUsuarioExtra[] = []; usuarioExtrasSharedCollection: IUsuarioExtra[] = [];
usuariosColaboradores: IUsuarioEncuesta[] = []; usuariosColaboradores: IUsuarioEncuesta[] = [];
colaborador: IUsuarioEncuesta | null = null;
account: Account | null = null;
usuarioExtra: UsuarioExtra | null = null;
// editForm = this.fb.group({ // editForm = this.fb.group({
// id: [], // id: [],
// nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]], // nombre: [null, [Validators.required, Validators.minLength(1), Validators.maxLength(50)]],
@ -87,6 +94,11 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
tipopregunta: ['CLOSED'], tipopregunta: ['CLOSED'],
}); });
editFormUpdateCollab = this.fb.group({
id: [],
rol: [null, [Validators.required]],
});
ePreguntas?: any[]; ePreguntas?: any[];
ePreguntasOpciones?: any[]; ePreguntasOpciones?: any[];
encuesta: Encuesta | null = null; encuesta: Encuesta | null = null;
@ -110,7 +122,8 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
protected parametroAplicacionService: ParametroAplicacionService, protected parametroAplicacionService: ParametroAplicacionService,
protected ePreguntaAbiertaService: EPreguntaAbiertaService, protected ePreguntaAbiertaService: EPreguntaAbiertaService,
protected usuarioEncuestaService: UsuarioEncuestaService, protected usuarioEncuestaService: UsuarioEncuestaService,
protected router: Router protected router: Router,
protected accountService: AccountService
) {} ) {}
loadAll(): void { loadAll(): void {
@ -170,6 +183,15 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
// this.loadRelationshipsOptions(); // 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 { ngAfterViewChecked(): void {
@ -595,4 +617,49 @@ export class EncuestaUpdateComponent implements OnInit, AfterViewChecked {
// usuarioExtra: this.editForm.get(['usuarioExtra'])!.value, // 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<HttpResponse<IUsuarioEncuesta>>): 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;
}
} }

View File

@ -27,8 +27,9 @@ export class UsuarioEncuestaService {
update(usuarioEncuesta: IUsuarioEncuesta): Observable<EntityResponseType> { update(usuarioEncuesta: IUsuarioEncuesta): Observable<EntityResponseType> {
const copy = this.convertDateFromClient(usuarioEncuesta); const copy = this.convertDateFromClient(usuarioEncuesta);
const url = `${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`;
return this.http return this.http
.put<IUsuarioEncuesta>(`${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`, copy, { .put<IUsuarioEncuesta>(url, copy, {
observe: 'response', observe: 'response',
}) })
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
@ -36,8 +37,9 @@ export class UsuarioEncuestaService {
partialUpdate(usuarioEncuesta: IUsuarioEncuesta): Observable<EntityResponseType> { partialUpdate(usuarioEncuesta: IUsuarioEncuesta): Observable<EntityResponseType> {
const copy = this.convertDateFromClient(usuarioEncuesta); const copy = this.convertDateFromClient(usuarioEncuesta);
const url = `${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`;
return this.http return this.http
.patch<IUsuarioEncuesta>(`${this.resourceUrl}/${getUsuarioEncuestaIdentifier(usuarioEncuesta) as number}`, copy, { .patch<IUsuarioEncuesta>(url, copy, {
observe: 'response', observe: 'response',
}) })
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));