From 7ced989a2dd02ea934c32a3cd8f374526c632991 Mon Sep 17 00:00:00 2001 From: Sameer Al-Sakran <sameer@expa.com> Date: Wed, 7 Mar 2018 12:50:16 -0800 Subject: [PATCH] add links in --- .../reference/databases/FieldSidebar.jsx | 7 ++++ .../reference/databases/TableSidebar.jsx | 6 ++++ .../reference/metrics/MetricSidebar.jsx | 6 ++++ .../reference/segments/SegmentSidebar.jsx | 7 ++++ src/metabase/api/automagic_dashboards.clj | 34 +++++++++++++++++-- 5 files changed, 57 insertions(+), 3 deletions(-) diff --git a/frontend/src/metabase/reference/databases/FieldSidebar.jsx b/frontend/src/metabase/reference/databases/FieldSidebar.jsx index 407308cff5b..8429c2cdd95 100644 --- a/frontend/src/metabase/reference/databases/FieldSidebar.jsx +++ b/frontend/src/metabase/reference/databases/FieldSidebar.jsx @@ -44,6 +44,13 @@ const FieldSidebar = ({ icon="document" name={t`Details`} /> + <SidebarItem + key={`/auto/dashboard/field/${field.id}`} + href={`/auto/dashboard/field/${field.id}`} + icon="beaker" + name={t`Generate a dashboard based on this field`} + /> + {showXray && ( <SidebarItem key={`/xray/field/${field.id}/approximate`} diff --git a/frontend/src/metabase/reference/databases/TableSidebar.jsx b/frontend/src/metabase/reference/databases/TableSidebar.jsx index 45b02723236..f7bb8c74772 100644 --- a/frontend/src/metabase/reference/databases/TableSidebar.jsx +++ b/frontend/src/metabase/reference/databases/TableSidebar.jsx @@ -44,6 +44,12 @@ const TableSidebar = ({ database, table, style, className, showXray }) => ( icon="all" name={t`Questions about this table`} /> + <SidebarItem + key={`/auto/dashboard/table/${table.id}`} + href={`/auto/dashboard/table/${table.id}`} + icon="beaker" + name={t`Generate a dashboard based on this table`} + /> {showXray && ( <SidebarItem key={`/xray/table/${table.id}/approximate`} diff --git a/frontend/src/metabase/reference/metrics/MetricSidebar.jsx b/frontend/src/metabase/reference/metrics/MetricSidebar.jsx index 5f82db2624a..f13dfb45cd3 100644 --- a/frontend/src/metabase/reference/metrics/MetricSidebar.jsx +++ b/frontend/src/metabase/reference/metrics/MetricSidebar.jsx @@ -32,6 +32,12 @@ const MetricSidebar = ({ metric, user, style, className }) => ( icon="all" name={t`Questions about ${metric.name}`} /> + <SidebarItem + key={`/auto/dashboard/metric/${metric.id}`} + href={`/auto/dashboard/metric/${metric.id}`} + icon="beaker" + name={t`Generate a dashboard based on this metric`} + /> {user && user.is_superuser && ( <SidebarItem diff --git a/frontend/src/metabase/reference/segments/SegmentSidebar.jsx b/frontend/src/metabase/reference/segments/SegmentSidebar.jsx index d2124cf4613..10f2ba753d9 100644 --- a/frontend/src/metabase/reference/segments/SegmentSidebar.jsx +++ b/frontend/src/metabase/reference/segments/SegmentSidebar.jsx @@ -38,6 +38,13 @@ const SegmentSidebar = ({ segment, user, style, className }) => ( icon="all" name={t`Questions about this segment`} /> + <SidebarItem + key={`/auto/dashboard/segment/${segment.id}`} + href={`/auto/dashboard/segment/${segment.id}`} + icon="beaker" + name={t`Create a dashboard based on this segment`} + /> + <SidebarItem key={`/xray/segment/${segment.id}/approximate`} href={`/xray/segment/${segment.id}/approximate`} diff --git a/src/metabase/api/automagic_dashboards.clj b/src/metabase/api/automagic_dashboards.clj index 3650480d74b..3fd687447c8 100644 --- a/src/metabase/api/automagic_dashboards.clj +++ b/src/metabase/api/automagic_dashboards.clj @@ -8,7 +8,8 @@ [dashboard :refer [Dashboard] :as dashboard] [metric :refer [Metric]] [segment :refer [Segment]] - [table :refer [Table]]] + [table :refer [Table]] + [field :refer [Field]]] [toucan [db :as db] [hydrate :refer [hydrate]]])) @@ -18,11 +19,22 @@ [id] (first (magic/automagic-dashboard (Table id)))) -(api/defendpoint GET "/analize/metric/:id" +(api/defendpoint GET "/metric/:id" "Return an automagic dashboard analyzing metric with id `id`." [id] (magic/automagic-analysis (Metric id))) +(api/defendpoint GET "/segment/:id" + "Return an automagic dashboard analyzing segment with id `id`." + [id] + (magic/automagic-analysis (Metric id))) + +(api/defendpoint GET "/field/:id" + "Return an automagic dashboard analyzing field with id `id`." + [id] + (magic/automagic-analysis (Field id))) + + (def ^:private valid-comparison-pair? #{["segment" "segment"] ["segment" "table"] @@ -84,13 +96,29 @@ (->> (magic/automagic-dashboard (Table id)) (map (comp :id dashboard/save-transient-dashboard!)))) -(api/defendpoint GET "/analize/metric/:id/save" +(api/defendpoint GET "/metric/:id/save" "Create an automagic dashboard analyzing metric with id `id`." [id] [(-> (magic/automagic-analysis (Metric id)) dashboard/save-transient-dashboard! :id)]) + +(api/defendpoint GET "/segment/:id/save" + "TODO: Code me" + [id] + [(-> (magic/automagic-analysis (Segment id)) + dashboard/save-transient-dashboard! + :id)]) + +(api/defendpoint GET "/field/:id/save" + "TODO: Code me" + [id] + [(-> (magic/automagic-analysis (Field id)) + dashboard/save-transient-dashboard! + :id)]) + + (api/defendpoint GET "/compare/dashboard/:dashboard-id/segments/:left-id/:right-id/save" "Create an automagic comparison dashboard based on dashboard with ID `dashboard-id`, comparing segments with IDs `left-id` and `right-id`." -- GitLab