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: {