From 39864ba464c19e5e1e65d8e08fc55a2e62e6d123 Mon Sep 17 00:00:00 2001 From: Tom Robinson <tlrobinson@gmail.com> Date: Thu, 13 Apr 2017 13:17:13 -0700 Subject: [PATCH] Fix public link URLs --- .../settings/components/widgets/PublicLinksListing.jsx | 4 ++-- .../metabase/dashboard/containers/DashboardEmbedWidget.jsx | 2 +- frontend/src/metabase/lib/urls.js | 7 +++++-- .../query_builder/containers/QuestionEmbedWidget.jsx | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx b/frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx index 892ba549ca6..49f5dfc9e88 100644 --- a/frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx +++ b/frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx @@ -152,7 +152,7 @@ export const PublicLinksDashboardListing = () => revoke={DashboardApi.deletePublicLink} type='Public Dashboard Listing' getUrl={({ id }) => Urls.dashboard(id)} - getPublicUrl={({ public_uuid }) => window.location.origin + Urls.publicDashboard(public_uuid)} + getPublicUrl={({ public_uuid }) => Urls.publicDashboard(public_uuid)} noLinksMessage="No dashboards have been publicly shared yet." />; @@ -162,7 +162,7 @@ export const PublicLinksQuestionListing = () => revoke={CardApi.deletePublicLink} type='Public Card Listing' getUrl={({ id }) => Urls.question(id)} - getPublicUrl={({ public_uuid }) => window.location.origin + Urls.publicCard(public_uuid)} + getPublicUrl={({ public_uuid }) => Urls.publicCard(public_uuid)} noLinksMessage="No questions have been publicly shared yet." />; diff --git a/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx b/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx index cd76a516159..72dd16754d8 100644 --- a/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx +++ b/frontend/src/metabase/dashboard/containers/DashboardEmbedWidget.jsx @@ -32,7 +32,7 @@ export default class DashboardEmbedWidget extends Component { onDisablePublicLink={() => deletePublicLink(dashboard)} onUpdateEnableEmbedding={(enableEmbedding) => updateEnableEmbedding(dashboard, enableEmbedding)} onUpdateEmbeddingParams={(embeddingParams) => updateEmbeddingParams(dashboard, embeddingParams)} - getPublicUrl={({ public_uuid }) => window.location.origin + Urls.publicDashboard(public_uuid)} + getPublicUrl={({ public_uuid }) => Urls.publicDashboard(public_uuid)} /> ); } diff --git a/frontend/src/metabase/lib/urls.js b/frontend/src/metabase/lib/urls.js index 7c2eba73166..8ea28ce358e 100644 --- a/frontend/src/metabase/lib/urls.js +++ b/frontend/src/metabase/lib/urls.js @@ -1,4 +1,5 @@ import { serializeCardForUrl } from "metabase/lib/card"; +import MetabaseSettings from "metabase/lib/settings" // provides functions for building urls to things we care about @@ -59,11 +60,13 @@ export function label(label) { } export function publicCard(uuid, type = null) { - return `/public/question/${uuid}` + (type ? `.${type}` : ``); + const siteUrl = MetabaseSettings.get("site-url"); + return `${siteUrl}/public/question/${uuid}` + (type ? `.${type}` : ``); } export function publicDashboard(uuid) { - return `/public/dashboard/${uuid}`; + const siteUrl = MetabaseSettings.get("site-url"); + return `${siteUrl}/public/dashboard/${uuid}`; } export function embedCard(token, type = null) { diff --git a/frontend/src/metabase/query_builder/containers/QuestionEmbedWidget.jsx b/frontend/src/metabase/query_builder/containers/QuestionEmbedWidget.jsx index 5ad4562fd56..fef991cbcf2 100644 --- a/frontend/src/metabase/query_builder/containers/QuestionEmbedWidget.jsx +++ b/frontend/src/metabase/query_builder/containers/QuestionEmbedWidget.jsx @@ -32,7 +32,7 @@ export default class QuestionEmbedWidget extends Component { onDisablePublicLink={() => deletePublicLink(card)} onUpdateEnableEmbedding={(enableEmbedding) => updateEnableEmbedding(card, enableEmbedding)} onUpdateEmbeddingParams={(embeddingParams) => updateEmbeddingParams(card, embeddingParams)} - getPublicUrl={({ public_uuid }, extension) => window.location.origin + Urls.publicCard(public_uuid, extension)} + getPublicUrl={({ public_uuid }, extension) => Urls.publicCard(public_uuid, extension)} extensions={["csv", "json"]} /> ); -- GitLab