Skip to content

Commit 41b4140

Browse files
IOT-1507: More gateway metadata (#158)
* Added new gateway metadata to table and details view * Added minwidths to gateway table
1 parent dcf75e1 commit 41b4140

File tree

12 files changed

+431
-145
lines changed

12 files changed

+431
-145
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { recordToEntries } from '@shared/helpers/record.helper';
1+
import { recordToEntries } from "@shared/helpers/record.helper";
22

33
export enum ApplicationStatus {
4-
'NONE' = 'NONE',
5-
'IN-OPERATION' = 'IN-OPERATION',
6-
'PROJECT' = 'PROJECT',
7-
'PROTOTYPE' = 'PROTOTYPE',
8-
'OTHER' = 'OTHER',
4+
"NONE" = "NONE",
5+
"IN-OPERATION" = "IN-OPERATION",
6+
"PROJECT" = "PROJECT",
7+
"PROTOTYPE" = "PROTOTYPE",
8+
"OTHER" = "OTHER",
99
}
1010

1111
export const ApplicationStatusEntries = recordToEntries(ApplicationStatus);
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import { Component, Inject, OnInit } from '@angular/core';
2-
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
3-
import { DialogModel } from '@shared/models/dialog.model';
1+
import { Component, Inject, OnInit } from "@angular/core";
2+
import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
3+
import { DialogModel } from "@shared/models/dialog.model";
44

55
@Component({
6-
selector: 'export-csv-dialog',
7-
templateUrl: './export-csv-dialog.component.html',
8-
styleUrls: ['./export-csv-dialog.component.scss'],
6+
selector: "export-csv-dialog",
7+
templateUrl: "./export-csv-dialog.component.html",
8+
styleUrls: ["./export-csv-dialog.component.scss"],
99
})
1010
export class ExportCsvDialogComponent implements OnInit {
11-
constructor(
12-
public dialog: MatDialogRef<ExportCsvDialogComponent>,
13-
@Inject(MAT_DIALOG_DATA) public dialogModel: DialogModel
14-
) {}
11+
constructor(
12+
public dialog: MatDialogRef<ExportCsvDialogComponent>,
13+
@Inject(MAT_DIALOG_DATA) public dialogModel: DialogModel
14+
) {}
1515

16-
ngOnInit(): void {}
16+
ngOnInit(): void {}
1717
}
Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,40 @@
1-
import moment from 'moment';
1+
import moment from "moment";
2+
import { recordToEntries } from "@shared/helpers/record.helper";
23

34
export enum GatewayStatusInterval {
4-
DAY = 'DAY',
5-
WEEK = 'WEEK',
6-
MONTH = 'MONTH',
5+
DAY = "DAY",
6+
WEEK = "WEEK",
7+
MONTH = "MONTH",
78
}
89

9-
export const gatewayStatusIntervalToDate = (
10-
interval: GatewayStatusInterval
11-
): Date => {
12-
const now = new Date();
10+
export const gatewayStatusIntervalToDate = (interval: GatewayStatusInterval): Date => {
11+
const now = new Date();
1312

14-
switch (interval) {
15-
case GatewayStatusInterval.WEEK:
16-
return moment(now).subtract(7, 'days').toDate();
17-
case GatewayStatusInterval.MONTH:
18-
return moment(now).subtract(30, 'days').toDate();
19-
default:
20-
return moment(now).subtract(1, 'days').toDate();
21-
}
13+
switch (interval) {
14+
case GatewayStatusInterval.WEEK:
15+
return moment(now).subtract(7, "days").toDate();
16+
case GatewayStatusInterval.MONTH:
17+
return moment(now).subtract(30, "days").toDate();
18+
default:
19+
return moment(now).subtract(1, "days").toDate();
20+
}
2221
};
22+
23+
export enum GatewayPlacement {
24+
"NONE" = "NONE",
25+
"OUTDOORS" = "OUTDOORS",
26+
"INDOORS" = "INDOORS",
27+
"OTHER" = "OTHER",
28+
}
29+
30+
export enum GatewaySetupStatus {
31+
"NONE" = "NONE",
32+
"IN-OPERATION" = "IN-OPERATION",
33+
"PROJECT" = "PROJECT",
34+
"PROTOTYPE" = "PROTOTYPE",
35+
"OTHER" = "OTHER",
36+
}
37+
38+
export const GatewayPlacementEntries = recordToEntries(GatewayPlacement);
39+
40+
export const GatewayStatusEntries = recordToEntries(GatewaySetupStatus);

src/app/gateway/gateway-detail/gateway-detail.component.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@ <h3>{{ 'GATEWAY.DETAILS' | translate }}</h3>
1010
<p><strong>{{ 'GATEWAY.ORGANIZATION' | translate }}</strong>{{gateway.organizationName}}</p>
1111
<app-general-details [data]="gateway"></app-general-details>
1212
<p><strong>{{ 'GATEWAY.TAGS' | translate }}</strong>{{gateway.tagsString}}</p>
13+
<p *ngIf="gateway.placement"><strong>{{ 'LORA-GATEWAY-TABLE.PLACEMENT' | translate }}</strong>{{'GATEWAY.PLACEMENT.' + gateway.placement | translate}}</p>
14+
<p *ngIf="gateway.modelName"><strong>{{ 'LORA-GATEWAY-TABLE.MODEL-NAME' | translate }}</strong>{{gateway.modelName}}</p>
15+
<p *ngIf="gateway.antennaType"><strong>{{ 'LORA-GATEWAY-TABLE.ANTENNA-TYPE' | translate }}</strong>{{gateway.antennaType}}</p>
16+
<p *ngIf="gateway.status"><strong>{{ 'LORA-GATEWAY-TABLE.STATUS' | translate }}</strong>{{'GATEWAY.STATUS.' + gateway.status | translate}}</p>
17+
<p *ngIf="gateway.gatewayResponsibleName"><strong>{{ 'LORA-GATEWAY-TABLE.RESPONSIBLE-NAME' | translate }}</strong>{{gateway.gatewayResponsibleName}}</p>
18+
<p *ngIf="gateway.gatewayResponsibleEmail"><strong>{{ 'LORA-GATEWAY-TABLE.RESPONSIBLE-EMAIL' | translate }}</strong>{{gateway.gatewayResponsibleEmail}}</p>
19+
<p *ngIf="gateway.gatewayResponsiblePhoneNumber"><strong>{{ 'LORA-GATEWAY-TABLE.RESPONSIBLE-PHONE-NUMBER' | translate }}</strong>{{gateway.gatewayResponsiblePhoneNumber}}</p>
20+
<p *ngIf="gateway.operationalResponsibleName"><strong>{{ 'LORA-GATEWAY-TABLE.OPERATIONAL-NAME' | translate }}</strong>{{gateway.operationalResponsibleName}}</p>
21+
<p *ngIf="gateway.operationalResponsibleEmail"><strong>{{ 'LORA-GATEWAY-TABLE.OPERATIONAL-EMAIL' | translate }}</strong>{{gateway.operationalResponsibleEmail}}</p>
1322
<p *ngIf="gateway.description">
1423
<strong>{{ 'GATEWAY.DESCRIPTION' | translate }}</strong>
1524
</p>

src/app/gateway/gateway-edit/gateway-edit.component.html

Lines changed: 94 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,35 @@
33
<div *ngIf="errorMessages" class="error-messages p-3">
44
<ul class="mb-0">
55
<li *ngFor="let error of errorMessages">
6-
{{error | translate}}
6+
{{ error | translate }}
77
</li>
88
</ul>
99
</div>
1010

1111
<div class="row">
1212
<div class="form-group mt-3">
13-
<label class="form-label" for="name">{{'QUESTION-LORA-GATEWAY.NAME' | translate}}</label>*
13+
<label class="form-label" for="name">{{ 'QUESTION-LORA-GATEWAY.NAME' | translate }}</label>*
1414
<input type="text" class="form-control" id="name" name="name"
15-
[placeholder]="'QUESTION-LORA-GATEWAY.NAME-PLACEHOLDER' | translate" maxlength="50" required
16-
[(ngModel)]="gateway.name"
17-
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('name'), 'is-valid' : formFailedSubmit && !errorFields.includes('name')}">
15+
[placeholder]="'QUESTION-LORA-GATEWAY.NAME-PLACEHOLDER' | translate" maxlength="50" required
16+
[(ngModel)]="gateway.name"
17+
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('name'), 'is-valid' : formFailedSubmit && !errorFields.includes('name')}">
1818
</div>
1919

