Merge pull request #7267 from Terny22/feature/on-tw-change-function-settins

[3.4.2] UI: Added new widget-subscription setting - "onTimewindowChangeFunction"
This commit is contained in:
Andrew Shvayka 2022-10-31 12:56:58 +02:00 committed by GitHub
commit bcfd128a4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 1 deletions

View File

@ -252,6 +252,7 @@ export interface WidgetSubscriptionOptions {
displayTimewindow?: boolean;
timeWindowConfig?: Timewindow;
dashboardTimewindow?: Timewindow;
onTimewindowChangeFunction?: (timewindow: Timewindow) => Timewindow;
legendConfig?: LegendConfig;
comparisonEnabled?: boolean;
timeForComparison?: moment_.unitOfTime.DurationConstructor;
@ -290,6 +291,7 @@ export interface IWidgetSubscription {
hiddenData?: Array<{data: DataSet}>;
timeWindowConfig?: Timewindow;
timeWindow?: WidgetTimewindow;
onTimewindowChangeFunction?: (timewindow: Timewindow) => Timewindow;
widgetTimewindowChanged$: Observable<WidgetTimewindow>;
comparisonEnabled?: boolean;
comparisonTimeWindow?: WidgetTimewindow;

View File

@ -97,6 +97,7 @@ export class WidgetSubscription implements IWidgetSubscription {
subscriptionTimewindow: SubscriptionTimewindow;
useDashboardTimewindow: boolean;
useTimewindow: boolean;
onTimewindowChangeFunction: (timewindow: Timewindow) => Timewindow;
tsOffset = 0;
hasDataPageLink: boolean;
@ -247,6 +248,7 @@ export class WidgetSubscription implements IWidgetSubscription {
this.originalTimewindow = null;
this.timeWindow = {};
this.useDashboardTimewindow = options.useDashboardTimewindow;
this.onTimewindowChangeFunction = options.onTimewindowChangeFunction || ((timewindow) => timewindow);
this.stateData = options.stateData;
this.useTimewindow = this.type === widgetType.timeseries || datasourcesHasAggregation(this.configuredDatasources);
if (this.useDashboardTimewindow) {

View File

@ -453,7 +453,7 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI
for (const id of Object.keys(this.widgetContext.subscriptions)) {
const subscription = this.widgetContext.subscriptions[id];
if (!subscription.useDashboardTimewindow) {
subscription.updateTimewindowConfig(timewindow);
subscription.updateTimewindowConfig(subscription.onTimewindowChangeFunction(timewindow));
}
}
}