Quellcode durchsuchen

View event page basics

Lukas Angerer vor 3 Jahren
Ursprung
Commit
65da3397b4

+ 6 - 0
src/RunnersMeet.Client/src/app/app-routing.module.ts

@@ -6,6 +6,7 @@ import { EditTrackPageComponent } from './pages/edit-track-page/edit-track-page.
 import { EventsPageComponent } from './pages/events-page/events-page.component';
 import { HomePageComponent } from './pages/home-page/home-page.component';
 import { TracksPageComponent } from './pages/tracks-page/tracks-page.component';
+import { ViewEventPageComponent } from './pages/view-event-page/view-event-page.component';
 import { ViewTrackPageComponent } from './pages/view-track-page/view-track-page.component';
 
 const routes: Routes = [
@@ -38,6 +39,11 @@ const routes: Routes = [
 		component: EditEventPageComponent,
 		canActivate: [AuthGuard],
 	},
+	{
+		path: 'events/view/:oid',
+		component: ViewEventPageComponent,
+		canActivate: [AuthGuard],
+	},
 ];
 
 @NgModule({

+ 4 - 0
src/RunnersMeet.Client/src/app/app.module.ts

@@ -40,6 +40,8 @@ import { CalendarModule } from 'primeng/calendar';
 import { DynamicDialogModule } from 'primeng/dynamicdialog';
 import { TableModule } from 'primeng/table';
 import { PanelModule } from 'primeng/panel';
+import { EventViewComponent } from './events/event-view/event-view.component';
+import { ViewEventPageComponent } from './pages/view-event-page/view-event-page.component';
 
 @NgModule({
 	declarations: [
@@ -59,6 +61,8 @@ import { PanelModule } from 'primeng/panel';
 		EventEditComponent,
 		TrackPickerComponent,
 		TrackPickerDialogComponent,
+		EventViewComponent,
+  ViewEventPageComponent,
 	],
 	imports: [
 		BrowserModule,

+ 9 - 0
src/RunnersMeet.Client/src/app/events/event-view/event-view.component.html

@@ -0,0 +1,9 @@
+<h1>Event Details</h1>
+<dl class="pivot-table">
+	<dt>Organizer</dt>
+	<dd>TODO</dd>
+	<dt>Title</dt>
+	<dd>{{ event?.title }}</dd>
+	<dt>Description</dt>
+	<dd>{{ event?.description }}</dd>
+</dl>

+ 0 - 0
src/RunnersMeet.Client/src/app/events/event-view/event-view.component.scss


+ 23 - 0
src/RunnersMeet.Client/src/app/events/event-view/event-view.component.spec.ts

@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { EventViewComponent } from './event-view.component';
+
+describe('EventViewComponent', () => {
+  let component: EventViewComponent;
+  let fixture: ComponentFixture<EventViewComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ EventViewComponent ]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(EventViewComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 25 - 0
src/RunnersMeet.Client/src/app/events/event-view/event-view.component.ts

@@ -0,0 +1,25 @@
+import { Component, Input } from '@angular/core';
+import { EventsApiService } from 'src/app/events-api.service';
+import { GroupEvent } from '../group-event';
+
+@Component({
+	selector: 'app-event-view',
+	templateUrl: './event-view.component.html',
+	styleUrls: ['./event-view.component.scss']
+})
+export class EventViewComponent {
+	@Input()
+	public eventId: string = '';
+
+	public event: GroupEvent | null = null;
+
+	public constructor(
+		private readonly eventsApi: EventsApiService
+	) { }
+
+	public ngOnInit(): void {
+		this.eventsApi.getEvent(this.eventId).then(event => {
+			this.event = event;
+		});
+	}
+}

+ 1 - 0
src/RunnersMeet.Client/src/app/pages/view-event-page/view-event-page.component.html

@@ -0,0 +1 @@
+<app-event-view [eventId]="eventId"></app-event-view>

+ 0 - 0
src/RunnersMeet.Client/src/app/pages/view-event-page/view-event-page.component.scss


+ 23 - 0
src/RunnersMeet.Client/src/app/pages/view-event-page/view-event-page.component.spec.ts

@@ -0,0 +1,23 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ViewEventPageComponent } from './view-event-page.component';
+
+describe('ViewEventPageComponent', () => {
+  let component: ViewEventPageComponent;
+  let fixture: ComponentFixture<ViewEventPageComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ ViewEventPageComponent ]
+    })
+    .compileComponents();
+
+    fixture = TestBed.createComponent(ViewEventPageComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

+ 18 - 0
src/RunnersMeet.Client/src/app/pages/view-event-page/view-event-page.component.ts

@@ -0,0 +1,18 @@
+import { Component } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+
+@Component({
+	selector: 'app-view-event-page',
+	templateUrl: './view-event-page.component.html',
+	styleUrls: ['./view-event-page.component.scss']
+})
+export class ViewEventPageComponent {
+	public eventId: string = '';
+
+	public constructor(route: ActivatedRoute) {
+		route.params.subscribe(params => {
+			const oid = params['oid'];
+			this.eventId = oid;
+		});
+	}
+}