2020
<div class="form-group mt-3">
21-
<label class="form-label" for="description">{{'QUESTION-LORA-GATEWAY.DESCRIPTION' | translate}}</label>
21+
<label class="form-label" for="description">{{ 'QUESTION-LORA-GATEWAY.DESCRIPTION' | translate }}</label>
2222
<textarea id="description" name="description"
23-
[placeholder]="'QUESTION-LORA-GATEWAY.DESCRIPTION-PLACEHOLDER' | translate" [maxLength]="1024" [rows]="6"
24-
class="form-control" [(ngModel)]="gateway.description"
25-
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('description'), 'is-valid' : formFailedSubmit && !errorFields.includes('description')}"></textarea>
23+
[placeholder]="'QUESTION-LORA-GATEWAY.DESCRIPTION-PLACEHOLDER' | translate" [maxLength]="1024"
24+
[rows]="6"
25+
class="form-control" [(ngModel)]="gateway.description"
26+
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('description'), 'is-valid' : formFailedSubmit && !errorFields.includes('description')}"></textarea>
2627
</div>
2728

2829
<div class="form-group mt-3">
29-
<label class="form-label" for="gatewayId">{{'QUESTION-LORA-GATEWAY.GATEWAYID' | translate}}</label>*
30+
<label class="form-label" for="gatewayId">{{ 'QUESTION-LORA-GATEWAY.GATEWAYID' | translate }}</label>*
3031
<input type="text" class="form-control" id="gatewayId" name="gatewayId"
31-
[placeholder]="'QUESTION-LORA-GATEWAY.GATEWAYID-PLACEHOLDER' | translate" required
32-
[(ngModel)]="gateway.gatewayId" [readonly]="editMode"
33-
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('gatewayId'), 'is-valid' : formFailedSubmit && !errorFields.includes('gatewayId')}">
32+
[placeholder]="'QUESTION-LORA-GATEWAY.GATEWAYID-PLACEHOLDER' | translate" required
33+
[(ngModel)]="gateway.gatewayId" [readonly]="editMode"
34+
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('gatewayId'), 'is-valid' : formFailedSubmit && !errorFields.includes('gatewayId')}">
3435
</div>
3536

