From 386229d884b71a78198c3e1cfac2bddb2125f3dc Mon Sep 17 00:00:00 2001
From: Artem Dychenko <s192441@student.pg.edu.pl>
Date: Mon, 24 Feb 2025 23:11:31 +0100
Subject: [PATCH 1/3] add expansion panel for statistics and charts

---
 .../dashboard/dashboard.component.html        | 16 +++++++--
 .../dashboard/dashboard.component.scss        | 36 +++++++++++++++++++
 .../dashboard/dashboard.component.ts          | 15 +++++++-
 3 files changed, 64 insertions(+), 3 deletions(-)

diff --git a/src/app/components/dashboard/dashboard.component.html b/src/app/components/dashboard/dashboard.component.html
index cb0f201..99042da 100644
--- a/src/app/components/dashboard/dashboard.component.html
+++ b/src/app/components/dashboard/dashboard.component.html
@@ -1,6 +1,18 @@
 <app-page-wrapper>
   <div header>Monitoring and Analysis</div>
-
-  Dashboard content goes here
+  <mat-accordion class="accordion__header" multi>
+    <mat-expansion-panel class="accordion__panel">
+      <mat-expansion-panel-header class="accordion__panel-header">
+        <mat-panel-title class="accordion__panel-title"> Statistics </mat-panel-title>
+      </mat-expansion-panel-header>
+      <p>Statistics info</p>
+    </mat-expansion-panel>
+    <mat-expansion-panel class="accordion__panel">
+      <mat-expansion-panel-header class="accordion__panel-header">
+        <mat-panel-title class="accordion__panel-title"> Charts </mat-panel-title>
+      </mat-expansion-panel-header>
+      <p>Charts info</p>
+    </mat-expansion-panel>
+  </mat-accordion>
   <p-skeleton height="10rem" width="100%" />
 </app-page-wrapper>
diff --git a/src/app/components/dashboard/dashboard.component.scss b/src/app/components/dashboard/dashboard.component.scss
index 2995308..23599fd 100644
--- a/src/app/components/dashboard/dashboard.component.scss
+++ b/src/app/components/dashboard/dashboard.component.scss
@@ -1,4 +1,40 @@
+@use '../../../vars';
+@use 'sass:map';
+
 :host {
   height: 100%;
   width: 100%;
+
+  .actions {
+    display: flex;
+    gap: map.get(vars.$spacing, 'md');
+  }
+
+  .accordion__panel {
+    border-radius: map.get(vars.$radius, 'xs');
+    background-color: map.get(vars.$grey, 10);
+    padding: map.get(vars.$spacing, 'xs') map.get(vars.$spacing, 'xs');
+
+    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+
+    border-bottom: 1px solid map.get(vars.$grey, 30);
+
+    &:last-child {
+      border-bottom: none;
+    }
+
+    &-header {
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      transition: background-color 0.3s ease-in-out;
+
+      &:hover {
+        background-color: map.get(vars.$grey, 30);
+      }
+    }
+  }
+
 }
+
+
diff --git a/src/app/components/dashboard/dashboard.component.ts b/src/app/components/dashboard/dashboard.component.ts
index ad068b9..3357fa5 100644
--- a/src/app/components/dashboard/dashboard.component.ts
+++ b/src/app/components/dashboard/dashboard.component.ts
@@ -1,10 +1,23 @@
 import { Component } from '@angular/core';
 import { PageWrapperComponent } from '../page-wrapper/page-wrapper.component';
 import { Skeleton } from 'primeng/skeleton';
+import { MatExpansionModule } from '@angular/material/expansion';
+import {
+  MatExpansionPanel,
+  MatExpansionPanelDescription,
+  MatExpansionPanelTitle,
+} from '@angular/material/expansion';
 
 @Component({
   selector: 'app-dashboard',
-  imports: [PageWrapperComponent, Skeleton],
+  imports: [
+    PageWrapperComponent,
+    Skeleton,
+    MatExpansionPanel,
+    MatExpansionPanelTitle,
+    MatExpansionPanelDescription,
+    MatExpansionModule,
+  ],
   templateUrl: './dashboard.component.html',
   styleUrl: './dashboard.component.scss',
 })
