diff --git a/examples/web-analytics/dashboard-app/src/components/ChartRenderer.js b/examples/web-analytics/dashboard-app/src/components/ChartRenderer.js
index 6606dd284079a..b41fe76c5f684 100644
--- a/examples/web-analytics/dashboard-app/src/components/ChartRenderer.js
+++ b/examples/web-analytics/dashboard-app/src/components/ChartRenderer.js
@@ -139,7 +139,7 @@ const TypeToChartComponent = {
))}
),
- pie: ({ resultSet }) => (
+ pie: ({ resultSet, legend }) => (
))}
-
+ { legend && }
diff --git a/examples/web-analytics/dashboard-app/src/pages/AcquisitionPage.js b/examples/web-analytics/dashboard-app/src/pages/AcquisitionPage.js
index 9f004012904a8..85fcf9c894aab 100644
--- a/examples/web-analytics/dashboard-app/src/pages/AcquisitionPage.js
+++ b/examples/web-analytics/dashboard-app/src/pages/AcquisitionPage.js
@@ -11,9 +11,10 @@ import Chart from "../components/Chart";
const queries = {
topSources: {
chartType: 'pie',
+ legend: 'vertical',
query: {
measures: ['SessionUsers.usersCount'],
- dimensions: ['SessionUsers.referrerSource'],
+ dimensions: ['SessionUsers.sourceMedium'],
timeDimensions: [{
dimension: 'SessionUsers.sessionStart'
}]
diff --git a/examples/web-analytics/dashboard-app/src/pages/CustomReportPage.js b/examples/web-analytics/dashboard-app/src/pages/CustomReportPage.js
index dd5a08ede9e87..331ec3d1ffbaa 100644
--- a/examples/web-analytics/dashboard-app/src/pages/CustomReportPage.js
+++ b/examples/web-analytics/dashboard-app/src/pages/CustomReportPage.js
@@ -27,7 +27,12 @@ const CustomReportPage = ({ withTime }) => {
granularity: 'day'
}]
};
- const dataTableQuery = null;
+ const dataTableQuery = {
+ ...query,
+ timeDimensions: [{
+ dimension: query.timeDimensions[0].dimension,
+ }]
+ };
return (
<>
@@ -44,7 +49,7 @@ const CustomReportPage = ({ withTime }) => {
/>
-
+
>
)
diff --git a/examples/web-analytics/dashboard-app/src/pages/CustomReportsBuilderPage.js b/examples/web-analytics/dashboard-app/src/pages/CustomReportsBuilderPage.js
index 73426db9a202e..c94d8e8763706 100644
--- a/examples/web-analytics/dashboard-app/src/pages/CustomReportsBuilderPage.js
+++ b/examples/web-analytics/dashboard-app/src/pages/CustomReportsBuilderPage.js
@@ -82,7 +82,7 @@ const CustomReportsBuilderPage = ({ cubejsApi, history }) => {
enableReinitialize
initialValues={{ title: title || (data && data.dashboardItem.name) || "", query: query }}
onSubmit={async values => {
- await (id ? updateDashboardItem : addDashboardItem)({
+ const { data } = await (id ? updateDashboardItem : addDashboardItem)({
variables: {
id: id,
input: {
@@ -91,7 +91,7 @@ const CustomReportsBuilderPage = ({ cubejsApi, history }) => {
}
}
});
- history.push("/custom-reports-overview");
+ history.push(`/custom-reports/${id || data.createDashboardItem.id}`);
}}
validationSchema={Yup.object().shape({
title: Yup.string().required("Required"),
diff --git a/examples/web-analytics/schema/Events.js b/examples/web-analytics/schema/Events.js
index 9950fc3fc697c..8a02dc6a9172e 100644
--- a/examples/web-analytics/schema/Events.js
+++ b/examples/web-analytics/schema/Events.js
@@ -28,6 +28,15 @@ cube(`Events`, {
br_lang,
br_name,
+ -- Location
+ geo_country,
+ geo_region,
+ geo_city,
+ geo_zipcode,
+ geo_latitude,
+ geo_longitude,
+ geo_region_name,
+
-- referrer
refr_urlhost || refr_urlpath AS referrer_url,
refr_urlscheme AS referrer_url_scheme,
diff --git a/examples/web-analytics/schema/Sessions.js b/examples/web-analytics/schema/Sessions.js
index f597ac2256fe6..2c6a96814063d 100644
--- a/examples/web-analytics/schema/Sessions.js
+++ b/examples/web-analytics/schema/Sessions.js
@@ -34,7 +34,8 @@ cube(`Sessions`, {
measures: {
count: {
- type: `count`
+ type: `count`,
+ title: `Sessions`
},
usersCount: {
@@ -119,11 +120,23 @@ cube(`Sessions`, {
// Audience
+ // Demographics
language: {
sql: `br_lang`,
type: `string`
},
+ country: {
+ sql: `geo_country`,
+ type: `string`
+ },
+
+ city: {
+ sql: `geo_city`,
+ type: `string`
+ },
+
+ // System
browser: {
sql: `br_name`,
type: `string`
@@ -145,13 +158,28 @@ cube(`Sessions`, {
},
referrerMedium: {
- sql: `referrer_medium`,
- type: `string`
+ type: `string`,
+ case: {
+ when: [
+ { sql: `${CUBE}.referrer_medium != ''`, label: { sql: `${CUBE}.referrer_medium` } }
+ ],
+ else: { label: '(none)' }
+ }
},
referrerSource: {
- sql: `referrer_source`,
- type: `string`
+ type: `string`,
+ case: {
+ when: [
+ { sql: `${CUBE}.referrer_source != ''`, label: { sql: `${CUBE}.referrer_source` } }
+ ],
+ else: { label: '(none)' }
+ }
+ },
+
+ sourceMedium: {
+ type: `string`,
+ sql: `concat(${CUBE.referrerSource}, " / ", ${CUBE.referrerMedium})`
}
},
@@ -177,7 +205,8 @@ cube(`SessionUsers`, {
session_id,
domain_userid,
session_index,
- referrer_source
+ referrer_source,
+ referrer_medium
from ${Sessions.sql()}`,
preAggregations: {