diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 2d990c58dda..c7249409d5d 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -60,4 +60,5 @@ export interface FeatureToggles { prometheusStreamingJSONParser?: boolean; validateDashboardsOnSave?: boolean; prometheusWideSeries?: boolean; + canvasPanelNesting?: boolean; } diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 69d4781256f..e13ffd47101 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -248,5 +248,11 @@ var ( Description: "Enable wide series responses in the Prometheus datasource", State: FeatureStateAlpha, }, + { + Name: "canvasPanelNesting", + Description: "Allow elements nesting", + State: FeatureStateAlpha, + FrontendOnly: true, + }, } ) diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index f41fbacd7cb..88fd1e9da84 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -182,4 +182,8 @@ const ( // FlagPrometheusWideSeries // Enable wide series responses in the Prometheus datasource FlagPrometheusWideSeries = "prometheusWideSeries" + + // FlagCanvasPanelNesting + // Allow elements nesting + FlagCanvasPanelNesting = "canvasPanelNesting" ) diff --git a/public/app/plugins/panel/canvas/editor/LayerElementListEditor.tsx b/public/app/plugins/panel/canvas/editor/LayerElementListEditor.tsx index cf89efda442..0f4be613d12 100644 --- a/public/app/plugins/panel/canvas/editor/LayerElementListEditor.tsx +++ b/public/app/plugins/panel/canvas/editor/LayerElementListEditor.tsx @@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'; import { DropResult } from 'react-beautiful-dnd'; import { AppEvents, SelectableValue, StandardEditorProps } from '@grafana/data'; +import { config } from '@grafana/runtime/src'; import { Button, HorizontalGroup } from '@grafana/ui'; import appEvents from 'app/core/app_events'; import { AddLayerButton } from 'app/core/components/Layers/AddLayerButton'; @@ -269,7 +270,7 @@ export class LayerElementListEditor extends PureComponent { Clear selection )} - {selection.length > 1 && ( + {selection.length > 1 && config.featureToggles.canvasPanelNesting && (