Commit f4c7d6c3e287a256d72c7f0b82ad5721bb307289

Authored by Igor Kulikov
Committed by GitHub
2 parents 7bed624f 809375aa

Merge pull request #2938 from vvlladd28/improvement/minor-fix

[3.0] Optimaze and clear code
... ... @@ -62,14 +62,14 @@
62 62 <!-- <mat-form-field fxFlex class="mat-block">-->
63 63 <!-- <mat-label>Integer Value</mat-label>-->
64 64 <!-- <input type="number" step="1" matInput formControlName="number">-->
65   -<!-- <mat-error *ngIf="editEntityFormGroup.get('attributes').get('number').hasError('pattern')">-->
  65 +<!-- <mat-error *ngIf="editEntityFormGroup.get('attributes.number').hasError('pattern')">-->
66 66 <!-- Invalid integer value.-->
67 67 <!-- </mat-error>-->
68 68 <!-- </mat-form-field>-->
69 69 <!-- <div class="boolean-value-input" fxLayout="column" fxLayoutAlign="center start" fxFlex>-->
70 70 <!-- <label class="checkbox-label">Boolean Value</label>-->
71 71 <!-- <mat-checkbox formControlName="booleanValue" style="margin-bottom: 40px;">-->
72   -<!-- {{ (editEntityFormGroup.get('attributes').get('booleanValue').value ? "value.true" : "value.false") | translate }}-->
  72 +<!-- {{ (editEntityFormGroup.get('attributes.booleanValue').value ? "value.true" : "value.false") | translate }}-->
73 73 <!-- </mat-checkbox>-->
74 74 <!-- </div>-->
75 75 <!-- </div>-->
... ... @@ -184,7 +184,6 @@
184 184 <!-- Save-->
185 185 <!-- </button>-->
186 186 <!-- <button mat-button color="primary"-->
187   -<!-- style="margin-right: 20px;"-->
188 187 <!-- type="button"-->
189 188 <!-- [disabled]="(isLoading$ | async)"-->
190 189 <!-- (click)="cancel()" cdkFocusInitial>-->
... ... @@ -270,14 +269,14 @@
270 269 <!-- <mat-form-field fxFlex class="mat-block">-->
271 270 <!-- <mat-label>Integer Value</mat-label>-->
272 271 <!-- <input type="number" step="1" matInput formControlName="number">-->
273   -<!-- <mat-error *ngIf="addEntityFormGroup.get('attributes').get('number').hasError('pattern')">-->
  272 +<!-- <mat-error *ngIf="addEntityFormGroup.get('attributes.number').hasError('pattern')">-->
274 273 <!-- Invalid integer value.-->
275 274 <!-- </mat-error>-->
276 275 <!-- </mat-form-field>-->
277 276 <!-- <div class="boolean-value-input" fxLayout="column" fxLayoutAlign="center start" fxFlex>-->
278 277 <!-- <label class="checkbox-label">Boolean Value</label>-->
279 278 <!-- <mat-checkbox formControlName="booleanValue" style="margin-bottom: 40px;">-->
280   -<!-- {{ (addEntityFormGroup.get('attributes').get('booleanValue').value ? "value.true" : "value.false") | translate }}-->
  279 +<!-- {{ (addEntityFormGroup.get('attributes.booleanValue').value ? "value.true" : "value.false") | translate }}-->