-- 
GitLab


From 42ccd5b2f9c1e9324e6ce5d9d3e2ba677ab4f5fe Mon Sep 17 00:00:00 2001
From: Artem Dychenko <s192441@student.pg.edu.pl>
Date: Tue, 25 Feb 2025 16:26:47 +0100
Subject: [PATCH 2/3] add setting button

---
 .../dashboard/dashboard.component.html        |  9 +++++++-
 .../dashboard/dashboard.component.scss        | 18 +++++++++++++++
 .../dashboard/dashboard.component.ts          | 14 +++++++----
 .../page-wrapper/page-wrapper.component.html  |  5 +++-
 .../page-wrapper/page-wrapper.component.scss  | 19 +++++++++------
 .../page-wrapper.component.spec.ts            | 23 -------------------
 src/vars.scss                                 |  2 +-
 7 files changed, 52 insertions(+), 38 deletions(-)
 delete mode 100644 src/app/components/page-wrapper/page-wrapper.component.spec.ts

diff --git a/src/app/components/dashboard/dashboard.component.html b/src/app/components/dashboard/dashboard.component.html
index 99042da..750b51c 100644
--- a/src/app/components/dashboard/dashboard.component.html
+++ b/src/app/components/dashboard/dashboard.component.html
@@ -1,5 +1,12 @@
 <app-page-wrapper>
-  <div header>Monitoring and Analysis</div>
+  <div title>Monitoring and Analysis</div>
+
+  <div actions class="actions">
+    <button mat-fab class="settings-button" (click)="doNothing()">
+      <mat-icon>settings</mat-icon>
+    </button>
+  </div>
+
   <mat-accordion class="accordion__header" multi>
     <mat-expansion-panel class="accordion__panel">
       <mat-expansion-panel-header class="accordion__panel-header">
diff --git a/src/app/components/dashboard/dashboard.component.scss b/src/app/components/dashboard/dashboard.component.scss
index 23599fd..ce81b2a 100644
--- a/src/app/components/dashboard/dashboard.component.scss
+++ b/src/app/components/dashboard/dashboard.component.scss
@@ -8,8 +8,26 @@
   .actions {
     display: flex;
     gap: map.get(vars.$spacing, 'md');
+
+    .settings-button {
+      border-radius: map.get(vars.$radius, 'xs');
+      padding: map.get(vars.$spacing, 'xs') map.get(vars.$spacing, 'xs');
+
+      mat-icon {
+        font-size: 1.5rem;
+        color: white;
+      }
+    }
+
+    * {
+      background-color: vars.$textPrimary;
+    }
   }
 
