mirror of
https://github.com/umami-software/umami.git
synced 2026-02-20 12:35:38 +01:00
feat: filter by query params
This commit is contained in:
parent
a2245efa2d
commit
9e6126aff2
6 changed files with 13 additions and 6 deletions
|
|
@ -16,7 +16,7 @@ export default function WebsiteDetails({ websiteId }: { websiteId: string }) {
|
||||||
const showLinks = !pathname.includes('/share/');
|
const showLinks = !pathname.includes('/share/');
|
||||||
|
|
||||||
const {
|
const {
|
||||||
query: { view, url, referrer, os, browser, device, country, region, city, title },
|
query: { view, url, referrer, query, os, browser, device, country, region, city, title },
|
||||||
} = useNavigation();
|
} = useNavigation();
|
||||||
|
|
||||||
if (isLoading || error) {
|
if (isLoading || error) {
|
||||||
|
|
@ -26,7 +26,7 @@ export default function WebsiteDetails({ websiteId }: { websiteId: string }) {
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<WebsiteHeader websiteId={websiteId} showLinks={showLinks} />
|
<WebsiteHeader websiteId={websiteId} showLinks={showLinks} />
|
||||||
<FilterTags params={{ url, referrer, os, browser, device, country, region, city, title }} />
|
<FilterTags params={{ url, referrer, query, os, browser, device, country, region, city, title }} />
|
||||||
<WebsiteMetricsBar websiteId={websiteId} sticky={true} />
|
<WebsiteMetricsBar websiteId={websiteId} sticky={true} />
|
||||||
<WebsiteChart websiteId={websiteId} />
|
<WebsiteChart websiteId={websiteId} />
|
||||||
{!website && <Loading icon="dots" style={{ minHeight: 300 }} />}
|
{!website && <Loading icon="dots" style={{ minHeight: 300 }} />}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ export function WebsiteFilterButton({
|
||||||
const fieldOptions = [
|
const fieldOptions = [
|
||||||
{ name: 'url', type: 'string', label: formatMessage(labels.url) },
|
{ name: 'url', type: 'string', label: formatMessage(labels.url) },
|
||||||
{ name: 'referrer', type: 'string', label: formatMessage(labels.referrer) },
|
{ name: 'referrer', type: 'string', label: formatMessage(labels.referrer) },
|
||||||
|
{ name: 'query', type: 'string', label: formatMessage(labels.query) },
|
||||||
{ name: 'browser', type: 'string', label: formatMessage(labels.browser) },
|
{ name: 'browser', type: 'string', label: formatMessage(labels.browser) },
|
||||||
{ name: 'os', type: 'string', label: formatMessage(labels.os) },
|
{ name: 'os', type: 'string', label: formatMessage(labels.os) },
|
||||||
{ name: 'device', type: 'string', label: formatMessage(labels.device) },
|
{ name: 'device', type: 'string', label: formatMessage(labels.device) },
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ export function useWebsitePageviews(websiteId: string, options?: { [key: string]
|
||||||
const { startDate, endDate, unit } = dateRange;
|
const { startDate, endDate, unit } = dateRange;
|
||||||
const [timezone] = useTimezone();
|
const [timezone] = useTimezone();
|
||||||
const {
|
const {
|
||||||
query: { url, referrer, os, browser, device, country, region, city, title },
|
query: { url, referrer, query, os, browser, device, country, region, city, title },
|
||||||
} = useNavigation();
|
} = useNavigation();
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
|
|
@ -16,6 +16,7 @@ export function useWebsitePageviews(websiteId: string, options?: { [key: string]
|
||||||
timezone,
|
timezone,
|
||||||
url,
|
url,
|
||||||
referrer,
|
referrer,
|
||||||
|
query,
|
||||||
os,
|
os,
|
||||||
browser,
|
browser,
|
||||||
device,
|
device,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ export function useWebsiteStats(websiteId: string, options?: { [key: string]: st
|
||||||
const [dateRange] = useDateRange(websiteId);
|
const [dateRange] = useDateRange(websiteId);
|
||||||
const { startDate, endDate } = dateRange;
|
const { startDate, endDate } = dateRange;
|
||||||
const {
|
const {
|
||||||
query: { url, referrer, title, os, browser, device, country, region, city },
|
query: { url, referrer, query, title, os, browser, device, country, region, city },
|
||||||
} = useNavigation();
|
} = useNavigation();
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
|
|
@ -13,6 +13,7 @@ export function useWebsiteStats(websiteId: string, options?: { [key: string]: st
|
||||||
endAt: +endDate,
|
endAt: +endDate,
|
||||||
url,
|
url,
|
||||||
referrer,
|
referrer,
|
||||||
|
query,
|
||||||
title,
|
title,
|
||||||
os,
|
os,
|
||||||
browser,
|
browser,
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ export function MetricsTable({
|
||||||
const [{ startDate, endDate }] = useDateRange(websiteId);
|
const [{ startDate, endDate }] = useDateRange(websiteId);
|
||||||
const {
|
const {
|
||||||
renderUrl,
|
renderUrl,
|
||||||
query: { url, referrer, title, os, browser, device, country, region, city },
|
query: { url, referrer, query, title, os, browser, device, country, region, city },
|
||||||
} = useNavigation();
|
} = useNavigation();
|
||||||
const { formatMessage, labels } = useMessages();
|
const { formatMessage, labels } = useMessages();
|
||||||
const { dir } = useLocale();
|
const { dir } = useLocale();
|
||||||
|
|
@ -61,6 +61,7 @@ export function MetricsTable({
|
||||||
endAt: +endDate,
|
endAt: +endDate,
|
||||||
url,
|
url,
|
||||||
referrer,
|
referrer,
|
||||||
|
query,
|
||||||
os,
|
os,
|
||||||
title,
|
title,
|
||||||
browser,
|
browser,
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ export interface WebsitePageviewRequestQuery {
|
||||||
timezone?: string;
|
timezone?: string;
|
||||||
url?: string;
|
url?: string;
|
||||||
referrer?: string;
|
referrer?: string;
|
||||||
|
query?: string;
|
||||||
title?: string;
|
title?: string;
|
||||||
os?: string;
|
os?: string;
|
||||||
browser?: string;
|
browser?: string;
|
||||||
|
|
@ -34,6 +35,7 @@ const schema = {
|
||||||
timezone: TimezoneTest,
|
timezone: TimezoneTest,
|
||||||
url: yup.string(),
|
url: yup.string(),
|
||||||
referrer: yup.string(),
|
referrer: yup.string(),
|
||||||
|
query: yup.string(),
|
||||||
title: yup.string(),
|
title: yup.string(),
|
||||||
os: yup.string(),
|
os: yup.string(),
|
||||||
browser: yup.string(),
|
browser: yup.string(),
|
||||||
|
|
@ -52,7 +54,7 @@ export default async (
|
||||||
await useAuth(req, res);
|
await useAuth(req, res);
|
||||||
await useValidate(schema, req, res);
|
await useValidate(schema, req, res);
|
||||||
|
|
||||||
const { websiteId, timezone, url, referrer, title, os, browser, device, country, region, city } =
|
const { websiteId, timezone, url, referrer, query, title, os, browser, device, country, region, city } =
|
||||||
req.query;
|
req.query;
|
||||||
|
|
||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
|
|
@ -69,6 +71,7 @@ export default async (
|
||||||
unit,
|
unit,
|
||||||
url,
|
url,
|
||||||
referrer,
|
referrer,
|
||||||
|
query,
|
||||||
title,
|
title,
|
||||||
os,
|
os,
|
||||||
browser,
|
browser,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue