Merge pull request #65 from Quantum-P3/feature/US-64

This commit is contained in:
Eduardo Quiros 2021-07-25 02:45:52 +00:00 committed by GitHub
commit a44419f097
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 92 additions and 23 deletions

View File

@ -284,7 +284,7 @@
<fa-icon icon="pencil-alt"></fa-icon> <fa-icon icon="pencil-alt"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span> <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span>
</button> </button>
<button type="submit" (click)="delete(encuesta)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton"> <button type="submit" (click)="delete(encuesta)" class="btn btn-danger btn-sm" data-cy="entityDeleteButton">
<fa-icon icon="times"></fa-icon> <fa-icon icon="times"></fa-icon>
<span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span> <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
@ -316,7 +316,7 @@
data-cy="entityTable" data-cy="entityTable"
> >
<td>{{ encuesta.nombre }}</td> <td>{{ encuesta.nombre }}</td>
<td>{{ encuesta.fechaCreacion | formatMediumDatetime }}</td> <td>{{ encuesta.fechaCreacion | formatShortDatetime | titlecase }}</td>
<td jhiTranslate="{{ 'dataSurveyApp.AccesoEncuesta.' + encuesta.acceso }}">{{ encuesta.acceso }}</td> <td jhiTranslate="{{ 'dataSurveyApp.AccesoEncuesta.' + encuesta.acceso }}">{{ encuesta.acceso }}</td>
<td jhiTranslate="{{ 'dataSurveyApp.EstadoEncuesta.' + encuesta.estado }}">{{ encuesta.estado }}</td> <td jhiTranslate="{{ 'dataSurveyApp.EstadoEncuesta.' + encuesta.estado }}">{{ encuesta.estado }}</td>
<td> <td>
@ -326,9 +326,7 @@
</td> </td>
<td> <td>
<div *ngIf="encuesta.usuarioExtra"> <div *ngIf="encuesta.usuarioExtra">
<a [routerLink]="['/usuario-extra', encuesta.usuarioExtra?.nombre, 'view']"> {{ encuesta.usuarioExtra?.user?.login }}
{{ encuesta.usuarioExtra?.nombre }}
</a>
</div> </div>
</td> </td>
<td class="text-right"> <td class="text-right">

View File