3637
<div class="row thirty-height" *ngIf="gateway.location">
@@ -40,41 +41,112 @@
4041

4142
<div class="row mb-5">
4243
<div class="form-group mt-3 col-6">
43-
<label class="form-label" for="longitude">{{'GATEWAY.LONGITUDE' | translate}}</label>
44+
<label class="form-label" for="longitude">{{ 'GATEWAY.LONGITUDE' | translate }}</label>
4445
<input type="number" class="form-control" id="longitude" name="longitude" [placeholder]="'00'" required
4546
[(ngModel)]="gateway.location.longitude" step=".000001" min="-180" max="180" maxlength="12"
4647
(keyup)="onCoordinateKey($event)"
4748
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('longitude'), 'is-valid' : formFailedSubmit && !errorFields.includes('longitude')}">
4849
</div>
4950

5051
<div class="form-group mt-3 col-6">
51-
<label class="form-label" for="location.latitude">{{'GATEWAY.LATITUDE' | translate}}</label>
52+
<label class="form-label" for="location.latitude">{{ 'GATEWAY.LATITUDE' | translate }}</label>
5253
<input type="number" class="form-control" id="location.latitude" name="location.latitude" [placeholder]="'00'"
5354
required [(ngModel)]="gateway.location.latitude" step=".000001" min="-180" max="180" maxlength="12"
5455
(keyup)="onCoordinateKey($event)"
5556
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('latitude'), 'is-valid' : formFailedSubmit && !errorFields.includes('latitude')}">
5657
</div>
5758

