Add profile and settings page placeholders; Expand routing

This commit is contained in:
kevinpauer 2022-03-19 19:55:42 +01:00
parent e5f5b7014b
commit 9530d1b57f
12 changed files with 119 additions and 11 deletions

View File

@ -0,0 +1 @@
<p>bot-settings works!</p>

View File

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

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-bot-settings',
templateUrl: './bot-settings.component.html',
styleUrls: ['./bot-settings.component.scss']
})
export class BotSettingsComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -5,7 +5,18 @@
mat-icon-button mat-icon-button
class="example-icon favorite-icon" class="example-icon favorite-icon"
aria-label="Example icon-button with heart icon" aria-label="Example icon-button with heart icon"
[matMenuTriggerFor]="menu"
> >
<mat-icon>settings</mat-icon> <mat-icon>settings</mat-icon>
</button> </button>
<mat-menu #menu="matMenu">
<button mat-menu-item routerLink="/profile">
<mat-icon>account_circle</mat-icon>
<span>Profile</span>
</button>
<button mat-menu-item routerLink="/settings">
<mat-icon>ballot</mat-icon>
<span>Bot Settings</span>
</button>
</mat-menu>
</mat-toolbar> </mat-toolbar>

View File

@ -0,0 +1 @@
<p>profile works!</p>

View File

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

View File

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-profile',
templateUrl: './profile.component.html',
styleUrls: ['./profile.component.scss']
})
export class ProfileComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

View File

@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import { DashboardComponent } from './Views/dashboard/dashboard.component'; import { DashboardComponent } from './Views/dashboard/dashboard.component';
import { LoginComponent } from './Views/login/login.component'; import { LoginComponent } from './Views/login/login.component';
import { ProfileComponent } from './Views/profile/profile.component';
import { RegisterComponent } from './Views/register/register.component'; import { RegisterComponent } from './Views/register/register.component';
const routes: Routes = [ const routes: Routes = [
@ -17,6 +18,14 @@ const routes: Routes = [
path: 'register', path: 'register',
component: RegisterComponent, component: RegisterComponent,
}, },
{
path: 'profile',
component: ProfileComponent,
},
{
path: 'settings',
component: ProfileComponent,
},
]; ];
@NgModule({ @NgModule({

View File

@ -33,17 +33,17 @@ export class AppComponent {
(event as NavigationEnd).url === '/login' || (event as NavigationEnd).url === '/login' ||
(event as NavigationEnd).url === '/register' (event as NavigationEnd).url === '/register'
); );
if (this.tokenStorage.getToken()) { // if (this.tokenStorage.getToken()) {
this.isLoggedIn = true; // this.isLoggedIn = true;
} else { // } else {
this.isLoggedIn = false; // this.isLoggedIn = false;
} // }
if ( // if (
this.isLoggedIn === false && // this.isLoggedIn === false &&
(event as NavigationEnd).url != '/register' // (event as NavigationEnd).url != '/register'
) { // ) {
this.router.navigate(['/login']); // this.router.navigate(['/login']);
} // }
}); });
} }
} }

View File

@ -9,6 +9,7 @@ import { MatButtonModule } from '@angular/material/button';
import { MatGridListModule } from '@angular/material/grid-list'; import { MatGridListModule } from '@angular/material/grid-list';
import { MatCardModule } from '@angular/material/card'; import { MatCardModule } from '@angular/material/card';
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { MatMenuModule } from '@angular/material/menu';
import { AppRoutingModule } from './app-routing.module'; import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component'; import { AppComponent } from './app.component';
@ -17,6 +18,8 @@ import { HeaderComponent } from './Views/header/header.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { DashboardComponent } from './Views/dashboard/dashboard.component'; import { DashboardComponent } from './Views/dashboard/dashboard.component';
import { RegisterComponent } from './Views/register/register.component'; import { RegisterComponent } from './Views/register/register.component';
import { ProfileComponent } from './Views/profile/profile.component';
import { BotSettingsComponent } from './Views/bot-settings/bot-settings.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -25,6 +28,8 @@ import { RegisterComponent } from './Views/register/register.component';
HeaderComponent, HeaderComponent,
DashboardComponent, DashboardComponent,
RegisterComponent, RegisterComponent,
ProfileComponent,
BotSettingsComponent,
], ],
imports: [ imports: [
BrowserModule, BrowserModule,
@ -38,6 +43,7 @@ import { RegisterComponent } from './Views/register/register.component';
MatTableModule, MatTableModule,
FormsModule, FormsModule,
HttpClientModule, HttpClientModule,
MatMenuModule,
], ],
providers: [], providers: [],
bootstrap: [AppComponent], bootstrap: [AppComponent],