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
-
-
-
- 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]()
+
{{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 @@
-
+