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