From 4c0ab606641239e0a868299572c743d30d5d7021 Mon Sep 17 00:00:00 2001 From: Hugo Leonardo <hugo.com.h@gmail.com> Date: Sat, 13 Jul 2019 15:04:05 -0300 Subject: [PATCH] Popover de campos desabilitados --- .../enrollment-by-stage-series.component.html | 8 +++++-- .../enrollment-by-stage-series.component.scss | 4 ++++ .../enrollment-by-stage-series.component.ts | 22 ++++++++++++++----- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.html b/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.html index f9f48899..1b88dddb 100644 --- a/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.html +++ b/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.html @@ -20,7 +20,11 @@ projection.sourceInformations[0].indice : ''}})</sup></th> <th>Oferta atual <sup>({{projection.sourceInformations ? projection.sourceInformations[1].indice : ''}})</sup></th> - <th [colSpan]="data.years.length">Projeção da oferta</th> + <th [colSpan]="data.years.length"> + <span [class.projection-title]="disabledData" [popover]="popoverText" placement="bottom" + container="body" [triggers]="popoverTriggers" [isOpen]="disabledData" + containerClass="popover-simcaq result">Projeção da oferta</span> + </th> </tr> <tr> <th>{{data.offerYear}}</th> @@ -60,7 +64,7 @@ [(ngModel)]="enrollment.quantity" (keyup)="calculateTotals(projection)" maxlength="13" currencyMask [options]="{ prefix: '', align: 'right', precision: 0, thousands: '.', decimal: ',' }" - [disabled]="disableOfferProjection()"> + [disabled]="disabledData"> <input type="text" disabled class="form-control enrollment-quantity" *ngIf="!showEnrollmentQuantity(projection.periods[0], stageEnrollments.id)"> diff --git a/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.scss b/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.scss index 650e130a..5f313db4 100644 --- a/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.scss +++ b/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.scss @@ -9,6 +9,10 @@ min-width: 70px; } +.projection-title { + cursor: pointer; +} + .relative-projection { background-color: #ebf0f3; font-weight: bold; diff --git a/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.ts b/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.ts index a418d9ec..163a2b4b 100644 --- a/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.ts +++ b/src/app/simulator/access-and-offer/enrollment-by-stage-series/enrollment-by-stage-series.component.ts @@ -1,4 +1,4 @@ -import { Component, Injector } from '@angular/core'; +import { Component, Injector, OnInit } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { takeUntil, debounceTime } from 'rxjs/operators'; @@ -19,11 +19,15 @@ import { SelectLocation } from 'app/simulator/select-location/entities/select-lo templateUrl: './enrollment-by-stage-series.component.html', styleUrls: ['./enrollment-by-stage-series.component.scss'] }) -export class EnrollmentByStageSeriesComponent extends BaseNavigableComponent<EnrollmentByStageSeries> { +export class EnrollmentByStageSeriesComponent extends BaseNavigableComponent<EnrollmentByStageSeries> implements OnInit { data: EnrollmentByStageSeries = new EnrollmentByStageSeries(); functionality: FunctionalityInfo = Functionality.enrollmentByStageAndSeries; inconsistencies: Array<Inconsistency>; + disabledData: boolean = true; + popoverTriggers: string; + popoverText: string = 'Esses parâmetros só podem ser alterados para simulações em nível municipal. ' + + 'Para simulações em nível nacional ou estadual, são apresentados resultados dos valores municipais agregados internamente pelo simulador.'; private calculateTotalsSubject: Subject<Projection> = new Subject<Projection>(); private calculateTotalsObserver: Observable<Projection> = this.calculateTotalsSubject.asObservable(); @@ -32,6 +36,11 @@ export class EnrollmentByStageSeriesComponent extends BaseNavigableComponent<Enr super(injector); } + ngOnInit(): void { + super.ngOnInit(); + this.processDisabledData(); + } + processData(): Observable<EnrollmentByStageSeries> { return this.enrollmentByStageSeriesService.getData(); } @@ -76,9 +85,12 @@ export class EnrollmentByStageSeriesComponent extends BaseNavigableComponent<Enr return period !== Period.nocturnal || (stage !== nursery && stage !== preSchool); } - disableOfferProjection(): boolean { - - return (this.sessionService.getItem<SelectLocation>(Functionality.selectLocation.key).selectedCity === undefined) ? true : false; + processDisabledData(): void { + const selectLocationData: SelectLocation = this.sessionService.getItem<SelectLocation>(Functionality.selectLocation.key); + this.disabledData = !selectLocationData || !selectLocationData.selectedCity; + if (this.disabledData) { + this.popoverTriggers = 'mouseenter:mouseleave'; + } } } -- GitLab