Timewindow: leave only selected realtime/history and aggregation parameters for saving and remove others from configuration
This commit is contained in:
parent
3491419dd9
commit
083078b7f5
@ -295,7 +295,8 @@ export class DashboardUtilsService {
|
||||
widgetConfig.datasources = this.validateAndUpdateDatasources(widgetConfig.datasources);
|
||||
if (type === widgetType.latest) {
|
||||
const onlyHistoryTimewindow = datasourcesHasOnlyComparisonAggregation(widgetConfig.datasources);
|
||||
widgetConfig.timewindow = initModelFromDefaultTimewindow(widgetConfig.timewindow, true, onlyHistoryTimewindow, this.timeService);
|
||||
widgetConfig.timewindow = initModelFromDefaultTimewindow(widgetConfig.timewindow, true,
|
||||
onlyHistoryTimewindow, this.timeService, false);
|
||||
} else if (type === widgetType.rpc) {
|
||||
if (widgetConfig.targetDeviceAliasIds && widgetConfig.targetDeviceAliasIds.length) {
|
||||
widgetConfig.targetDevice = {
|
||||
|
||||
@ -152,73 +152,73 @@ export class TimewindowConfigDialogComponent extends PageComponent implements On
|
||||
this.timewindowForm = this.fb.group({
|
||||
selectedTab: [isDefined(this.timewindow.selectedTab) ? this.timewindow.selectedTab : TimewindowType.REALTIME],
|
||||
realtime: this.fb.group({
|
||||
realtimeType: [ isDefined(realtime?.realtimeType) ? this.timewindow.realtime.realtimeType : RealtimeWindowType.LAST_INTERVAL ],
|
||||
timewindowMs: [ isDefined(realtime?.timewindowMs) ? this.timewindow.realtime.timewindowMs : null ],
|
||||
interval: [ isDefined(realtime?.interval) ? this.timewindow.realtime.interval : null ],
|
||||
quickInterval: [ isDefined(realtime?.quickInterval) ? this.timewindow.realtime.quickInterval : null ],
|
||||
disableCustomInterval: [ isDefinedAndNotNull(this.timewindow.realtime?.disableCustomInterval)
|
||||
? this.timewindow.realtime?.disableCustomInterval : false ],
|
||||
disableCustomGroupInterval: [ isDefinedAndNotNull(this.timewindow.realtime?.disableCustomGroupInterval)
|
||||
? this.timewindow.realtime?.disableCustomGroupInterval : false ],
|
||||
hideInterval: [ isDefinedAndNotNull(this.timewindow.realtime.hideInterval)
|
||||
? this.timewindow.realtime.hideInterval : false ],
|
||||
realtimeType: [ isDefined(realtime?.realtimeType) ? realtime.realtimeType : RealtimeWindowType.LAST_INTERVAL ],
|
||||
timewindowMs: [ isDefined(realtime?.timewindowMs) ? realtime.timewindowMs : null ],
|
||||
interval: [ isDefined(realtime?.interval) ? realtime.interval : null ],
|
||||
quickInterval: [ isDefined(realtime?.quickInterval) ? realtime.quickInterval : null ],
|
||||
disableCustomInterval: [ isDefinedAndNotNull(realtime?.disableCustomInterval)
|
||||
? realtime.disableCustomInterval : false ],
|
||||
disableCustomGroupInterval: [ isDefinedAndNotNull(realtime?.disableCustomGroupInterval)
|
||||
? realtime.disableCustomGroupInterval : false ],
|
||||
hideInterval: [ isDefinedAndNotNull(realtime?.hideInterval)
|
||||
? realtime.hideInterval : false ],
|
||||
hideLastInterval: [{
|
||||
value: isDefinedAndNotNull(this.timewindow.realtime.hideLastInterval)
|
||||
? this.timewindow.realtime.hideLastInterval : false,
|
||||
disabled: this.timewindow.realtime.hideInterval
|
||||
value: isDefinedAndNotNull(realtime?.hideLastInterval)
|
||||
? realtime.hideLastInterval : false,
|
||||
disabled: realtime?.hideInterval
|
||||
}],
|
||||
hideQuickInterval: [{
|
||||
value: isDefinedAndNotNull(this.timewindow.realtime.hideQuickInterval)
|
||||
? this.timewindow.realtime.hideQuickInterval : false,
|
||||
disabled: this.timewindow.realtime.hideInterval
|
||||
value: isDefinedAndNotNull(realtime?.hideQuickInterval)
|
||||
? realtime.hideQuickInterval : false,
|
||||
disabled: realtime?.hideInterval
|
||||
}],
|
||||
advancedParams: this.fb.group({
|
||||
allowedLastIntervals: [ isDefinedAndNotNull(this.timewindow.realtime?.advancedParams?.allowedLastIntervals)
|
||||
? this.timewindow.realtime.advancedParams.allowedLastIntervals : null ],
|
||||
allowedQuickIntervals: [ isDefinedAndNotNull(this.timewindow.realtime?.advancedParams?.allowedQuickIntervals)
|
||||
? this.timewindow.realtime.advancedParams.allowedQuickIntervals : null ],
|
||||
lastAggIntervalsConfig: [ isDefinedAndNotNull(this.timewindow.realtime?.advancedParams?.lastAggIntervalsConfig)
|
||||
? this.timewindow.realtime.advancedParams.lastAggIntervalsConfig : null ],
|
||||
quickAggIntervalsConfig: [ isDefinedAndNotNull(this.timewindow.realtime?.advancedParams?.quickAggIntervalsConfig)
|
||||
? this.timewindow.realtime.advancedParams.quickAggIntervalsConfig : null ]
|
||||
allowedLastIntervals: [ isDefinedAndNotNull(realtime?.advancedParams?.allowedLastIntervals)
|
||||
? realtime.advancedParams.allowedLastIntervals : null ],
|
||||
allowedQuickIntervals: [ isDefinedAndNotNull(realtime?.advancedParams?.allowedQuickIntervals)
|
||||
? realtime.advancedParams.allowedQuickIntervals : null ],
|
||||
lastAggIntervalsConfig: [ isDefinedAndNotNull(realtime?.advancedParams?.lastAggIntervalsConfig)
|
||||
? realtime.advancedParams.lastAggIntervalsConfig : null ],
|
||||
quickAggIntervalsConfig: [ isDefinedAndNotNull(realtime?.advancedParams?.quickAggIntervalsConfig)
|
||||
? realtime.advancedParams.quickAggIntervalsConfig : null ]
|
||||
})
|
||||
}),
|
||||
history: this.fb.group({
|
||||
historyType: [ isDefined(history?.historyType) ? this.timewindow.history.historyType : HistoryWindowType.LAST_INTERVAL ],
|
||||
timewindowMs: [ isDefined(history?.timewindowMs) ? this.timewindow.history.timewindowMs : null ],
|
||||
interval: [ isDefined(history?.interval) ? this.timewindow.history.interval : null ],
|
||||
fixedTimewindow: [ isDefined(history?.fixedTimewindow) ? this.timewindow.history.fixedTimewindow : null ],
|
||||
quickInterval: [ isDefined(history?.quickInterval) ? this.timewindow.history.quickInterval : null ],
|
||||
disableCustomInterval: [ isDefinedAndNotNull(this.timewindow.history?.disableCustomInterval)
|
||||
? this.timewindow.history?.disableCustomInterval : false ],
|
||||
disableCustomGroupInterval: [ isDefinedAndNotNull(this.timewindow.history?.disableCustomGroupInterval)
|
||||
? this.timewindow.history?.disableCustomGroupInterval : false ],
|
||||
hideInterval: [ isDefinedAndNotNull(this.timewindow.history.hideInterval)
|
||||
? this.timewindow.history.hideInterval : false ],
|
||||
historyType: [ isDefined(history?.historyType) ? history.historyType : HistoryWindowType.LAST_INTERVAL ],
|
||||
timewindowMs: [ isDefined(history?.timewindowMs) ? history.timewindowMs : null ],
|
||||
interval: [ isDefined(history?.interval) ? history.interval : null ],
|
||||
fixedTimewindow: [ isDefined(history?.fixedTimewindow) ? history.fixedTimewindow : null ],
|
||||
quickInterval: [ isDefined(history?.quickInterval) ? history.quickInterval : null ],
|
||||
disableCustomInterval: [ isDefinedAndNotNull(history?.disableCustomInterval)
|
||||
? history.disableCustomInterval : false ],
|
||||
disableCustomGroupInterval: [ isDefinedAndNotNull(history?.disableCustomGroupInterval)
|
||||
? history.disableCustomGroupInterval : false ],
|
||||
hideInterval: [ isDefinedAndNotNull(history?.hideInterval)
|
||||
? history.hideInterval : false ],
|
||||
hideLastInterval: [{
|
||||
value: isDefinedAndNotNull(this.timewindow.history.hideLastInterval)
|
||||
? this.timewindow.history.hideLastInterval : false,
|
||||
disabled: this.timewindow.history.hideInterval
|
||||
value: isDefinedAndNotNull(history?.hideLastInterval)
|
||||
? history.hideLastInterval : false,
|
||||
disabled: history?.hideInterval
|
||||
}],
|
||||
hideQuickInterval: [{
|
||||
value: isDefinedAndNotNull(this.timewindow.history.hideQuickInterval)
|
||||
? this.timewindow.history.hideQuickInterval : false,
|
||||
disabled: this.timewindow.history.hideInterval
|
||||
value: isDefinedAndNotNull(history?.hideQuickInterval)
|
||||
? history.hideQuickInterval : false,
|
||||
disabled: history?.hideInterval
|
||||
}],
|
||||
hideFixedInterval: [{
|
||||
value: isDefinedAndNotNull(this.timewindow.history.hideFixedInterval)
|
||||
? this.timewindow.history.hideFixedInterval : false,
|
||||
disabled: this.timewindow.history.hideInterval
|
||||
value: isDefinedAndNotNull(history?.hideFixedInterval)
|
||||
? history.hideFixedInterval : false,
|
||||
disabled: history?.hideInterval
|
||||
}],
|
||||
advancedParams: this.fb.group({
|
||||
allowedLastIntervals: [ isDefinedAndNotNull(this.timewindow.history?.advancedParams?.allowedLastIntervals)
|
||||
? this.timewindow.history.advancedParams.allowedLastIntervals : null ],
|
||||
allowedQuickIntervals: [ isDefinedAndNotNull(this.timewindow.history?.advancedParams?.allowedQuickIntervals)
|
||||
? this.timewindow.history.advancedParams.allowedQuickIntervals : null ],
|
||||
lastAggIntervalsConfig: [ isDefinedAndNotNull(this.timewindow.history?.advancedParams?.lastAggIntervalsConfig)
|
||||
? this.timewindow.history.advancedParams.lastAggIntervalsConfig : null ],
|
||||
quickAggIntervalsConfig: [ isDefinedAndNotNull(this.timewindow.history?.advancedParams?.quickAggIntervalsConfig)
|
||||
? this.timewindow.history.advancedParams.quickAggIntervalsConfig : null ]
|
||||
allowedLastIntervals: [ isDefinedAndNotNull(history?.advancedParams?.allowedLastIntervals)
|
||||
? history.advancedParams.allowedLastIntervals : null ],
|
||||
allowedQuickIntervals: [ isDefinedAndNotNull(history?.advancedParams?.allowedQuickIntervals)
|
||||
? history.advancedParams.allowedQuickIntervals : null ],
|
||||
lastAggIntervalsConfig: [ isDefinedAndNotNull(history?.advancedParams?.lastAggIntervalsConfig)
|
||||
? history.advancedParams.lastAggIntervalsConfig : null ],
|
||||
quickAggIntervalsConfig: [ isDefinedAndNotNull(history?.advancedParams?.quickAggIntervalsConfig)
|
||||
? history.advancedParams.quickAggIntervalsConfig : null ]
|
||||
})
|
||||
}),
|
||||
aggregation: this.fb.group({
|
||||
|
||||
@ -27,12 +27,14 @@ import {
|
||||
} from '@angular/core';
|
||||
import {
|
||||
AggregationType,
|
||||
clearTimewindowConfig,
|
||||
currentHistoryTimewindow,
|
||||
currentRealtimeTimewindow,
|
||||
historyAllowedAggIntervals,
|
||||
HistoryWindowType,
|
||||
historyWindowTypeTranslations,
|
||||
Interval,
|
||||
MINUTE,
|
||||
QuickTimeInterval,
|
||||
realtimeAllowedAggIntervals,
|
||||
RealtimeWindowType,
|
||||
@ -167,14 +169,14 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
});
|
||||
}
|
||||
|
||||
if ((this.isEdit || !this.timewindow.realtime.hideLastInterval) && !this.quickIntervalOnly) {
|
||||
if ((this.isEdit || !this.timewindow.realtime?.hideLastInterval) && !this.quickIntervalOnly) {
|
||||
this.realtimeTimewindowOptions.push({
|
||||
name: this.translate.instant(realtimeWindowTypeTranslations.get(RealtimeWindowType.LAST_INTERVAL)),
|
||||
value: this.realtimeTypes.LAST_INTERVAL
|
||||
});
|
||||
}
|
||||
|
||||
if (this.isEdit || !this.timewindow.realtime.hideQuickInterval || this.quickIntervalOnly) {
|
||||
if (this.isEdit || !this.timewindow.realtime?.hideQuickInterval || this.quickIntervalOnly) {
|
||||
this.realtimeTimewindowOptions.push({
|
||||
name: this.translate.instant(realtimeWindowTypeTranslations.get(RealtimeWindowType.INTERVAL)),
|
||||
value: this.realtimeTypes.INTERVAL
|
||||
@ -188,21 +190,21 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
});
|
||||
}
|
||||
|
||||
if (this.isEdit || !this.timewindow.history.hideLastInterval) {
|
||||
if (this.isEdit || !this.timewindow.history?.hideLastInterval) {
|
||||
this.historyTimewindowOptions.push({
|
||||
name: this.translate.instant(historyWindowTypeTranslations.get(HistoryWindowType.LAST_INTERVAL)),
|
||||
value: this.historyTypes.LAST_INTERVAL
|
||||
});
|
||||
}
|
||||
|
||||
if (this.isEdit || !this.timewindow.history.hideFixedInterval) {
|
||||
if (this.isEdit || !this.timewindow.history?.hideFixedInterval) {
|
||||
this.historyTimewindowOptions.push({
|
||||
name: this.translate.instant(historyWindowTypeTranslations.get(HistoryWindowType.FIXED)),
|
||||
value: this.historyTypes.FIXED
|
||||
});
|
||||
}
|
||||
|
||||
if (this.isEdit || !this.timewindow.history.hideQuickInterval) {
|
||||
if (this.isEdit || !this.timewindow.history?.hideQuickInterval) {
|
||||
this.historyTimewindowOptions.push({
|
||||
name: this.translate.instant(historyWindowTypeTranslations.get(HistoryWindowType.INTERVAL)),
|
||||
value: this.historyTypes.INTERVAL
|
||||
@ -211,10 +213,10 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
|
||||
this.realtimeTypeSelectionAvailable = this.realtimeTimewindowOptions.length > 1;
|
||||
this.historyTypeSelectionAvailable = this.historyTimewindowOptions.length > 1;
|
||||
this.realtimeIntervalSelectionAvailable = this.isEdit || !(this.timewindow.realtime.hideInterval ||
|
||||
(this.timewindow.realtime.hideLastInterval && this.timewindow.realtime.hideQuickInterval));
|
||||
this.historyIntervalSelectionAvailable = this.isEdit || !(this.timewindow.history.hideInterval ||
|
||||
(this.timewindow.history.hideLastInterval && this.timewindow.history.hideQuickInterval && this.timewindow.history.hideFixedInterval));
|
||||
this.realtimeIntervalSelectionAvailable = this.isEdit || !(this.timewindow.realtime?.hideInterval ||
|
||||
(this.timewindow.realtime?.hideLastInterval && this.timewindow.realtime?.hideQuickInterval));
|
||||
this.historyIntervalSelectionAvailable = this.isEdit || !(this.timewindow.history?.hideInterval ||
|
||||
(this.timewindow.history?.hideLastInterval && this.timewindow.history?.hideQuickInterval && this.timewindow.history?.hideFixedInterval));
|
||||
|
||||
this.aggregationOptionsAvailable = this.aggregation && (this.isEdit ||
|
||||
!(this.timewindow.hideAggregation && this.timewindow.hideAggInterval));
|
||||
@ -230,28 +232,28 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
const aggregation = this.timewindow.aggregation;
|
||||
|
||||
if (!this.isEdit) {
|
||||
if (realtime.hideLastInterval && !realtime.hideQuickInterval) {
|
||||
if (realtime?.hideLastInterval && !realtime?.hideQuickInterval) {
|
||||
realtime.realtimeType = RealtimeWindowType.INTERVAL;
|
||||
}
|
||||
if (realtime.hideQuickInterval && !realtime.hideLastInterval) {
|
||||
if (realtime?.hideQuickInterval && !realtime?.hideLastInterval) {
|
||||
realtime.realtimeType = RealtimeWindowType.LAST_INTERVAL;
|
||||
}
|
||||
|
||||
if (history.hideLastInterval) {
|
||||
if (history?.hideLastInterval) {
|
||||
if (!history.hideFixedInterval) {
|
||||
history.historyType = HistoryWindowType.FIXED;
|
||||
} else if (!history.hideQuickInterval) {
|
||||
history.historyType = HistoryWindowType.INTERVAL;
|
||||
}
|
||||
}
|
||||
if (history.hideFixedInterval) {
|
||||
if (history?.hideFixedInterval) {
|
||||
if (!history.hideLastInterval) {
|
||||
history.historyType = HistoryWindowType.LAST_INTERVAL;
|
||||
} else if (!history.hideQuickInterval) {
|
||||
history.historyType = HistoryWindowType.INTERVAL;
|
||||
}
|
||||
}
|
||||
if (history.hideQuickInterval) {
|
||||
if (history?.hideQuickInterval) {
|
||||
if (!history.hideLastInterval) {
|
||||
history.historyType = HistoryWindowType.LAST_INTERVAL;
|
||||
} else if (!history.hideFixedInterval) {
|
||||
@ -265,29 +267,29 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
realtime: this.fb.group({
|
||||
realtimeType: [{
|
||||
value: isDefined(realtime?.realtimeType) ? realtime.realtimeType : RealtimeWindowType.LAST_INTERVAL,
|
||||
disabled: realtime.hideInterval
|
||||
disabled: realtime?.hideInterval
|
||||
}],
|
||||
timewindowMs: [{
|
||||
value: isDefined(realtime?.timewindowMs) ? realtime.timewindowMs : null,
|
||||
disabled: realtime.hideInterval || realtime.hideLastInterval
|
||||
value: isDefined(realtime?.timewindowMs) ? realtime.timewindowMs : MINUTE,
|
||||
disabled: realtime?.hideInterval || realtime?.hideLastInterval
|
||||
}],
|
||||
interval: [{
|
||||
value:isDefined(realtime?.interval) ? realtime.interval : null,
|
||||
disabled: hideAggInterval
|
||||
}],
|
||||
quickInterval: [{
|
||||
value: isDefined(realtime?.quickInterval) ? realtime.quickInterval : null,
|
||||
disabled: realtime.hideInterval || realtime.hideQuickInterval
|
||||
value: isDefined(realtime?.quickInterval) ? realtime.quickInterval : QuickTimeInterval.CURRENT_DAY,
|
||||
disabled: realtime?.hideInterval || realtime?.hideQuickInterval
|
||||
}]
|
||||
}),
|
||||
history: this.fb.group({
|
||||
historyType: [{
|
||||
value: isDefined(history?.historyType) ? history.historyType : HistoryWindowType.LAST_INTERVAL,
|
||||
disabled: history.hideInterval
|
||||
disabled: history?.hideInterval
|
||||
}],
|
||||
timewindowMs: [{
|
||||
value: isDefined(history?.timewindowMs) ? history.timewindowMs : null,
|
||||
disabled: history.hideInterval || history.hideLastInterval
|
||||
value: isDefined(history?.timewindowMs) ? history.timewindowMs : MINUTE,
|
||||
disabled: history?.hideInterval || history?.hideLastInterval
|
||||
}],
|
||||
interval: [{
|
||||
value:isDefined(history?.interval) ? history.interval : null,
|
||||
@ -296,11 +298,11 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
fixedTimewindow: [{
|
||||
value: isDefined(history?.fixedTimewindow) && this.timewindow.selectedTab === TimewindowType.HISTORY
|
||||
&& history.historyType === HistoryWindowType.FIXED ? history.fixedTimewindow : null,
|
||||
disabled: history.hideInterval || history.hideFixedInterval
|
||||
disabled: history?.hideInterval || history?.hideFixedInterval
|
||||
}],
|
||||
quickInterval: [{
|
||||
value: isDefined(history?.quickInterval) ? history.quickInterval : null,
|
||||
disabled: history.hideInterval || history.hideQuickInterval
|
||||
value: isDefined(history?.quickInterval) ? history.quickInterval : QuickTimeInterval.CURRENT_DAY,
|
||||
disabled: history?.hideInterval || history?.hideQuickInterval
|
||||
}]
|
||||
}),
|
||||
aggregation: this.fb.group({
|
||||
@ -380,6 +382,7 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
takeUntil(this.destroy$)
|
||||
).subscribe(() => {
|
||||
this.prepareTimewindowConfig();
|
||||
this.clearTimewindowConfig();
|
||||
this.changeTimewindow.emit(this.timewindow);
|
||||
});
|
||||
}
|
||||
@ -407,6 +410,7 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
|
||||
update() {
|
||||
this.prepareTimewindowConfig();
|
||||
this.clearTimewindowConfig();
|
||||
this.result = this.timewindow;
|
||||
this.overlayRef?.dispose();
|
||||
}
|
||||
@ -414,21 +418,25 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
private prepareTimewindowConfig() {
|
||||
const timewindowFormValue = this.timewindowForm.getRawValue();
|
||||
this.timewindow.selectedTab = timewindowFormValue.selectedTab;
|
||||
this.timewindow.realtime = {...this.timewindow.realtime, ...{
|
||||
realtimeType: timewindowFormValue.realtime.realtimeType,
|
||||
timewindowMs: timewindowFormValue.realtime.timewindowMs,
|
||||
quickInterval: timewindowFormValue.realtime.quickInterval,
|
||||
interval: timewindowFormValue.realtime.interval
|
||||
}};
|
||||
this.timewindow.history = {...this.timewindow.history, ...{
|
||||
historyType: timewindowFormValue.history.historyType,
|
||||
timewindowMs: timewindowFormValue.history.timewindowMs,
|
||||
interval: timewindowFormValue.history.interval,
|
||||
fixedTimewindow: timewindowFormValue.history.fixedTimewindow,
|
||||
quickInterval: timewindowFormValue.history.quickInterval,
|
||||
}};
|
||||
if (this.timewindow.selectedTab === TimewindowType.REALTIME) {
|
||||
this.timewindow.realtime = {...this.timewindow.realtime, ...{
|
||||
realtimeType: timewindowFormValue.realtime.realtimeType,
|
||||
timewindowMs: timewindowFormValue.realtime.timewindowMs,
|
||||
quickInterval: timewindowFormValue.realtime.quickInterval,
|
||||
}};
|
||||
} else {
|
||||
this.timewindow.history = {...this.timewindow.history, ...{
|
||||
historyType: timewindowFormValue.history.historyType,
|
||||
timewindowMs: timewindowFormValue.history.timewindowMs,
|
||||
fixedTimewindow: timewindowFormValue.history.fixedTimewindow,
|
||||
quickInterval: timewindowFormValue.history.quickInterval,
|
||||
}};
|
||||
}
|
||||
|
||||
if (this.aggregation) {
|
||||
this.timewindow.realtime.interval = timewindowFormValue.realtime.interval;
|
||||
this.timewindow.history.interval = timewindowFormValue.history.interval;
|
||||
|
||||
this.timewindow.aggregation = {
|
||||
type: timewindowFormValue.aggregation.type,
|
||||
limit: timewindowFormValue.aggregation.limit
|
||||
@ -439,6 +447,10 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
}
|
||||
}
|
||||
|
||||
private clearTimewindowConfig() {
|
||||
clearTimewindowConfig(this.timewindow, this.quickIntervalOnly, this.historyOnly, this.aggregation, this.timezone);
|
||||
}
|
||||
|
||||
private updateTimewindowForm() {
|
||||
this.timewindowForm.patchValue(this.timewindow, {emitEvent: false});
|
||||
this.updateValidators(this.timewindowForm.get('aggregation.type').value);
|
||||
@ -568,12 +580,12 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
}
|
||||
|
||||
private updateTimewindowAdvancedParams() {
|
||||
this.realtimeDisableCustomInterval = this.timewindow.realtime.disableCustomInterval;
|
||||
this.realtimeDisableCustomGroupInterval = this.timewindow.realtime.disableCustomGroupInterval;
|
||||
this.historyDisableCustomInterval = this.timewindow.history.disableCustomInterval;
|
||||
this.historyDisableCustomGroupInterval = this.timewindow.history.disableCustomGroupInterval;
|
||||
this.realtimeDisableCustomInterval = this.timewindow.realtime?.disableCustomInterval;
|
||||
this.realtimeDisableCustomGroupInterval = this.timewindow.realtime?.disableCustomGroupInterval;
|
||||
this.historyDisableCustomInterval = this.timewindow.history?.disableCustomInterval;
|
||||
this.historyDisableCustomGroupInterval = this.timewindow.history?.disableCustomGroupInterval;
|
||||
|
||||
if (this.timewindow.realtime.advancedParams) {
|
||||
if (this.timewindow.realtime?.advancedParams) {
|
||||
this.realtimeAdvancedParams = this.timewindow.realtime.advancedParams;
|
||||
this.realtimeAllowedLastIntervals = this.timewindow.realtime.advancedParams.allowedLastIntervals;
|
||||
this.realtimeAllowedQuickIntervals = this.timewindow.realtime.advancedParams.allowedQuickIntervals;
|
||||
@ -582,7 +594,7 @@ export class TimewindowPanelComponent extends PageComponent implements OnInit, O
|
||||
this.realtimeAllowedLastIntervals = null;
|
||||
this.realtimeAllowedQuickIntervals = null;
|
||||
}
|
||||
if (this.timewindow.history.advancedParams) {
|
||||
if (this.timewindow.history?.advancedParams) {
|
||||
this.historyAdvancedParams = this.timewindow.history.advancedParams;
|
||||
this.historyAllowedLastIntervals = this.timewindow.history.advancedParams.allowedLastIntervals;
|
||||
this.historyAllowedQuickIntervals = this.timewindow.history.advancedParams.allowedQuickIntervals;
|
||||
|
||||
@ -319,7 +319,8 @@ export class TimewindowComponent implements ControlValueAccessor, OnInit, OnChan
|
||||
}
|
||||
|
||||
writeValue(obj: Timewindow): void {
|
||||
this.innerValue = initModelFromDefaultTimewindow(obj, this.quickIntervalOnly, this.historyOnly, this.timeService);
|
||||
this.innerValue = initModelFromDefaultTimewindow(obj, this.quickIntervalOnly, this.historyOnly, this.timeService,
|
||||
this.aggregation);
|
||||
this.timewindowDisabled = this.isTimewindowDisabled();
|
||||
if (this.onHistoryOnlyChanged()) {
|
||||
setTimeout(() => {
|
||||
|
||||
@ -15,11 +15,12 @@
|
||||
///
|
||||
|
||||
import { TimeService } from '@core/services/time.service';
|
||||
import { deepClone, isDefined, isDefinedAndNotNull, isNumeric, isUndefined } from '@app/core/utils';
|
||||
import { deepClone, isDefined, isDefinedAndNotNull, isNumeric, isUndefined, isUndefinedOrNull } from '@app/core/utils';
|
||||
import moment_ from 'moment';
|
||||
import * as momentTz from 'moment-timezone';
|
||||
import { IntervalType } from '@shared/models/telemetry/telemetry.models';
|
||||
import { FormGroup } from '@angular/forms';
|
||||
import { isEmpty } from 'lodash';
|
||||
|
||||
const moment = moment_;
|
||||
|
||||
@ -314,7 +315,7 @@ const getTimewindowType = (timewindow: Timewindow): TimewindowType => {
|
||||
};
|
||||
|
||||
export const initModelFromDefaultTimewindow = (value: Timewindow, quickIntervalOnly: boolean,
|
||||
historyOnly: boolean, timeService: TimeService): Timewindow => {
|
||||
historyOnly: boolean, timeService: TimeService, hasAggregation: boolean): Timewindow => {
|
||||
const model = defaultTimewindow(timeService);
|
||||
if (value) {
|
||||
if (value.allowedAggTypes?.length) {
|
||||
@ -446,7 +447,9 @@ export const initModelFromDefaultTimewindow = (value: Timewindow, quickIntervalO
|
||||
}
|
||||
model.aggregation.limit = value.aggregation.limit || Math.floor(timeService.getMaxDatapointsLimit() / 2);
|
||||
}
|
||||
model.timezone = value.timezone;
|
||||
if (value.timezone) {
|
||||
model.timezone = value.timezone;
|
||||
}
|
||||
}
|
||||
if (quickIntervalOnly) {
|
||||
model.realtime.realtimeType = RealtimeWindowType.INTERVAL;
|
||||
@ -454,6 +457,7 @@ export const initModelFromDefaultTimewindow = (value: Timewindow, quickIntervalO
|
||||
if (historyOnly) {
|
||||
model.selectedTab = TimewindowType.HISTORY;
|
||||
}
|
||||
clearTimewindowConfig(model, quickIntervalOnly, historyOnly, hasAggregation);
|
||||
return model;
|
||||
};
|
||||
|
||||
@ -1106,13 +1110,82 @@ export const cloneSelectedTimewindow = (timewindow: Timewindow): Timewindow => {
|
||||
if (isDefined(timewindow.selectedTab)) {
|
||||
cloned.selectedTab = timewindow.selectedTab;
|
||||
}
|
||||
cloned.realtime = deepClone(timewindow.realtime);
|
||||
cloned.history = deepClone(timewindow.history);
|
||||
cloned.aggregation = deepClone(timewindow.aggregation);
|
||||
cloned.timezone = timewindow.timezone;
|
||||
if (isDefined(timewindow.realtime)) {
|
||||
cloned.realtime = deepClone(timewindow.realtime);
|
||||
}
|
||||
if (isDefined(timewindow.history)) {
|
||||
cloned.history = deepClone(timewindow.history);
|
||||
}
|
||||
if (isDefined(timewindow.aggregation)) {
|
||||
cloned.aggregation = deepClone(timewindow.aggregation);
|
||||
}
|
||||
if (timewindow.timezone) {
|
||||
cloned.timezone = timewindow.timezone;
|
||||
}
|
||||
return cloned;
|
||||
};
|
||||
|
||||
export const clearTimewindowConfig = (timewindow: Timewindow, quickIntervalOnly: boolean,
|
||||
historyOnly: boolean, hasAggregation: boolean, hasTimezone = true): Timewindow => {
|
||||
if (timewindow.selectedTab === TimewindowType.REALTIME) {
|
||||
if (quickIntervalOnly || timewindow.realtime.realtimeType === RealtimeWindowType.INTERVAL) {
|
||||
delete timewindow.realtime.timewindowMs;
|
||||
} else {
|
||||
delete timewindow.realtime.quickInterval;
|
||||
}
|
||||
|
||||
delete timewindow.history.historyType;
|
||||
delete timewindow.history.timewindowMs;
|
||||
delete timewindow.history.fixedTimewindow;
|
||||
delete timewindow.history.quickInterval;
|
||||
|
||||
delete timewindow.history.interval;
|
||||
if (!hasAggregation) {
|
||||
delete timewindow.realtime.interval;
|
||||
}
|
||||
} else {
|
||||
if (timewindow.history.historyType === HistoryWindowType.LAST_INTERVAL) {
|
||||
delete timewindow.history.fixedTimewindow;
|
||||
delete timewindow.history.quickInterval;
|
||||
} else if (timewindow.history.historyType === HistoryWindowType.FIXED) {
|
||||
delete timewindow.history.timewindowMs;
|
||||
delete timewindow.history.quickInterval;
|
||||
} else if (timewindow.history.historyType === HistoryWindowType.INTERVAL) {
|
||||
delete timewindow.history.timewindowMs;
|
||||
delete timewindow.history.fixedTimewindow;
|
||||
} else {
|
||||
delete timewindow.history.timewindowMs;
|
||||
delete timewindow.history.fixedTimewindow;
|
||||
delete timewindow.history.quickInterval;
|
||||
}
|
||||
|
||||
delete timewindow.realtime.realtimeType;
|
||||
delete timewindow.realtime.timewindowMs;
|
||||
delete timewindow.realtime.quickInterval;
|
||||
|
||||
delete timewindow.realtime.interval;
|
||||
if (!hasAggregation) {
|
||||
delete timewindow.history.interval;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasAggregation) {
|
||||
delete timewindow.aggregation;
|
||||
}
|
||||
|
||||
if (isEmpty(timewindow.history)) {
|
||||
delete timewindow.history;
|
||||
}
|
||||
if (historyOnly || isEmpty(timewindow.realtime)) {
|
||||
delete timewindow.realtime;
|
||||
}
|
||||
|
||||
if (!hasTimezone || isUndefinedOrNull(timewindow.timezone)) {
|
||||
delete timewindow.timezone;
|
||||
}
|
||||
return timewindow;
|
||||
};
|
||||
|
||||
export interface TimeInterval {
|
||||
name: string;
|
||||
translateParams: {[key: string]: any};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user