281 280 <!-- </mat-checkbox>-->
282 281 <!-- </div>-->
283 282 <!-- </div>-->
... ... @@ -345,7 +344,6 @@
345 344 <!-- Create-->
346 345 <!-- </button>-->
347 346 <!-- <button mat-button color="primary"-->
348   -<!-- style="margin-right: 20px;"-->
349 347 <!-- type="button"-->
350 348 <!-- [disabled]="(isLoading$ | async)"-->
351 349 <!-- (click)="cancel()" cdkFocusInitial>-->
... ...
... ... @@ -186,28 +186,27 @@
186 186 // }
187 187 //
188 188 // function getEntityInfo() {
189   -// entityService.getEntity(entityId.entityType, entityId.id).subscribe(function (entity) {
190   -// vm.entity = entity;
191   -// widgetContext.rxjs.forkJoin([
192   -// entityRelationService.findInfoByFrom(entityId),
193   -// entityRelationService.findInfoByTo(entityId),
194   -// attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE')
195   -// ]).subscribe(
196   -// function (data) {
197   -// getEntityRelations(data.slice(0,2));
198   -// getEntityAttributes(data[2]);
199   -// vm.editEntityFormGroup.patchValue({
200   -// entityName: vm.entity.name,
201   -// entityType: vm.entityType,
202   -// entityLabel: vm.entity.label,
203   -// type: vm.entity.type,
204   -// attributes: vm.attributes,
205   -// oldRelations: vm.oldRelationsData
206   -// }, {emitEvent: false});
207   -// }
208   -// );
209   -// });
210   -// }
  189 +// widgetContext.rxjs.forkJoin([
  190 +// entityRelationService.findInfoByFrom(entityId),
  191 +// entityRelationService.findInfoByTo(entityId),
  192 +// attributeService.getEntityAttributes(entityId, 'SERVER_SCOPE'),
  193 +// entityService.getEntity(entityId.entityType, entityId.id)
  194 +// ]).subscribe(
  195 +// function (data) {
  196 +// getEntityRelations(data.slice(0,2));
  197 +// getEntityAttributes(data[2]);
  198 +// vm.entity = data[3];
  199 +// vm.editEntityFormGroup.patchValue({
  200 +// entityName: vm.entity.name,
  201 +// entityType: vm.entityType,
  202 +// entityLabel: vm.entity.label,
  203 +// type: vm.entity.type,
  204 +// attributes: vm.attributes,
  205 +// oldRelations: vm.oldRelationsData
  206 +// }, {emitEvent: false});
  207 +// }
  208 +// );
  209 +// }
211 210 //
212 211 // function saveEntity() {
213 212 // const formValues = vm.editEntityFormGroup.value;
... ... @@ -218,9 +217,8 @@
218 217 // } else if (formValues.entityType == 'DEVICE') {
219 218 // return deviceService.saveDevice(vm.entity);
220 219 // }
221   -// } else {
222   -// return widgetContext.rxjs.of([]);
223 220 // }
  221 +// return widgetContext.rxjs.of([]);
224 222 // }
225 223 //
226 224 // function saveAttributes(entityId) {
... ... @@ -233,9 +231,8 @@
233 231 // }
234 232 // if (attributesArray.length > 0) {
235 233 // return attributeService.saveEntityAttributes(entityId, "SERVER_SCOPE", attributesArray);
236   -// } else {
237   -// return widgetContext.rxjs.of([]);
238 234 // }
  235 +// return widgetContext.rxjs.of([]);
239 236 // }
240 237 //
241 238 // function saveRelations(entityId) {
... ... @@ -270,9 +267,8 @@
270 267 // }
271 268 // if (tasks.length > 0) {
272 269 // return widgetContext.rxjs.forkJoin(tasks);
273   -// } else {
274   -// return widgetContext.rxjs.of([]);
275 270 // }
  271 +// return widgetContext.rxjs.of([]);
276 272 // }
277 273 //}
278 274 //
... ... @@ -380,9 +376,8 @@
380 376 // }
381 377 // if (attributesArray.length > 0) {
382 378 // return attributeService.saveEntityAttributes(entityId, "SERVER_SCOPE", attributesArray);
383   -// } else {
384   -// return widgetContext.rxjs.of([]);
385 379 // }
  380 +// return widgetContext.rxjs.of([]);
386 381 // }
387 382 //
388 383 // function saveRelations(entityId) {
... ... @@ -404,8 +399,7 @@
404 399 // }
405 400 // if (tasks.length > 0) {
406 401 // return widgetContext.rxjs.forkJoin(tasks);
407   -// } else {
408   -// return widgetContext.rxjs.of([]);
409 402 // }
  403 +// return widgetContext.rxjs.of([]);
