From 6d5db1ce62ed35b60644b2a7e2deb805cfd04f07 Mon Sep 17 00:00:00 2001 From: Hugo Pradier Date: Tue, 19 Sep 2023 22:58:36 +0200 Subject: [PATCH] Passage en SPA --- sandkasten/src/app/app-routing.module.ts | 10 +++++- sandkasten/src/app/app.component.css | 14 -------- sandkasten/src/app/app.component.html | 3 +- sandkasten/src/app/app.module.ts | 12 ++++--- .../app/code-input/code-input.component.css | 5 --- .../app/code-input/code-input.component.html | 10 ------ .../app/code-input/code-input.component.ts | 14 -------- .../code-output/code-output.component.html | 1 - .../code-output/code-output.component.spec.ts | 21 ----------- .../app/code-output/code-output.component.ts | 10 ------ .../src/app/editor/editor.component.css | 5 +++ .../src/app/editor/editor.component.html | 13 +++++++ .../editor.component.spec.ts} | 12 +++---- sandkasten/src/app/editor/editor.component.ts | 35 +++++++++++++++++++ .../src/app/header/header.component.css | 20 ++++++++--- .../src/app/header/header.component.html | 14 ++++++++ .../landing-page/landing-page.component.css | 15 ++++++++ .../landing-page/landing-page.component.html | 6 ++++ .../landing-page.component.spec.ts | 21 +++++++++++ .../landing-page/landing-page.component.ts | 18 ++++++++++ .../output.component.css} | 0 .../src/app/output/output.component.html | 1 + .../src/app/output/output.component.spec.ts | 21 +++++++++++ sandkasten/src/app/output/output.component.ts | 10 ++++++ sandkasten/src/styles.css | 17 +++++++++ 25 files changed, 215 insertions(+), 93 deletions(-) delete mode 100644 sandkasten/src/app/code-input/code-input.component.css delete mode 100644 sandkasten/src/app/code-input/code-input.component.html delete mode 100644 sandkasten/src/app/code-input/code-input.component.ts delete mode 100644 sandkasten/src/app/code-output/code-output.component.html delete mode 100644 sandkasten/src/app/code-output/code-output.component.spec.ts delete mode 100644 sandkasten/src/app/code-output/code-output.component.ts create mode 100644 sandkasten/src/app/editor/editor.component.css create mode 100644 sandkasten/src/app/editor/editor.component.html rename sandkasten/src/app/{code-input/code-input.component.spec.ts => editor/editor.component.spec.ts} (50%) create mode 100644 sandkasten/src/app/editor/editor.component.ts create mode 100644 sandkasten/src/app/landing-page/landing-page.component.css create mode 100644 sandkasten/src/app/landing-page/landing-page.component.html create mode 100644 sandkasten/src/app/landing-page/landing-page.component.spec.ts create mode 100644 sandkasten/src/app/landing-page/landing-page.component.ts rename sandkasten/src/app/{code-output/code-output.component.css => output/output.component.css} (100%) create mode 100644 sandkasten/src/app/output/output.component.html create mode 100644 sandkasten/src/app/output/output.component.spec.ts create mode 100644 sandkasten/src/app/output/output.component.ts diff --git a/sandkasten/src/app/app-routing.module.ts b/sandkasten/src/app/app-routing.module.ts index 0297262..8f1ac42 100644 --- a/sandkasten/src/app/app-routing.module.ts +++ b/sandkasten/src/app/app-routing.module.ts @@ -1,7 +1,15 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { EditorComponent } from './editor/editor.component'; +import { LandingPageComponent } from './landing-page/landing-page.component'; +import { OutputComponent } from './output/output.component'; -const routes: Routes = []; +// Toutes les routes de l'application sont définies ici +const routes: Routes = [ + { path: '', component: LandingPageComponent }, + { path: 'editor', component: EditorComponent }, + { path: 'output', component: OutputComponent } +]; @NgModule({ imports: [RouterModule.forRoot(routes)], diff --git a/sandkasten/src/app/app.component.css b/sandkasten/src/app/app.component.css index 6f55f37..e69de29 100644 --- a/sandkasten/src/app/app.component.css +++ b/sandkasten/src/app/app.component.css @@ -1,14 +0,0 @@ -.code_container { - display: grid; - grid-template-columns: 1fr 1fr; - - color: white; -} - -.code_container .code_input { - background: red; -} - -.code_container .code_output { - background: blue; -} diff --git a/sandkasten/src/app/app.component.html b/sandkasten/src/app/app.component.html index 2d60ea4..f741a93 100644 --- a/sandkasten/src/app/app.component.html +++ b/sandkasten/src/app/app.component.html @@ -1,6 +1,5 @@
- - +
diff --git a/sandkasten/src/app/app.module.ts b/sandkasten/src/app/app.module.ts index d19b568..27535a2 100644 --- a/sandkasten/src/app/app.module.ts +++ b/sandkasten/src/app/app.module.ts @@ -4,17 +4,19 @@ import { BrowserModule } from '@angular/platform-browser'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { HeaderComponent } from './header/header.component'; -import { CodeInputComponent } from './code-input/code-input.component'; -import { CodeOutputComponent } from './code-output/code-output.component'; import { FooterComponent } from './footer/footer.component'; +import { EditorComponent } from './editor/editor.component'; +import { OutputComponent } from './output/output.component'; +import { LandingPageComponent } from './landing-page/landing-page.component'; @NgModule({ declarations: [ AppComponent, HeaderComponent, - CodeInputComponent, - CodeOutputComponent, - FooterComponent + FooterComponent, + EditorComponent, + OutputComponent, + LandingPageComponent ], imports: [ BrowserModule, diff --git a/sandkasten/src/app/code-input/code-input.component.css b/sandkasten/src/app/code-input/code-input.component.css deleted file mode 100644 index 0f6cfd3..0000000 --- a/sandkasten/src/app/code-input/code-input.component.css +++ /dev/null @@ -1,5 +0,0 @@ -.code_input .code_input_textarea { - background-color: #cccccc; - min-height: 80vh; - width: 100%; -} diff --git a/sandkasten/src/app/code-input/code-input.component.html b/sandkasten/src/app/code-input/code-input.component.html deleted file mode 100644 index 848e552..0000000 --- a/sandkasten/src/app/code-input/code-input.component.html +++ /dev/null @@ -1,10 +0,0 @@ -
- - -

{{ reponse }}

-
diff --git a/sandkasten/src/app/code-input/code-input.component.ts b/sandkasten/src/app/code-input/code-input.component.ts deleted file mode 100644 index 401deca..0000000 --- a/sandkasten/src/app/code-input/code-input.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-code-input', - templateUrl: './code-input.component.html', - styleUrls: ['./code-input.component.css'] -}) -export class CodeInputComponent { - reponse!: string; - onRunButtonClicked() { - this.reponse = 'Run button clicked'; - console.log('Run button clicked'); - } -} diff --git a/sandkasten/src/app/code-output/code-output.component.html b/sandkasten/src/app/code-output/code-output.component.html deleted file mode 100644 index 47bdf6e..0000000 --- a/sandkasten/src/app/code-output/code-output.component.html +++ /dev/null @@ -1 +0,0 @@ -

code-output works!

diff --git a/sandkasten/src/app/code-output/code-output.component.spec.ts b/sandkasten/src/app/code-output/code-output.component.spec.ts deleted file mode 100644 index 2e0c61e..0000000 --- a/sandkasten/src/app/code-output/code-output.component.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CodeOutputComponent } from './code-output.component'; - -describe('CodeOutputComponent', () => { - let component: CodeOutputComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [CodeOutputComponent] - }); - fixture = TestBed.createComponent(CodeOutputComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/sandkasten/src/app/code-output/code-output.component.ts b/sandkasten/src/app/code-output/code-output.component.ts deleted file mode 100644 index 4cd492c..0000000 --- a/sandkasten/src/app/code-output/code-output.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-code-output', - templateUrl: './code-output.component.html', - styleUrls: ['./code-output.component.css'] -}) -export class CodeOutputComponent { - -} diff --git a/sandkasten/src/app/editor/editor.component.css b/sandkasten/src/app/editor/editor.component.css new file mode 100644 index 0000000..ca8f153 --- /dev/null +++ b/sandkasten/src/app/editor/editor.component.css @@ -0,0 +1,5 @@ +.code_input .code_input_textarea { + background-color: #cccccc; + min-height: 80vh; + width: 100%; +} \ No newline at end of file diff --git a/sandkasten/src/app/editor/editor.component.html b/sandkasten/src/app/editor/editor.component.html new file mode 100644 index 0000000..92d0eec --- /dev/null +++ b/sandkasten/src/app/editor/editor.component.html @@ -0,0 +1,13 @@ +
+ + +
+

Loading: {{ loadingProgress }}%

+
+
+
diff --git a/sandkasten/src/app/code-input/code-input.component.spec.ts b/sandkasten/src/app/editor/editor.component.spec.ts similarity index 50% rename from sandkasten/src/app/code-input/code-input.component.spec.ts rename to sandkasten/src/app/editor/editor.component.spec.ts index 39d907b..430658f 100644 --- a/sandkasten/src/app/code-input/code-input.component.spec.ts +++ b/sandkasten/src/app/editor/editor.component.spec.ts @@ -1,16 +1,16 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { CodeInputComponent } from './code-input.component'; +import { EditorComponent } from './editor.component'; -describe('CodeInputComponent', () => { - let component: CodeInputComponent; - let fixture: ComponentFixture; +describe('EditorComponent', () => { + let component: EditorComponent; + let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ - declarations: [CodeInputComponent] + declarations: [EditorComponent] }); - fixture = TestBed.createComponent(CodeInputComponent); + fixture = TestBed.createComponent(EditorComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/sandkasten/src/app/editor/editor.component.ts b/sandkasten/src/app/editor/editor.component.ts new file mode 100644 index 0000000..ed58f23 --- /dev/null +++ b/sandkasten/src/app/editor/editor.component.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'app-editor', + templateUrl: './editor.component.html', + styleUrls: ['./editor.component.css'] +}) +export class EditorComponent implements OnInit{ + loadingProgress: number = 0; // Pour suivre la progression du chargement + isLoaded: boolean = false; // Pour vérifier si le chargement est terminé + + constructor(private router: Router){} + + ngOnInit(): void { + + } + + // Si click sur "Run", on redirige vers la page d'output + onRunButtonClicked() { + this.loadingProgress = 0; + this.isLoaded = false; + + // Simuler le chargement pendant 5 secondes + const interval = setInterval(() => { + this.loadingProgress++; + if (this.loadingProgress >= 100) { + clearInterval(interval); // Arrêtez la simulation de chargement + this.isLoaded = true; + // Redirigez vers une autre page (par exemple, 'output') + this.router.navigate(['/output']); + } + }, 50); // Augmenter la valeur pour ralentir la progression du chargement si nécessaire + } +} diff --git a/sandkasten/src/app/header/header.component.css b/sandkasten/src/app/header/header.component.css index 898bc4f..cde8f28 100644 --- a/sandkasten/src/app/header/header.component.css +++ b/sandkasten/src/app/header/header.component.css @@ -1,7 +1,19 @@ -.header-card { - width: 35%; +img { + width: 5%; + } + - img { - width: 10%; +a { + margin: 0 10px; + color: #333; + text-decoration: none; + + &:hover { + text-decoration: underline; } +} + +.active { + color: #666; + text-decoration: underline; } \ No newline at end of file diff --git a/sandkasten/src/app/header/header.component.html b/sandkasten/src/app/header/header.component.html index 52d2a6f..dcb40ae 100644 --- a/sandkasten/src/app/header/header.component.html +++ b/sandkasten/src/app/header/header.component.html @@ -3,4 +3,18 @@

{{ description }}

Version : {{ version }}

imgSrc + diff --git a/sandkasten/src/app/landing-page/landing-page.component.css b/sandkasten/src/app/landing-page/landing-page.component.css new file mode 100644 index 0000000..c9d73f9 --- /dev/null +++ b/sandkasten/src/app/landing-page/landing-page.component.css @@ -0,0 +1,15 @@ +.landing-block { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.landing-links { + width: 100%; + text-align: center; +} + +button{ + font-size: 20px; +} \ No newline at end of file diff --git a/sandkasten/src/app/landing-page/landing-page.component.html b/sandkasten/src/app/landing-page/landing-page.component.html new file mode 100644 index 0000000..a8b9e13 --- /dev/null +++ b/sandkasten/src/app/landing-page/landing-page.component.html @@ -0,0 +1,6 @@ +
+ logo + +
diff --git a/sandkasten/src/app/landing-page/landing-page.component.spec.ts b/sandkasten/src/app/landing-page/landing-page.component.spec.ts new file mode 100644 index 0000000..5b7ad0b --- /dev/null +++ b/sandkasten/src/app/landing-page/landing-page.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LandingPageComponent } from './landing-page.component'; + +describe('LandingPageComponent', () => { + let component: LandingPageComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [LandingPageComponent] + }); + fixture = TestBed.createComponent(LandingPageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/sandkasten/src/app/landing-page/landing-page.component.ts b/sandkasten/src/app/landing-page/landing-page.component.ts new file mode 100644 index 0000000..3379e6e --- /dev/null +++ b/sandkasten/src/app/landing-page/landing-page.component.ts @@ -0,0 +1,18 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'app-landing-page', + templateUrl: './landing-page.component.html', + styleUrls: ['./landing-page.component.css'] +}) +export class LandingPageComponent implements OnInit{ + constructor(private router: Router){} + ngOnInit(): void { + + } + // Si click sur "Run", on redirige vers la page d'édition + onContinue():void{ + this.router.navigateByUrl('/editor'); + } +} diff --git a/sandkasten/src/app/code-output/code-output.component.css b/sandkasten/src/app/output/output.component.css similarity index 100% rename from sandkasten/src/app/code-output/code-output.component.css rename to sandkasten/src/app/output/output.component.css diff --git a/sandkasten/src/app/output/output.component.html b/sandkasten/src/app/output/output.component.html new file mode 100644 index 0000000..3021571 --- /dev/null +++ b/sandkasten/src/app/output/output.component.html @@ -0,0 +1 @@ +

output works!

diff --git a/sandkasten/src/app/output/output.component.spec.ts b/sandkasten/src/app/output/output.component.spec.ts new file mode 100644 index 0000000..3a05fbe --- /dev/null +++ b/sandkasten/src/app/output/output.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { OutputComponent } from './output.component'; + +describe('OutputComponent', () => { + let component: OutputComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [OutputComponent] + }); + fixture = TestBed.createComponent(OutputComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/sandkasten/src/app/output/output.component.ts b/sandkasten/src/app/output/output.component.ts new file mode 100644 index 0000000..f0d2b4b --- /dev/null +++ b/sandkasten/src/app/output/output.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-output', + templateUrl: './output.component.html', + styleUrls: ['./output.component.css'] +}) +export class OutputComponent { + +} diff --git a/sandkasten/src/styles.css b/sandkasten/src/styles.css index e47fee6..cd925f9 100644 --- a/sandkasten/src/styles.css +++ b/sandkasten/src/styles.css @@ -1,3 +1,20 @@ * { font-family: Roboto, Helvetica, sans-serif; +} + +button { + background-color: transparent; + box-sizing: border-box; + padding: 5px 10px; + border: none; + box-shadow: lightgray 3px 3px 7px; + margin-right: 20px; + outline: none; + font-size: 20px; + font-weight: 500; + + &:active { + transform: translate(1px, 1px); + box-shadow: lightgray 0 0 5px; + } } \ No newline at end of file