diff --git a/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.html b/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.html index db1881b..4ab20a7 100644 --- a/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.html +++ b/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.html @@ -11,7 +11,7 @@ - + diff --git a/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.ts b/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.ts index 8344581..d2445a1 100644 --- a/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.ts +++ b/src/main/webapp/app/entities/encuesta/detail/encuesta-detail.component.ts @@ -14,7 +14,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'; @@ -30,6 +30,10 @@ import { PreguntaCerradaTipo } from 'app/entities/enumerations/pregunta-cerrada- import { faTimes, faPlus, faStar, faQuestion } from '@fortawesome/free-solid-svg-icons'; import { EncuestaPublishDialogComponent } from '../encuesta-publish-dialog/encuesta-publish-dialog.component'; +import { UsuarioEncuestaService } from 'app/entities/usuario-encuesta/service/usuario-encuesta.service'; +import { Account } from '../../../core/auth/account.model'; +import { AccountService } from 'app/core/auth/account.service'; +import { IUsuarioEncuesta } from '../../usuario-encuesta/usuario-encuesta.model'; @Component({ selector: 'jhi-encuesta-detail', @@ -47,6 +51,8 @@ export class EncuestaDetailComponent implements OnInit { successPublished = false; ePreguntas?: any[]; ePreguntasOpciones?: any[]; + usuarioExtra: UsuarioExtra | null = null; + usuariosColaboradores: IUsuarioEncuesta[] = []; constructor( protected activatedRoute: ActivatedRoute, @@ -57,7 +63,9 @@ export class EncuestaDetailComponent implements OnInit { protected modalService: NgbModal, protected ePreguntaCerradaService: EPreguntaCerradaService, protected ePreguntaCerradaOpcionService: EPreguntaCerradaOpcionService, - protected ePreguntaAbiertaService: EPreguntaAbiertaService + protected ePreguntaAbiertaService: EPreguntaAbiertaService, + protected accountService: AccountService, + protected usuarioEncuestaService: UsuarioEncuestaService ) {} ngOnInit(): void { @@ -69,6 +77,15 @@ export class EncuestaDetailComponent implements OnInit { this.previousState(); } }); + + // 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 { @@ -145,6 +162,16 @@ export class EncuestaDetailComponent implements OnInit { this.isLoading = false; } );*/ + + this.usuarioEncuestaService.findCollaborators(this.encuesta?.id!).subscribe( + (res: any) => { + this.isLoading = false; + this.usuariosColaboradores = res.body ?? []; + }, + () => { + this.isLoading = false; + } + ); } publishSurvey(): void { const modalRef = this.modalService.open(EncuestaPublishDialogComponent, { size: 'lg', backdrop: 'static' }); @@ -161,4 +188,20 @@ export class EncuestaDetailComponent implements OnInit { previousState(): void { window.history.back(); } + + isAutor() { + return this.usuarioExtra?.id === this.encuesta?.usuarioExtra?.id; + } + + isEscritor() { + let escritor = false; + this.usuariosColaboradores.forEach(c => { + if (this.usuarioExtra?.id === c.usuarioExtra?.id) { + if (c.rol === 'WRITE') { + escritor = true; + } + } + }); + return escritor; + } } 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 be2a9e3..ba1daf8 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 @@ -16,7 +16,7 @@
-
+
@@ -61,7 +61,7 @@ [disabled]="isLoading" data-toggle="modal" data-target="#crearPregunta" - *ngIf="encuesta!.estado !== 'FINISHED'" + *ngIf="encuesta!.estado !== 'FINISHED' && (isAutor() || isEscritor())" >   Crear pregunta @@ -112,7 +112,7 @@ > --> { + if (this.usuarioExtra?.id === c.usuarioExtra?.id) { + if (c.rol === 'WRITE') { + escritor = true; + } + } + }); + return escritor; } finalizar(): void { diff --git a/src/main/webapp/app/entities/entity-routing.module.ts b/src/main/webapp/app/entities/entity-routing.module.ts index eb24fc4..f01eb05 100644 --- a/src/main/webapp/app/entities/entity-routing.module.ts +++ b/src/main/webapp/app/entities/entity-routing.module.ts @@ -42,7 +42,7 @@ import { RouterModule } from '@angular/router'; import('./e-pregunta-cerrada-opcion/e-pregunta-cerrada-opcion.module').then(m => m.EPreguntaCerradaOpcionModule), }, { - path: 'usuario-encuesta', + path: 'colaboraciones', data: { pageTitle: 'dataSurveyApp.usuarioEncuesta.home.title' }, loadChildren: () => import('./usuario-encuesta/usuario-encuesta.module').then(m => m.UsuarioEncuestaModule), }, diff --git a/src/main/webapp/app/entities/usuario-encuesta/delete/usuario-encuesta-delete-dialog.component.html b/src/main/webapp/app/entities/usuario-encuesta/delete/usuario-encuesta-delete-dialog.component.html index cf63eb5..c8ac1ae 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/delete/usuario-encuesta-delete-dialog.component.html +++ b/src/main/webapp/app/entities/usuario-encuesta/delete/usuario-encuesta-delete-dialog.component.html @@ -1,16 +1,10 @@ -
- - +
diff --git a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html index 4dd1821..6359d32 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html +++ b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.html @@ -1,29 +1,38 @@

- Usuario Encuestas + Colaboraciones +

Gestione las colaboraciones en encuestas a las que se encuentra agregado

- - -

- +
+
+
+
+ + +
+
+
No usuarioEncuestas found
@@ -32,58 +41,39 @@ - - - + - - + - - + diff --git a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.spec.ts b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.tempSpec.ts similarity index 100% rename from src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.spec.ts rename to src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.tempSpec.ts diff --git a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.ts b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.ts index dfcef9d..d31dfc6 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.ts +++ b/src/main/webapp/app/entities/usuario-encuesta/list/usuario-encuesta.component.ts @@ -5,16 +5,43 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { IUsuarioEncuesta } from '../usuario-encuesta.model'; import { UsuarioEncuestaService } from '../service/usuario-encuesta.service'; import { UsuarioEncuestaDeleteDialogComponent } from '../delete/usuario-encuesta-delete-dialog.component'; +import * as dayjs from 'dayjs'; +import { faPollH, faPencilAlt } from '@fortawesome/free-solid-svg-icons'; + +import { AccountService } from 'app/core/auth/account.service'; +import { Account } from 'app/core/auth/account.model'; +import { IUsuarioExtra, UsuarioExtra } from 'app/entities/usuario-extra/usuario-extra.model'; +import { IUser } from '../../user/user.model'; +import { UsuarioExtraService } from 'app/entities/usuario-extra/service/usuario-extra.service'; +import { ActivatedRoute, Router } from '@angular/router'; @Component({ selector: 'jhi-usuario-encuesta', templateUrl: './usuario-encuesta.component.html', }) export class UsuarioEncuestaComponent implements OnInit { + faPollH = faPollH; + faPencilAlt = faPencilAlt; + usuarioEncuestas?: IUsuarioEncuesta[]; isLoading = false; + usuarioExtra: IUsuarioExtra | null = null; + user: IUser | null = null; - constructor(protected usuarioEncuestaService: UsuarioEncuestaService, protected modalService: NgbModal) {} + public searchRol: string; + public searchEstado: string; + + constructor( + protected usuarioEncuestaService: UsuarioEncuestaService, + protected modalService: NgbModal, + protected usuarioExtraService: UsuarioExtraService, + protected activatedRoute: ActivatedRoute, + protected accountService: AccountService, + protected router: Router + ) { + this.searchRol = ''; + this.searchEstado = ''; + } loadAll(): void { this.isLoading = true; @@ -22,7 +49,10 @@ export class UsuarioEncuestaComponent implements OnInit { this.usuarioEncuestaService.query().subscribe( (res: HttpResponse) => { this.isLoading = false; - this.usuarioEncuestas = res.body ?? []; + const tempUsuarioEncuestas = res.body ?? []; + this.usuarioEncuestas = tempUsuarioEncuestas + .filter(c => c.usuarioExtra?.id === this.usuarioExtra?.id) + .filter(c => c.encuesta?.estado !== 'DELETED'); }, () => { this.isLoading = false; @@ -31,7 +61,22 @@ export class UsuarioEncuestaComponent implements OnInit { } ngOnInit(): void { - this.loadAll(); + this.searchRol = ''; + this.searchEstado = ''; + this.accountService.getAuthenticationState().subscribe(account => { + if (account !== null) { + this.usuarioExtraService.find(account.id).subscribe(usuarioExtra => { + this.usuarioExtra = usuarioExtra.body; + this.loadAll(); + if (this.usuarioExtra !== null) { + if (this.usuarioExtra.id === undefined) { + const today = dayjs().startOf('day'); + this.usuarioExtra.fechaNacimiento = today; + } + } + }); + } + }); } trackId(index: number, item: IUsuarioEncuesta): number { diff --git a/src/main/webapp/app/entities/usuario-encuesta/route/usuario-encuesta-routing.module.ts b/src/main/webapp/app/entities/usuario-encuesta/route/usuario-encuesta-routing.module.ts index 32ab08b..2324ea6 100644 --- a/src/main/webapp/app/entities/usuario-encuesta/route/usuario-encuesta-routing.module.ts +++ b/src/main/webapp/app/entities/usuario-encuesta/route/usuario-encuesta-routing.module.ts @@ -6,6 +6,9 @@ import { UsuarioEncuestaComponent } from '../list/usuario-encuesta.component'; import { UsuarioEncuestaDetailComponent } from '../detail/usuario-encuesta-detail.component'; import { UsuarioEncuestaUpdateComponent } from '../update/usuario-encuesta-update.component'; import { UsuarioEncuestaRoutingResolveService } from './usuario-encuesta-routing-resolve.service'; +import { EncuestaDetailComponent } from '../../encuesta/detail/encuesta-detail.component'; +import { EncuestaUpdateComponent } from '../../encuesta/update/encuesta-update.component'; +import { EncuestaRoutingResolveService } from '../../encuesta/route/encuesta-routing-resolve.service'; const usuarioEncuestaRoute: Routes = [ { @@ -37,6 +40,22 @@ const usuarioEncuestaRoute: Routes = [ }, canActivate: [UserRouteAccessService], }, + { + path: '/encuesta/:id/preview', + component: EncuestaDetailComponent, + resolve: { + usuarioEncuesta: EncuestaRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, + { + path: '/encuesta/:id/edit', + component: EncuestaUpdateComponent, + resolve: { + usuarioEncuesta: EncuestaRoutingResolveService, + }, + canActivate: [UserRouteAccessService], + }, ]; @NgModule({ diff --git a/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts b/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts index 5c5d412..40bbb53 100644 --- a/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts +++ b/src/main/webapp/app/layouts/sidebar/sidebar.constants.ts @@ -76,10 +76,10 @@ export const USER_ROUTES: RouteInfo[] = [ // type: 'link', // icontype: 'nc-icon nc-album-2', // }, - // { - // path: '/colaboraciones', - // title: 'Colaboraciones', - // type: 'link', - // icontype: 'nc-icon nc-world-2', - // }, + { + path: '/colaboraciones', + title: 'Colaboraciones', + type: 'link', + icontype: 'nc-icon nc-world-2', + }, ]; diff --git a/src/main/webapp/i18n/es/usuarioEncuesta.json b/src/main/webapp/i18n/es/usuarioEncuesta.json index 988d0eb..0bc0e82 100644 --- a/src/main/webapp/i18n/es/usuarioEncuesta.json +++ b/src/main/webapp/i18n/es/usuarioEncuesta.json @@ -13,7 +13,9 @@ "deleted": "Un Colaborador ha sido expulsado de la encuesta", "delete": { "question": "¿Seguro que quiere expulsar al colaborador de la encuesta?", - "action": "Expulsar" + "action": "Expulsar", + "questionGetOut": "¿Seguro que quiere salirse de la colaboracion de encuesta?", + "getOut": "Salir" }, "detail": { "title": "Colaborador"
ID Rol Estado Fecha AgregadoUsuario ExtraEncuestaEncuesta
- {{ usuarioEncuesta.id }} -
{{ usuarioEncuesta.rol }} {{ usuarioEncuesta.estado }}{{ usuarioEncuesta.fechaAgregado | formatMediumDatetime }} - - {{ usuarioEncuesta.fechaAgregado | formatShortDatetime | titlecase }} -
+
- - - -