5859
<div class="form-group mt-3 col-6">
59-
<label class="form-label" for="altitude">{{'GATEWAY.ALTITUDE' | translate}}</label>
60+
<label class="form-label" for="altitude">{{ 'GATEWAY.ALTITUDE' | translate }}</label>
6061
<input type="number" class="form-control" id="altitude" name="altitude" [placeholder]="00" required
6162
[(ngModel)]="gateway.location.altitude" step=".000001" min="-180" max="180" maxlength="9"
6263
(keyup)="onCoordinateKey($event)"
6364
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('altitude'), 'is-valid' : formFailedSubmit && !errorFields.includes('altitude')}">
6465
</div>
66+
<div class="form-group mt-3">
67+
<label class="form-label" for="placement">{{ 'GATEWAY.PLACEMENT-LABEL' | translate }}</label>
68+
<mat-select class="form-control" id="placement" name="gateway.placementOptions" [(ngModel)]="gateway.placement"
69+
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('placement'), 'is-valid' : formFailedSubmit && !errorFields.includes('placement')}">
70+
<mat-option *ngFor="let placementOption of placements" [value]="placementOption.value">
71+
{{ placementOption.label }}
72+
</mat-option>
73+
</mat-select>
74+
</div>
75+
<div class="form-group mt-3">
76+
<label class="form-label" for="modelName">{{ 'QUESTION-LORA-GATEWAY.MODEL-NAME' | translate }}</label>
77+
<input type="text" class="form-control" id="modelName" name="modelName"
78+
[placeholder]="'QUESTION-LORA-GATEWAY.MODEL-NAME-PLACEHOLDER' | translate"
79+
[(ngModel)]="gateway.modelName"
80+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('modelName'), 'is-valid': formFailedSubmit && !errorFields.includes('modelName')}">
81+
</div>
82+
<div class="form-group mt-3">
83+
<label class="form-label" for="antennaType">{{ 'QUESTION-LORA-GATEWAY.ANTENNA-TYPE' | translate }}</label>
84+
<input type="text" class="form-control" id="antennaType" name="antennaType"
85+
[placeholder]="'QUESTION-LORA-GATEWAY.ANTENNA-TYPE-PLACEHOLDER' | translate"
86+
[(ngModel)]="gateway.antennaType"
87+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('antennaType'), 'is-valid': formFailedSubmit && !errorFields.includes('antennaType')}">
88+
</div>
89+
<div class="form-group mt-3">
90+
<label class="form-label" for="status">{{ 'GATEWAY.STATUS-NAME' | translate }}</label>
91+
<mat-select class="form-control" id="status" name="gateway.statusOptions" [(ngModel)]="gateway.status"
92+
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('status'), 'is-valid' : formFailedSubmit && !errorFields.includes('status')}">
93+
<mat-option *ngFor="let statusOption of statuses" [value]="statusOption.value">
94+
{{ statusOption.label }}
95+
</mat-option>
96+
</mat-select>
97+
</div>
98+
<div class="form-group mt-3">
99+
<label class="form-label"
100+
for="gatewayResponsible">{{ 'QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE' | translate }}</label>
101+
<input type="text" class="form-control" id="gatewayResponsible" name="gatewayResponsible"
102+
[placeholder]="'QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE-PLACEHOLDER' | translate"
103+
[(ngModel)]="gateway.gatewayResponsibleName"
104+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('gatewayResponsibleName'), 'is-valid': formFailedSubmit && !errorFields.includes('gatewayResponsibleName')}">
105+
</div>
106+
<div class="form-group mt-3">
107+
<label class="form-label"
108+
for="gatewayResponsibleEmail">{{ 'QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE-CONTACT' | translate }}</label>
109+
<input type="text" class="form-control" id="gatewayResponsibleEmail" name="gatewayResponsibleEmail"
110+
[placeholder]="'QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE-CONTACT-PLACEHOLDER' | translate"
111+
[(ngModel)]="gateway.gatewayResponsibleEmail"
112+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('gatewayResponsibleEmail'), 'is-valid': formFailedSubmit && !errorFields.includes('gatewayResponsibleEmail')}">
113+
</div>
114+
<div class="form-group mt-3">
115+
<label class="form-label"
116+
for="gatewayResponsiblePhoneNumber">{{ 'QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE-CONTACT-NUMBER' | translate }}</label>
117+
<input type="text" class="form-control" id="gatewayResponsiblePhoneNumber" name="gatewayResponsiblePhoneNumber"
118+
[placeholder]="'QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE-CONTACT-NUMBER-PLACEHOLDER' | translate"
119+
[(ngModel)]="gateway.gatewayResponsiblePhoneNumber"
120+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('gatewayResponsiblePhoneNumber'), 'is-valid': formFailedSubmit && !errorFields.includes('gatewayResponsiblePhoneNumber')}">
121+
</div>
122+
<div class="form-group mt-3">
123+
<label class="form-label"
124+
for="operationalResponsibleName">{{ 'QUESTION-LORA-GATEWAY.OPERATION-RESPONSIBLE' | translate }}</label>
125+
<input type="text" class="form-control" id="operationalResponsibleName" name="operationalResponsibleName"
126+
[placeholder]="'QUESTION-LORA-GATEWAY.OPERATION-RESPONSIBLE-PLACEHOLDER' | translate"
127+
[(ngModel)]="gateway.operationalResponsibleName"
128+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('operationalResponsibleName'), 'is-valid': formFailedSubmit && !errorFields.includes('operationalResponsibleName')}">
129+
</div>
130+
<div class="form-group mt-3">
131+
<label class="form-label"
132+
for="operationalResponsibleEmail">{{ 'QUESTION-LORA-GATEWAY.OPERATION-RESPONSIBLE-CONTACT' | translate }}</label>
133+
<input type="text" class="form-control" id="operationalResponsibleEmail" name="operationalResponsibleEmail"
134+
[placeholder]="'QUESTION-LORA-GATEWAY.OPERATION-RESPONSIBLE-CONTACT-PLACEHOLDER' | translate"
135+
[(ngModel)]="gateway.operationalResponsibleEmail"
136+
[ngClass]="{'is-invalid': formFailedSubmit && errorFields.includes('operationalResponsibleEmail'), 'is-valid': formFailedSubmit && !errorFields.includes('operationalResponsibleEmail')}">
137+
</div>
65138
</div>
66139
<div class="form-group mt-3">
67-
<label class="form-label" for="tagsString">{{'QUESTION-LORA-GATEWAY.METADATA' | translate}}</label>
140+
<label class="form-label" for="tagsString">{{ 'QUESTION-LORA-GATEWAY.METADATA' | translate }}</label>
68141
<input type="text" class="form-control" id="tagsString" name="tagsString"
69-
[placeholder]="'QUESTION-LORA-GATEWAY.METADATA-PLACEHOLDER' | translate" required
70-
[(ngModel)]="gateway.tagsString"
71-
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('tagsString'), 'is-valid' : formFailedSubmit && !errorFields.includes('tagsString')}">
142+
[placeholder]="'QUESTION-LORA-GATEWAY.METADATA-PLACEHOLDER' | translate" required
143+
[(ngModel)]="gateway.tagsString"
144+
[ngClass]="{'is-invalid' : formFailedSubmit && errorFields.includes('tagsString'), 'is-valid' : formFailedSubmit && !errorFields.includes('tagsString')}">
72145
</div>
73-
74146
</div>
75147

