From 7549061fbad5bd4f4608708549689221bb4e5339 Mon Sep 17 00:00:00 2001 From: Piet Ostendorp Date: Fri, 31 Oct 2025 11:45:41 +0100 Subject: [PATCH] Add new header 2.0 component with loading service Introduced Header2Component with a new design, external resource links, and a loading progress bar. Added LoadingService to manage loading state and integrated it into the schedule component. Updated main layout to use the new header and included related assets for external links. Changed API base URL in HttpService to use the production endpoint. --- src/app/app-module.ts | 13 +++++-- src/app/header-2/header-2.component.css | 16 ++++++++ src/app/header-2/header-2.component.html | 35 ++++++++++++++++++ src/app/header-2/header-2.component.ts | 15 ++++++++ src/app/http.service.ts | 6 ++- .../main-layout/main-layout.component.html | 2 +- src/app/loading.service.ts | 18 +++++++++ src/app/schedule/schedule.component.ts | 4 ++ src/assets/logo-gitea.png | Bin 0 -> 5959 bytes src/assets/logo-github.png | Bin 0 -> 6393 bytes src/assets/logo-quarkus.png | Bin 0 -> 6392 bytes src/assets/logo-redpanda.jpeg | Bin 0 -> 8686 bytes 12 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 src/app/header-2/header-2.component.css create mode 100644 src/app/header-2/header-2.component.html create mode 100644 src/app/header-2/header-2.component.ts create mode 100644 src/app/loading.service.ts create mode 100644 src/assets/logo-gitea.png create mode 100644 src/assets/logo-github.png create mode 100644 src/assets/logo-quarkus.png create mode 100644 src/assets/logo-redpanda.jpeg diff --git a/src/app/app-module.ts b/src/app/app-module.ts index bc24b0c..06cbe6a 100644 --- a/src/app/app-module.ts +++ b/src/app/app-module.ts @@ -9,6 +9,9 @@ import { App } from './app'; import { MatIconModule } from '@angular/material/icon'; import { MatTabsModule } from '@angular/material/tabs'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; + import { HeaderComponent } from './header/header.component'; import { HomeComponent } from './home/home.component'; @@ -26,6 +29,7 @@ import { MovieScheduleInfoComponent } from './movie-schedule-info/movie-schedule import { MovieScheduleTimesComponent } from './movie-schedule-times/movie-schedule-times.component'; import { MovieCategoryComponent } from './movie-category/movie-category.component'; import { MovieScheduleEmptyComponent } from './movie-schedule-empty/movie-schedule-empty.component'; +import { Header2Component } from './header-2/header-2.component'; @NgModule({ @@ -45,7 +49,8 @@ import { MovieScheduleEmptyComponent } from './movie-schedule-empty/movie-schedu MovieRatingComponent, MovieDurationComponent, MovieCategoryComponent, - MovieScheduleEmptyComponent + MovieScheduleEmptyComponent, + Header2Component ], imports: [ AppRoutingModule, @@ -53,8 +58,10 @@ import { MovieScheduleEmptyComponent } from './movie-schedule-empty/movie-schedu CommonModule, FormsModule, MatIconModule, - MatTabsModule - ], + MatTabsModule, + MatToolbarModule, + MatProgressBarModule +], providers: [ provideBrowserGlobalErrorListeners(), provideHttpClient( diff --git a/src/app/header-2/header-2.component.css b/src/app/header-2/header-2.component.css new file mode 100644 index 0000000..262bf70 --- /dev/null +++ b/src/app/header-2/header-2.component.css @@ -0,0 +1,16 @@ +header { + width: 100%; +} + +.header { + display: flex; + align-items: center; + justify-content: space-between; + background-color: white; +} + +.redirect-img { + height: 2rem; + width: auto; + border-radius: 5px; +} diff --git a/src/app/header-2/header-2.component.html b/src/app/header-2/header-2.component.html new file mode 100644 index 0000000..6e0cf87 --- /dev/null +++ b/src/app/header-2/header-2.component.html @@ -0,0 +1,35 @@ +
+
+ + +

InfiniMotion

+
+ +
+

+ Absolut war gestern, Bewegung ist heute! +

+
+ + +
+ + @if (loading$ | async) { + + } @else { +
+ } +
diff --git a/src/app/header-2/header-2.component.ts b/src/app/header-2/header-2.component.ts new file mode 100644 index 0000000..35073fc --- /dev/null +++ b/src/app/header-2/header-2.component.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { LoadingService } from '../loading.service'; + +@Component({ + selector: 'app-header-2', + standalone: false, + templateUrl: './header-2.component.html', + styleUrl: './header-2.component.css' +}) +export class Header2Component { + loading$; + constructor(private loadingService: LoadingService) { + this.loading$ = this.loadingService.loading$; + } +} diff --git a/src/app/http.service.ts b/src/app/http.service.ts index bdc03ae..248d323 100644 --- a/src/app/http.service.ts +++ b/src/app/http.service.ts @@ -3,10 +3,12 @@ import { HttpClient } from "@angular/common/http"; import { inject, Injectable } from "@angular/core"; import { Observable } from "rxjs"; -@Injectable({providedIn: 'root'}) +@Injectable({ + providedIn: 'root' +}) export class HttpService { private http = inject(HttpClient); - private baseUrl = '/api/'; + private baseUrl = 'https://infinimotion.de/api/'; /* Kinosaal APIs */ diff --git a/src/app/layouts/main-layout/main-layout.component.html b/src/app/layouts/main-layout/main-layout.component.html index ba74d32..b147eb3 100644 --- a/src/app/layouts/main-layout/main-layout.component.html +++ b/src/app/layouts/main-layout/main-layout.component.html @@ -1,4 +1,4 @@ - +
diff --git a/src/app/loading.service.ts b/src/app/loading.service.ts new file mode 100644 index 0000000..e34d633 --- /dev/null +++ b/src/app/loading.service.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class LoadingService { + private _loading = new BehaviorSubject(false); + readonly loading$ = this._loading.asObservable(); + + show() { + this._loading.next(true); + } + + hide() { + this._loading.next(false); + } +} diff --git a/src/app/schedule/schedule.component.ts b/src/app/schedule/schedule.component.ts index ec6b934..7e89034 100644 --- a/src/app/schedule/schedule.component.ts +++ b/src/app/schedule/schedule.component.ts @@ -3,6 +3,7 @@ import { HttpService } from '../http.service'; import { Vorstellung } from '@infinimotion/model-frontend'; import { Performance } from '../model/performance.model'; import { MovieGroup } from '../model/movie-group.model'; +import { LoadingService } from '../loading.service'; @Component({ selector: 'app-schedule', @@ -15,6 +16,7 @@ export class ScheduleComponent implements OnInit { performaces: Vorstellung[] = []; private http = inject(HttpService); + private loading = inject(LoadingService) constructor() { this.generateDates(); @@ -44,12 +46,14 @@ export class ScheduleComponent implements OnInit { } loadPerformances() { + this.loading.show(); this.http.getPerformaces().subscribe({ next: (data) => { this.performaces = Array.isArray(data) ? data : [data]; this.assignPerformancesToDates(); }, error: (err) => console.error('Fehler beim Laden der Performances', err), + complete: () => this.loading.hide() }); } diff --git a/src/assets/logo-gitea.png b/src/assets/logo-gitea.png new file mode 100644 index 0000000000000000000000000000000000000000..9d7773ab57b1fcb6998052ee79e1d4e489a9d0b4 GIT binary patch literal 5959 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo-github.png b/src/assets/logo-github.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb3b705d018006a2bd4200ea94c9d5fb98b6f76 GIT binary patch literal 6393 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 Hu0mjfZ$b4` literal 0 HcmV?d00001 diff --git a/src/assets/logo-quarkus.png b/src/assets/logo-quarkus.png new file mode 100644 index 0000000000000000000000000000000000000000..5b30f890926fa764d25fdd449b1bf131d95b8689 GIT binary patch literal 6392 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 literal 0 HcmV?d00001 diff --git a/src/assets/logo-redpanda.jpeg b/src/assets/logo-redpanda.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..466b22b8742dcf6321e97f9bb2322a5b64acf353 GIT binary patch literal 8686 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 literal 0 HcmV?d00001