diff --git a/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.html b/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.html
index 53e871c41a..aabac0bab4 100644
--- a/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.html
+++ b/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.html
@@ -16,13 +16,13 @@
-->
-
-
+
+
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts b/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts
index 04db1ee223..8adb9bcd5a 100644
--- a/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts
+++ b/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts
@@ -21,8 +21,8 @@ import {
timeseriesDeleteStrategyTranslations
} from '@shared/models/telemetry/telemetry.models';
import { MINUTE } from '@shared/models/time/time.models';
-import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';
-import { Subject, Subscription } from 'rxjs';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
export const DELETE_TIMESERIES_PANEL_DATA = new InjectionToken('DeleteTimeseriesPanelData');
@@ -47,10 +47,6 @@ export class DeleteTimeseriesPanelComponent implements OnInit, OnDestroy {
deleteTimeseriesFormGroup: FormGroup;
- startDateTimeSubscription: Subscription;
-
- endDateTimeSubscription: Subscription;
-
result: DeleteTimeseriesPanelResult = null;
strategiesTranslationsMap = timeseriesDeleteStrategyTranslations;
@@ -76,14 +72,28 @@ export class DeleteTimeseriesPanelComponent implements OnInit, OnDestroy {
}
this.deleteTimeseriesFormGroup = this.fb.group({
strategy: [TimeseriesDeleteStrategy.DELETE_ALL_DATA],
- startDateTime: [new Date(today.getFullYear(), today.getMonth() - 1, today.getDate())],
- endDateTime: [today],
+ startDateTime: [
+ { value: new Date(today.getFullYear(), today.getMonth() - 1, today.getDate()), disabled: true },
+ [Validators.required]
+ ],
+ endDateTime: [{ value: today, disabled: true }, [Validators.required]],
rewriteLatest: [true]
})
- this.startDateTimeSubscription = this.getStartDateTimeFormControl().valueChanges.pipe(
+ this.deleteTimeseriesFormGroup.get('strategy').valueChanges.pipe(
+ takeUntil(this.destroy$)
+ ).subscribe(value => {
+ if (value === TimeseriesDeleteStrategy.DELETE_ALL_DATA_FOR_TIME_PERIOD) {
+ this.deleteTimeseriesFormGroup.get('startDateTime').enable({onlySelf: true, emitEvent: false});
+ this.deleteTimeseriesFormGroup.get('endDateTime').enable({onlySelf: true, emitEvent: false});
+ } else {
+ this.deleteTimeseriesFormGroup.get('startDateTime').disable({onlySelf: true, emitEvent: false});
+ this.deleteTimeseriesFormGroup.get('endDateTime').disable({onlySelf: true, emitEvent: false});
+ }
+ })
+ this.deleteTimeseriesFormGroup.get('startDateTime').valueChanges.pipe(
takeUntil(this.destroy$)
).subscribe(value => this.onStartDateTimeChange(value));
- this.endDateTimeSubscription = this.getEndDateTimeFormControl().valueChanges.pipe(
+ this.deleteTimeseriesFormGroup.get('endDateTime').valueChanges.pipe(
takeUntil(this.destroy$)
).subscribe(value => this.onEndDateTimeChange(value));
}
@@ -94,8 +104,12 @@ export class DeleteTimeseriesPanelComponent implements OnInit, OnDestroy {
}
delete(): void {
- this.result = this.deleteTimeseriesFormGroup.value;
- this.overlayRef.dispose();
+ if (this.deleteTimeseriesFormGroup.valid) {
+ this.result = this.deleteTimeseriesFormGroup.value;
+ this.overlayRef.dispose();
+ } else {
+ this.deleteTimeseriesFormGroup.markAllAsTouched();
+ }
}
cancel(): void {
@@ -103,33 +117,22 @@ export class DeleteTimeseriesPanelComponent implements OnInit, OnDestroy {
}
isPeriodStrategy(): boolean {
- return this.getStrategyFormControl().value === TimeseriesDeleteStrategy.DELETE_ALL_DATA_FOR_TIME_PERIOD;
+ return this.deleteTimeseriesFormGroup.get('strategy').value === TimeseriesDeleteStrategy.DELETE_ALL_DATA_FOR_TIME_PERIOD;
}
isDeleteLatestStrategy(): boolean {
- return this.getStrategyFormControl().value === TimeseriesDeleteStrategy.DELETE_LATEST_VALUE;
- }
-
- getStrategyFormControl(): AbstractControl {
- return this.deleteTimeseriesFormGroup.get('strategy');
- }
-
- getStartDateTimeFormControl(): AbstractControl {
- return this.deleteTimeseriesFormGroup.get('startDateTime');
- }
-
- getEndDateTimeFormControl(): AbstractControl {
- return this.deleteTimeseriesFormGroup.get('endDateTime');
+ return this.deleteTimeseriesFormGroup.get('strategy').value === TimeseriesDeleteStrategy.DELETE_LATEST_VALUE;
}
onStartDateTimeChange(newStartDateTime: Date) {
if (newStartDateTime) {
const endDateTimeTs = this.deleteTimeseriesFormGroup.get('endDateTime').value.getTime();
- const startDateTimeControl = this.getStartDateTimeFormControl();
if (newStartDateTime.getTime() >= endDateTimeTs) {
- startDateTimeControl.patchValue(new Date(endDateTimeTs - MINUTE), {onlySelf: true, emitEvent: false});
+ this.deleteTimeseriesFormGroup.get('startDateTime')
+ .patchValue(new Date(endDateTimeTs - MINUTE), {onlySelf: true, emitEvent: false});
} else {
- startDateTimeControl.patchValue(newStartDateTime, {onlySelf: true, emitEvent: false});
+ this.deleteTimeseriesFormGroup.get('startDateTime')
+ .patchValue(newStartDateTime, {onlySelf: true, emitEvent: false});
}
}
}
@@ -137,11 +140,12 @@ export class DeleteTimeseriesPanelComponent implements OnInit, OnDestroy {
onEndDateTimeChange(newEndDateTime: Date) {
if (newEndDateTime) {
const startDateTimeTs = this.deleteTimeseriesFormGroup.get('startDateTime').value.getTime();
- const endDateTimeControl = this.getEndDateTimeFormControl();
if (newEndDateTime.getTime() <= startDateTimeTs) {
- endDateTimeControl.patchValue(new Date(startDateTimeTs + MINUTE), {onlySelf: true, emitEvent: false});
+ this.deleteTimeseriesFormGroup.get('endDateTime')
+ .patchValue(new Date(startDateTimeTs + MINUTE), {onlySelf: true, emitEvent: false});
} else {
- endDateTimeControl.patchValue(newEndDateTime, {onlySelf: true, emitEvent: false});
+ this.deleteTimeseriesFormGroup.get('endDateTime')
+ .patchValue(newEndDateTime, {onlySelf: true, emitEvent: false});
}
}
}