From 40f241e4270dd7a0ba10ec68da78522dbd2ea281 Mon Sep 17 00:00:00 2001
From: Janaina <jsk22@inf.ufpr.br>
Date: Mon, 3 Jun 2024 11:10:42 -0300
Subject: [PATCH] redirection done

---
 src/app/app-routing.module.ts                 |  3 +-
 src/app/app.component.html                    |  8 +--
 src/app/app.component.ts                      |  6 +-
 src/app/app.module.ts                         |  6 +-
 src/app/home/home.component.scss              |  6 --
 src/app/home/home.component.ts                |  8 +--
 .../redirection/redirection.component.html    | 26 +++++++
 .../redirection/redirection.component.scss    | 25 +++++++
 .../redirection/redirection.component.spec.ts | 25 +++++++
 src/app/redirection/redirection.component.ts  | 69 +++++++++++++++++++
 .../modal/warning/warningModal.component.scss |  4 ++
 11 files changed, 167 insertions(+), 19 deletions(-)
 create mode 100644 src/app/redirection/redirection.component.html
 create mode 100644 src/app/redirection/redirection.component.scss
 create mode 100644 src/app/redirection/redirection.component.spec.ts
 create mode 100644 src/app/redirection/redirection.component.ts

diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index e1ea848d..1de967bc 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -3,6 +3,7 @@ import { RouterModule, Routes } from '@angular/router';
 
 import { AboutComponent } from './about/about.component';
 import { HomeComponent } from './home/home.component';
+import { RedirectionComponent } from './redirection/redirection.component';
 import { NotFoundComponent } from './not-found/not-found.component';
 import { TeamComponent } from './team/team.component';
 import { PqrComponent } from './simulator/pqr/pqr.component';
@@ -12,7 +13,7 @@ import { ResetPasswordComponent } from './reset-password/reset-password.componen
 import { ContactComponent } from './contact/contact.component';
 
 const routes: Routes = [
-  { path: '', component: HomeComponent, canDeactivate: [HasErrorGuard] },
+  { path: '', component: RedirectionComponent, canDeactivate: [HasErrorGuard] },
   { path: 'pqr', component: PqrComponent, canDeactivate: [HasErrorGuard] },
   { path: 'about', component: AboutComponent },
   { path: 'quality', component: QualityComponent },
diff --git a/src/app/app.component.html b/src/app/app.component.html
index 17fe042b..33057584 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -16,7 +16,7 @@
           <img [src]="'assets/images/simcaq_logo_' + (isInverseColor ? 'gray' : 'white') + '.svg'" alt="Logo SimCAQ">
         </a>
       </div>
-      <div #navbarContent id="mainNavBar" class="collapse navbar-collapse" [collapse]="navBarIsCollapsed">
+      <!-- <div #navbarContent id="mainNavBar" class="collapse navbar-collapse" [collapse]="navBarIsCollapsed">
         <p class="navbar-text slogan" [class.inverse]="isInverseColor">
           <em>Por uma educação pública gratuita e de qualidade para todos/as</em>
         </p>
@@ -61,7 +61,7 @@
             <app-profile [isInverseColor]="isInverseColor"></app-profile>
           </div>
         </ul>
-      </div>
+      </div> -->
     </div>
   </nav>
   <nav class="navbar visible-print-inline">
@@ -77,7 +77,7 @@
     <router-outlet></router-outlet>
   </div>
   <div *ngIf="showFooter" class="container-fluid hidden-print">
-    <div class="sup-footer">
+    <!-- <div class="sup-footer">
       <div class="row">
         <div class="col-md-6 col-lg-3">
           <ul class="list-sub-footer">
@@ -131,7 +131,7 @@
           </ul>
         </div>
       </div>
-    </div>
+    </div> -->
     <div class="footer">
       <div class="title">Realização:</div>
       <a href="http://www.ufpr.br" target="_blank" title="Universidade Federal do Paraná - UFPR">
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 867b37d5..bd210036 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -76,9 +76,9 @@ export class AppComponent extends BaseUnsubscribe implements OnInit {
         this.showFooter = true;
 
         // Close the navbar menu (mobile screen).
-        if (this.navbarContent.nativeElement.classList.contains('show')) {
-          this.navbarMenuToggle.nativeElement.click();
-        }
+        // if (this.navbarContent.nativeElement.classList.contains('show')) {
+        //   this.navbarMenuToggle.nativeElement.click();
+        // }
       });
   }
 
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 8dcc64ed..708a22e3 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -13,6 +13,7 @@ import { AppHttpInterceptor } from './shared/services/http/interceptors/app-http
 import { AppErrorHandler } from './shared/services/error-handler/app-error-handler.service';
 import { AppComponent } from './app.component';
 import { HomeComponent } from './home/home.component';
