From f4978009b5518275d9a8b415ec7d953ceb991ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zieli=C5=84ski?= Date: Tue, 22 Aug 2023 18:32:17 +0200 Subject: [PATCH] MainView refactor --- Frontend/.eslintrc.json | 4 +- Frontend/angular.json | 2 +- Frontend/ngsw-config.json | 2 +- Frontend/src/app/app.component.ts | 2 +- Frontend/src/app/app.routes.ts | 6 +- .../main-menu/main-menu.component.html | 10 +++ .../main-menu/main-menu.component.scss | 0 .../main-menu/main-menu.component.ts | 17 ++++ .../notifications/notifications.component.ts | 2 +- .../app/main-view/main-view.component.html | 49 ----------- .../app/main-view/main-view.component.scss | 84 ------------------- .../dashboard/board/board.component.ts | 10 +-- .../layer-detail/layer-detail.component.scss | 1 - .../layer-detail/layer-detail.component.ts | 2 +- .../layer-edit/layer-edit.component.scss | 2 - .../layers/layer-edit/layer-edit.component.ts | 2 +- .../layers-list/layers-list.component.scss | 1 - .../layers-list/layers-list.component.ts | 2 +- .../login/login-view.component.html} | 0 .../login/login-view.component.scss} | 20 +++-- .../login/login-view.component.ts} | 8 +- .../app/views/main/main-view.component.html | 45 ++++++++++ .../app/views/main/main-view.component.scss | 77 +++++++++++++++++ .../main}/main-view.component.ts | 12 +-- Frontend/src/index.html | 2 +- 25 files changed, 193 insertions(+), 169 deletions(-) create mode 100644 Frontend/src/app/components/main-menu/main-menu.component.html create mode 100644 Frontend/src/app/components/main-menu/main-menu.component.scss create mode 100644 Frontend/src/app/components/main-menu/main-menu.component.ts delete mode 100644 Frontend/src/app/main-view/main-view.component.html delete mode 100644 Frontend/src/app/main-view/main-view.component.scss rename Frontend/src/app/{components/login-page/login-page.component.html => views/login/login-view.component.html} (100%) rename Frontend/src/app/{components/login-page/login-page.component.scss => views/login/login-view.component.scss} (91%) rename Frontend/src/app/{components/login-page/login-page.component.ts => views/login/login-view.component.ts} (91%) create mode 100644 Frontend/src/app/views/main/main-view.component.html create mode 100644 Frontend/src/app/views/main/main-view.component.scss rename Frontend/src/app/{main-view => views/main}/main-view.component.ts (82%) diff --git a/Frontend/.eslintrc.json b/Frontend/.eslintrc.json index c7a3034..d328011 100644 --- a/Frontend/.eslintrc.json +++ b/Frontend/.eslintrc.json @@ -19,7 +19,7 @@ "error", { "type": "attribute", - "prefix": "app", + "prefix": "diunabi", "style": "camelCase" } ], @@ -27,7 +27,7 @@ "error", { "type": "element", - "prefix": "app", + "prefix": "diunabi", "style": "kebab-case" } ] diff --git a/Frontend/angular.json b/Frontend/angular.json index e3ed441..77ecddb 100644 --- a/Frontend/angular.json +++ b/Frontend/angular.json @@ -12,7 +12,7 @@ }, "root": "", "sourceRoot": "src", - "prefix": "app", + "prefix": "ipms", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", diff --git a/Frontend/ngsw-config.json b/Frontend/ngsw-config.json index f8bf210..7f64241 100644 --- a/Frontend/ngsw-config.json +++ b/Frontend/ngsw-config.json @@ -3,7 +3,7 @@ "index": "/index.html", "assetGroups": [ { - "name": "app", + "name": "diunabi", "installMode": "prefetch", "resources": { "files": [ diff --git a/Frontend/src/app/app.component.ts b/Frontend/src/app/app.component.ts index cba7e9b..b8febb4 100644 --- a/Frontend/src/app/app.component.ts +++ b/Frontend/src/app/app.component.ts @@ -6,7 +6,7 @@ import { NotificationsService } from './services/notifications.service'; import { filter } from 'rxjs'; @Component({ - selector: 'app-root', + selector: 'diunabi-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], standalone: true, diff --git a/Frontend/src/app/app.routes.ts b/Frontend/src/app/app.routes.ts index 38f4f98..36f2d5b 100644 --- a/Frontend/src/app/app.routes.ts +++ b/Frontend/src/app/app.routes.ts @@ -1,12 +1,12 @@ import { Route } from '@angular/router'; import { AuthGuard } from './auth/auth.guard'; -import { LoginPageComponent } from './components/login-page/login-page.component'; -import { MainViewComponent } from './main-view/main-view.component'; +import { LoginViewComponent } from './views/login/login-view.component'; +import { MainViewComponent } from './views/main/main-view.component'; export const APP_ROUTES: Route[] = [ { path: '', - component: LoginPageComponent, + component: LoginViewComponent, }, { path: 'app', diff --git a/Frontend/src/app/components/main-menu/main-menu.component.html b/Frontend/src/app/components/main-menu/main-menu.component.html new file mode 100644 index 0000000..c0f323b --- /dev/null +++ b/Frontend/src/app/components/main-menu/main-menu.component.html @@ -0,0 +1,10 @@ + + + dashboard + Dashboard + + + table + Layers + + \ No newline at end of file diff --git a/Frontend/src/app/components/main-menu/main-menu.component.scss b/Frontend/src/app/components/main-menu/main-menu.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/Frontend/src/app/components/main-menu/main-menu.component.ts b/Frontend/src/app/components/main-menu/main-menu.component.ts new file mode 100644 index 0000000..896e40b --- /dev/null +++ b/Frontend/src/app/components/main-menu/main-menu.component.ts @@ -0,0 +1,17 @@ +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { RouterLink, RouterLinkActive } from '@angular/router'; + +@Component({ + selector: 'diunabi-main-menu', + standalone: true, + imports: [CommonModule, MatSidenavModule, MatIconModule, MatListModule, RouterLink, RouterLinkActive], + templateUrl: './main-menu.component.html', + styleUrls: ['./main-menu.component.scss'] +}) +export class MainMenuComponent { + +} \ No newline at end of file diff --git a/Frontend/src/app/components/notifications/notifications.component.ts b/Frontend/src/app/components/notifications/notifications.component.ts index 7cc1fb0..d35123e 100644 --- a/Frontend/src/app/components/notifications/notifications.component.ts +++ b/Frontend/src/app/components/notifications/notifications.component.ts @@ -4,7 +4,7 @@ import { MatCardModule } from '@angular/material/card'; import { NgFor, NgIf } from '@angular/common'; @Component({ - selector: 'app-notifications', + selector: 'diunabi-notifications', templateUrl: './notifications.component.html', styleUrls: ['./notifications.component.scss'], standalone: true, diff --git a/Frontend/src/app/main-view/main-view.component.html b/Frontend/src/app/main-view/main-view.component.html deleted file mode 100644 index 89f137e..0000000 --- a/Frontend/src/app/main-view/main-view.component.html +++ /dev/null @@ -1,49 +0,0 @@ -
- -
-
-
- Flip the device.
- screen_rotation -
-
-
- - -

