Merge pull request #114 from Quantum-P3/feature/US-35
add desactivar/activar plantilla
This commit is contained in:
		
						commit
						3dbe2c5329
					
				| 
						 | 
				
			
			@ -1,70 +0,0 @@
 | 
			
		|||
import { Plantilla } from '../plantilla.model';
 | 
			
		||||
import { ComponentFixture, fakeAsync, inject, TestBed, 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 { PlantillaService } from '../service/plantilla.service';
 | 
			
		||||
 | 
			
		||||
import { PlantillaDeleteDialogComponent } from './plantilla-delete-dialog.component';
 | 
			
		||||
import { EstadoPlantilla } from '../../enumerations/estado-plantilla.model';
 | 
			
		||||
 | 
			
		||||
jest.mock('@ng-bootstrap/ng-bootstrap');
 | 
			
		||||
 | 
			
		||||
describe('Component Tests', () => {
 | 
			
		||||
  describe('Plantilla Management Delete Component', () => {
 | 
			
		||||
    let comp: PlantillaDeleteDialogComponent;
 | 
			
		||||
    let fixture: ComponentFixture<PlantillaDeleteDialogComponent>;
 | 
			
		||||
    let service: PlantillaService;
 | 
			
		||||
    let mockActiveModal: NgbActiveModal;
 | 
			
		||||
 | 
			
		||||
    beforeEach(() => {
 | 
			
		||||
      TestBed.configureTestingModule({
 | 
			
		||||
        imports: [HttpClientTestingModule],
 | 
			
		||||
        declarations: [PlantillaDeleteDialogComponent],
 | 
			
		||||
        providers: [NgbActiveModal],
 | 
			
		||||
      })
 | 
			
		||||
        .overrideTemplate(PlantillaDeleteDialogComponent, '')
 | 
			
		||||
        .compileComponents();
 | 
			
		||||
      fixture = TestBed.createComponent(PlantillaDeleteDialogComponent);
 | 
			
		||||
      comp = fixture.componentInstance;
 | 
			
		||||
      service = TestBed.inject(PlantillaService);
 | 
			
		||||
      mockActiveModal = TestBed.inject(NgbActiveModal);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    describe('confirmDelete', () => {
 | 
			
		||||
      it('Should call delete service on confirmDelete', inject(
 | 
			
		||||
        [],
 | 
			
		||||
        fakeAsync(() => {
 | 
			
		||||
          // GIVEN
 | 
			
		||||
          jest.spyOn(service, 'delete').mockReturnValue(of(new HttpResponse({})));
 | 
			
		||||
          const pPlantilla = new Plantilla();
 | 
			
		||||
 | 
			
		||||
          pPlantilla.id = 123;
 | 
			
		||||
          pPlantilla.estado = EstadoPlantilla.DELETED;
 | 
			
		||||
          // WHEN
 | 
			
		||||
          comp.confirmDelete(pPlantilla);
 | 
			
		||||
          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();
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -67,7 +67,10 @@
 | 
			
		|||
              >
 | 
			
		||||
                <span class="d-none d-md-inline" jhiTranslate="entity.action.edit">Edit</span>
 | 
			
		||||
              </button>
 | 
			
		||||
 | 
			
		||||
              <button type="submit" (click)="cambiarEstado(plantilla)" class="ds-btn btn-warning btn-sm" data-cy="entityDeleteButton">
 | 
			
		||||
                <fa-icon [icon]="faExchangeAlt"></fa-icon>
 | 
			
		||||
                <span class="d-none d-md-inline" jhiTranslate="dataSurveyApp.plantilla.updated.buttonChangeEstado">Change status</span>
 | 
			
		||||
              </button>
 | 
			
		||||
              <button type="submit" (click)="delete(plantilla)" class="ds-btn ds-btn--danger btn-sm" data-cy="entityDeleteButton">
 | 
			
		||||
                <fa-icon icon="times"></fa-icon>
 | 
			
		||||
                <span class="d-none d-md-inline" jhiTranslate="entity.action.delete">Delete</span>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,9 @@ import { CategoriaService } from 'app/entities/categoria/service/categoria.servi
 | 
			
		|||
 | 
			
		||||
import * as dayjs from 'dayjs';
 | 
			
		||||
import { DATE_TIME_FORMAT } from 'app/config/input.constants';
 | 
			
		||||
import { PlantillaChangeStatusDialogComponent } from '../plantilla-change-status-dialog/plantilla-change-status-dialog.component';
 | 
			
		||||
 | 
			
		||||
import { faExchangeAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'jhi-plantilla',
 | 
			
		||||
| 
						 | 
				
			
			@ -39,6 +42,7 @@ export class PlantillaComponent implements OnInit {
 | 
			
		|||
    categoria: [null, [Validators.required]],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  faExchangeAlt = faExchangeAlt;
 | 
			
		||||
  constructor(
 | 
			
		||||
    protected plantillaService: PlantillaService,
 | 
			
		||||
    protected modalService: NgbModal,
 | 
			
		||||
| 
						 | 
				
			
			@ -82,6 +86,17 @@ export class PlantillaComponent implements OnInit {
 | 
			
		|||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  cambiarEstado(plantilla: IPlantilla): void {
 | 
			
		||||
    const modalRef = this.modalService.open(PlantillaChangeStatusDialogComponent, { size: 'lg', backdrop: 'static' });
 | 
			
		||||
    modalRef.componentInstance.plantilla = plantilla;
 | 
			
		||||
    // unsubscribe not needed because closed completes on modal close
 | 
			
		||||
    modalRef.closed.subscribe(reason => {
 | 
			
		||||
      if (reason === 'updated') {
 | 
			
		||||
        this.loadAll();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  isAdmin(): boolean {
 | 
			
		||||
    return this.accountService.hasAnyAuthority('ROLE_ADMIN');
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
<form *ngIf="plantilla" class="ds-form" name="changeStatusForm" (ngSubmit)="confirmChangeStatus(plantilla)">
 | 
			
		||||
  <div class="modal-body">
 | 
			
		||||
    <p class="ds-title--small">Cambiar estado</p>
 | 
			
		||||
    <p
 | 
			
		||||
      *ngIf="plantilla.estado != 'DISABLED'"
 | 
			
		||||
      class="ds-subtitle"
 | 
			
		||||
      id="jhi-inactive-plantilla-heading"
 | 
			
		||||
      jhiTranslate="dataSurveyApp.plantilla.desactivar.question"
 | 
			
		||||
    >
 | 
			
		||||
      Are you sure you want to delete this option?
 | 
			
		||||
    </p>
 | 
			
		||||
    <p
 | 
			
		||||
      *ngIf="plantilla.estado == 'DISABLED'"
 | 
			
		||||
      class="ds-subtitle"
 | 
			
		||||
      id="jhi-active-plantilla-heading"
 | 
			
		||||
      jhiTranslate="dataSurveyApp.plantilla.activar.question"
 | 
			
		||||
    >
 | 
			
		||||
      Are you sure you want to delete this option?
 | 
			
		||||
    </p>
 | 
			
		||||
  </div>
 | 
			
		||||
 | 
			
		||||
  <div class="modal-footer">
 | 
			
		||||
    <button type="button" class="ds-btn ds-btn--secondary" data-dismiss="modal" (click)="cancel()">
 | 
			
		||||
      <fa-icon icon="arrow-left"></fa-icon> <span jhiTranslate="entity.action.cancel">Cancel</span>
 | 
			
		||||
    </button>
 | 
			
		||||
 | 
			
		||||
    <button id="jhi-confirm-change-status-option" data-cy="entityConfirmChangeButton" type="submit" class="ds-btn btn-warning">
 | 
			
		||||
      <fa-icon [icon]="faExchangeAlt"></fa-icon
 | 
			
		||||
      ><span class="d-none d-md-inline" jhiTranslate="dataSurveyApp.plantilla.updated.buttonChangeEstado">Cambiar estado</span>
 | 
			
		||||
    </button>
 | 
			
		||||
  </div>
 | 
			
		||||
</form>
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,24 @@
 | 
			
		|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
 | 
			
		||||
 | 
			
		||||
import { PlantillaChangeStatusDialogComponent } from './plantilla-change-status-dialog.component';
 | 
			
		||||
 | 
			
		||||
describe('PlantillaChangeStatusDialogComponent', () => {
 | 
			
		||||
  let component: PlantillaChangeStatusDialogComponent;
 | 
			
		||||
  let fixture: ComponentFixture<PlantillaChangeStatusDialogComponent>;
 | 
			
		||||
 | 
			
		||||
  beforeEach(async () => {
 | 
			
		||||
    await TestBed.configureTestingModule({
 | 
			
		||||
      declarations: [PlantillaChangeStatusDialogComponent],
 | 
			
		||||
    }).compileComponents();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  beforeEach(() => {
 | 
			
		||||
    fixture = TestBed.createComponent(PlantillaChangeStatusDialogComponent);
 | 
			
		||||
    component = fixture.componentInstance;
 | 
			
		||||
    fixture.detectChanges();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('should create', () => {
 | 
			
		||||
    expect(component).toBeTruthy();
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
import { Component } from '@angular/core';
 | 
			
		||||
import { PlantillaService } from '../service/plantilla.service';
 | 
			
		||||
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
 | 
			
		||||
import { EstadoPlantilla } from '../../enumerations/estado-plantilla.model';
 | 
			
		||||
import { IPlantilla } from '../plantilla.model';
 | 
			
		||||
 | 
			
		||||
import { faExchangeAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'jhi-plantilla-change-status-dialog',
 | 
			
		||||
  templateUrl: './plantilla-change-status-dialog.component.html',
 | 
			
		||||
  styleUrls: ['./plantilla-change-status-dialog.component.scss'],
 | 
			
		||||
})
 | 
			
		||||
export class PlantillaChangeStatusDialogComponent {
 | 
			
		||||
  plantilla?: IPlantilla;
 | 
			
		||||
 | 
			
		||||
  faExchangeAlt = faExchangeAlt;
 | 
			
		||||
  constructor(protected plantillaService: PlantillaService, protected activeModal: NgbActiveModal) {}
 | 
			
		||||
 | 
			
		||||
  cancel(): void {
 | 
			
		||||
    this.activeModal.dismiss();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  confirmChangeStatus(pPlantilla: IPlantilla) {
 | 
			
		||||
    if (this.plantilla) {
 | 
			
		||||
      if (pPlantilla.estado === EstadoPlantilla.DISABLED) {
 | 
			
		||||
        this.plantilla.estado = EstadoPlantilla.DRAFT;
 | 
			
		||||
      } else {
 | 
			
		||||
        this.plantilla.estado = EstadoPlantilla.DISABLED;
 | 
			
		||||
      }
 | 
			
		||||
      this.plantillaService.update(this.plantilla).subscribe(() => {
 | 
			
		||||
        this.activeModal.close('updated');
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -10,6 +10,7 @@ import { PlantillaDeleteQuestionDialogComponent } from './plantilla-delete-quest
 | 
			
		|||
import { PlantillaDeleteOptionDialogComponent } from './plantilla-delete-option-dialog/plantilla-delete-option-dialog.component';
 | 
			
		||||
import { PlantillaPublishStoreDialogComponent } from './plantilla-publish-store-dialog/plantilla-publish-store-dialog.component';
 | 
			
		||||
import { PlantillaDeleteStoreDialogComponent } from './plantilla-delete-store-dialog/plantilla-delete-store-dialog.component';
 | 
			
		||||
import { PlantillaChangeStatusDialogComponent } from './plantilla-change-status-dialog/plantilla-change-status-dialog.component';
 | 
			
		||||
 | 
			
		||||
@NgModule({
 | 
			
		||||
  imports: [SharedModule, PlantillaRoutingModule, FontAwesomeModule],
 | 
			
		||||
| 
						 | 
				
			
			@ -22,6 +23,7 @@ import { PlantillaDeleteStoreDialogComponent } from './plantilla-delete-store-di
 | 
			
		|||
    PlantillaDeleteOptionDialogComponent,
 | 
			
		||||
    PlantillaPublishStoreDialogComponent,
 | 
			
		||||
    PlantillaDeleteStoreDialogComponent,
 | 
			
		||||
    PlantillaChangeStatusDialogComponent,
 | 
			
		||||
  ],
 | 
			
		||||
  entryComponents: [PlantillaDeleteDialogComponent],
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,10 @@
 | 
			
		|||
        "notFound": "No se encontró ninguna plantilla"
 | 
			
		||||
      },
 | 
			
		||||
      "created": "Una nueva plantilla ha sido creada con el identificador {{ param }}",
 | 
			
		||||
      "updated": "Una plantilla ha sido actualizada con el identificador {{ param }}",
 | 
			
		||||
      "updated": {
 | 
			
		||||
        "detail": "Una plantilla ha sido actualizada con el identificador {{ param }}",
 | 
			
		||||
        "buttonChangeEstado": "Cambiar estado"
 | 
			
		||||
      },
 | 
			
		||||
      "deleted": "Una plantilla ha sido eliminada con el identificador {{ param }}",
 | 
			
		||||
      "delete": {
 | 
			
		||||
        "question": "¿Seguro que quiere eliminar esta plantilla?",
 | 
			
		||||
| 
						 | 
				
			
			@ -21,6 +24,14 @@
 | 
			
		|||
      "detail": {
 | 
			
		||||
        "title": "Plantilla"
 | 
			
		||||
      },
 | 
			
		||||
      "desactivar": {
 | 
			
		||||
        "titulo": "Desactivar plantilla",
 | 
			
		||||
        "question": "¿Seguro que quiere desactivar la plantilla?"
 | 
			
		||||
      },
 | 
			
		||||
      "activar": {
 | 
			
		||||
        "titulo": "Activar plantilla",
 | 
			
		||||
        "question": "¿Seguro que quiere activar la plantilla?. Esta será activada en estado de 'Borrador'"
 | 
			
		||||
      },
 | 
			
		||||
      "id": "ID",
 | 
			
		||||
      "nombre": "Nombre",
 | 
			
		||||
      "descripcion": "Descripción",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue