Skip to content

Commit 751e255

Browse files
Merge pull request #182 from OS2iot/feature/IoT-1500_GatewayAlarms
Feature/IoT-1500 - gateway alarms
2 parents e3df8dd + 1474fdd commit 751e255

File tree

4 files changed

+144
-19
lines changed

4 files changed

+144
-19
lines changed

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

Lines changed: 123 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@
142142
}"
143143
/>
144144
</div>
145-
<div class="form-group mt-3">
145+
<div class="form-group mt-3 col-6">
146146
<label class="form-label" for="placement">{{ "GATEWAY.PLACEMENT-LABEL" | translate }}</label>
147147
<mat-select
148148
class="form-control"
@@ -159,7 +159,8 @@
159159
</mat-option>
160160
</mat-select>
161161
</div>
162-
<div class="form-group mt-3">
162+
<h3 class="h3">{{ "QUESTION.METADATA" | translate }}</h3>
163+
<div class="form-group">
163164
<label class="form-label" for="modelName">{{ "QUESTION-LORA-GATEWAY.MODEL-NAME" | translate }}</label>
164165
<input
165166
type="text"
@@ -207,6 +208,23 @@
207208
</mat-select>
208209
</div>
209210
<div class="form-group mt-3">
211+
<label class="form-label" for="tagsString">{{ "QUESTION-LORA-GATEWAY.METADATA" | translate }}</label>
212+
<input
213+
type="text"
214+
class="form-control"
215+
id="tagsString"
216+
name="tagsString"
217+
[placeholder]="'QUESTION-LORA-GATEWAY.METADATA-PLACEHOLDER' | translate"
218+
required
219+
[(ngModel)]="gateway.tagsString"
220+
[ngClass]="{
221+
'is-invalid': formFailedSubmit && errorFields.includes('tagsString'),
222+
'is-valid': formFailedSubmit && !errorFields.includes('tagsString')
223+
}"
224+
/>
225+
</div>
226+
<h3 class="h3">{{ "QUESTION-LORA-GATEWAY.CONTACT" | translate }}</h3>
227+
<div class="form-group">
210228
<label class="form-label" for="gatewayResponsible">{{
211229
"QUESTION-LORA-GATEWAY.GATEWAY-RESPONSIBLE" | translate
212230
}}</label>
@@ -291,22 +309,109 @@
291309
}"
292310
/>
293311
</div>
294-
</div>
295-
<div class="form-group mt-3">
296-
<label class="form-label" for="tagsString">{{ "QUESTION-LORA-GATEWAY.METADATA" | translate }}</label>
297-
<input
298-
type="text"
299-
class="form-control"
300-
id="tagsString"
301-
name="tagsString"
302-
[placeholder]="'QUESTION-LORA-GATEWAY.METADATA-PLACEHOLDER' | translate"
303-
required
304-
[(ngModel)]="gateway.tagsString"
305-
[ngClass]="{
306-
'is-invalid': formFailedSubmit && errorFields.includes('tagsString'),
307-
'is-valid': formFailedSubmit && !errorFields.includes('tagsString')
308-
}"
309-
/>
312+
<h3 class="h3">{{ "QUESTION-LORA-GATEWAY.ALARMS" | translate }}</h3>
313+
<label for="notifyOffline">{{ "QUESTION-LORA-GATEWAY.SET-ALARMS" | translate }}</label>
314+
<div class="row mt-3">
315+
<mat-slide-toggle [(ngModel)]="gateway.notifyOffline" id="notifyOffline" name="notifyOffline">
316+
{{ "GEN.OFFLINE" | translate }}</mat-slide-toggle
317+
>
318+
</div>
319+
<div *ngIf="gateway.notifyOffline">
320+
<div class="form-group mt-3">
321+
<label for="notifyOffline">{{ "QUESTION-LORA-GATEWAY.HOW-MANY-MINUTES" | translate }}</label>
322+
</div>
323+
324+
<div class="form-group mt-3">
325+
<label class="form-label" for="offlineAlarmThresholdMinutes">{{
326+
"QUESTION-LORA-GATEWAY.AMOUNT-OF-MINUTES" | translate
327+
}}</label>
328+
<input
329+
type="number"
330+
class="form-control"
331+
id="offlineAlarmThresholdMinutes"
332+
name="offlineAlarmThresholdMinutes"
333+
[(ngModel)]="gateway.offlineAlarmThresholdMinutes"
334+
step="1"
335+
maxlength="9"
336+
(keyup)="onCoordinateKey($event)"
337+
[ngClass]="{
338+
'is-invalid': formFailedSubmit && errorFields.includes('offlineAlarmThresholdMinutes'),
339+
'is-valid': formFailedSubmit && !errorFields.includes('offlineAlarmThresholdMinutes')
340+
}"
341+
/>
342+
</div>
343+
</div>
344+
<div class="row mt-3">
345+
<mat-slide-toggle
346+
[(ngModel)]="gateway.notifyUnusualPackages"
347+
id="notifyUnusualPackages"
348+
name="notifyUnusualPackages"
349+
>
350+
{{ "QUESTION-LORA-GATEWAY.UNUSUAL-PACKAGES" | translate }}</mat-slide-toggle
351+
>
352+
</div>
353+
<div *ngIf="gateway.notifyUnusualPackages">
354+
<div class="form-group mt-3">
355+
<label for="minimumPackages">{{ "QUESTION-LORA-GATEWAY.SET-INTERVAL" | translate }}</label>
356+
</div>
357+
<div class="row d-flex">
358+
<div class="form-group mt-3 col-6">
359+
<label class="form-label" for="minimumPackages">{{
360+
"QUESTION-LORA-GATEWAY.MINIMUM-AMOUNT" | translate
361+
}}</label>
362+
<input
363+
type="number"
364+
class="form-control"
365+
id="minimumPackages"
366+
name="minimumPackages"
367+
required
368+
[(ngModel)]="gateway.minimumPackages"
369+
step="1"
370+
maxlength="9"
371+
(keyup)="onCoordinateKey($event)"
372+
[ngClass]="{
373+
'is-invalid': formFailedSubmit && errorFields.includes('minimumPackages'),
374+
'is-valid': formFailedSubmit && !errorFields.includes('minimumPackages')
375+
}"
376+
/>
377+
</div>
378+
<div class="form-group mt-3 col-6">
379+
<label class="form-label" for="maximumPackages">{{
380+
"QUESTION-LORA-GATEWAY.MAXIMUM-AMOUNT" | translate
381+
}}</label>
382+
<input
383+
type="number"
384+
class="form-control"
385+
id="maximumPackages"
386+
name="maximumPackages"
387+
required
388+
[(ngModel)]="gateway.maximumPackages"
389+
step="1"
390+
maxlength="9"
391+
(keyup)="onCoordinateKey($event)"
392+
[ngClass]="{
393+
'is-invalid': formFailedSubmit && errorFields.includes('maximumPackages'),
394+
'is-valid': formFailedSubmit && !errorFields.includes('maximumPackages')
395+
}"
396+
/>
397+
</div>
398+
</div>
399+
</div>
400+
<div *ngIf="gateway.notifyOffline || gateway.notifyUnusualPackages" class="form-group mt-3">
401+
<label class="form-label" for="alarmMail">{{ "QUESTION-LORA-GATEWAY.SET-EMAIL" | translate }}*</label>
402+
<input
403+
type="text"
404+
class="form-control"
405+
id="alarmMail"
406+
name="alarmMail"
407+
[placeholder]="'USERS.EMAIL' | translate"
408+
[(ngModel)]="gateway.alarmMail"
409+
[ngClass]="{
410+
'is-invalid': formFailedSubmit && errorFields.includes('alarmMail'),
411+
'is-valid': formFailedSubmit && !errorFields.includes('alarmMail')
412+
}"
413+
/>
414+
</div>
310415
</div>
311416
</div>
312417

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.h3 {
2+
margin-top: 15px;
3+
margin-bottom: 15px;
4+
}

