From 2d879510e48fe94ada94accd4a9eb4393158b8c1 Mon Sep 17 00:00:00 2001 From: Peter Lee Date: Sun, 12 Nov 2023 04:56:47 +0800 Subject: [PATCH] add fork dashboard function (#6588) * add fork dashboard function * add test * fix --------- Co-authored-by: guyu --- .../dashboards/components/DashboardHeader.jsx | 10 +++++ .../pages/dashboards/hooks/useDashboard.js | 5 +++ .../dashboards/hooks/useDuplicateDashboard.js | 40 +++++++++++++++++++ client/app/services/dashboard.js | 5 +++ redash/handlers/api.py | 2 + redash/handlers/dashboards.py | 13 ++++++ redash/models/__init__.py | 24 +++++++++++ tests/handlers/test_dashboards.py | 9 +++++ 8 files changed, 108 insertions(+) create mode 100644 client/app/pages/dashboards/hooks/useDuplicateDashboard.js diff --git a/client/app/pages/dashboards/components/DashboardHeader.jsx b/client/app/pages/dashboards/components/DashboardHeader.jsx index 3cd5c7adf..b8b27a392 100644 --- a/client/app/pages/dashboards/components/DashboardHeader.jsx +++ b/client/app/pages/dashboards/components/DashboardHeader.jsx @@ -119,6 +119,8 @@ function DashboardMoreOptionsButton({ dashboardConfiguration }) { managePermissions, gridDisabled, isDashboardOwnerOrAdmin, + isDuplicating, + duplicateDashboard, } = dashboardConfiguration; const archive = () => { @@ -142,6 +144,14 @@ function DashboardMoreOptionsButton({ dashboardConfiguration }) { setEditingLayout(true)}>Edit + {!isDuplicating && dashboard.canEdit() && ( + + + Fork