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',