mirror of
https://github.com/umami-software/umami.git
synced 2026-02-20 20:45:39 +01:00
Merge branch 'dev' into feat/um-202-event-data-new
This commit is contained in:
commit
da7f02bb73
38 changed files with 437 additions and 414 deletions
|
|
@ -74,6 +74,9 @@ function getFilterQuery(filters = {}, params = {}) {
|
|||
|
||||
switch (key) {
|
||||
case 'url':
|
||||
arr.push(`and url_path = {${key}:String}`);
|
||||
params[key] = filter;
|
||||
break;
|
||||
case 'pageTitle':
|
||||
case 'os':
|
||||
case 'browser':
|
||||
|
|
@ -92,18 +95,20 @@ function getFilterQuery(filters = {}, params = {}) {
|
|||
break;
|
||||
|
||||
case 'referrer':
|
||||
arr.push(`and referrer ILIKE {${key}:String}`);
|
||||
params[key] = `%${filter}`;
|
||||
arr.push(`and referrer_domain= {${key}:String}`);
|
||||
params[key] = filter;
|
||||
break;
|
||||
|
||||
case 'domain':
|
||||
arr.push(`and referrer NOT ILIKE {${key}:String}`);
|
||||
arr.push(`and referrer NOT ILIKE '/%'`);
|
||||
arr.push(`and referrer_domain NOT ILIKE {${key}:String}`);
|
||||
arr.push(`and referrer_domain NOT ILIKE '/%'`);
|
||||
params[key] = `%://${filter}/%`;
|
||||
break;
|
||||
|
||||
case 'query':
|
||||
arr.push(`and url like '%?%'`);
|
||||
arr.push(`and url_query= {${key}:String}`);
|
||||
params[key] = filter;
|
||||
break;
|
||||
}
|
||||
|
||||
return arr;
|
||||
|
|
|
|||
|
|
@ -181,18 +181,18 @@ export function getDateArray(data, startDate, endDate, unit) {
|
|||
const n = diff(endDate, startDate) + 1;
|
||||
|
||||
function findData(t) {
|
||||
const x = data.find(e => {
|
||||
return normalize(getDateFromString(e.t)).getTime() === t.getTime();
|
||||
const d = data.find(({ x }) => {
|
||||
return normalize(getDateFromString(x)).getTime() === t.getTime();
|
||||
});
|
||||
|
||||
return x?.y || 0;
|
||||
return d?.y || 0;
|
||||
}
|
||||
|
||||
for (let i = 0; i < n; i++) {
|
||||
const t = normalize(add(startDate, i));
|
||||
const y = findData(t);
|
||||
|
||||
arr.push({ ...data[i], t, y });
|
||||
arr.push({ x: t, y });
|
||||
}
|
||||
|
||||
return arr;
|
||||
|
|
|
|||
|
|
@ -1,30 +1,10 @@
|
|||
export const urlFilter = data => {
|
||||
const isValidUrl = url => {
|
||||
return url !== '' && url !== null;
|
||||
};
|
||||
|
||||
const cleanUrl = url => {
|
||||
try {
|
||||
const { pathname } = new URL(url, location.origin);
|
||||
|
||||
return pathname;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
const map = data.reduce((obj, { x, y }) => {
|
||||
if (!isValidUrl(x)) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
const url = cleanUrl(x);
|
||||
|
||||
if (url) {
|
||||
if (!obj[url]) {
|
||||
obj[url] = y;
|
||||
if (x) {
|
||||
if (!obj[x]) {
|
||||
obj[x] = y;
|
||||
} else {
|
||||
obj[url] += y;
|
||||
obj[x] += y;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,6 +74,9 @@ function getFilterQuery(filters = {}, params = []): string {
|
|||
|
||||
switch (key) {
|
||||
case 'url':
|
||||
arr.push(`and url_path=$${params.length + 1}`);
|
||||
params.push(decodeURIComponent(filter));
|
||||
break;
|
||||
case 'os':
|
||||
case 'pageTitle':
|
||||
case 'browser':
|
||||
|
|
@ -92,18 +95,20 @@ function getFilterQuery(filters = {}, params = []): string {
|
|||
break;
|
||||
|
||||
case 'referrer':
|
||||
arr.push(`and referrer like $${params.length + 1}`);
|
||||
params.push(`%${decodeURIComponent(filter)}%`);
|
||||
arr.push(`and referrer_domain=$${params.length + 1}`);
|
||||
params.push(decodeURIComponent(filter));
|
||||
break;
|
||||
|
||||
case 'domain':
|
||||
arr.push(`and referrer not like $${params.length + 1}`);
|
||||
arr.push(`and referrer not like '/%'`);
|
||||
arr.push(`and referrer_domain not like $${params.length + 1}`);
|
||||
arr.push(`and referrer_domain not like '/%'`);
|
||||
params.push(`%://${filter}/%`);
|
||||
break;
|
||||
|
||||
case 'query':
|
||||
arr.push(`and url like '%?%'`);
|
||||
arr.push(`and url_query=$${params.length + 1}`);
|
||||
params.push(decodeURIComponent(filter));
|
||||
break;
|
||||
}
|
||||
|
||||
return arr;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue