diff --git a/src/app/auth/login-button/login-button.component.html b/src/app/auth/login-button/login-button.component.html new file mode 100644 index 0000000..377bceb --- /dev/null +++ b/src/app/auth/login-button/login-button.component.html @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/src/app/auth/login-button/login-button.component.scss b/src/app/auth/login-button/login-button.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/auth/login-button/login-button.component.spec.ts b/src/app/auth/login-button/login-button.component.spec.ts new file mode 100644 index 0000000..c18fdca --- /dev/null +++ b/src/app/auth/login-button/login-button.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoginButtonComponent } from './login-button.component'; + +describe('LoginButtonComponent', () => { + let component: LoginButtonComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [LoginButtonComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(LoginButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/auth/login-button/login-button.component.ts b/src/app/auth/login-button/login-button.component.ts new file mode 100644 index 0000000..ead96a9 --- /dev/null +++ b/src/app/auth/login-button/login-button.component.ts @@ -0,0 +1,28 @@ +import { Component, inject } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { ReactiveFormsModule } from '@angular/forms'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'login-button', + standalone: true, + imports: [ + MatButtonModule, + MatIconModule, + MatFormFieldModule, + MatTooltipModule, + ReactiveFormsModule, + ], + templateUrl: './login-button.component.html', + styleUrl: './login-button.component.scss' +}) +export class LoginButtonComponent { + private readonly router = inject(Router); + + login() { + this.router.navigate(['login']); + } +} diff --git a/src/app/auth/logoff-button/logoff-button.component.html b/src/app/auth/logoff-button/logoff-button.component.html new file mode 100644 index 0000000..e7e9ccf --- /dev/null +++ b/src/app/auth/logoff-button/logoff-button.component.html @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/src/app/auth/logoff-button/logoff-button.component.scss b/src/app/auth/logoff-button/logoff-button.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/auth/logoff-button/logoff-button.component.spec.ts b/src/app/auth/logoff-button/logoff-button.component.spec.ts new file mode 100644 index 0000000..d2523e2 --- /dev/null +++ b/src/app/auth/logoff-button/logoff-button.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LogoffButtonComponent } from './logoff-button.component'; + +describe('LogoffButtonComponent', () => { + let component: LogoffButtonComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [LogoffButtonComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(LogoffButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/auth/logoff-button/logoff-button.component.ts b/src/app/auth/logoff-button/logoff-button.component.ts new file mode 100644 index 0000000..a654728 --- /dev/null +++ b/src/app/auth/logoff-button/logoff-button.component.ts @@ -0,0 +1,28 @@ +import { Component, inject } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { ReactiveFormsModule } from '@angular/forms'; +import { ApiAuthenticationService } from '../../shared/services/api/api-authentication.service'; + +@Component({ + selector: 'logoff-button', + standalone: true, + imports: [ + MatButtonModule, + MatIconModule, + MatFormFieldModule, + MatTooltipModule, + ReactiveFormsModule, + ], + templateUrl: './logoff-button.component.html', + styleUrl: './logoff-button.component.scss' +}) +export class LogoffButtonComponent { + private readonly auth = inject(ApiAuthenticationService); + + logoff() { + this.auth.logout(); + } +} diff --git a/src/app/connections/connection-item/connection-item.component.ts b/src/app/connections/connection-item/connection-item.component.ts index 8a0e463..ce53d73 100644 --- a/src/app/connections/connection-item/connection-item.component.ts +++ b/src/app/connections/connection-item/connection-item.component.ts @@ -31,10 +31,6 @@ export class ConnectionItemComponent { constructor(@Inject(DOCUMENT) private document: Document) { } - ngOnInit() { - console.log('coonnn', this.connection()) - } - delete() { this.client.deleteConnection(this.connection().name); } diff --git a/src/app/navigation/topbar/topbar.component.html b/src/app/navigation/topbar/topbar.component.html index f69fce9..1283887 100644 --- a/src/app/navigation/topbar/topbar.component.html +++ b/src/app/navigation/topbar/topbar.component.html @@ -28,4 +28,10 @@ } + + @if (isLoggedIn) { + + } @else { + + } \ No newline at end of file diff --git a/src/app/navigation/topbar/topbar.component.ts b/src/app/navigation/topbar/topbar.component.ts index b67eb34..6773f66 100644 --- a/src/app/navigation/topbar/topbar.component.ts +++ b/src/app/navigation/topbar/topbar.component.ts @@ -10,6 +10,8 @@ import { HermesClientService } from '../../hermes-client.service'; import EventService from '../../shared/services/EventService'; import { Subscription } from 'rxjs'; import { ThemeComponent } from "../../theme/theme.component"; +import { LogoffButtonComponent } from "../../auth/logoff-button/logoff-button.component"; +import { LoginButtonComponent } from "../../auth/login-button/login-button.component"; @Component({ selector: 'topbar', @@ -21,6 +23,8 @@ import { ThemeComponent } from "../../theme/theme.component"; MatIconModule, MatToolbarModule, ThemeComponent, + LoginButtonComponent, + LogoffButtonComponent, ], providers: [AuthVisitorGuard], templateUrl: './topbar.component.html',