+import { RedirectionComponent } from './redirection/redirection.component';
 import { AppRoutingModule } from './app-routing.module';
 import { LoginComponent } from './login/login.component';
 import { NotFoundComponent } from './not-found/not-found.component';
@@ -22,6 +23,7 @@ import { AboutComponent } from './about/about.component';
 import { QualityComponent } from './quality/quality.component';
 import { ResetPasswordComponent } from './reset-password/reset-password.component';
 import { ContactComponent } from './contact/contact.component';
+import { WarningModalComponent } from './shared/components/modal/warning/warningModal.component';
 
 registerLocaleData(localePt, 'pt');
 
@@ -39,6 +41,7 @@ registerLocaleData(localePt, 'pt');
   declarations: [
     AppComponent,
     HomeComponent,
+    RedirectionComponent,
     LoginComponent,
     NotFoundComponent,
     TeamComponent,
@@ -46,7 +49,8 @@ registerLocaleData(localePt, 'pt');
     AboutComponent,
     QualityComponent,
     ResetPasswordComponent,
-    ContactComponent
+    ContactComponent,
+    WarningModalComponent
   ],
   entryComponents: [
     LoginComponent,
diff --git a/src/app/home/home.component.scss b/src/app/home/home.component.scss
index bee1608f..c9b36aa6 100644
--- a/src/app/home/home.component.scss
+++ b/src/app/home/home.component.scss
@@ -10,12 +10,6 @@ $blue-color-hover: #43657a;
     background: url(assets/images/home_bg_curve.svg) no-repeat top right;
     background-size: cover;
 
-    .warningModal {
-        background-color: #ffffff;
-        margin-top: 100px;
-
-    }
-
     .phrases {
         color: $navbar-color;
         margin-top: 55px;
diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts
index 9e851e09..25de93bf 100644
--- a/src/app/home/home.component.ts
+++ b/src/app/home/home.component.ts
@@ -25,12 +25,12 @@ export class HomeComponent extends BaseUnsubscribe implements OnInit {
   bsModalRef: BsModalRef;
 
 
-  constructor(private simulatorService: SimulatorService, private authService: AuthService,private bsModalService: BsModalService) {
+  constructor(private simulatorService: SimulatorService, private authService: AuthService, private bsModalService: BsModalService) {
     super();
 
-    this.bsModalRef = this.bsModalService.show(WarningModalComponent);
-    this.bsModalRef.content.title = 'Ops!';
-    this.bsModalRef.content.body = 'Página não encontrada!';
+    // this.bsModalRef = this.bsModalService.show(WarningModalComponent);
+    // this.bsModalRef.content.title = 'O SIMCAQ não está mais sendo desenvolvido no C3SL/UFPR!';
+    // this.bsModalRef.content.body = 'Ele está no seguinte endereço: <a href="https://simcaq.ufg.br">https://simcaq.ufg.br</a> ';
   }
 
   ngOnInit(): void {
diff --git a/src/app/redirection/redirection.component.html b/src/app/redirection/redirection.component.html
new file mode 100644
index 00000000..24c20545
--- /dev/null
+++ b/src/app/redirection/redirection.component.html
@@ -0,0 +1,26 @@
+<meta http-equiv = "refresh" content = "10; url = https://simcaq.ufg.br" />
+
+<div class="container">
+  <div class="row">
+    <div class="col-lg-12">
+      <div class="redirection-container">
+        <div class="redirection">
+          <div class="redirection-title">
+            <h1>O SIMCAQ não está mais sendo desenvolvido no C3SL/UFPR. </h1>
+          </div>
+          <div class="redirection-text">
+            Ele está no seguinte endereço: <a href="https://simcaq.ufg.br">https://simcaq.ufg.br</a>
+          </div>
+          <div class="redirection-text">
+            Você será redirecionado em {{this.counter}} segundos...
+          </div>
+          <div class="redirection-text">
+            <p>Se você não for redirecionado automaticamente, clique no botão abaixo.</p>
+          </div>
+          <div class="redirection-button">
+            <a href="https://simcaq.ufg.br" class="button">Ir direto para o link</a>
+        </div>
+        </div>
+      </div>
+    </div>
+  </div>
\ No newline at end of file
diff --git a/src/app/redirection/redirection.component.scss b/src/app/redirection/redirection.component.scss
new file mode 100644
index 00000000..a153cfb9
--- /dev/null
+++ b/src/app/redirection/redirection.component.scss
@@ -0,0 +1,25 @@
+.container {
+    margin-top: 20vh;
+    margin-bottom: 18%;
+    padding-left: 0;
+    padding-right: 0;
+    display: flex;
+
+    .redirection-text {
+        font-size: 20px;
+        padding-top: 20px;
+    }
+
+    .redirection-button {
+        padding-top: 20px;
+        
+        .button {
+            border: 1px solid #49697d;
+            background-color: #49697d;
+            border-radius: 4px;
+            color: #fff;
+            padding: 10px 20px;
+            font-size: 15px;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/app/redirection/redirection.component.spec.ts b/src/app/redirection/redirection.component.spec.ts
new file mode 100644
index 00000000..55a6bf6a
--- /dev/null
+++ b/src/app/redirection/redirection.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { RedirectionComponent } from './redirection.component';
+
+describe('RedirectionComponent', () => {
+  let component: RedirectionComponent;
+  let fixture: ComponentFixture<RedirectionComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ RedirectionComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(RedirectionComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should be created', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/redirection/redirection.component.ts b/src/app/redirection/redirection.component.ts
new file mode 100644
index 00000000..bf9bb416
--- /dev/null
+++ b/src/app/redirection/redirection.component.ts
@@ -0,0 +1,69 @@
+import { Component, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
+import { takeUntil, map } from 'rxjs/operators';
+import { Observable, timer } from 'rxjs';
+import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
+
+import { SimulationType } from '../simulator/simulator/entities/enums/simulation-type.enum';
+import { SimulatorService } from '../simulator/simulator/services/simulator.service';
+import { AuthService } from '../shared/services/auth/auth.service';
+import { BaseUnsubscribe } from '../shared/entities/base/base-unsubscribe';
+import { WarningModalComponent } from 'app/shared/components/modal/warning/warningModal.component';
+
+@Component({
+  selector: 'app-redirection',
+  templateUrl: './redirection.component.html',
+  styleUrls: ['./redirection.component.scss']
+})
+export class RedirectionComponent extends BaseUnsubscribe implements OnInit {
+
+  financingSimulationIsEnable: boolean = false;
+
+  readonly caq: SimulationType = SimulationType.caq;
+  readonly planning: SimulationType = SimulationType.planning;
+  readonly financing: SimulationType = SimulationType.financing;
+
+  bsModalRef: BsModalRef;
+
+  counter = 10; 
+
+  constructor(private simulatorService: SimulatorService, private authService: AuthService, private bsModalService: BsModalService, private router: Router) {
+    super();
+  }
+
+  ngOnInit(): void {
+
+    setInterval( () => this.numDecrement(this.counter), 1000);
+
+    this.verifyFinancingSimulationIsEnable();
+
+    this.authService.userLoggedObserver.pipe(
+      takeUntil(this.unsubscribe))
+      .subscribe(userIsLoggedIn => {
+        if (userIsLoggedIn) {
+          this.verifyFinancingSimulationIsEnable();
+        } else {
+          this.financingSimulationIsEnable = false;
+        }
+      });
+    
+  }
+
+  numDecrement(numRecieved : number) {
+    while(numRecieved > 0) {
+      this.counter = numRecieved - 1;
+      return numRecieved;
+    }
+  }
+ 
+  startSimulation(simulationType: SimulationType): void {
+    this.simulatorService.startSimulation(simulationType);
+  }
+
+  private verifyFinancingSimulationIsEnable(): void {
+    this.authService.userIsAdmin().pipe(
+      takeUntil(this.unsubscribe))
+      .subscribe(userIsAdmin => this.financingSimulationIsEnable = userIsAdmin);
+  }
+
+}
diff --git a/src/app/shared/components/modal/warning/warningModal.component.scss b/src/app/shared/components/modal/warning/warningModal.component.scss
index e69de29b..b1b2b310 100644
--- a/src/app/shared/components/modal/warning/warningModal.component.scss
+++ b/src/app/shared/components/modal/warning/warningModal.component.scss
@@ -0,0 +1,4 @@
+.modal-content {
+    width: 100vh;
+    height: 50vh;
+}
\ No newline at end of file
-- 
GitLab