diff --git a/components/metrics/PagesTable.js b/components/metrics/PagesTable.js
index e3a5bc14..fdd05656 100644
--- a/components/metrics/PagesTable.js
+++ b/components/metrics/PagesTable.js
@@ -3,6 +3,7 @@ import FilterButtons from 'components/common/FilterButtons';
import MetricsTable from './MetricsTable';
import useMessages from 'hooks/useMessages';
import usePageQuery from 'hooks/usePageQuery';
+import { emptyFilter } from '../../lib/filters';
export default function PagesTable({ websiteId, showFilters, ...props }) {
const {
@@ -28,7 +29,7 @@ export default function PagesTable({ websiteId, showFilters, ...props }) {
];
const renderLink = ({ x }) => {
- return ;
+ return ;
};
return (
@@ -40,6 +41,7 @@ export default function PagesTable({ websiteId, showFilters, ...props }) {
type={view}
metric={formatMessage(labels.views)}
websiteId={websiteId}
+ dataFilter={emptyFilter}
renderLabel={renderLink}
/>
>
diff --git a/components/metrics/QueryParametersTable.js b/components/metrics/QueryParametersTable.js
index e8404bb4..9d4c1d2d 100644
--- a/components/metrics/QueryParametersTable.js
+++ b/components/metrics/QueryParametersTable.js
@@ -1,14 +1,14 @@
import { useState } from 'react';
import { safeDecodeURI } from 'next-basics';
import FilterButtons from 'components/common/FilterButtons';
-import { paramFilter } from 'lib/filters';
+import { emptyFilter, paramFilter } from 'lib/filters';
import { FILTER_RAW, FILTER_COMBINED } from 'lib/constants';
import MetricsTable from './MetricsTable';
import useMessages from 'hooks/useMessages';
import styles from './QueryParametersTable.module.css';
const filters = {
- [FILTER_RAW]: null,
+ [FILTER_RAW]: emptyFilter,
[FILTER_COMBINED]: paramFilter,
};
diff --git a/components/metrics/QueryParametersTable.module.css b/components/metrics/QueryParametersTable.module.css
index ba5ca54a..47b20a90 100644
--- a/components/metrics/QueryParametersTable.module.css
+++ b/components/metrics/QueryParametersTable.module.css
@@ -1,7 +1,7 @@
.item {
display: inline-flex;
align-items: center;
- margin-bottom: 1px;
+ line-height: 26px;
}
.param {
diff --git a/lib/filters.js b/lib/filters.js
index 8bc6229d..2b8fbcf1 100644
--- a/lib/filters.js
+++ b/lib/filters.js
@@ -42,6 +42,10 @@ export const refFilter = data => {
return Object.keys(map).map(key => ({ x: key, y: map[key], w: links[key] }));
};
+export const emptyFilter = data => {
+ return data.map(item => (item.x ? item : null)).filter(n => n);
+};
+
export const percentFilter = data => {
const total = data.reduce((n, { y }) => n + y, 0);
return data.map(({ x, y, ...props }) => ({ x, y, z: total ? (y / total) * 100 : 0, ...props }));
diff --git a/pages/_app.js b/pages/_app.js
index e6df83d5..19182c40 100644
--- a/pages/_app.js
+++ b/pages/_app.js
@@ -53,10 +53,13 @@ export default function App({ Component, pageProps }) {
+
-
-
-
+
{!pathname.includes('/share/') && }
diff --git a/queries/analytics/pageview/getPageviewMetrics.ts b/queries/analytics/pageview/getPageviewMetrics.ts
index e3991bd2..8f1b6ca7 100644
--- a/queries/analytics/pageview/getPageviewMetrics.ts
+++ b/queries/analytics/pageview/getPageviewMetrics.ts
@@ -1,7 +1,7 @@
import prisma from 'lib/prisma';
import clickhouse from 'lib/clickhouse';
import { runQuery, CLICKHOUSE, PRISMA } from 'lib/db';
-import { EVENT_TYPE, FILTER_COLUMNS } from 'lib/constants';
+import { EVENT_TYPE } from 'lib/constants';
import { loadWebsite } from 'lib/query';
export async function getPageviewMetrics(
@@ -42,10 +42,10 @@ async function relationalQuery(
column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
];
- let domainFilter = '';
+ let excludeDomain = '';
if (column === 'referrer_domain') {
- domainFilter = 'and website_event.referrer_domain != $6';
+ excludeDomain = 'and website_event.referrer_domain != $6';
params.push(website.domain);
}
@@ -59,7 +59,7 @@ async function relationalQuery(
and website_event.created_at >= $2
and website_event.created_at between $3 and $4
and event_type = $5
- ${domainFilter}
+ ${excludeDomain}
${filterQuery}
group by 1
order by 2 desc