fix: fix slicing parameter in dashboard

This commit is contained in:
Desy Ayurianti 2024-09-20 14:59:54 +07:00
parent 4a77bab8f2
commit 30a4eae0d3
10 changed files with 112 additions and 38 deletions

View File

@ -8,6 +8,39 @@
</div> </div>
<div class="card-container"> <div class="card-container">
<div class="card-parameter">
<div>
<app-gauge-chart
[gaugeTitle]="nitrogenTitle"
[gaugeData]="nitrogenData"
[colorStops]="nitrogenColorStops"
[maxValue]="nitrogenMaxValue"
[satuanData]="nitrogenSatuanData">
</app-gauge-chart>
</div>
</div>
<div class="card-parameter">
<div>
<app-gauge-chart
[gaugeTitle]="pottasiumTitle"
[gaugeData]="pottasiumData"
[colorStops]="pottasiumColorStops"
[maxValue]="pottasiumMaxValue"
[satuanData]="pottasiumSatuanData">
</app-gauge-chart>
</div>
</div>
<div class="card-parameter">
<div>
<app-gauge-chart
[gaugeTitle]="phosphorusTitle"
[gaugeData]="phosphorusData"
[colorStops]="phosphorusColorStops"
[maxValue]="phosphorusMaxValue"
[satuanData]="phosphorusSatuanData">
</app-gauge-chart>
</div>
</div>
<div class="card-parameter"> <div class="card-parameter">
<div> <div>
<app-gauge-chart <app-gauge-chart
@ -32,29 +65,6 @@
</app-gauge-chart> </app-gauge-chart>
</div> </div>
</div> </div>
<div class="card-parameter">
<div>
<app-gauge-chart
[gaugeTitle]="suhuTitle"
[gaugeData]="suhuData"
[colorStops]="suhuColorStops"
[maxValue]="suhuMaxValue"
[satuanData]="suhuSatuanData">
</app-gauge-chart>
</div>
</div>
<div class="card-parameter">
<div>
<app-gauge-chart
[gaugeTitle]="kelembabanTanahTitle"
[gaugeData]="kelembabanTanahData"
[colorStops]="kelembabanTanahColorStops"
[maxValue]="kelembabanTanahMaxValue"
[satuanData]="kelembabanTanahSatuanData">
</app-gauge-chart>
</div>
</div>
</div> </div>
<div class="graph"> <div class="graph">

View File

@ -34,7 +34,7 @@
padding: 20px 0px 20px 0px; padding: 20px 0px 20px 0px;
border-radius: 8px; border-radius: 8px;
text-align: center; text-align: center;
flex: 1 1 40%; flex: 1 1 30%;
min-width: 200px; min-width: 200px;
} }
@ -55,13 +55,13 @@
} }
@media (max-width: 768px) { @media (max-width: 768px) {
.card-suhu, .card-cahaya, .card-kelembapan { .card-parameter{
flex: 1 1 45%; flex: 1 1 45%;
} }
} }
@media (max-width: 576px) { @media (max-width: 576px) {
.card-suhu, .card-cahaya, .card-kelembapan { .card-parameter{
flex: 1 1 100%; flex: 1 1 100%;
} }
} }

View File

@ -40,4 +40,25 @@ export class DashboardComponent{
kelembabanTanahSatuanData: string = '%'; kelembabanTanahSatuanData: string = '%';
kelembabanTanahTitle: string = 'Kelembapan Tanah'; kelembabanTanahTitle: string = 'Kelembapan Tanah';
//nitrogen
nitrogenData: number = 1063;
nitrogenColorStops: [number, string][] = [[0, '#364732'], [1, '#364732']];
nitrogenMaxValue: number = 2000;
nitrogenSatuanData: string = 'NPM';
nitrogenTitle: string = 'Nitrogen';
//pottasium
pottasiumData: number = 1000;
pottasiumColorStops: [number, string][] = [[0, '#472e49'], [1, '#472e49']];
pottasiumMaxValue: number = 2000;
pottasiumSatuanData: string = 'NPM';
pottasiumTitle: string = 'Pottasium';
//phospor
phosphorusData: number = 1000;
phosphorusColorStops: [number, string][] = [[0, '#663440'], [1, '#663440']];
phosphorusMaxValue: number = 2000;
phosphorusSatuanData: string = 'NPM';
phosphorusTitle: string = 'Phosporus';
} }

View File

@ -1,9 +1,10 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="row flex-nowrap"> <div class="row">
<div class="col-auto col-md-3 col-xl-2 px-sm-2 px-0 background"> <div class="col-auto col-md-3 col-xl-2 px-sm-2 px-0 background sidebar-fixed">
<app-sidebar></app-sidebar> <app-sidebar></app-sidebar>
</div> </div>
<div class="col py-3">
<div class="col py-3 content-area">
<router-outlet></router-outlet> <router-outlet></router-outlet>
</div> </div>
</div> </div>

View File

@ -1,4 +1,22 @@
.background{ .background {
background-color: #16423C; background-color: #16423C;
border-radius: 0px 15px 15px 0px; border-radius: 0px 15px 15px 0px;
} }
.sidebar-fixed {
position: fixed;
top: 0;
bottom: 0;
left: 0;
width: 16.67%;
z-index: 1000;
overflow-y: auto;
}
.content-area {
margin-left: 16.67%;
overflow-y: auto;
padding-left: 1rem;
padding-right: 1rem;
height: 100vh;
}

View File

