diff --git a/frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx b/frontend/src/metabase/admin/settings/components/widgets/PublicLinksListing.jsx index 892ba549ca6aeb38110a651b9fa711153f6b7e2c..49f5dfc9e885c0c2b04a0cc467443bc1df27f61d 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 cd76a516159bb1b31fe14cd12ee93e2eaf917491..72dd16754d8024a047a8b6f72fb33fcfabac24c6 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 7c2eba73166aeef3535ac9f4ee9e9f3b995fba8d..8ea28ce358eb0bcc673c4260daf7844a286c1e93 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 5ad4562fd5611ea0d4e2b96a4bacbfec9eab98fe..fef991cbcf2153c3c5e09f6d35533b80d279a3d0 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"]} /> );