+
+
+
+
   .accordion__panel {
     border-radius: map.get(vars.$radius, 'xs');
     background-color: map.get(vars.$grey, 10);
diff --git a/src/app/components/dashboard/dashboard.component.ts b/src/app/components/dashboard/dashboard.component.ts
index 3357fa5..72f611c 100644
--- a/src/app/components/dashboard/dashboard.component.ts
+++ b/src/app/components/dashboard/dashboard.component.ts
@@ -1,24 +1,28 @@
-import { Component } from '@angular/core';
+import { Component, signal } from '@angular/core';
 import { PageWrapperComponent } from '../page-wrapper/page-wrapper.component';
 import { Skeleton } from 'primeng/skeleton';
 import { MatExpansionModule } from '@angular/material/expansion';
 import {
   MatExpansionPanel,
-  MatExpansionPanelDescription,
   MatExpansionPanelTitle,
 } from '@angular/material/expansion';
+import { MatIcon } from '@angular/material/icon';
+import { MatFabButton } from '@angular/material/button';
 
 @Component({
   selector: 'app-dashboard',
   imports: [
-    PageWrapperComponent,
     Skeleton,
     MatExpansionPanel,
     MatExpansionPanelTitle,
-    MatExpansionPanelDescription,
     MatExpansionModule,
+    MatIcon,
+    PageWrapperComponent,
+    MatFabButton,
   ],
   templateUrl: './dashboard.component.html',
   styleUrl: './dashboard.component.scss',
 })
-export class DashboardComponent {}
+export class DashboardComponent {
+  doNothing() {}
+}
diff --git a/src/app/components/page-wrapper/page-wrapper.component.html b/src/app/components/page-wrapper/page-wrapper.component.html
index 60cb6e2..fae4904 100644
--- a/src/app/components/page-wrapper/page-wrapper.component.html
+++ b/src/app/components/page-wrapper/page-wrapper.component.html
@@ -1,5 +1,8 @@
 <div class="page-header">
-  <ng-content select="[header]"></ng-content>
+  <div class="page-header__title">
+    <ng-content select="[title]"></ng-content>
+  </div>
+  <ng-content select="[actions]"></ng-content>
 </div>
 <mat-divider />
 <div class="page-body">
diff --git a/src/app/components/page-wrapper/page-wrapper.component.scss b/src/app/components/page-wrapper/page-wrapper.component.scss
index 1a83647..cbaee29 100644
--- a/src/app/components/page-wrapper/page-wrapper.component.scss
+++ b/src/app/components/page-wrapper/page-wrapper.component.scss
@@ -5,21 +5,26 @@
   display: block;
   min-height: calc(100% - 2 * map.get(vars.$spacing, 'lg'));
 
-  margin: map.get(vars.$spacing, 'lg');
+  margin: map.get(vars.$spacing, 'xl');
   background-color: map.get(vars.$grey, 0);
   border-radius: map.get(vars.$radius, 'xs');
 
   .page {
     &-header {
-      padding: map.get(vars.$spacing, 'lg') map.get(vars.$spacing, 'lg')
-        map.get(vars.$spacing, 'xs');
-      font-family: Monoton, cursive;
-      font-size: map.get(vars.$text, 'xxl');
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding: map.get(vars.$spacing, 'lg') map.get(vars.$spacing, 'xxl')
+      map.get(vars.$spacing, 'xs');
+
+      &__title {
+        font-family: Monoton, cursive;
+        font-size: map.get(vars.$text, 'xxl');
+      }
     }
 
     &-body {
-      padding: map.get(vars.$spacing, 'xl') map.get(vars.$spacing, 'lg')
-        map.get(vars.$spacing, 'lg');
+      padding: map.get(vars.$spacing, 'xxl');
     }
   }
 }
diff --git a/src/app/components/page-wrapper/page-wrapper.component.spec.ts b/src/app/components/page-wrapper/page-wrapper.component.spec.ts
deleted file mode 100644
index 73525cc..0000000
--- a/src/app/components/page-wrapper/page-wrapper.component.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { PageWrapperComponent } from './page-wrapper.component';
-
-describe('PageWrapperComponent', () => {
-  let component: PageWrapperComponent;
-  let fixture: ComponentFixture<PageWrapperComponent>;
-
-  beforeEach(async () => {
-    await TestBed.configureTestingModule({
-      imports: [PageWrapperComponent]
-    })
-    .compileComponents();
-
-    fixture = TestBed.createComponent(PageWrapperComponent);
-    component = fixture.componentInstance;
-    fixture.detectChanges();
-  });
-
-  it('should create', () => {
-    expect(component).toBeTruthy();
-  });
-});
diff --git a/src/vars.scss b/src/vars.scss
index 4cdf01f..86e2872 100644
--- a/src/vars.scss
+++ b/src/vars.scss
@@ -1,4 +1,4 @@
-$textPrimary: #520000;
+$textPrimary: #9c0c0c;
 $error: #ff2525;
 $sidenavWidth: 256px;
 $headerHeight: 68px;
-- 
GitLab


From 3a39e285e7091186623c354516741c70fe3d0796 Mon Sep 17 00:00:00 2001
From: Artem Dychenko <s192441@student.pg.edu.pl>
Date: Tue, 25 Feb 2025 17:58:20 +0100
Subject: [PATCH 3/3] review changes

