diff --git a/src/main/java/org/datasurvey/repository/CategoriaRepository.java b/src/main/java/org/datasurvey/repository/CategoriaRepository.java index 66368c1..6a4897c 100644 --- a/src/main/java/org/datasurvey/repository/CategoriaRepository.java +++ b/src/main/java/org/datasurvey/repository/CategoriaRepository.java @@ -1,7 +1,8 @@ package org.datasurvey.repository; import org.datasurvey.domain.Categoria; -import org.springframework.data.jpa.repository.*; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; /** diff --git a/src/main/webapp/app/entities/categoria/categoria.module.ts b/src/main/webapp/app/entities/categoria/categoria.module.ts index 96383a6..59f2dd3 100644 --- a/src/main/webapp/app/entities/categoria/categoria.module.ts +++ b/src/main/webapp/app/entities/categoria/categoria.module.ts @@ -1,14 +1,13 @@ import { NgModule } from '@angular/core'; import { SharedModule } from 'app/shared/shared.module'; import { CategoriaComponent } from './list/categoria.component'; -import { CategoriaDetailComponent } from './detail/categoria-detail.component'; import { CategoriaUpdateComponent } from './update/categoria-update.component'; import { CategoriaDeleteDialogComponent } from './delete/categoria-delete-dialog.component'; import { CategoriaRoutingModule } from './route/categoria-routing.module'; @NgModule({ imports: [SharedModule, CategoriaRoutingModule], - declarations: [CategoriaComponent, CategoriaDetailComponent, CategoriaUpdateComponent, CategoriaDeleteDialogComponent], + declarations: [CategoriaComponent, CategoriaUpdateComponent, CategoriaDeleteDialogComponent], entryComponents: [CategoriaDeleteDialogComponent], }) export class CategoriaModule {} diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html index 3fae047..0289904 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html @@ -1,4 +1,4 @@ -
+ diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts deleted file mode 100644 index 8511caf..0000000 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts +++ /dev/null @@ -1,65 +0,0 @@ -jest.mock('@ng-bootstrap/ng-bootstrap'); - -import { ComponentFixture, TestBed, inject, fakeAsync, tick } from '@angular/core/testing'; -import { HttpResponse } from '@angular/common/http'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { of } from 'rxjs'; -import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; - -import { CategoriaService } from '../service/categoria.service'; - -import { CategoriaDeleteDialogComponent } from './categoria-delete-dialog.component'; - -describe('Component Tests', () => { - describe('Categoria Management Delete Component', () => { - let comp: CategoriaDeleteDialogComponent; - let fixture: ComponentFixture; - let service: CategoriaService; - let mockActiveModal: NgbActiveModal; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - declarations: [CategoriaDeleteDialogComponent], - providers: [NgbActiveModal], - }) - .overrideTemplate(CategoriaDeleteDialogComponent, '') - .compileComponents(); - fixture = TestBed.createComponent(CategoriaDeleteDialogComponent); - comp = fixture.componentInstance; - service = TestBed.inject(CategoriaService); - mockActiveModal = TestBed.inject(NgbActiveModal); - }); - - describe('confirmDelete', () => { - it('Should call delete service on confirmDelete', inject( - [], - fakeAsync(() => { - // GIVEN - jest.spyOn(service, 'delete').mockReturnValue(of(new HttpResponse({}))); - - // WHEN - comp.confirmDelete(123); - tick(); - - // THEN - expect(service.delete).toHaveBeenCalledWith(123); - expect(mockActiveModal.close).toHaveBeenCalledWith('deleted'); - }) - )); - - it('Should not call delete service on clear', () => { - // GIVEN - jest.spyOn(service, 'delete'); - - // WHEN - comp.cancel(); - - // THEN - expect(service.delete).not.toHaveBeenCalled(); - expect(mockActiveModal.close).not.toHaveBeenCalled(); - expect(mockActiveModal.dismiss).toHaveBeenCalled(); - }); - }); - }); -}); diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index d6edc6a..14225df 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -1,7 +1,10 @@ import { Component } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { IEncuesta } from 'app/entities/encuesta/encuesta.model'; +import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service'; +import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model'; -import { ICategoria } from '../categoria.model'; +import { Categoria, ICategoria } from '../categoria.model'; import { CategoriaService } from '../service/categoria.service'; @Component({ @@ -9,16 +12,52 @@ import { CategoriaService } from '../service/categoria.service'; }) export class CategoriaDeleteDialogComponent { categoria?: ICategoria; + encuestas?: IEncuesta[]; + encuestasFiltradas?: IEncuesta[]; - constructor(protected categoriaService: CategoriaService, protected activeModal: NgbActiveModal) {} + constructor( + protected categoriaService: CategoriaService, + protected activeModal: NgbActiveModal, + protected encuestaService: EncuestaService + ) {} cancel(): void { this.activeModal.dismiss(); } - confirmDelete(id: number): void { - this.categoriaService.delete(id).subscribe(() => { + confirmDelete(categoria: ICategoria): void { + this.ensureNulaExists(); + const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE); + this.getEncuestas(categoria); + if (this.encuestas) { + this.encuestas!.forEach(encuesta => { + encuesta.categoria = categoriaNula; + this.encuestaService.update(encuesta); + }); + } + categoria.estado = EstadoCategoria.INACTIVE; + this.categoriaService.update(categoria).subscribe(() => { this.activeModal.close('deleted'); }); } + ensureNulaExists(): void { + const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE); + const categoria = this.categoriaService.find(0); + if (categoria) { + this.categoriaService.update(categoriaNula); + } else { + this.categoriaService.create(categoriaNula); + } + } + + protected getEncuestas(categoria: ICategoria): void { + this.encuestaService.query().subscribe(res => { + this.encuestas = res.body ?? []; + }); + if (this.encuestas) { + this.encuestasFiltradas = this.encuestas.filter(encuesta => { + encuesta.categoria!.id === categoria.id; + }); + } + } } diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html deleted file mode 100644 index 9531c6c..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html +++ /dev/null @@ -1,36 +0,0 @@ -
-
-
-

Categoria

- -
- - - - - -
-
ID
-
- {{ categoria.id }} -
-
Nombre
-
- {{ categoria.nombre }} -
-
Estado
-
- {{ categoria.estado }} -
-
- - - - -
-
-
diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts deleted file mode 100644 index 506ac72..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ActivatedRoute } from '@angular/router'; -import { of } from 'rxjs'; - -import { CategoriaDetailComponent } from './categoria-detail.component'; - -describe('Component Tests', () => { - describe('Categoria Management Detail Component', () => { - let comp: CategoriaDetailComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [CategoriaDetailComponent], - providers: [ - { - provide: ActivatedRoute, - useValue: { data: of({ categoria: { id: 123 } }) }, - }, - ], - }) - .overrideTemplate(CategoriaDetailComponent, '') - .compileComponents(); - fixture = TestBed.createComponent(CategoriaDetailComponent); - comp = fixture.componentInstance; - }); - - describe('OnInit', () => { - it('Should load categoria on init', () => { - // WHEN - comp.ngOnInit(); - - // THEN - expect(comp.categoria).toEqual(expect.objectContaining({ id: 123 })); - }); - }); - }); -}); diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts deleted file mode 100644 index 36ecdcf..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; - -import { ICategoria } from '../categoria.model'; - -@Component({ - selector: 'jhi-categoria-detail', - templateUrl: './categoria-detail.component.html', -}) -export class CategoriaDetailComponent implements OnInit { - categoria: ICategoria | null = null; - - constructor(protected activatedRoute: ActivatedRoute) {} - - ngOnInit(): void { - this.activatedRoute.data.subscribe(({ categoria }) => { - this.categoria = categoria; - }); - } - - previousState(): void { - window.history.back(); - } -} diff --git a/src/main/webapp/app/entities/categoria/list/categoria.component.ts b/src/main/webapp/app/entities/categoria/list/categoria.component.ts index d0a9206..31ddcff 100644 --- a/src/main/webapp/app/entities/categoria/list/categoria.component.ts +++ b/src/main/webapp/app/entities/categoria/list/categoria.component.ts @@ -38,7 +38,7 @@ export class CategoriaComponent implements OnInit { this.loadAll(); } - trackId(index: number, item: ICategoria): number { + trackId(_index: number, item: ICategoria): number { return item.id!; } diff --git a/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts b/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts index d48d560..95acd27 100644 --- a/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts +++ b/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts @@ -3,7 +3,6 @@ import { RouterModule, Routes } from '@angular/router'; import { UserRouteAccessService } from 'app/core/auth/user-route-access.service'; import { CategoriaComponent } from '../list/categoria.component'; -import { CategoriaDetailComponent } from '../detail/categoria-detail.component'; import { CategoriaUpdateComponent } from '../update/categoria-update.component'; import { CategoriaRoutingResolveService } from './categoria-routing-resolve.service'; @@ -13,14 +12,6 @@ const categoriaRoute: Routes = [ component: CategoriaComponent, canActivate: [UserRouteAccessService], }, - { - path: ':id/view', - component: CategoriaDetailComponent, - resolve: { - categoria: CategoriaRoutingResolveService, - }, - canActivate: [UserRouteAccessService], - }, { path: 'new', component: CategoriaUpdateComponent, diff --git a/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts b/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts index 29f8252..e1dd398 100644 --- a/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts +++ b/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts @@ -64,7 +64,7 @@ export class CategoriaUpdateComponent implements OnInit { protected categoryExists(categoria: ICategoria): boolean { this.loadAll(); - var condicion = this.categorias!.some(cat => cat.nombre!.toLowerCase() === categoria.nombre!.toLowerCase()); + var condicion = this.categorias!.some(cat => cat.nombre!.toLowerCase() === categoria.nombre!.toLowerCase() && cat.id !== categoria.id); return condicion; }