Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<div *ngIf="isLoggedIn">
<app-navbar></app-navbar>
<app-navbar (navToggle)="onNavToggle($event)"></app-navbar>
</div>
<div id="content">
<div id="content" [class.nav-visible]="isNavVisible">
<div id="mainBody">
<router-outlet></router-outlet>
</div>
Expand Down
6 changes: 5 additions & 1 deletion src/app/app.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@

#content {
@media (min-width: $screen-md-min) {
padding-left: $navWidth;
padding-left: 0;
transition: padding-left 0.3s ease-in-out;
&.nav-visible {
padding-left: $navWidth;
}
}
}
5 changes: 5 additions & 0 deletions src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ import { LoggedInService } from "@shared/services/loggedin.service";
export class AppComponent {
title = "OS2IoT-frontend";
isLoggedIn = true;
isNavVisible = true;

onNavToggle(isVisible: boolean) {
this.isNavVisible = isVisible;
}

constructor(private loggedInService: LoggedInService) {
loggedInService.changeEmitted?.subscribe(change => {
Expand Down
7 changes: 6 additions & 1 deletion src/app/navbar/navbar.component.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<nav
class="navbar navbar-expand-md navbar-light d-md-flex align-items-md-start flex-md-column p-3"
class="navbar-container navbar navbar-expand-md navbar-light d-md-flex align-items-md-start flex-md-column p-3"
aria-expanded="false"
[class.nav-visible]="isVisible"
>
<img class="img-logo" alt="OS2IoT-logo" [src]="imagePath" />

Expand Down Expand Up @@ -139,3 +140,7 @@
</div>
</ng-template>
</nav>

<div [class.nav-visible-button]="isVisible" class="toggle-button" (click)="toggleNavbar()">
<mat-icon class="icon-arrow-nav rotate" svgIcon="nav-arrow"></mat-icon>
</div>
57 changes: 57 additions & 0 deletions src/app/navbar/navbar.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,60 @@ button:focus,
}
}
}

.toggle-button {
top: 50%;
position: absolute;
width: 18px;
height: 40px;
left: 0px;
display: flex;
align-items: center;
justify-content: center;
background-color: $color-neutral-200;
padding: 0 2px 0 0;
border-radius: 0 5px 5px 0;
transition: left 0.3s ease-in-out, border-radius 0.3s ease-in-out;

&:hover {
background-color: $color-link-active-bg;
}

&:hover .icon-arrow-nav {
color: $white;
}

&.nav-visible-button {
border-radius: 5px 0 0 5px;
left: 248px;
padding: 0 0 0 2px;
.icon-arrow-nav {
transform: rotate(0deg);
}
}
}

.icon-arrow-nav {
color: $default-color;
height: 40px;
width: 10px;
transform: rotate(180deg);
}

@media (max-width: 768px) {
.icon-arrow-nav,
.toggle-button,
.show-button,
.hide-button {
display: none;
}
}

.navbar-container {
transform: translateX(-100%);
transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;

&.nav-visible {
transform: translateX(0);
}
}
24 changes: 22 additions & 2 deletions src/app/navbar/navbar.component.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { Component, OnInit } from "@angular/core";
import { Component, EventEmitter, OnInit, Output } from "@angular/core";
import { MatIconRegistry } from "@angular/material/icon";
import { DomSanitizer } from "@angular/platform-browser";
import { Router } from "@angular/router";
import { Organisation } from "@app/admin/organisation/organisation.model";
import { PermissionType } from "@app/admin/permission/permission.model";
Expand Down Expand Up @@ -30,6 +32,8 @@ export class NavbarComponent implements OnInit {
isLoginMode = true;
user: User;

isVisible = true;

userInfo: CurrentUserInfoResponse;
faSignInAlt = faSignInAlt;
imagePath = "../../assets/images/os2iot.png ";
Expand All @@ -41,11 +45,21 @@ export class NavbarComponent implements OnInit {
private sharedVariableService: SharedVariableService,
private loggedInService: LoggedInService,
private meService: MeService,
private route: Router
private route: Router,
private matIconRegistry: MatIconRegistry,
private domSanitizer: DomSanitizer
) {
this.matIconRegistry.addSvgIcon(
"nav-arrow",
this.domSanitizer.bypassSecurityTrustResourceUrl("assets/images/arrows-up-to-line.svg"),
{}
);

translate.use("da");
}

@Output() navToggle = new EventEmitter<boolean>();

onLogout() {
this.authService.logout();
this.router.navigateByUrl("auth");
Expand Down Expand Up @@ -90,6 +104,7 @@ export class NavbarComponent implements OnInit {
this.getAllowedOrganizations();
this.organisations.sort((a, b) => a.name.localeCompare(b.name, "en", { numeric: true }));
this.selected = this.sharedVariableService.getSelectedOrganisationId();
this.navToggle.emit(this.isVisible);
}

getAllowedOrganizations() {
Expand Down Expand Up @@ -132,6 +147,11 @@ export class NavbarComponent implements OnInit {
}
}

public toggleNavbar() {
this.isVisible = !this.isVisible;
this.navToggle.emit(this.isVisible);
}

setSelectedOrganisation(value: number) {
this.sharedVariableService.setSelectedOrganisationId(value);
}
Expand Down
2 changes: 2 additions & 0 deletions src/app/navbar/navbar.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { NavbarComponent } from "./navbar.component";
import { SharedModule } from "../shared/shared.module";

// Services
import { MatIconModule } from "@angular/material/icon";
import { RouterModule } from "@angular/router";
import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
import { TranslateModule } from "@ngx-translate/core";
Expand All @@ -27,6 +28,7 @@ import { GlobalAdminComponent } from "./global-admin/global-admin.component";
NGMaterialModule,
InlineSVGModule,
NgOptimizedImage,
MatIconModule,
],
exports: [NavbarComponent],
providers: [RestService, NavbarComponent],
Expand Down
7 changes: 5 additions & 2 deletions src/app/shared/shared-variable/shared-variable.service.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import { Injectable } from "@angular/core";
import { Organisation, OrganisationGetMinimalResponse } from "@app/admin/organisation/organisation.model";
import { OrganisationService } from "@app/admin/organisation/organisation.service";
import { PermissionType } from "@app/admin/permission/permission.model";
import { UserMinimal, UserMinimalResponse } from "@app/admin/users/user-minimal.model";
import { UserMinimal } from "@app/admin/users/user-minimal.model";
import { UserMinimalService } from "@app/admin/users/user-minimal.service";
import { AuthService, CurrentUserInfoResponse } from "@auth/auth.service";
import { BehaviorSubject, Observable } from "rxjs";
Expand Down Expand Up @@ -68,6 +67,10 @@ export class SharedVariableService {
return this.organizationInfo;
}

getCurrentOrgRole(): string {
return "ss";
}

getUsername(): string {
return this.getUserInfo()?.user?.name;
}
Expand Down
5 changes: 5 additions & 0 deletions src/assets/images/arrows-up-to-line.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/assets/scss/setup/_variables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -391,5 +391,5 @@ $warning-color: #fde047;
$default-color: #525252;
$default-neutral-color: #d4d4d4;
$default-icon-color: #404040;

$color-neutral-200: #e5e5e5;
$selector-font-color: #737373;