Merge pull request #99 from Quantum-P3/feature/US-62
add Modificar permisos de un colaborador
This commit is contained in:
commit
ba7b12fbdc
|
@ -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> <span>Cancelar</span>
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
id="btnUpdateColaboradores"
|
||||||
|
type="submit"
|
||||||
|
class="ds-btn ds-btn--primary"
|
||||||
|
data-cy="entityUpdateButton"
|
||||||
|
[disabled]="isSavingCollab"
|
||||||
|
>
|
||||||
|
<span>Guardar cambios</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ------------------------------------------------------------------------------------------------- -->
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)));
|
||||||
|
|
Loading…
Reference in New Issue