410 404 // }
411 405 //}
... ...
... ... @@ -28,117 +28,121 @@
28 28 </mat-progress-bar>
29 29 <div style="height: 4px;" *ngIf="!(isLoading$ | async)"></div>
30 30 <mat-card-content style="padding-top: 16px;">
31   - <form [formGroup]="securitySettingsFormGroup" (ngSubmit)="save()">
  31 + <form [formGroup]="securitySettingsFormGroup" (ngSubmit)="save()" autocomplete="off">
32 32 <fieldset [disabled]="isLoading$ | async">
33   - <mat-expansion-panel [expanded]="true">
34   - <mat-expansion-panel-header>
35   - <mat-panel-title>
36   - <div class="tb-panel-title" translate>admin.general-policy</div>
37   - </mat-panel-title>
38   - </mat-expansion-panel-header>
39   - <mat-form-field class="mat-block">
40   - <mat-label translate>admin.max-failed-login-attempts</mat-label>
41   - <input matInput type="number"
42   - formControlName="maxFailedLoginAttempts"
43   - step="1"
44   - min="0"/>
45   - <mat-error *ngIf="securitySettingsFormGroup.get('maxFailedLoginAttempts').hasError('min')">
46   - {{ 'admin.minimum-max-failed-login-attempts-range' | translate }}
47   - </mat-error>
48   - </mat-form-field>
49   - <mat-form-field class="mat-block">
50   - <mat-label translate>admin.user-lockout-notification-email</mat-label>
51   - <input matInput type="email"
52   - formControlName="userLockoutNotificationEmail"/>
53   - </mat-form-field>
54   - </mat-expansion-panel>
55   - <mat-expansion-panel [expanded]="true">
56   - <mat-expansion-panel-header>
57   - <mat-panel-title>
58   - <div class="tb-panel-title" translate>admin.password-policy</div>
59   - </mat-panel-title>
60   - </mat-expansion-panel-header>
61   - <section formGroupName="passwordPolicy">
62   - <mat-form-field class="mat-block">
63   - <mat-label translate>admin.minimum-password-length</mat-label>
64   - <input matInput type="number"
65   - formControlName="minimumLength"
66   - step="1"
67   - min="5"
68   - max="50"
69   - required/>
70   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumLength').hasError('required')">
71   - {{ 'admin.minimum-password-length-required' | translate }}
72   - </mat-error>
73   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumLength').hasError('min')">
74   - {{ 'admin.minimum-password-length-range' | translate }}
75   - </mat-error>
76   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumLength').hasError('max')">
77   - {{ 'admin.minimum-password-length-range' | translate }}
78   - </mat-error>
79   - </mat-form-field>
80   - <mat-form-field class="mat-block">
81   - <mat-label translate>admin.minimum-uppercase-letters</mat-label>
82   - <input matInput type="number"
83   - formControlName="minimumUppercaseLetters"
84   - step="1"
85   - min="0"/>
86   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumUppercaseLetters').hasError('min')">
87   - {{ 'admin.minimum-uppercase-letters-range' | translate }}
88   - </mat-error>
89   - </mat-form-field>
90   - <mat-form-field class="mat-block">
91   - <mat-label translate>admin.minimum-lowercase-letters</mat-label>
92   - <input matInput type="number"
93   - formControlName="minimumLowercaseLetters"
94   - step="1"
95   - min="0"/>
96   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumLowercaseLetters').hasError('min')">
97   - {{ 'admin.minimum-lowercase-letters-range' | translate }}
98   - </mat-error>
99   - </mat-form-field>
100   - <mat-form-field class="mat-block">
101   - <mat-label translate>admin.minimum-digits</mat-label>
102   - <input matInput type="number"
103   - formControlName="minimumDigits"
104   - step="1"
105   - min="0"/>
106   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumDigits').hasError('min')">
107   - {{ 'admin.minimum-digits-range' | translate }}
108   - </mat-error>
109   - </mat-form-field>
110   - <mat-form-field class="mat-block">
111   - <mat-label translate>admin.minimum-special-characters</mat-label>
112   - <input matInput type="number"
113   - formControlName="minimumSpecialCharacters"
114   - step="1"
115   - min="0"/>
116   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('minimumSpecialCharacters').hasError('min')">
117   - {{ 'admin.minimum-special-characters-range' | translate }}
118   - </mat-error>
119   - </mat-form-field>
120   - <mat-form-field class="mat-block">
121   - <mat-label translate>admin.password-expiration-period-days</mat-label>
122   - <input matInput type="number"
123   - formControlName="passwordExpirationPeriodDays"
124   - step="1"
125   - min="0"/>
126   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('passwordExpirationPeriodDays').hasError('min')">
127   - {{ 'admin.password-expiration-period-days-range' | translate }}
128   - </mat-error>
129   - </mat-form-field>
130   - <mat-form-field class="mat-block">
131   - <mat-label translate>admin.password-reuse-frequency-days</mat-label>
132   - <input matInput type="number"
133   - formControlName="passwordReuseFrequencyDays"
134   - step="1"
135   - min="0"/>
136   - <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy').get('passwordReuseFrequencyDays').hasError('min')">
137   - {{ 'admin.password-reuse-frequency-days-range' | translate }}
138   - </mat-error>
139   - </mat-form-field>
140   - </section>
141   - </mat-expansion-panel>
  33 + <div class="mat-accordion-container">
  34 + <mat-accordion multi="true">
  35 + <mat-expansion-panel [expanded]="true">
  36 + <mat-expansion-panel-header>
  37 + <mat-panel-title>
  38 + <div class="tb-panel-title" translate>admin.general-policy</div>
  39 + </mat-panel-title>
  40 + </mat-expansion-panel-header>
  41 + <mat-form-field class="mat-block">
  42 + <mat-label translate>admin.max-failed-login-attempts</mat-label>
  43 + <input matInput type="number"
  44 + formControlName="maxFailedLoginAttempts"
  45 + step="1"
  46 + min="0"/>
  47 + <mat-error *ngIf="securitySettingsFormGroup.get('maxFailedLoginAttempts').hasError('min')">
  48 + {{ 'admin.minimum-max-failed-login-attempts-range' | translate }}
  49 + </mat-error>
  50 + </mat-form-field>
  51 + <mat-form-field class="mat-block">
  52 + <mat-label translate>admin.user-lockout-notification-email</mat-label>
  53 + <input matInput type="email"
  54 + formControlName="userLockoutNotificationEmail"/>
  55 + </mat-form-field>
  56 + </mat-expansion-panel>
  57 + <mat-expansion-panel [expanded]="true">
  58 + <mat-expansion-panel-header>
  59 + <mat-panel-title>
  60 + <div class="tb-panel-title" translate>admin.password-policy</div>
  61 + </mat-panel-title>
  62 + </mat-expansion-panel-header>
  63 + <section formGroupName="passwordPolicy">
  64 + <mat-form-field class="mat-block">
  65 + <mat-label translate>admin.minimum-password-length</mat-label>
  66 + <input matInput type="number"
  67 + formControlName="minimumLength"
  68 + step="1"
  69 + min="5"
  70 + max="50"
  71 + required/>
  72 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumLength').hasError('required')">
  73 + {{ 'admin.minimum-password-length-required' | translate }}
  74 + </mat-error>
  75 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumLength').hasError('min')">
  76 + {{ 'admin.minimum-password-length-range' | translate }}
  77 + </mat-error>
  78 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumLength').hasError('max')">
  79 + {{ 'admin.minimum-password-length-range' | translate }}
  80 + </mat-error>
  81 + </mat-form-field>
  82 + <mat-form-field class="mat-block">
  83 + <mat-label translate>admin.minimum-uppercase-letters</mat-label>
  84 + <input matInput type="number"
  85 + formControlName="minimumUppercaseLetters"
  86 + step="1"
  87 + min="0"/>
  88 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumUppercaseLetters').hasError('min')">
  89 + {{ 'admin.minimum-uppercase-letters-range' | translate }}
  90 + </mat-error>
  91 + </mat-form-field>
  92 + <mat-form-field class="mat-block">
  93 + <mat-label translate>admin.minimum-lowercase-letters</mat-label>
  94 + <input matInput type="number"
  95 + formControlName="minimumLowercaseLetters"
  96 + step="1"
  97 + min="0"/>
  98 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumLowercaseLetters').hasError('min')">
  99 + {{ 'admin.minimum-lowercase-letters-range' | translate }}
  100 + </mat-error>
  101 + </mat-form-field>
  102 + <mat-form-field class="mat-block">
  103 + <mat-label translate>admin.minimum-digits</mat-label>
  104 + <input matInput type="number"
  105 + formControlName="minimumDigits"
  106 + step="1"
  107 + min="0"/>
  108 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumDigits').hasError('min')">
  109 + {{ 'admin.minimum-digits-range' | translate }}
  110 + </mat-error>
  111 + </mat-form-field>
  112 + <mat-form-field class="mat-block">
  113 + <mat-label translate>admin.minimum-special-characters</mat-label>
  114 + <input matInput type="number"
  115 + formControlName="minimumSpecialCharacters"
  116 + step="1"
  117 + min="0"/>
  118 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.minimumSpecialCharacters').hasError('min')">
  119 + {{ 'admin.minimum-special-characters-range' | translate }}
  120 + </mat-error>
  121 + </mat-form-field>
  122 + <mat-form-field class="mat-block">
  123 + <mat-label translate>admin.password-expiration-period-days</mat-label>
  124 + <input matInput type="number"
  125 + formControlName="passwordExpirationPeriodDays"
  126 + step="1"
  127 + min="0"/>
  128 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.passwordExpirationPeriodDays').hasError('min')">
  129 + {{ 'admin.password-expiration-period-days-range' | translate }}
  130 + </mat-error>
  131 + </mat-form-field>
  132 + <mat-form-field class="mat-block">
  133 + <mat-label translate>admin.password-reuse-frequency-days</mat-label>
  134 + <input matInput type="number"
  135 + formControlName="passwordReuseFrequencyDays"
  136 + step="1"
  137 + min="0"/>
  138 + <mat-error *ngIf="securitySettingsFormGroup.get('passwordPolicy.passwordReuseFrequencyDays').hasError('min')">
  139 + {{ 'admin.password-reuse-frequency-days-range' | translate }}
  140 + </mat-error>
  141 + </mat-form-field>
  142 + </section>
  143 + </mat-expansion-panel>
  144 + </mat-accordion>
  145 + </div>
