mirror of
https://github.com/umami-software/umami.git
synced 2025-12-06 01:18:00 +01:00
Merge branch 'dev' into analytics
This commit is contained in:
commit
28de4af635
5 changed files with 15 additions and 21 deletions
|
|
@ -75,7 +75,7 @@
|
||||||
"@react-spring/web": "^9.7.3",
|
"@react-spring/web": "^9.7.3",
|
||||||
"@tanstack/react-query": "^5.28.6",
|
"@tanstack/react-query": "^5.28.6",
|
||||||
"@umami/prisma-client": "^0.14.0",
|
"@umami/prisma-client": "^0.14.0",
|
||||||
"@umami/redis-client": "^0.25.0",
|
"@umami/redis-client": "^0.26.0",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"chart.js": "^4.4.2",
|
"chart.js": "^4.4.2",
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import { reportParms } from '@/lib/schema';
|
||||||
export async function POST(request: Request) {
|
export async function POST(request: Request) {
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
...reportParms,
|
...reportParms,
|
||||||
window: z.number().positive(),
|
window: z.coerce.number().positive(),
|
||||||
steps: z
|
steps: z
|
||||||
.array(
|
.array(
|
||||||
z.object({
|
z.object({
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import { useCallback, useEffect, useState } from 'react';
|
||||||
import { useApi } from '../useApi';
|
import { useApi } from '../useApi';
|
||||||
import { useTimezone } from '../useTimezone';
|
import { useTimezone } from '../useTimezone';
|
||||||
import { useMessages } from '../useMessages';
|
import { useMessages } from '../useMessages';
|
||||||
|
import { parseDateRange } from '@/lib/date';
|
||||||
|
|
||||||
export function useReport(
|
export function useReport(
|
||||||
reportId: string,
|
reportId: string,
|
||||||
|
|
@ -24,14 +25,12 @@ export function useReport(
|
||||||
const data: any = await get(`/reports/${id}`);
|
const data: any = await get(`/reports/${id}`);
|
||||||
|
|
||||||
const { dateRange } = data?.parameters || {};
|
const { dateRange } = data?.parameters || {};
|
||||||
const { startDate, endDate } = dateRange || {};
|
|
||||||
|
|
||||||
if (startDate && endDate) {
|
data.parameters = {
|
||||||
dateRange.startDate = new Date(startDate);
|
...defaultParameters?.parameters,
|
||||||
dateRange.endDate = new Date(endDate);
|
...data.parameters,
|
||||||
}
|
dateRange: parseDateRange(dateRange.value),
|
||||||
|
};
|
||||||
data.parameters = { ...defaultParameters?.parameters, ...data.parameters };
|
|
||||||
|
|
||||||
setReport(data);
|
setReport(data);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ async function relationalQuery(
|
||||||
websiteId,
|
websiteId,
|
||||||
{
|
{
|
||||||
...filters,
|
...filters,
|
||||||
eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
|
||||||
},
|
},
|
||||||
{ joinSession: SESSION_COLUMNS.includes(type) },
|
{ joinSession: SESSION_COLUMNS.includes(type) },
|
||||||
);
|
);
|
||||||
|
|
@ -54,7 +53,6 @@ async function relationalQuery(
|
||||||
from website_event
|
from website_event
|
||||||
where website_event.website_id = {{websiteId::uuid}}
|
where website_event.website_id = {{websiteId::uuid}}
|
||||||
and website_event.created_at between {{startDate}} and {{endDate}}
|
and website_event.created_at between {{startDate}} and {{endDate}}
|
||||||
and event_type = {{eventType}}
|
|
||||||
group by visit_id
|
group by visit_id
|
||||||
) x
|
) x
|
||||||
on x.visit_id = website_event.visit_id
|
on x.visit_id = website_event.visit_id
|
||||||
|
|
@ -96,14 +94,14 @@ async function clickhouseQuery(
|
||||||
eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
|
||||||
});
|
});
|
||||||
|
|
||||||
let excludeDomain = '';
|
|
||||||
let sql = '';
|
let sql = '';
|
||||||
|
let excludeDomain = '';
|
||||||
|
|
||||||
if (EVENT_COLUMNS.some(item => Object.keys(filters).includes(item))) {
|
if (EVENT_COLUMNS.some(item => Object.keys(filters).includes(item))) {
|
||||||
let entryExitQuery = '';
|
let entryExitQuery = '';
|
||||||
|
|
||||||
if (column === 'referrer_domain') {
|
if (column === 'referrer_domain') {
|
||||||
excludeDomain = `and referrer_domain != hostname and referrer_domain != ''`;
|
excludeDomain = `and referrer_domain != hostname and hostname != ''`;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 'entry' || type === 'exit') {
|
if (type === 'entry' || type === 'exit') {
|
||||||
|
|
@ -115,7 +113,6 @@ async function clickhouseQuery(
|
||||||
from website_event
|
from website_event
|
||||||
where website_id = {websiteId:UUID}
|
where website_id = {websiteId:UUID}
|
||||||
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
|
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
|
||||||
and event_type = {eventType:UInt32}
|
|
||||||
group by visit_id) x
|
group by visit_id) x
|
||||||
ON x.visit_id = website_event.visit_id
|
ON x.visit_id = website_event.visit_id
|
||||||
and x.target_created_at = website_event.created_at`;
|
and x.target_created_at = website_event.created_at`;
|
||||||
|
|
@ -127,7 +124,6 @@ async function clickhouseQuery(
|
||||||
${entryExitQuery}
|
${entryExitQuery}
|
||||||
where website_id = {websiteId:UUID}
|
where website_id = {websiteId:UUID}
|
||||||
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
|
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
|
||||||
and event_type = {eventType:UInt32}
|
|
||||||
${excludeDomain}
|
${excludeDomain}
|
||||||
${filterQuery}
|
${filterQuery}
|
||||||
group by x
|
group by x
|
||||||
|
|
@ -139,7 +135,7 @@ async function clickhouseQuery(
|
||||||
let groupByQuery = '';
|
let groupByQuery = '';
|
||||||
|
|
||||||
if (column === 'referrer_domain') {
|
if (column === 'referrer_domain') {
|
||||||
excludeDomain = `and t != hostname`;
|
excludeDomain = `and t != hostname and hostname != ''`;
|
||||||
}
|
}
|
||||||
|
|
||||||
let columnQuery = `arrayJoin(${column})`;
|
let columnQuery = `arrayJoin(${column})`;
|
||||||
|
|
@ -164,7 +160,6 @@ async function clickhouseQuery(
|
||||||
from website_event_stats_hourly website_event
|
from website_event_stats_hourly website_event
|
||||||
where website_id = {websiteId:UUID}
|
where website_id = {websiteId:UUID}
|
||||||
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
|
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
|
||||||
and event_type = {eventType:UInt32}
|
|
||||||
${excludeDomain}
|
${excludeDomain}
|
||||||
${filterQuery}
|
${filterQuery}
|
||||||
${groupByQuery}) as g
|
${groupByQuery}) as g
|
||||||
|
|
|
||||||
|
|
@ -3417,10 +3417,10 @@
|
||||||
chalk "^4.1.2"
|
chalk "^4.1.2"
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
|
|
||||||
"@umami/redis-client@^0.25.0":
|
"@umami/redis-client@^0.26.0":
|
||||||
version "0.25.0"
|
version "0.26.0"
|
||||||
resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.25.0.tgz#8bf01f22ceb3b90e15e59ab8daf44f838b83a6a7"
|
resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.26.0.tgz#0476e903a30322a43247dc292003224686971c12"
|
||||||
integrity sha512-j2GUehtrUfNPuikmcVXucgnL04gQOtbLiG20NqdlUXlDA/ebkV/waDfcYtMLuvXOFwiEeTatqPFEfXYuLDwJWw==
|
integrity sha512-j2vxb1gYF5zfk7BkrHgau2MwKsB5ijbQh2w1WoIvbP41cqTMsFm/zUrjhZ0cP1ZxR/riQR1AWxKmqNggYRZ5eA==
|
||||||
dependencies:
|
dependencies:
|
||||||
debug "^4.3.4"
|
debug "^4.3.4"
|
||||||
redis "^4.5.1"
|
redis "^4.5.1"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue