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 @@
+
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 0000000..9d7773a
Binary files /dev/null and b/src/assets/logo-gitea.png differ
diff --git a/src/assets/logo-github.png b/src/assets/logo-github.png
new file mode 100644
index 0000000..6cb3b70
Binary files /dev/null and b/src/assets/logo-github.png differ
diff --git a/src/assets/logo-quarkus.png b/src/assets/logo-quarkus.png
new file mode 100644
index 0000000..5b30f89
Binary files /dev/null and b/src/assets/logo-quarkus.png differ
diff --git a/src/assets/logo-redpanda.jpeg b/src/assets/logo-redpanda.jpeg
new file mode 100644
index 0000000..466b22b
Binary files /dev/null and b/src/assets/logo-redpanda.jpeg differ