src/app/gateway/gateway.model.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ export class Gateway extends EditPermission {
1919
gatewayResponsiblePhoneNumber?: string;
2020
operationalResponsibleName?: string;
2121
operationalResponsibleEmail?: string;
22+
notifyOffline?: boolean;
23+
notifyUnusualPackages?: boolean;
24+
offlineAlarmThresholdMinutes?: number;
25+
minimumPackages?: number;
26+
maximumPackages?: number;
27+
alarmMail?: string;
2228

2329
tagsString: string;
2430
tags?: JSON;

src/assets/i18n/da.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -870,7 +870,17 @@
870870
"OPERATION-RESPONSIBLE": "Driftsansvarlig",
871871
"OPERATION-RESPONSIBLE-PLACEHOLDER": "Angiv ansvarlig for den fysiske drift af gateway",
872872
"OPERATION-RESPONSIBLE-CONTACT": "Kontaktmail - drift",
873-
"OPERATION-RESPONSIBLE-CONTACT-PLACEHOLDER": "Angiv mailadresse på driftsansvarlig"
873+
"OPERATION-RESPONSIBLE-CONTACT-PLACEHOLDER": "Angiv mailadresse på driftsansvarlig",
874+
"CONTACT": "Kontakt",
875+
"ALARMS": "Alarmering",
876+
"SET-ALARMS": "Opsæt alarmering, som sendes til den angivne mailadresse.",
877+
"HOW-MANY-MINUTES": "Angiv hvor mange minutter gateway'en skal være offline, før der sendes en alarm. Alarmen sendes kun en gang, når minuttallet nås. Herefter gives først besked, når gateway'en er online igen.",
878+
"AMOUNT-OF-MINUTES": "Antal minutter",
879+
"UNUSUAL-PACKAGES": "Uregelmæssigt pakkemønster",
880+
"SET-INTERVAL": "Angiv hvilket interval modtagne pakker pr. døgn skal ligge indenfor. Hvis der modtages færre eller flere pakker sendes en alarm. Alarmen sendes en gang pr. døgn, indtil det definerede interval igen nås.",
881+
"MINIMUM-AMOUNT": "Minimum antal",
882+
"MAXIMUM-AMOUNT": "Maksimum antal",
883+
"SET-EMAIL": "Angiv mailadresse som skal modtage alarm"
874884
},
875885
"SORT": {
876886
"SORT": "Sortér",

0 commit comments

Comments
 (0)