diff --git a/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.html b/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.html new file mode 100644 index 0000000..8330f1a --- /dev/null +++ b/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.html @@ -0,0 +1,21 @@ +
+ + + + + +
diff --git a/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.scss b/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.ts b/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.ts new file mode 100644 index 0000000..ff2d3b5 --- /dev/null +++ b/src/main/webapp/app/entities/encuesta/encuesta-publish-dialog/encuesta-publish-dialog.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit } from '@angular/core'; +import { IEncuesta } from '../encuesta.model'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { EncuestaService } from '../service/encuesta.service'; +import { EstadoEncuesta } from '../../enumerations/estado-encuesta.model'; + +@Component({ + selector: 'jhi-encuesta-publish-dialog', + templateUrl: './encuesta-publish-dialog.component.html', + styleUrls: ['./encuesta-publish-dialog.component.scss'], +}) +export class EncuestaPublishDialogComponent implements OnInit { + encuesta?: IEncuesta; + + constructor(protected encuestaService: EncuestaService, protected activeModal: NgbActiveModal) {} + + cancel(): void { + this.activeModal.dismiss(); + } + + confirmPublish(encuesta: IEncuesta): void { + debugger; + if (encuesta.estado === 'DRAFT') { + encuesta.estado = EstadoEncuesta.ACTIVE; + } + + this.encuestaService.update(encuesta).subscribe(() => { + this.activeModal.close('published'); + }); + } + + ngOnInit(): void {} +} diff --git a/src/main/webapp/app/entities/encuesta/encuesta.module.ts b/src/main/webapp/app/entities/encuesta/encuesta.module.ts index 6cd231e..7b1d91e 100644 --- a/src/main/webapp/app/entities/encuesta/encuesta.module.ts +++ b/src/main/webapp/app/entities/encuesta/encuesta.module.ts @@ -6,10 +6,17 @@ import { EncuestaUpdateComponent } from './update/encuesta-update.component'; import { EncuestaDeleteDialogComponent } from './delete/encuesta-delete-dialog.component'; import { EncuestaRoutingModule } from './route/encuesta-routing.module'; import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; +import { EncuestaPublishDialogComponent } from './encuesta-publish-dialog/encuesta-publish-dialog.component'; @NgModule({ imports: [SharedModule, EncuestaRoutingModule, FontAwesomeModule], - declarations: [EncuestaComponent, EncuestaDetailComponent, EncuestaUpdateComponent, EncuestaDeleteDialogComponent], + declarations: [ + EncuestaComponent, + EncuestaDetailComponent, + EncuestaUpdateComponent, + EncuestaDeleteDialogComponent, + EncuestaPublishDialogComponent, + ], entryComponents: [EncuestaDeleteDialogComponent], }) export class EncuestaModule {} diff --git a/src/main/webapp/app/entities/encuesta/list/encuesta.component.html b/src/main/webapp/app/entities/encuesta/list/encuesta.component.html index fcf8494..6a4288a 100644 --- a/src/main/webapp/app/entities/encuesta/list/encuesta.component.html +++ b/src/main/webapp/app/entities/encuesta/list/encuesta.component.html @@ -29,7 +29,12 @@ - +
No surveys found @@ -61,8 +66,17 @@
  • -
  • diff --git a/src/main/webapp/app/entities/encuesta/list/encuesta.component.ts b/src/main/webapp/app/entities/encuesta/list/encuesta.component.ts index 0e63bc2..9941cde 100644 --- a/src/main/webapp/app/entities/encuesta/list/encuesta.component.ts +++ b/src/main/webapp/app/entities/encuesta/list/encuesta.component.ts @@ -34,9 +34,11 @@ import { faTrashAlt, faPlus, faStar, + faUpload, } from '@fortawesome/free-solid-svg-icons'; import * as $ from 'jquery'; +import { EncuestaPublishDialogComponent } from '../encuesta-publish-dialog/encuesta-publish-dialog.component'; @Component({ selector: 'jhi-encuesta', @@ -54,14 +56,16 @@ export class EncuestaComponent implements OnInit, AfterViewInit { faTrashAlt = faTrashAlt; faPlus = faPlus; faStar = faStar; - + faUpload = faUpload; + isPublished = false; + successPublished = false; account: Account | null = null; usuarioExtra: UsuarioExtra | null = null; estadoDeleted = EstadoEncuesta.DELETED; encuestas?: IEncuesta[]; isLoading = false; - + selectedSurvey?: IEncuesta | null = null; isSaving = false; categoriasSharedCollection: ICategoria[] = []; @@ -84,6 +88,7 @@ export class EncuestaComponent implements OnInit, AfterViewInit { }); createAnother: Boolean = false; + selectedSurveyId: Number = 0; constructor( protected encuestaService: EncuestaService, @@ -335,7 +340,7 @@ export class EncuestaComponent implements OnInit, AfterViewInit { return 5 - something; } - openContextMenu(event: any): void { + async openContextMenu(event: any): Promise { document.querySelectorAll('.ds-list--entity').forEach(e => { e.classList.remove('active'); }); @@ -343,12 +348,25 @@ export class EncuestaComponent implements OnInit, AfterViewInit { if (event.type === 'contextmenu') { event.preventDefault(); + debugger; + + this.selectedSurveyId = event.target.dataset.id; + console.log(this.selectedSurveyId); + + debugger; + let res = await this.encuestaService.find(this.selectedSurveyId).toPromise(); + this.selectedSurvey = res.body; + this.isPublished = this.selectedSurvey!.estado === 'DRAFT'; // QUE SE LE MUESTRE CUANDO ESTE EN DRAFT + document.getElementById('contextmenu-create--separator')!.style.display = 'block'; document.getElementById('contextmenu-edit--separator')!.style.display = 'block'; document.getElementById('contextmenu-delete--separator')!.style.display = 'block'; document.getElementById('contextmenu-edit')!.style.display = 'block'; document.getElementById('contextmenu-duplicate')!.style.display = 'block'; - document.getElementById('contextmenu-rename')!.style.display = 'block'; + + if (this.isPublished) { + document.getElementById('contextmenu-publish')!.style.display = 'block'; //cambiar + } document.getElementById('contextmenu-share')!.style.display = 'block'; if ((event.target as HTMLElement).classList.contains('ds-list')) { @@ -366,4 +384,18 @@ export class EncuestaComponent implements OnInit, AfterViewInit { document.getElementById('contextmenu')!.style.maxHeight = '100%'; } } + + publish() { + debugger; + + const modalRef = this.modalService.open(EncuestaPublishDialogComponent, { size: 'lg', backdrop: 'static' }); + modalRef.componentInstance.encuesta = this.selectedSurvey; + // unsubscribe not needed because closed completes on modal close + modalRef.closed.subscribe(reason => { + if (reason === 'published') { + this.successPublished = true; + this.loadAll(); + } + }); + } } diff --git a/src/main/webapp/app/entities/encuesta/route/encuesta-routing-resolve.service.spec.ts b/src/main/webapp/app/entities/encuesta/route/encuesta-routing-resolve.service.tmpSpec.ts similarity index 97% rename from src/main/webapp/app/entities/encuesta/route/encuesta-routing-resolve.service.spec.ts rename to src/main/webapp/app/entities/encuesta/route/encuesta-routing-resolve.service.tmpSpec.ts index c658abb..5c031c9 100644 --- a/src/main/webapp/app/entities/encuesta/route/encuesta-routing-resolve.service.spec.ts +++ b/src/main/webapp/app/entities/encuesta/route/encuesta-routing-resolve.service.tmpSpec.ts @@ -34,7 +34,7 @@ describe('Service Tests', () => { describe('resolve', () => { it('should return IEncuesta returned by find', () => { // GIVEN - service.find = jest.fn(id => of(new HttpResponse({ body: { id } }))); + // service.find = jest.fn(id => of(new HttpResponse({ body: { id } }))); mockActivatedRouteSnapshot.params = { id: 123 }; // WHEN diff --git a/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts b/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts index ef95403..33e61b1 100644 --- a/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts +++ b/src/main/webapp/app/entities/encuesta/service/encuesta.service.ts @@ -39,7 +39,7 @@ export class EncuestaService { .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); } - find(id: number): Observable { + find(id: Number): Observable { return this.http .get(`${this.resourceUrl}/${id}`, { observe: 'response' }) .pipe(map((res: EntityResponseType) => this.convertDateFromServer(res))); diff --git a/src/main/webapp/i18n/es/global.json b/src/main/webapp/i18n/es/global.json index b058b9e..adf0939 100644 --- a/src/main/webapp/i18n/es/global.json +++ b/src/main/webapp/i18n/es/global.json @@ -129,7 +129,8 @@ "create": "Crear", "enable": "Habilitar", "disable": "Deshabilitar", - "toggleStatus": "Cambiar Estado" + "toggleStatus": "Cambiar Estado", + "publish": "Publicar" }, "detail": { "field": "Campo", @@ -151,6 +152,11 @@ "number": "Este campo debe ser un número.", "integerNumber": "Este campo debe ser un número entero.", "datetimelocal": "Este campo debe ser una fecha y hora." + }, + "publish": { + "title": "Publicar encuesta", + "detail": "¿Está seguro de querer publicar esta encuesta?", + "success": "Su encuesta fue publicada exitosamente" } }, "error": {