Skip to content

Commit c9953a5

Browse files
updates to use the new endpoints
1 parent 60ca96d commit c9953a5

File tree

14 files changed

+127
-129
lines changed

14 files changed

+127
-129
lines changed

src/app/applications/application.model.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { Datatarget } from "@applications/datatarget/datatarget.model";
44
import { ApplicationDeviceTypeUnion } from "@shared/enums/device-type";
55
import { ControlledProperty } from "@shared/models/controlled-property.model";
66
import { Organisation } from "../admin/organisation/organisation.model";
7-
import { ApplicationState } from "./enums/status.enum";
7+
import { ApplicationStatus } from "./enums/status.enum";
88
import { IotDevice } from "./iot-devices/iot-device.model";
99
import { ApplicationDeviceType } from "./models/application-device-type.model";
1010

11+
export type ApplicationWithStatus = Application & { statusCheck: "stable" | "alert" };
12+
1113
export class Application {
1214
public id: number;
1315
public createdAt: string;
@@ -20,7 +22,7 @@ export class Application {
2022
public updatedBy: number;
2123
public createdByName: string;
2224
public updatedByName: string;
23-
public status?: ApplicationState;
25+
public status?: ApplicationStatus;
2426
public startDate?: Date;
2527
public endDate?: Date;
2628
public category?: string;
@@ -41,7 +43,7 @@ export class ApplicationRequest {
4143
public name: string;
4244
public description: string;
4345
public organizationId: number;
44-
public status?: ApplicationState;
46+
public status?: ApplicationStatus;
4547
public startDate?: Date;
4648
public endDate?: Date;
4749
public category?: string;

src/app/applications/application.service.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { Application, ApplicationData, UpdateApplicationOrganization } from "@ap
44
import { forkJoin, Observable } from "rxjs";
55
import { map } from "rxjs/operators";
66
import { RestService } from "../shared/services/rest.service";
7+
import { ApplicationsFilterService } from "./applications-list/application-filter/applications-filter.service";
8+
import { ApplicationStatus, ApplicationStatusCheck } from "./enums/status.enum";
79
import { IotDevicesApplicationMapResponse } from "./iot-devices/iot-device.model";
810

911
interface GetApplicationParameters {
@@ -13,6 +15,9 @@ interface GetApplicationParameters {
1315
orderOn: string;
1416
organizationId?: number;
1517
permissionId?: number;
18+
status?: ApplicationStatus;
19+
statusCheck?: ApplicationStatusCheck;
20+
owner?: string;
1621
}
1722

1823
@Injectable({
@@ -21,7 +26,11 @@ interface GetApplicationParameters {
2126
export class ApplicationService {
2227
public id: number;
2328
public canEdit = false;
24-
constructor(private restService: RestService, private userMinimalService: UserMinimalService) {}
29+
constructor(
30+
private restService: RestService,
31+
private userMinimalService: UserMinimalService,
32+
private filterService: ApplicationsFilterService
33+
) {}
2534

2635
createApplication(body: any): Observable<ApplicationData> {
2736
return this.restService.post("application", body, { observe: "response" });
@@ -58,6 +67,10 @@ export class ApplicationService {
5867
);
5968
}
6069

70+
getApplicationFilterOptions(id: number): Observable<string[]> {
71+
return this.restService.get(`application/${id}/filter-information`);
72+
}
73+
6174
getApplications(
6275
limit: number,
6376
offset: number,
@@ -71,6 +84,9 @@ export class ApplicationService {
7184
offset,
7285
sort,
7386
orderOn,
87+
statusCheck: this.filterService.statusCheck === "All" ? null : this.filterService.statusCheck,
88+
status: this.filterService.status === "All" ? null : this.filterService.status,
89+
owner: this.filterService.owner === "All" ? null : this.filterService.owner,
7490
};
7591
if (permissionId) {
7692
body.permissionId = permissionId;
@@ -89,10 +105,6 @@ export class ApplicationService {
89105
return this.restService.get("application", body);
90106
}
91107

92-
getApplicationFilterOptions(id: number): Observable<string[]> {
93-
return this.restService.get(`application/${id}/filter-information`, {}, id);
94-
}
95-
96108
deleteApplication(id: number) {
97109
return this.restService.delete("application", id);
98110
}

src/app/applications/applications-list/application-filter/application-filter.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<div class="filter-selector-container">
1414
<div class="filter-title">Tilstand</div>
1515
<mat-form-field appearance="outline">
16-
<mat-select class="withoutArrow" [(value)]="status" (selectionChange)="onState($event)">
16+
<mat-select class="withoutArrow" [(value)]="status" (selectionChange)="onStatusCheck($event)">
1717
<mat-option *ngFor="let option of stateOptions" [value]="option.value">
1818
{{ option.label }}
1919
</mat-option>

src/app/applications/applications-list/application-filter/application-filter.component.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { MatFormFieldModule } from "@angular/material/form-field";
66
import { MatIconModule } from "@angular/material/icon";
77
import { MatSelectModule } from "@angular/material/select";
88
import { ApplicationService } from "@applications/application.service";
9-
import { ApplicationState, ApplicationStatus } from "@applications/enums/status.enum";
9+
import { ApplicationStatus, ApplicationStatusCheck } from "@applications/enums/status.enum";
1010
import { SharedVariableService } from "@shared/shared-variable/shared-variable.service";
11-
import { ApplicationsFilterService } from "../applications-filter.service";
11+
import { ApplicationsFilterService } from "./applications-filter.service";
1212

1313
@Component({
1414
selector: "app-application-filter",
@@ -38,26 +38,26 @@ export class ApplicationFilterComponent implements OnInit {
3838
});
3939
}
4040

41-
stateOptions: { label: string; value: ApplicationState | "All" }[] = [
41+
stateOptions: { label: string; value: ApplicationStatus | "All" }[] = [
4242
{ label: "Alle", value: "All" },
43-
{ label: "Ingen", value: ApplicationState["NONE"] },
44-
{ label: "In operation", value: ApplicationState["IN-OPERATION"] },
45-
{ label: "Project", value: ApplicationState["PROJECT"] },
46-
{ label: "Prototype", value: ApplicationState["PROTOTYPE"] },
47-
{ label: "other", value: ApplicationState["OTHER"] },
43+
{ label: "Ingen", value: ApplicationStatus["NONE"] },
44+
{ label: "In operation", value: ApplicationStatus["IN-OPERATION"] },
45+
{ label: "Project", value: ApplicationStatus["PROJECT"] },
46+
{ label: "Prototype", value: ApplicationStatus["PROTOTYPE"] },
47+
{ label: "other", value: ApplicationStatus["OTHER"] },
4848
];
4949

50-
statusOptions: { label: string; value: ApplicationStatus | "All" }[] = [
50+
statusOptions: { label: string; value: ApplicationStatusCheck | "All" }[] = [
5151
{ label: "Alle", value: "All" },
52-
{ label: "Alert", value: ApplicationStatus.WARNING },
53-
{ label: "Stable", value: ApplicationStatus.STABLE },
52+
{ label: "Alert", value: "alert" },
53+
{ label: "Stable", value: "stable" },
5454
];
5555

5656
ownerOptions: { label: string; value: string | "All" }[] = [];
5757

5858
loadOwnerOptions(orgId: number): void {
59-
this.applicationService.getApplicationFilterOptions(orgId).subscribe(options => {
60-
console.log(options);
59+
this.applicationService.getApplicationFilterOptions(1).subscribe(options => {
60+
console.log(options[0]);
6161
const optionsArray: { label: string; value: string }[] = [{ label: "Alle", value: "All" }];
6262
options.forEach(option => optionsArray.push({ label: option, value: option }));
6363
this.ownerOptions = optionsArray;
@@ -68,9 +68,9 @@ export class ApplicationFilterComponent implements OnInit {
6868
status: string = "All";
6969
owner: string = "All";
7070

71-
onState(event: any): void {
71+
onStatusCheck(event: any): void {
7272
console.log("Tilstand changed:", event.value);
73-
this.filterService.updateState(event.value);
73+
this.filterService.updateStatusCheck(event.value);
7474
}
7575

7676
onStatus(event: any): void {
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { Injectable } from "@angular/core";
2+
import { ApplicationStatus, ApplicationStatusCheck } from "@applications/enums/status.enum";
3+
import { BehaviorSubject } from "rxjs";
4+
5+
@Injectable({
6+
providedIn: "root",
7+
})
8+
export class ApplicationsFilterService {
9+
public status: ApplicationStatus | "All" = "All";
10+
11+
public statusCheck: ApplicationStatusCheck | "All" = "All";
12+
public owner: string | "All" = "All";
13+
14+
private valueChanges = new BehaviorSubject<{
15+
status: ApplicationStatus | "All";
16+
statusCheck: ApplicationStatusCheck | "All";
17+
owner: string;
18+
}>({
19+
status: this.status,
20+
statusCheck: this.statusCheck,
21+
owner: this.owner,
22+
});
23+
24+
filterChanges$ = this.valueChanges.asObservable();
25+
26+
updateStatus(newValue: ApplicationStatus | null) {
27+
this.status = newValue;
28+
this.emitChange();
29+
}
30+
31+
updateStatusCheck(newValue: ApplicationStatusCheck | null) {
32+
this.statusCheck = newValue;
33+
this.emitChange();
34+
}
35+
36+
updateOwner(newValue: string) {
37+
this.owner = newValue;
38+
this.emitChange();
39+
}
40+
41+
public resetFilter() {
42+
this.statusCheck = "All";
43+
this.status = "All";
44+
this.owner = "All";
45+
this.emitChange();
46+
}
47+
48+
private emitChange() {
49+
this.valueChanges.next({ statusCheck: this.statusCheck, status: this.status, owner: this.owner });
50+
}
51+
}

src/app/applications/applications-list/application-map/application-map.component.ts

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
import { Component, OnDestroy, OnInit } from "@angular/core";
22
import { MatCheckboxModule } from "@angular/material/checkbox";
3-
import { Application } from "@applications/application.model";
43
import { ApplicationService } from "@applications/application.service";
5-
import { ApplicationState, ApplicationStatus } from "@applications/enums/status.enum";
4+
import { ApplicationStatus, ApplicationStatusCheck } from "@applications/enums/status.enum";
65
import { IotDevicesApplicationMapResponse } from "@applications/iot-devices/iot-device.model";
76
import { MapCoordinates } from "@shared/components/map/map-coordinates.model";
87
import { SharedVariableService } from "@shared/shared-variable/shared-variable.service";
98
import { Subscription } from "rxjs";
10-
import { map } from "rxjs/operators";
119
import { SharedModule } from "../../../shared/shared.module";
12-
import { ApplicationsFilterService } from "../applications-filter.service";
10+
import { ApplicationsFilterService } from "../application-filter/applications-filter.service";
1311

1412
@Component({
1513
selector: "app-application-map",
@@ -20,7 +18,11 @@ import { ApplicationsFilterService } from "../applications-filter.service";
2018
})
2119
export class ApplicationMapComponent implements OnInit, OnDestroy {
2220
public devices: IotDevicesApplicationMapResponse[] = [];
23-
filterValues: { status: ApplicationStatus | "All"; state: ApplicationState | "All"; owner: string | "All" };
21+
filterValues: {
22+
status: ApplicationStatus | "All";
23+
statusCheck: ApplicationStatusCheck | "All";
24+
owner: string | "All";
25+
};
2426
private valueSubscription!: Subscription;
2527

2628
constructor(
@@ -75,19 +77,19 @@ export class ApplicationMapComponent implements OnInit, OnDestroy {
7577
}
7678

7779
getApplications(): void {
78-
this.applicationService
79-
.getApplications(100000, 0, "asc", "id")
80-
.pipe(
81-
map(applicationData => {
82-
const filteredApplications = this.filterService.SortApplications(applicationData.data as Application[]);
83-
return filteredApplications.map(app => app.id);
84-
})
85-
)
86-
.subscribe(mappedCoordinates => {
87-
this.applicationService.getApplicationDevicesForMap(mappedCoordinates).subscribe(data => {
88-
this.devices = data;
89-
this.mapDevicesToCoordinateList();
90-
});
91-
});
80+
// this.applicationService
81+
// .getApplications(100000, 0, "asc", "id")
82+
// .pipe(
83+
// map(applicationData => {
84+
// const filteredApplications = this.filterService.SortApplications(applicationData.data as Application[]);
85+
// return filteredApplications.map(app => app.id);
86+
// })
87+
// )
88+
// .subscribe(mappedCoordinates => {
89+
// this.applicationService.getApplicationDevicesForMap(mappedCoordinates).subscribe(data => {
90+
// this.devices = data;
91+
// this.mapDevicesToCoordinateList();
92+
// });
93+
// });
9294
}
9395
}

src/app/applications/applications-list/applications-filter.service.ts

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/app/applications/applications-list/applications-table/applications-table.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<app-table-sort-icon [sortDirection]="getSortDirection('status')" />
2424
</th>
2525
<td mat-cell *matCellDef="let application" class="status-container">
26-
<app-status-icon />
26+
<app-status-icon [iconType]="application.statusCheck" />
2727
</td>
2828
</ng-container>
2929

src/app/applications/applications-list/applications-table/applications-table.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import { ApplicationDialogModel } from "@shared/models/dialog.model";
2626
import { TableColumn } from "@shared/types/table.type";
2727
import { merge, Observable, of as observableOf } from "rxjs";
2828
import { catchError, map, startWith, switchMap } from "rxjs/operators";
29-
import { ApplicationsFilterService } from "../applications-filter.service";
29+
import { ApplicationsFilterService } from "../application-filter/applications-filter.service";
3030

3131
const columnDefinitions: TableColumn[] = [
3232
{
@@ -127,7 +127,7 @@ export class ApplicationsTableComponent implements AfterViewInit, OnInit {
127127
this.isLoadingResults = false;
128128
this.resultsLength = data.count;
129129

130-
return this.filterService.SortApplications(data.data);
130+
return data.data;
131131
}),
132132
catchError(() => {
133133
this.isLoadingResults = false;
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
import { recordToEntries } from "@shared/helpers/record.helper";
22

3-
export enum ApplicationState {
3+
export enum ApplicationStatus {
44
"NONE" = "NONE",
55
"IN-OPERATION" = "IN-OPERATION",
66
"PROJECT" = "PROJECT",
77
"PROTOTYPE" = "PROTOTYPE",
88
"OTHER" = "OTHER",
99
}
10+
export type ApplicationStatusCheck = "stable" | "alert";
1011

11-
export enum ApplicationStatus {
12-
WARNING = "WARNING",
13-
ALERT = "ALERT",
14-
STABLE = "STABLE",
15-
}
16-
17-
export const ApplicationStateEntries = recordToEntries(ApplicationState);
12+
export const ApplicationStatusEntries = recordToEntries(ApplicationStatus);

0 commit comments

Comments
 (0)