From a9d135f8ef15853c2811f21de9f9c4e6b075daa4 Mon Sep 17 00:00:00 2001
From: Fuzi_fauzia
Date: Mon, 19 Aug 2024 14:58:00 +0700
Subject: [PATCH] integrasi select floor per building id
---
src/app/_layout/footer/footer.component.html | 2 +-
.../building/building.component.html | 2 +
.../monitoring/building/building.component.ts | 55 ++++++++++++-------
.../service/monitoring-api.service.ts | 9 +++
src/app/login/login.component.html | 2 +-
5 files changed, 48 insertions(+), 22 deletions(-)
diff --git a/src/app/_layout/footer/footer.component.html b/src/app/_layout/footer/footer.component.html
index 7e3d083..a87c999 100644
--- a/src/app/_layout/footer/footer.component.html
+++ b/src/app/_layout/footer/footer.component.html
@@ -13,7 +13,7 @@
href="https://allbestsistem.com/"
target="_blank"
style="background-color: #ffffff !important;"
- >Smart Building Management Systems (V@2024-08-19.1)
+ >Smart Building Management Systems (V@2024-08-19.2)
diff --git a/src/app/content/hemat-app/monitoring/building/building.component.html b/src/app/content/hemat-app/monitoring/building/building.component.html
index fb72e4a..b998ff0 100644
--- a/src/app/content/hemat-app/monitoring/building/building.component.html
+++ b/src/app/content/hemat-app/monitoring/building/building.component.html
@@ -16,6 +16,7 @@
bindValue="id"
placeholder="Select Building"
[(ngModel)]="buildingSelected"
+ (change)="buildingChange($event)"
>
@@ -26,6 +27,7 @@
class="select-custom"
[items]="dataFloorList"
[searchable]="true"
+ [disabled]="disableFloorList"
bindLabel="name"
bindValue="id"
placeholder="Select Floor"
diff --git a/src/app/content/hemat-app/monitoring/building/building.component.ts b/src/app/content/hemat-app/monitoring/building/building.component.ts
index fdd393e..e60aaeb 100644
--- a/src/app/content/hemat-app/monitoring/building/building.component.ts
+++ b/src/app/content/hemat-app/monitoring/building/building.component.ts
@@ -21,6 +21,7 @@ export class BuildingComponent {
spinnerFilterActive = false;
typeData: any;
labelData: any;
+ disableFloorList = true;
dataBuildingList: any;
buildingSelected: any;
@@ -60,9 +61,9 @@ export class BuildingComponent {
showLabel: false,
},
};
- this.listBuilding(this.buildingSelected, this.floorSelected);
+
this.dataListBuilding();
- this.dataListFloor();
+ this.listBuilding(this.buildingSelected, this.floorSelected);
}
dataListBuilding() {
@@ -73,23 +74,28 @@ export class BuildingComponent {
});
}
- dataListFloor() {
- this.monitoringApiService.getMasterData().subscribe((data) => {
- const dataMasterFloor = data.results.data.find(
- (item) => item.name === "master_floor"
- );
- const listFloor = dataMasterFloor.headerDetailParam.sort(
- (a, b) => b.id - a.id
- );
- const newArray = listFloor
- .map((item) => ({
- id: item.id,
- name: `${item.name} (${item.code})`,
- }))
- .sort((a, b) => b.id - a.id);
+ buildingChange(e) {
+ if (e) {
+ this.dataListFloor(e.id);
+ this.disableFloorList = false;
+ } else {
+ this.floorSelected = null;
+ this.disableFloorList = true;
+ }
+ }
- this.dataFloorList = newArray;
- });
+ dataListFloor(buildingId) {
+ this.monitoringApiService
+ .getMasterDataListFloor(buildingId)
+ .subscribe((data) => {
+ const newArray = data.data
+ .map((item) => ({
+ id: item.id,
+ name: `${item.name} (${item.code})`,
+ }))
+ .sort((a, b) => b.id - a.id);
+ this.dataFloorList = newArray;
+ });
}
listBuilding(buildingId, floorId) {
@@ -116,9 +122,18 @@ export class BuildingComponent {
viewDetail(row) {
if (row.building_id !== undefined && row.floor_id === undefined) {
- this.router.navigate(["/monitoring/view-detail-floor", row.building_id, row.id]);
+ this.router.navigate([
+ "/monitoring/view-detail-floor",
+ row.building_id,
+ row.id,
+ ]);
} else if (row.building_id !== undefined && row.floor_id !== undefined) {
- this.router.navigate(["/monitoring/view-detail-room", row.building_id, row.floor_id, row.id]);
+ this.router.navigate([
+ "/monitoring/view-detail-room",
+ row.building_id,
+ row.floor_id,
+ row.id,
+ ]);
} else {
this.router.navigate(["/monitoring/view-detail-building", row.id]);
}
diff --git a/src/app/content/hemat-app/service/monitoring-api.service.ts b/src/app/content/hemat-app/service/monitoring-api.service.ts
index b7e386e..2301b82 100644
--- a/src/app/content/hemat-app/service/monitoring-api.service.ts
+++ b/src/app/content/hemat-app/service/monitoring-api.service.ts
@@ -72,6 +72,15 @@ export class BuildingService {
return this.http.get(url, { headers });
}
+ getMasterDataListFloor(buildingId): Observable {
+ const url = `https://kapi.absys.ninja/hemat/header-detail-param/list?headerId=6&building_id=${buildingId}`;
+ const headers = new HttpHeaders({
+ "Content-Type": "application/json",
+ "x-api-key": "j2yaYvPSQcsEEmHh3NEobfiXyyXmmnHT",
+ });
+ return this.http.get(url, { headers });
+ }
+
getMasterBuildingData(
page: number = 1,
limit: number = 100
diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html
index 7d70b4e..1255344 100644
--- a/src/app/login/login.component.html
+++ b/src/app/login/login.component.html
@@ -138,7 +138,7 @@
- (v@2024.08.19.1)
+ (v@2024.08.19.2)