76148
<div class="form-group mt-5">
77-
<button (click)="routeBack()" class="btn btn-secondary" type="button">{{ 'GEN.CANCEL' | translate}}</button>
149+
<button (click)="routeBack()" class="btn btn-secondary" type="button">{{ 'GEN.CANCEL' | translate }}</button>
78150
<button class="btn btn-primary ml-2" type="submit">{{ submitButton }}</button>
79151
</div>
80152
</form>

src/app/gateway/gateway-edit/gateway-edit.component.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ import { ScrollToTopService } from "@shared/services/scroll-to-top.service";
88
import { Subscription } from "rxjs";
99
import { ChirpstackGatewayService } from "src/app/shared/services/chirpstack-gateway.service";
1010
import { Gateway, GatewayResponse } from "../gateway.model";
11+
import {
12+
GatewayPlacement,
13+
GatewayPlacementEntries,
14+
GatewaySetupStatus,
15+
GatewayStatusEntries,
16+
} from "@app/gateway/enums/gateway-status-interval.enum";
17+
18+
interface DropdownOption {
19+
label: string;
20+
value: string | number;
21+
}
1122

1223
@Component({
1324
selector: "app-gateway-edit",
@@ -16,9 +27,7 @@ import { Gateway, GatewayResponse } from "../gateway.model";
1627
})
1728
export class GatewayEditComponent implements OnInit, OnDestroy {
1829
public backButton: BackButton = { label: "", routerLink: ["gateways"] };
19-
public multiPage = false;
2030
public title = "";
21-
public sectionTitle = "";
2231
public submitButton = "";
2332

2433
public gatewaySubscription: Subscription;
@@ -31,6 +40,9 @@ export class GatewayEditComponent implements OnInit, OnDestroy {
3140

3241
gateway = new Gateway();
3342

43+
placements: DropdownOption[] = [];
44+
statuses: DropdownOption[] = [];
45+
3446
constructor(
3547
private route: ActivatedRoute,
3648
public translate: TranslateService,
@@ -53,6 +65,24 @@ export class GatewayEditComponent implements OnInit, OnDestroy {
5365
this.title = translations["FORM.EDIT-NEW-GATEWAY"];
5466
this.submitButton = translations["GATEWAY.SAVE"];
5567
});
68+
69+
const placementTranslationPrefix = "GATEWAY.PLACEMENT.";
70+
const placementTranslationKeys = GatewayPlacementEntries.map(x => placementTranslationPrefix + x.key);
71+
const statusTranslationPrefix = "GATEWAY.STATUS.";
72+
const statusTranslationKeys = GatewayStatusEntries.map(x => statusTranslationPrefix + x.key);
73+
74+
this.translate.get([...statusTranslationKeys, ...placementTranslationKeys]).subscribe(translations => {
75+
const placementOptions: DropdownOption[] = GatewayPlacementEntries.map(entry => ({
76+
label: translations[placementTranslationPrefix + entry.key],
77+
value: GatewayPlacement[entry.key],
78+
}));
79+
this.placements.push(...placementOptions);
80+
const statusOptions: DropdownOption[] = GatewayStatusEntries.map(entry => ({
81+
label: translations[statusTranslationPrefix + entry.key],
82+
value: GatewaySetupStatus[entry.key],
83+
}));
84+
this.statuses.push(...statusOptions);
85+
});
5686
}
5787

5888
getGateway(gatewayId: string): void {

0 commit comments

Comments
 (0)