{{environment.appName}}

- - - - {{auth$.user.userName}} - - -
- - - - - dashboard - Dashboard - - - table - Layers - - - - {{appVersion}} - - - -  © DiunaBI {{currentDate | date: 'yyyy'}} - - - - - - -
\ No newline at end of file diff --git a/Frontend/src/app/main-view/main-view.component.scss b/Frontend/src/app/main-view/main-view.component.scss deleted file mode 100644 index 8632981..0000000 --- a/Frontend/src/app/main-view/main-view.component.scss +++ /dev/null @@ -1,84 +0,0 @@ -.main-container { - display: flex; - flex-direction: column; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; -} -.sidenav-container { - flex: 1; -} -mat-icon.menu-icon { - margin-right: 3px; - color: gray; -} -mat-nav-list.menu-sublist { - padding-left: 10px; -} -mat-nav-list.menu-sublist > a { - font-size: small; -} - -.fill-to-right { - flex: 1 1 auto; -} -span.topbar-user-name { - font-size: small; -} -h1.topbar-app-name { - margin-bottom: 0px; -} -mat-sidenav { - width: 200px; -} -input[disabled] { - color: black; - -webkit-text-fill-color: black; - opacity: 1; /* required on iOS */ -} -textarea[disabled] { - color: black; - -webkit-text-fill-color: black; - opacity: 1; /* required on iOS */ -} -.loading-container { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(100, 100, 100, 0.3); - z-index: 1400; -} -.loading-img { - position: absolute; - margin: auto; - top: 0; - left: 0; - right: 0; - bottom: 0; -} -.flip-container { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(100, 100, 100, 0.95); - z-index: 1500; -} -.flip-msg { - margin: auto; - text-align: center; - padding-top: 45vh; - color: rgb(205, 206, 177); - font-size: larger; -} - -/* links */ -a:link, -a:visited { - color: black; -} \ No newline at end of file diff --git a/Frontend/src/app/modules/dashboard/board/board.component.ts b/Frontend/src/app/modules/dashboard/board/board.component.ts index 7b0921e..8526e0e 100644 --- a/Frontend/src/app/modules/dashboard/board/board.component.ts +++ b/Frontend/src/app/modules/dashboard/board/board.component.ts @@ -2,11 +2,11 @@ import { Component } from '@angular/core'; import { DeviceService } from 'src/app/services/device.service'; -@Component({ - selector: 'app-board', - templateUrl: './board.component.html', - styleUrls: ['./board.component.scss'], - standalone: true +@Component({ + selector: 'diunabi-board', + templateUrl: './board.component.html', + styleUrls: ['./board.component.scss'], + standalone: true }) export class BoardComponent { constructor( diff --git a/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.scss b/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.scss index b199958..e69de29 100644 --- a/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.scss +++ b/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.scss @@ -1 +0,0 @@ -@import "../../../main-view/main-view.component.scss"; \ No newline at end of file diff --git a/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.ts b/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.ts index 4e160c6..f33b2ca 100644 --- a/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.ts +++ b/Frontend/src/app/modules/layers/layer-detail/layer-detail.component.ts @@ -17,7 +17,7 @@ import { MatToolbarModule } from '@angular/material/toolbar'; import { MatCardModule } from '@angular/material/card'; @Component({ - selector: 'app-layer-detail', + selector: 'diunabi-layer-detail', templateUrl: './layer-detail.component.html', styleUrls: ['./layer-detail.component.scss'], standalone: true, diff --git a/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.scss b/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.scss index 561ea11..854c51e 100644 --- a/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.scss +++ b/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.scss @@ -1,5 +1,3 @@ -@import "../../../main-view/main-view.component.scss"; - .file-input { display: none; } \ No newline at end of file diff --git a/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.ts b/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.ts index 4e81854..8805cad 100644 --- a/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.ts +++ b/Frontend/src/app/modules/layers/layer-edit/layer-edit.component.ts @@ -22,7 +22,7 @@ import { MatToolbarModule } from '@angular/material/toolbar'; import { MatCardModule } from '@angular/material/card'; @Component({ - selector: 'app-layer-edit', + selector: 'diunabi-layer-edit', templateUrl: './layer-edit.component.html', styleUrls: ['./layer-edit.component.scss'], standalone: true, diff --git a/Frontend/src/app/modules/layers/layers-list/layers-list.component.scss b/Frontend/src/app/modules/layers/layers-list/layers-list.component.scss index b199958..e69de29 100644 --- a/Frontend/src/app/modules/layers/layers-list/layers-list.component.scss +++ b/Frontend/src/app/modules/layers/layers-list/layers-list.component.scss @@ -1 +0,0 @@ -@import "../../../main-view/main-view.component.scss"; \ No newline at end of file diff --git a/Frontend/src/app/modules/layers/layers-list/layers-list.component.ts b/Frontend/src/app/modules/layers/layers-list/layers-list.component.ts index d186bf5..b20c9c6 100644 --- a/Frontend/src/app/modules/layers/layers-list/layers-list.component.ts +++ b/Frontend/src/app/modules/layers/layers-list/layers-list.component.ts @@ -15,7 +15,7 @@ import { MatIconModule } from '@angular/material/icon'; import { NgFor } from '@angular/common'; @Component({ - selector: 'app-layers-list', + selector: 'diunabi-layers-list', templateUrl: './layers-list.component.html', styleUrls: ['./layers-list.component.scss'], standalone: true, diff --git a/Frontend/src/app/components/login-page/login-page.component.html b/Frontend/src/app/views/login/login-view.component.html similarity index 100% rename from Frontend/src/app/components/login-page/login-page.component.html rename to Frontend/src/app/views/login/login-view.component.html diff --git a/Frontend/src/app/components/login-page/login-page.component.scss b/Frontend/src/app/views/login/login-view.component.scss similarity index 91% rename from Frontend/src/app/components/login-page/login-page.component.scss rename to Frontend/src/app/views/login/login-view.component.scss index 863294d..16a0240 100644 --- a/Frontend/src/app/components/login-page/login-page.component.scss +++ b/Frontend/src/app/views/login/login-view.component.scss @@ -4,17 +4,20 @@ background-size: cover; padding-top: 30vh; } + .container { width: fit-content; display: block; margin: auto; } + .form { display: flex; flex-direction: column; justify-content: center; align-items: center; } + .logo { background-image: url('../../../assets/logo.png'); background-size: cover; @@ -24,16 +27,20 @@ width: 250px; height: 250px; opacity: 0.6; - } +} + mat-form-field { width: 100%; } + .user { text-align: right; } + .load { text-align: center; } + .loading-container { position: absolute; left: 0; @@ -42,22 +49,25 @@ mat-form-field { bottom: 0; background-color: rgba(100, 100, 100, 0.3); z-index: 1400; - } - .loading-img { +} + +.loading-img { position: absolute; margin: auto; top: 0; left: 0; right: 0; bottom: 0; - } +} + /* for mobile */ @media screen and (max-width: 700px) { .container { width: 90%; } + .logo { width: 150px; height: 150px; } -} +} \ No newline at end of file diff --git a/Frontend/src/app/components/login-page/login-page.component.ts b/Frontend/src/app/views/login/login-view.component.ts similarity index 91% rename from Frontend/src/app/components/login-page/login-page.component.ts rename to Frontend/src/app/views/login/login-view.component.ts index c72493a..0c491ef 100644 --- a/Frontend/src/app/components/login-page/login-page.component.ts +++ b/Frontend/src/app/views/login/login-view.component.ts @@ -10,14 +10,14 @@ import { NgIf } from '@angular/common'; import { MatBottomSheetModule } from '@angular/material/bottom-sheet'; @Component({ - selector: 'app-login-page', - templateUrl: './login-page.component.html', - styleUrls: ['./login-page.component.scss'], + selector: 'diunabi-view-page', + templateUrl: './login-view.component.html', + styleUrls: ['./login-view.component.scss'], standalone: true, imports: [NgIf, MatCardModule, MatBottomSheetModule] }) -export class LoginPageComponent implements OnInit { +export class LoginViewComponent implements OnInit { constructor( private router$: Router, private auth$: AuthService, diff --git a/Frontend/src/app/views/main/main-view.component.html b/Frontend/src/app/views/main/main-view.component.html new file mode 100644 index 0000000..5c3f6d6 --- /dev/null +++ b/Frontend/src/app/views/main/main-view.component.html @@ -0,0 +1,45 @@ +
+ +
+
+
+ Flip the device.
+ screen_rotation +
+
+ + + + + + +  © DiunaBI {{currentDate | date: 'yyyy'}} + + + + + {{environment.appName}} +  {{appVersion}} +
+ + account_circle + Profile photo + + +
+ Profile photo +

{{auth$.user.userName}}

+
+ +
+
+
+ +
+
\ No newline at end of file diff --git a/Frontend/src/app/views/main/main-view.component.scss b/Frontend/src/app/views/main/main-view.component.scss new file mode 100644 index 0000000..566232c --- /dev/null +++ b/Frontend/src/app/views/main/main-view.component.scss @@ -0,0 +1,77 @@ +.loading-container { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: rgba(100, 100, 100, 0.3); + z-index: 1400; +} + +.loading-img { + position: absolute; + margin: auto; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.flip-container { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + background-color: rgba(100, 100, 100, 0.95); + z-index: 1500; +} + +.flip-msg { + margin: auto; + text-align: center; + padding-top: 45vh; + color: rgb(205, 206, 177); + font-size: larger; +} + +.fill-space { + flex: 1; +} + +.fill-to-right { + flex: 1 1 auto; +} + +.logo { + height: 4vh; + margin: 5px; +} + +.sidenav-content { + flex-direction: column; +} + +.mat-toolbar.mat-primary { + color: white; +} + +.app-content { + flex: 1; + margin: 0 auto; + padding: 2em; +} + +.profile-photo-small { + border-radius: 50%; +} + +.profile-photo-big { + width: 100px; + border-radius: 50%; +} + +.profile-info { + margin: 10px; + text-align: center; +} \ No newline at end of file diff --git a/Frontend/src/app/main-view/main-view.component.ts b/Frontend/src/app/views/main/main-view.component.ts similarity index 82% rename from Frontend/src/app/main-view/main-view.component.ts rename to Frontend/src/app/views/main/main-view.component.ts index de43402..0cc1e9c 100644 --- a/Frontend/src/app/main-view/main-view.component.ts +++ b/Frontend/src/app/views/main/main-view.component.ts @@ -1,27 +1,29 @@ import { Component, NgZone, ViewChild } from '@angular/core'; import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav'; import { NavigationStart, Router, RouterLink, RouterOutlet } from '@angular/router'; +import { MatMenuModule } from '@angular/material/menu'; import * as moment from 'moment'; import packageInfo from 'package.json'; import { delay } from 'rxjs'; import { environment } from 'src/environments/environment'; -import { AuthService } from '../auth/auth.service'; -import { DataService } from '../services/data.service'; -import { DeviceService } from '../services/device.service'; +import { AuthService } from '../../auth/auth.service'; +import { DataService } from '../../services/data.service'; +import { DeviceService } from '../../services/device.service'; import { MatDividerModule } from '@angular/material/divider'; import { MatListModule } from '@angular/material/list'; import { MatButtonModule } from '@angular/material/button'; import { MatToolbarModule } from '@angular/material/toolbar'; import { MatIconModule } from '@angular/material/icon'; import { NgIf, DatePipe } from '@angular/common'; +import { MainMenuComponent } from 'src/app/components/main-menu/main-menu.component'; @Component({ - selector: 'app-main-view', + selector: 'diunabi-main-view', templateUrl: './main-view.component.html', styleUrls: ['./main-view.component.scss'], standalone: true, imports: [NgIf, MatIconModule, MatToolbarModule, MatButtonModule, MatSidenavModule, - MatListModule, RouterLink, MatDividerModule, RouterOutlet, DatePipe] + MatListModule, RouterLink, MatDividerModule, RouterOutlet, DatePipe, MatMenuModule, MainMenuComponent] }) export class MainViewComponent { @ViewChild('snav') snav?: MatSidenav; diff --git a/Frontend/src/index.html b/Frontend/src/index.html index ec5ad18..935700e 100644 --- a/Frontend/src/index.html +++ b/Frontend/src/index.html @@ -15,7 +15,7 @@ - +