Add team site
This commit is contained in:
parent
51d5283917
commit
112c37f7b5
@ -25,7 +25,8 @@
|
|||||||
"aot": false,
|
"aot": false,
|
||||||
"assets": [
|
"assets": [
|
||||||
"src/favicon.ico",
|
"src/favicon.ico",
|
||||||
"src/assets"
|
"src/assets",
|
||||||
|
"src/robots.txt"
|
||||||
],
|
],
|
||||||
"styles": [
|
"styles": [
|
||||||
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
|
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import {NotfoundComponent} from './containers/notfound/notfound.component';
|
|||||||
import {SearchComponent} from './containers/search/search.component';
|
import {SearchComponent} from './containers/search/search.component';
|
||||||
import {RegionDetailsComponent} from './containers/region-details/region-details.component';
|
import {RegionDetailsComponent} from './containers/region-details/region-details.component';
|
||||||
import {BookmarkListComponent} from './containers/bookmark-list/bookmark-list.component';
|
import {BookmarkListComponent} from './containers/bookmark-list/bookmark-list.component';
|
||||||
|
import {TeamComponent} from './containers/team/team.component';
|
||||||
|
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
@ -12,6 +13,7 @@ const routes: Routes = [
|
|||||||
{path: 'search', component: SearchComponent},
|
{path: 'search', component: SearchComponent},
|
||||||
{path: 'region/:id', component: RegionDetailsComponent},
|
{path: 'region/:id', component: RegionDetailsComponent},
|
||||||
{path: 'bookmark', component: BookmarkListComponent},
|
{path: 'bookmark', component: BookmarkListComponent},
|
||||||
|
{path: 'team', component: TeamComponent},
|
||||||
{path: '', redirectTo: 'home', pathMatch: 'full'},
|
{path: '', redirectTo: 'home', pathMatch: 'full'},
|
||||||
{path: '**', component: NotfoundComponent}
|
{path: '**', component: NotfoundComponent}
|
||||||
];
|
];
|
||||||
|
|||||||
@ -7,17 +7,17 @@
|
|||||||
<mat-drawer-container class="content">
|
<mat-drawer-container class="content">
|
||||||
<mat-drawer #drawer class="drawer">
|
<mat-drawer #drawer class="drawer">
|
||||||
<div class="nav">
|
<div class="nav">
|
||||||
<a mat-button routerLink="home" (click)="drawer.close()">
|
<a (click)="drawer.close()" mat-button routerLink="home" routerLinkActive="active">
|
||||||
<mat-icon>home</mat-icon>
|
<mat-icon>home</mat-icon>
|
||||||
<span>Home</span>
|
<span>Home</span>
|
||||||
</a>
|
</a>
|
||||||
<a (click)="drawer.close()" mat-button routerLink="bookmark">
|
<a (click)="drawer.close()" mat-button routerLink="bookmark" routerLinkActive="active">
|
||||||
<mat-icon>bookmark</mat-icon>
|
<mat-icon>bookmark</mat-icon>
|
||||||
<span>Your bookmarks</span>
|
<span>Your bookmarks</span>
|
||||||
</a>
|
</a>
|
||||||
<a mat-button routerLink="impressum" (click)="drawer.close()">
|
<a (click)="drawer.close()" mat-button routerLink="team" routerLinkActive="active">
|
||||||
<mat-icon>subject</mat-icon>
|
<mat-icon>group</mat-icon>
|
||||||
<span>Impressum</span>
|
<span>About us</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</mat-drawer>
|
</mat-drawer>
|
||||||
|
|||||||
@ -26,12 +26,20 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
>a {
|
a {
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
|
|
||||||
>span {
|
mat-icon {
|
||||||
padding-left: 2rem;
|
margin-right: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
color: #00ae00;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,6 +32,7 @@ import {BookmarkButtonComponent} from './components/bookmark-button/bookmark-but
|
|||||||
import {BookmarkListComponent} from './containers/bookmark-list/bookmark-list.component';
|
import {BookmarkListComponent} from './containers/bookmark-list/bookmark-list.component';
|
||||||
import {ShareButtonComponent} from './components/share-button/share-button.component';
|
import {ShareButtonComponent} from './components/share-button/share-button.component';
|
||||||
import {ShareDialogComponent} from './dialogs/share-dialog/share-dialog.component';
|
import {ShareDialogComponent} from './dialogs/share-dialog/share-dialog.component';
|
||||||
|
import {TeamComponent} from './containers/team/team.component';
|
||||||
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
@ -49,7 +50,8 @@ import {ShareDialogComponent} from './dialogs/share-dialog/share-dialog.componen
|
|||||||
BookmarkButtonComponent,
|
BookmarkButtonComponent,
|
||||||
BookmarkListComponent,
|
BookmarkListComponent,
|
||||||
ShareButtonComponent,
|
ShareButtonComponent,
|
||||||
ShareDialogComponent
|
ShareDialogComponent,
|
||||||
|
TeamComponent
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule,
|
BrowserModule,
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
height: 10rem;
|
height: 10rem;
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
|
align-self: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.region-details-header {
|
.region-details-header {
|
||||||
|
|||||||
21
frontend/src/app/containers/team/team.component.html
Normal file
21
frontend/src/app/containers/team/team.component.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<h1>Team</h1>
|
||||||
|
<div class="team-member-container">
|
||||||
|
<mat-card *ngFor="let member of team" class="member">
|
||||||
|
<img [alt]="member.imageUrl ? 'Image of ' + member.name : 'Placeholder'"
|
||||||
|
[src]="member.imageUrl ||'assets/placeholder.jpg'" class="image">
|
||||||
|
<div class="name-pos-container">
|
||||||
|
<span class="position">{{member.position}}</span>
|
||||||
|
<span class="name">{{member.name}}</span>
|
||||||
|
</div>
|
||||||
|
<table class="table">
|
||||||
|
<tr>
|
||||||
|
<td><span class="property">Course:</span></td>
|
||||||
|
<td>{{member.course}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><span class="property">Semester:</span></td>
|
||||||
|
<td>{{member.semester}}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</mat-card>
|
||||||
|
</div>
|
||||||
49
frontend/src/app/containers/team/team.component.scss
Normal file
49
frontend/src/app/containers/team/team.component.scss
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
:host {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.team-member-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-around;
|
||||||
|
|
||||||
|
.member {
|
||||||
|
|
||||||
|
margin: 1rem 0;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
width: 15rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name-pos-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
|
||||||
|
.name {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.position {
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.table {
|
||||||
|
.property {
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
25
frontend/src/app/containers/team/team.component.spec.ts
Normal file
25
frontend/src/app/containers/team/team.component.spec.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
|
||||||
|
|
||||||
|
import {TeamComponent} from './team.component';
|
||||||
|
|
||||||
|
describe('TeamComponent', () => {
|
||||||
|
let component: TeamComponent;
|
||||||
|
let fixture: ComponentFixture<TeamComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [TeamComponent]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(TeamComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
69
frontend/src/app/containers/team/team.component.ts
Normal file
69
frontend/src/app/containers/team/team.component.ts
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
import {Component, OnInit} from '@angular/core';
|
||||||
|
|
||||||
|
export interface TeamMember {
|
||||||
|
name: string;
|
||||||
|
position: string;
|
||||||
|
course: string;
|
||||||
|
semester: number;
|
||||||
|
imageUrl?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-team',
|
||||||
|
templateUrl: './team.component.html',
|
||||||
|
styleUrls: ['./team.component.scss']
|
||||||
|
})
|
||||||
|
export class TeamComponent implements OnInit {
|
||||||
|
|
||||||
|
readonly team: TeamMember[] = [
|
||||||
|
{
|
||||||
|
name: 'Patrick Gebhardt',
|
||||||
|
position: 'Frontend Developer',
|
||||||
|
course: 'Software Engineering (SEB)',
|
||||||
|
semester: 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lucas Hinderberger',
|
||||||
|
position: 'Operations',
|
||||||
|
course: 'Software Engineering (SEB)',
|
||||||
|
semester: 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Timo John',
|
||||||
|
position: 'Backend Developer',
|
||||||
|
course: 'Software Engineering (SEB)',
|
||||||
|
semester: 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Timo Volkmann',
|
||||||
|
position: 'Backend Developer',
|
||||||
|
course: 'Software Engineering (SEB)',
|
||||||
|
semester: 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Yannick von Hofen',
|
||||||
|
position: 'Management',
|
||||||
|
course: 'Transport und Logistik (MTL)',
|
||||||
|
semester: 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Thomas Schapper',
|
||||||
|
position: 'Management',
|
||||||
|
course: 'Transport und Logistik (MTL)',
|
||||||
|
semester: 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Nicolas Karon',
|
||||||
|
position: 'Management',
|
||||||
|
course: 'Transport und Logistik (MTL)',
|
||||||
|
semester: 3
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -5,14 +5,14 @@
|
|||||||
"sun_hours": "Sunny hours",
|
"sun_hours": "Sunny hours",
|
||||||
"precipitation": "Precipitation",
|
"precipitation": "Precipitation",
|
||||||
"humidity": "Humidity",
|
"humidity": "Humidity",
|
||||||
"alcohol_costs": "Alcohol costs",
|
"alcohol_costs": "Alcohol",
|
||||||
"food_costs": "Food costs",
|
"food_costs": "Food ",
|
||||||
"water_costs": "Water costs",
|
"water_costs": "Water",
|
||||||
"cheap_alcohol": "Cheap alcohol",
|
"cheap_alcohol": "Cheap alcohol",
|
||||||
"local_transportation_costs": "Public transport",
|
"local_transportation_costs": "Public transport",
|
||||||
"average_per_day_costs": "Average total costs",
|
"average_per_day_costs": "Total costs",
|
||||||
"entertainment_costs": "Entertainment costs",
|
"entertainment_costs": "Entertainment",
|
||||||
"accommodation_costs": "Accommodation costs",
|
"accommodation_costs": "Accommodation",
|
||||||
"cheap_food": "Cheap food",
|
"cheap_food": "Cheap food",
|
||||||
"cheap_water": "Cheap water",
|
"cheap_water": "Cheap water",
|
||||||
"cheap_transportations": "Cheap public transport",
|
"cheap_transportations": "Cheap public transport",
|
||||||
|
|||||||
BIN
frontend/src/assets/placeholder.jpg
Normal file
BIN
frontend/src/assets/placeholder.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
2
frontend/src/robots.txt
Normal file
2
frontend/src/robots.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
User-agent: *
|
||||||
|
Disallow: *
|
||||||
Loading…
Reference in New Issue
Block a user