diff --git a/ui-ngx/src/app/core/utils.ts b/ui-ngx/src/app/core/utils.ts index d0bd9ae484..9937689ba8 100644 --- a/ui-ngx/src/app/core/utils.ts +++ b/ui-ngx/src/app/core/utils.ts @@ -197,6 +197,23 @@ export function deleteNullProperties(obj: any) { }); } +export function deleteFalseProperties(obj: any) { + if (isUndefinedOrNull(obj)) { + return; + } + Object.keys(obj).forEach((propName) => { + if (obj[propName] === false || isUndefinedOrNull(obj[propName])) { + delete obj[propName]; + } else if (isObject(obj[propName])) { + deleteFalseProperties(obj[propName]); + } else if (Array.isArray(obj[propName])) { + (obj[propName] as any[]).forEach((elem) => { + deleteFalseProperties(elem); + }); + } + }); +} + export function objToBase64(obj: any): string { const json = JSON.stringify(obj); return btoa(encodeURIComponent(json).replace(/%([0-9A-F]{2})/g, diff --git a/ui-ngx/src/app/shared/components/time/timewindow-config-dialog.component.ts b/ui-ngx/src/app/shared/components/time/timewindow-config-dialog.component.ts index 33a9d44cf3..42e04cfc46 100644 --- a/ui-ngx/src/app/shared/components/time/timewindow-config-dialog.component.ts +++ b/ui-ngx/src/app/shared/components/time/timewindow-config-dialog.component.ts @@ -36,7 +36,15 @@ import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { TimeService } from '@core/services/time.service'; -import { deepClean, deepClone, isDefined, isDefinedAndNotNull, isEmpty, mergeDeepIgnoreArray } from '@core/utils'; +import { + deepClean, + deepClone, + deleteFalseProperties, + isDefined, + isDefinedAndNotNull, + isEmpty, + mergeDeepIgnoreArray +} from '@core/utils'; import { ToggleHeaderOption } from '@shared/components/toggle-header.component'; import { TranslateService } from '@ngx-translate/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; @@ -472,54 +480,11 @@ export class TimewindowConfigDialogComponent extends PageComponent implements On delete this.timewindow.allowedAggTypes; } - if (!this.timewindow.realtime.disableCustomInterval) { - delete this.timewindow.realtime.disableCustomInterval; - } - if (!this.timewindow.realtime.disableCustomGroupInterval) { - delete this.timewindow.realtime.disableCustomGroupInterval; - } - if (!this.timewindow.history.disableCustomInterval) { - delete this.timewindow.history.disableCustomInterval; - } - if (!this.timewindow.history.disableCustomGroupInterval) { - delete this.timewindow.history.disableCustomGroupInterval; - } - - if (!this.timewindow.hideAggregation) { - delete this.timewindow.hideAggregation; - } - if (!this.timewindow.hideAggInterval) { - delete this.timewindow.hideAggInterval; - } - if (!this.timewindow.hideTimezone) { - delete this.timewindow.hideTimezone; - } - - if (!this.timewindow.realtime.hideInterval) { - delete this.timewindow.realtime.hideInterval; - } - if (!this.timewindow.realtime.hideLastInterval) { - delete this.timewindow.realtime.hideLastInterval; - } - if (!this.timewindow.realtime.hideQuickInterval) { - delete this.timewindow.realtime.hideQuickInterval; - } - if (!this.timewindow.history.hideInterval) { - delete this.timewindow.history.hideInterval; - } - if (!this.timewindow.history.hideLastInterval) { - delete this.timewindow.history.hideLastInterval; - } - if (!this.timewindow.history.hideFixedInterval) { - delete this.timewindow.history.hideFixedInterval; - } - if (!this.timewindow.history.hideQuickInterval) { - delete this.timewindow.history.hideQuickInterval; - } - if (!this.aggregation) { delete this.timewindow.aggregation; } + + deleteFalseProperties(this.timewindow); this.dialogRef.close(deepClean(this.timewindow)); }