@ -13,13 +13,13 @@
</li> --> </li> -->
</ul> </ul>
<hr> <hr>
<!-- <div class="dropdown pb-4"> <div class="dropdown pb-4">
<a href="#" class="d-flex align-items-center text-white text-decoration-none dropdown-toggle" id="dropdownUser1" data-bs-toggle="dropdown" aria-expanded="false"> <a href="#" class="d-flex align-items-center text-white text-decoration-none dropdown-toggle" id="dropdownUser1" data-bs-toggle="dropdown" aria-expanded="false">
<img src="https://github.com/mdo.png" alt="hugenerd" width="30" height="30" class="rounded-circle"> <img src="https://github.com/mdo.png" alt="hugenerd" width="30" height="30" class="rounded-circle">
<span class="d-none d-sm-inline mx-1">loser</span> <span class="d-none d-sm-inline mx-1">loser</span>
</a> </a>
<ul class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="dropdownUser1"> <ul class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="dropdownUser1">
<li><a class="dropdown-item" routerLink='/login'>Sign out</a></li> <li><a class="dropdown-item" routerLink='/auth'>Sign out</a></li>
</ul> </ul>
</div> --> </div>
</div> </div>

View File

@ -3,6 +3,10 @@
border-radius: 0px 15px 15px 0px; border-radius: 0px 15px 15px 0px;
} }
.container{
font-family: 'Poppins', sans-serif;
}
.title{ .title{
color: white; color: white;
} }

View File

@ -88,9 +88,6 @@ export class GaugeChartComponent {
style: { style: {
fontSize: '15px', fontSize: '15px',
fontFamily: 'Poppins, sans-serif', fontFamily: 'Poppins, sans-serif',
color: 'white',
backgroundColor: 'transparent',
border: 'none'
} }
} }
}] as Highcharts.SeriesSolidgaugeOptions[] }] as Highcharts.SeriesSolidgaugeOptions[]

View File

@ -1,9 +1,11 @@
<div class="container-graph"> <div class="container-graph">
<select class="form-select" id="parameterSelect" (change)="updateChart()"> <select class="form-select" id="parameterSelect" (change)="updateChart()">
<option value="humidity">Kelembaban Udara</option> <option value="humidity">Kelembaban Udara</option>
<option value="humidityTanah">Kelembaban Tanah</option>
<option value="temperature">Suhu</option> <option value="temperature">Suhu</option>
<option value="light">Intensitas Cahaya</option> <option value="light">Intensitas Cahaya</option>
<option value="nitrogen">Nitrogen</option>
<option value="phosphorus">Phosphorus</option>
<option value="pottasium">Pottasium</option>
</select> </select>
<select class="form-select" id="timeframeSelect" (change)="updateChart()"> <select class="form-select" id="timeframeSelect" (change)="updateChart()">

View File

@ -183,6 +183,9 @@ export class GraphComponent implements OnInit {
const suhuColor = '#8F5A62'; const suhuColor = '#8F5A62';
const intensitasCahayaColor = '#DF9B55'; const intensitasCahayaColor = '#DF9B55';
const humidityTanahColor = '#493e30'; const humidityTanahColor = '#493e30';
const nitrogenColor = '#364732';
const pottasiumColor = '#472e49';
const phosphorusColor = '#663440';
switch (parameter) { switch (parameter) {
case 'humidity': case 'humidity':
@ -209,6 +212,24 @@ export class GraphComponent implements OnInit {
newColor = humidityTanahColor; newColor = humidityTanahColor;
newLabels = timeframe === 'hourly' ? this.labelHourly : (timeframe === 'daily' ? this.labelDaily : this.labelMonthly); newLabels = timeframe === 'hourly' ? this.labelHourly : (timeframe === 'daily' ? this.labelDaily : this.labelMonthly);
break; break;
case 'nitrogen':
newLabel = timeframe === 'hourly' ? 'Nitrogen Per Jam' : (timeframe === 'daily' ? 'Nitrogen Harian' : 'Nitrogen Bulanan');
newData = timeframe === 'hourly' ? this.nitrogenData : (timeframe === 'daily' ? this.dailyNitrogenData : this.monthlyNitrogenData);
newColor = nitrogenColor;
newLabels = timeframe === 'hourly' ? this.labelHourly : (timeframe === 'daily' ? this.labelDaily : this.labelMonthly);
break;
case 'pottasium':
newLabel = timeframe === 'hourly' ? 'Pottasium Per Jam' : (timeframe === 'daily' ? 'Pottasium Harian' : 'Pottasium Bulanan');
newData = timeframe === 'hourly' ? this.pottasiumData : (timeframe === 'daily' ? this.dailyPottasiumData: this.monthlyPottasiumData);
newColor = pottasiumColor;
newLabels = timeframe === 'hourly' ? this.labelHourly : (timeframe === 'daily' ? this.labelDaily : this.labelMonthly);
break;
case 'phosphorus':
newLabel = timeframe === 'hourly' ? 'Phosphorus Per Jam' : (timeframe === 'daily' ? 'Phosphorus Harian' : 'Phosphorus Bulanan');
newData = timeframe === 'hourly' ? this.phosphorusData : (timeframe === 'daily' ? this.dailyPhosphorusData : this.monthlyPhosphorusData);
newColor = phosphorusColor;
newLabels = timeframe === 'hourly' ? this.labelHourly : (timeframe === 'daily' ? this.labelDaily : this.labelMonthly);
break;
default: default:
newLabel = 'Kelembapan Per Jam'; newLabel = 'Kelembapan Per Jam';
newData = this.humidityData; newData = this.humidityData;