---
 .../dashboard/dashboard.component.html        |  2 +-
 .../dashboard/dashboard.component.scss        | 28 ++-----------------
 .../dashboard/dashboard.component.ts          | 10 ++-----
 src/vars.scss                                 |  2 +-
 4 files changed, 7 insertions(+), 35 deletions(-)

diff --git a/src/app/components/dashboard/dashboard.component.html b/src/app/components/dashboard/dashboard.component.html
index 750b51c..3545ab2 100644
--- a/src/app/components/dashboard/dashboard.component.html
+++ b/src/app/components/dashboard/dashboard.component.html
@@ -2,7 +2,7 @@
   <div title>Monitoring and Analysis</div>
 
   <div actions class="actions">
-    <button mat-fab class="settings-button" (click)="doNothing()">
+    <button mat-fab class="settings-button" (click)="openSettings()">
       <mat-icon>settings</mat-icon>
     </button>
   </div>
diff --git a/src/app/components/dashboard/dashboard.component.scss b/src/app/components/dashboard/dashboard.component.scss
index ce81b2a..1938814 100644
--- a/src/app/components/dashboard/dashboard.component.scss
+++ b/src/app/components/dashboard/dashboard.component.scss
@@ -10,12 +10,11 @@
     gap: map.get(vars.$spacing, 'md');
 
     .settings-button {
-      border-radius: map.get(vars.$radius, 'xs');
-      padding: map.get(vars.$spacing, 'xs') map.get(vars.$spacing, 'xs');
+      box-shadow: none;
 
       mat-icon {
-        font-size: 1.5rem;
-        color: white;
+        font-size: map.get(vars.$text, 'xl');
+        color: map.get(vars.$grey, 0);
       }
     }
 
@@ -24,35 +23,14 @@
     }
   }
 
-
-
-
-
   .accordion__panel {
-    border-radius: map.get(vars.$radius, 'xs');
     background-color: map.get(vars.$grey, 10);
-    padding: map.get(vars.$spacing, 'xs') map.get(vars.$spacing, 'xs');
 
     box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
-
     border-bottom: 1px solid map.get(vars.$grey, 30);
 
     &:last-child {
       border-bottom: none;
     }
-
-    &-header {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      transition: background-color 0.3s ease-in-out;
-
-      &:hover {
-        background-color: map.get(vars.$grey, 30);
-      }
-    }
   }
-
 }
-
-
diff --git a/src/app/components/dashboard/dashboard.component.ts b/src/app/components/dashboard/dashboard.component.ts
index 72f611c..f7bc6d7 100644
--- a/src/app/components/dashboard/dashboard.component.ts
+++ b/src/app/components/dashboard/dashboard.component.ts
@@ -1,11 +1,7 @@
-import { Component, signal } from '@angular/core';
+import { Component } from '@angular/core';
 import { PageWrapperComponent } from '../page-wrapper/page-wrapper.component';
 import { Skeleton } from 'primeng/skeleton';
 import { MatExpansionModule } from '@angular/material/expansion';
-import {
-  MatExpansionPanel,
-  MatExpansionPanelTitle,
-} from '@angular/material/expansion';
 import { MatIcon } from '@angular/material/icon';
 import { MatFabButton } from '@angular/material/button';
 
@@ -13,8 +9,6 @@ import { MatFabButton } from '@angular/material/button';
   selector: 'app-dashboard',
   imports: [
     Skeleton,
-    MatExpansionPanel,
-    MatExpansionPanelTitle,
     MatExpansionModule,
     MatIcon,
     PageWrapperComponent,
@@ -24,5 +18,5 @@ import { MatFabButton } from '@angular/material/button';
   styleUrl: './dashboard.component.scss',
 })
 export class DashboardComponent {
-  doNothing() {}
+  openSettings() {}
 }
diff --git a/src/vars.scss b/src/vars.scss
index 86e2872..4cdf01f 100644
--- a/src/vars.scss
+++ b/src/vars.scss
@@ -1,4 +1,4 @@
-$textPrimary: #9c0c0c;
+$textPrimary: #520000;
 $error: #ff2525;
 $sidenavWidth: 256px;
 $headerHeight: 68px;
-- 
GitLab