From ce70900c730acde531e4c7e2fbb8eb11460b9318 Mon Sep 17 00:00:00 2001 From: Eric Leijonmarck Date: Wed, 3 Sep 2025 18:02:17 +0200 Subject: [PATCH] fix: add back missing edit button for panels for viewers-can-edit (#110475) * fix: add back missing edit button for panels for viewers-can-edit * lint fix * updated meta cansave function with config option * cleanup * lint --------- Co-authored-by: Haris Rozajac --- .../app/features/dashboard-scene/scene/DashboardScene.tsx | 2 +- .../features/dashboard-scene/scene/NavToolbarActions.tsx | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/public/app/features/dashboard-scene/scene/DashboardScene.tsx b/public/app/features/dashboard-scene/scene/DashboardScene.tsx index 549b7850729..867bfc5d22c 100644 --- a/public/app/features/dashboard-scene/scene/DashboardScene.tsx +++ b/public/app/features/dashboard-scene/scene/DashboardScene.tsx @@ -681,7 +681,7 @@ export class DashboardScene extends SceneObjectBase impleme canEditDashboard() { const { meta } = this.state; - return Boolean(meta.canEdit || meta.canMakeEditable); + return Boolean(meta.canEdit || meta.canMakeEditable || config.viewersCanEdit); } public getInitialSaveModel() { diff --git a/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx b/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx index 18eafada208..d6ff8ccae00 100644 --- a/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx +++ b/public/app/features/dashboard-scene/scene/NavToolbarActions.tsx @@ -18,7 +18,6 @@ import { } from '@grafana/ui'; import { AppChromeUpdate } from 'app/core/components/AppChrome/AppChromeUpdate'; import { NavToolbarSeparator } from 'app/core/components/AppChrome/NavToolbar/NavToolbarSeparator'; -import grafanaConfig from 'app/core/config'; import { LS_PANEL_COPY_KEY } from 'app/core/constants'; import { contextSrv } from 'app/core/core'; import { getDashboardSrv } from 'app/features/dashboard/services/DashboardSrv'; @@ -92,11 +91,6 @@ export function ToolbarActions({ dashboard }: Props) { folderName: meta.folderUid, }); - // Internal only; - // allows viewer editing without ability to save - // used for grafana play - const canEdit = grafanaConfig.viewersCanEdit; - if (!isEditingPanel) { // This adds the presence indicators in enterprise addDynamicActions(toolbarActions, dynamicDashNavActions.left, 'left-actions'); @@ -351,7 +345,7 @@ export function ToolbarActions({ dashboard }: Props) { toolbarActions.push({ group: 'main-buttons', - condition: !isEditing && (dashboard.canEditDashboard() || canEdit) && !isViewingPanel && !isPlaying && editable, + condition: !isEditing && dashboard.canEditDashboard() && !isViewingPanel && !isPlaying && editable, render: () => (