@ -22,6 +22,7 @@ import { EstadoEncuesta } from 'app/entities/enumerations/estado-encuesta.model'
import { AccountService } from 'app/core/auth/account.service'; import { AccountService } from 'app/core/auth/account.service';
import { Account } from 'app/core/auth/account.model'; import { Account } from 'app/core/auth/account.model';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { IUser } from '../../user/user.model';
import { import {
faShareAlt, faShareAlt,
@ -70,6 +71,7 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
categoriasSharedCollection: ICategoria[] = []; categoriasSharedCollection: ICategoria[] = [];
usuarioExtrasSharedCollection: IUsuarioExtra[] = []; usuarioExtrasSharedCollection: IUsuarioExtra[] = [];
userSharedCollection: IUser[] = [];
public searchString: string; public searchString: string;
public accesoEncuesta: string; public accesoEncuesta: string;
@ -117,22 +119,61 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
loadAll(): void { loadAll(): void {
this.isLoading = true; this.isLoading = true;
this.encuestaService.query().subscribe( this.usuarioExtraService
(res: HttpResponse<IEncuesta[]>) => { .retrieveAllPublicUsers()
this.isLoading = false; .pipe(finalize(() => this.loadUserExtras()))
const tmpEncuestas = res.body ?? []; .subscribe(res => {
if (this.isAdmin()) { this.userSharedCollection = res;
this.encuestas = tmpEncuestas; });
} else { }
this.encuestas = tmpEncuestas
.filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id) loadPublicUser(): void {
.filter(e => e.estado !== EstadoEncuesta.DELETED); this.usuarioExtraService
.retrieveAllPublicUsers()
.pipe(finalize(() => this.loadUserExtras()))
.subscribe(res => {
this.userSharedCollection = res;
});
}
loadUserExtras() {
this.usuarioExtraService
.query()
.pipe(
finalize(() =>
this.encuestaService.query().subscribe(
(res: HttpResponse<IEncuesta[]>) => {
this.isLoading = false;
const tmpEncuestas = res.body ?? [];
if (this.isAdmin()) {
this.encuestas = tmpEncuestas;
this.encuestas.forEach(e => {
e.usuarioExtra = this.usuarioExtrasSharedCollection?.find(pU => pU.id == e.usuarioExtra?.id);
});
} else {
this.encuestas = tmpEncuestas
.filter(e => e.usuarioExtra?.id === this.usuarioExtra?.id)
.filter(e => e.estado !== EstadoEncuesta.DELETED);
}
},
() => {
this.isLoading = false;
}
)
)
)
.subscribe(
(res: HttpResponse<IUsuarioExtra[]>) => {
this.isLoading = false;
this.usuarioExtrasSharedCollection = res.body ?? [];
this.usuarioExtrasSharedCollection.forEach(uE => {
uE.user = this.userSharedCollection?.find(pU => pU.id == uE.user?.id);
});
},
() => {
this.isLoading = false;
} }
}, );
() => {
this.isLoading = false;
}
);
} }
ngOnInit(): void { ngOnInit(): void {
@ -173,6 +214,7 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
this.usuarioExtraService.find(account.id).subscribe(usuarioExtra => { this.usuarioExtraService.find(account.id).subscribe(usuarioExtra => {
this.usuarioExtra = usuarioExtra.body; this.usuarioExtra = usuarioExtra.body;
this.loadAll(); this.loadAll();
this.loadRelationshipsOptions(); this.loadRelationshipsOptions();
if (this.usuarioExtra !== null) { if (this.usuarioExtra !== null) {
if (this.usuarioExtra.id === undefined) { if (this.usuarioExtra.id === undefined) {

View File

@ -17,7 +17,23 @@
<div class="alert alert-warning" id="no-result" *ngIf="usuarioExtras?.length === 0"> <div class="alert alert-warning" id="no-result" *ngIf="usuarioExtras?.length === 0">
<span jhiTranslate="dataSurveyApp.usuarioExtra.home.notFound">No usuarioExtras found</span> <span jhiTranslate="dataSurveyApp.usuarioExtra.home.notFound">No usuarioExtras found</span>
</div> </div>
<form class="ds-form d-inline">
<div class="input-group">
<div class="col-3">
<div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
<input type="text" name="searchNombreUsuario" placeholder="Buscar por nombre..." [(ngModel)]="searchNombreUsuario" />
</div>
<div class="col-3">
<div class="input-group-addon"><i class="glyphicon glyphicon-search"></i></div>
<select name="searchEstadoUsuario" id="searchEstadoUsuario" [(ngModel)]="searchEstadoUsuario" style="width: 200px">
<option value="" selected="selected" disabled="disabled">Filtrar por estado</option>
<option value="">Todos Estados</option>
<option value="Active">Activos</option>
<option value="Suspended">Bloqueados</option>
</select>
</div>
</div>
</form>
<div class="table-responsive" id="entities" *ngIf="usuarioExtras && usuarioExtras.length > 0"> <div class="table-responsive" id="entities" *ngIf="usuarioExtras && usuarioExtras.length > 0">
<table class="table table-striped" aria-describedby="page-heading"> <table class="table table-striped" aria-describedby="page-heading">
<thead> <thead>
@ -32,7 +48,13 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr *ngFor="let usuarioExtra of usuarioExtras; trackBy: trackId" data-cy="entityTable"> <tr
*ngFor="
let usuarioExtra of usuarioExtras | filter: 'nombre':searchNombreUsuario | filter: 'estado':searchEstadoUsuario;
trackBy: trackId
"
data-cy="entityTable"
>
<td *ngIf="usuarioExtra.user"> <td *ngIf="usuarioExtra.user">
<ul class="listRoles"> <ul class="listRoles">
<li *ngFor="let userRole of usuarioExtra.user.authorities"> <li *ngFor="let userRole of usuarioExtra.user.authorities">

View File

@ -17,8 +17,13 @@ export class UsuarioExtraComponent implements OnInit {
usuarioExtras?: IUsuarioExtra[]; usuarioExtras?: IUsuarioExtra[];
publicUsers?: IUser[]; publicUsers?: IUser[];
isLoading = false; isLoading = false;
public searchNombreUsuario: string;
public searchEstadoUsuario: string;
constructor(protected usuarioExtraService: UsuarioExtraService, protected modalService: NgbModal) {} constructor(protected usuarioExtraService: UsuarioExtraService, protected modalService: NgbModal) {
this.searchNombreUsuario = '';
this.searchEstadoUsuario = '';
}
loadPublicUser(): void { loadPublicUser(): void {
this.usuarioExtraService this.usuarioExtraService
@ -60,6 +65,8 @@ export class UsuarioExtraComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
this.searchNombreUsuario = '';
this.searchEstadoUsuario = '';
this.loadAll(); this.loadAll();
} }