142 146 <div fxLayout="row" fxLayoutAlign="end center" style="width: 100%;" class="layout-wrap">
143 147 <button mat-button mat-raised-button color="primary" [disabled]="(isLoading$ | async) || securitySettingsFormGroup.invalid || !securitySettingsFormGroup.dirty"
144 148 type="submit">{{'action.save' | translate}}
... ...
... ... @@ -14,10 +14,7 @@
14 14 * limitations under the License.
15 15 */
16 16 :host {
17   - mat-expansion-panel {
  17 + .mat-accordion-container {
18 18 margin-bottom: 16px;
19 19 }
20   - .tb-panel-title {
21   -
22   - }
23 20 }
... ...
... ... @@ -174,8 +174,8 @@ export class NodeScriptTestDialogComponent extends DialogComponent<NodeScriptTes
174 174 const inputParams: TestScriptInputParams = {
175 175 argNames: this.data.argNames,
176 176 scriptType: this.data.scriptType,
177   - msgType: this.nodeScriptTestFormGroup.get('payload').get('msgType').value,
178   - msg: this.nodeScriptTestFormGroup.get('payload').get('msg').value,
  177 + msgType: this.nodeScriptTestFormGroup.get('payload.msgType').value,
  178 + msg: this.nodeScriptTestFormGroup.get('payload.msg').value,
179 179 metadata: this.nodeScriptTestFormGroup.get('metadata').value,
180 180 script: this.nodeScriptTestFormGroup.get('script').value
181 181 };
... ...
... ... @@ -48,9 +48,9 @@
48 48 <tb-timeinterval
49 49 formControlName="timewindowMs"
50 50 predefinedName="timewindow.last"
51   - [fxShow]="timewindowForm.get('history').get('historyType').value === historyTypes.LAST_INTERVAL"
  51 + [fxShow]="timewindowForm.get('history.historyType').value === historyTypes.LAST_INTERVAL"
52 52 [required]="timewindow.selectedTab === timewindowTypes.HISTORY &&
53   - timewindowForm.get('history').get('historyType').value === historyTypes.LAST_INTERVAL"
  53 + timewindowForm.get('history.historyType').value === historyTypes.LAST_INTERVAL"
54 54 style="padding-top: 8px;"></tb-timeinterval>
55 55 </section>
56 56 </mat-radio-button>
... ... @@ -59,9 +59,9 @@
59 59 <span translate>timewindow.time-period</span>
60 60 <tb-datetime-period
61 61 formControlName="fixedTimewindow"
62   - [fxShow]="timewindowForm.get('history').get('historyType').value === historyTypes.FIXED"
  62 + [fxShow]="timewindowForm.get('history.historyType').value === historyTypes.FIXED"
63 63 [required]="timewindow.selectedTab === timewindowTypes.HISTORY &&
64   - timewindowForm.get('history').get('historyType').value === historyTypes.FIXED"
  64 + timewindowForm.get('history.historyType').value === historyTypes.FIXED"
65 65 style="padding-top: 8px;"></tb-datetime-period>
66 66 </section>
67 67 </mat-radio-button>
... ... @@ -89,7 +89,7 @@
89 89 </mat-form-field>
90 90 </section>
91 91 </section>
92   - <section fxLayout="row" [fxShow]="timewindowForm.get('aggregation').get('type').value === aggregationTypes.NONE">
  92 + <section fxLayout="row" [fxShow]="timewindowForm.get('aggregation.type').value === aggregationTypes.NONE">
93 93 <section fxLayout="column" [fxShow]="isEdit">
94 94 <label class="tb-small hide-label" translate>timewindow.hide</label>
95 95 <mat-checkbox [ngModelOptions]="{standalone: true}" [(ngModel)]="timewindow.hideAggInterval"
... ... @@ -101,13 +101,13 @@
101 101 <span translate>aggregation.limit</span>
102 102 <mat-slider fxFlex formControlName="limit"
103 103 thumbLabel
104   - [value]="timewindowForm.get('aggregation').get('limit').value"
  104 + [value]="timewindowForm.get('aggregation.limit').value"
105 105 min="{{minDatapointsLimit()}}"
106 106 max="{{maxDatapointsLimit()}}">
107 107 </mat-slider>
108 108 <mat-form-field style="max-width: 80px;">
109 109 <input matInput formControlName="limit" type="number" step="1"
110   - [value]="timewindowForm.get('aggregation').get('limit').value"
  110 + [value]="timewindowForm.get('aggregation.limit').value"
111 111 min="{{minDatapointsLimit()}}"
112 112 max="{{maxDatapointsLimit()}}"/>
113 113 </mat-form-field>
... ... @@ -116,7 +116,7 @@
116 116 </section>
117 117 </div>
118 118 <div formGroupName="realtime"
119   - *ngIf="aggregation && timewindowForm.get('aggregation').get('type').value !== aggregationTypes.NONE &&
  119 + *ngIf="aggregation && timewindowForm.get('aggregation.type').value !== aggregationTypes.NONE &&
120 120 timewindow.selectedTab === timewindowTypes.REALTIME" class="mat-content mat-padding" fxLayout="column">
121 121 <tb-timeinterval
122 122 formControlName="interval"
... ... @@ -128,7 +128,7 @@
128 128 </tb-timeinterval>
129 129 </div>
130 130 <div formGroupName="history"
131   - *ngIf="aggregation && timewindowForm.get('aggregation').get('type').value !== aggregationTypes.NONE &&
  131 + *ngIf="aggregation && timewindowForm.get('aggregation.type').value !== aggregationTypes.NONE &&
132 132 timewindow.selectedTab === timewindowTypes.HISTORY" class="mat-content mat-padding" fxLayout="column">
133 133 <tb-timeinterval
134 134 formControlName="interval"
... ...
... ... @@ -174,11 +174,11 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit {
174 174 }
175 175
176 176 minRealtimeAggInterval() {
177   - return this.timeService.minIntervalLimit(this.timewindowForm.get('realtime').get('timewindowMs').value);
  177 + return this.timeService.minIntervalLimit(this.timewindowForm.get('realtime.timewindowMs').value);
178 178 }
179 179
180 180 maxRealtimeAggInterval() {
181   - return this.timeService.maxIntervalLimit(this.timewindowForm.get('realtime').get('timewindowMs').value);
  181 + return this.timeService.maxIntervalLimit(this.timewindowForm.get('realtime.timewindowMs').value);
182 182 }
183 183
184 184 minHistoryAggInterval() {
... ... @@ -203,31 +203,31 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit {
203 203
204 204 onHideIntervalChanged() {
205 205 if (this.timewindow.hideInterval) {
206   - this.timewindowForm.get('history').get('historyType').disable({emitEvent: false});
207   - this.timewindowForm.get('history').get('timewindowMs').disable({emitEvent: false});
208   - this.timewindowForm.get('history').get('fixedTimewindow').disable({emitEvent: false});
  206 + this.timewindowForm.get('history.historyType').disable({emitEvent: false});
  207 + this.timewindowForm.get('history.timewindowMs').disable({emitEvent: false});
  208 + this.timewindowForm.get('history.fixedTimewindow').disable({emitEvent: false});
209 209 } else {
210   - this.timewindowForm.get('history').get('historyType').enable({emitEvent: false});
211   - this.timewindowForm.get('history').get('timewindowMs').enable({emitEvent: false});
212   - this.timewindowForm.get('history').get('fixedTimewindow').enable({emitEvent: false});
  210 + this.timewindowForm.get('history.historyType').enable({emitEvent: false});
  211 + this.timewindowForm.get('history.timewindowMs').enable({emitEvent: false});
  212 + this.timewindowForm.get('history.fixedTimewindow').enable({emitEvent: false});
213 213 }
214 214 this.timewindowForm.markAsDirty();
215 215 }
216 216
217 217 onHideAggregationChanged() {
218 218 if (this.timewindow.hideAggregation) {
219   - this.timewindowForm.get('aggregation').get('type').disable({emitEvent: false});
  219 + this.timewindowForm.get('aggregation.type').disable({emitEvent: false});
220 220 } else {
221   - this.timewindowForm.get('aggregation').get('type').enable({emitEvent: false});
  221 + this.timewindowForm.get('aggregation.type').enable({emitEvent: false});
222 222 }
223 223 this.timewindowForm.markAsDirty();
224 224 }
225 225
226 226 onHideAggIntervalChanged() {
227 227 if (this.timewindow.hideAggInterval) {
228   - this.timewindowForm.get('aggregation').get('limit').disable({emitEvent: false});
  228 + this.timewindowForm.get('aggregation.limit').disable({emitEvent: false});
229 229 } else {
230   - this.timewindowForm.get('aggregation').get('limit').enable({emitEvent: false});
  230 + this.timewindowForm.get('aggregation.limit').enable({emitEvent: false});
231 231 }
232 232 this.timewindowForm.markAsDirty();
233 233 }
... ...