mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 04:37:11 +01:00
Allow filter search for country and region.
This commit is contained in:
parent
2ed7628997
commit
a18d1a923c
5 changed files with 55 additions and 17 deletions
|
|
@ -19,10 +19,25 @@ async function relationalQuery(
|
|||
search: string,
|
||||
) {
|
||||
const { rawQuery, getSearchSQL } = prisma;
|
||||
const params = {};
|
||||
let searchQuery = '';
|
||||
|
||||
if (search) {
|
||||
searchQuery = getSearchSQL(column);
|
||||
if (decodeURIComponent(search).includes(',')) {
|
||||
searchQuery = `AND (${decodeURIComponent(search)
|
||||
.split(',')
|
||||
.slice(0, 5)
|
||||
.map((value: string, index: number) => {
|
||||
const key = `search${index}`;
|
||||
|
||||
params[key] = value;
|
||||
|
||||
return getSearchSQL(column, key).replace('and ', '');
|
||||
})
|
||||
.join(' OR ')})`;
|
||||
} else {
|
||||
searchQuery = getSearchSQL(column);
|
||||
}
|
||||
}
|
||||
|
||||
return rawQuery(
|
||||
|
|
@ -43,6 +58,7 @@ async function relationalQuery(
|
|||
startDate,
|
||||
endDate,
|
||||
search: `%${search}%`,
|
||||
...params,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
@ -54,13 +70,32 @@ async function clickhouseQuery(
|
|||
endDate: Date,
|
||||
search: string,
|
||||
) {
|
||||
const { rawQuery } = clickhouse;
|
||||
const { rawQuery, getSearchSQL } = clickhouse;
|
||||
const params = {};
|
||||
let searchQuery = '';
|
||||
|
||||
if (search) {
|
||||
searchQuery = `and positionCaseInsensitive(${column}, {search:String}) > 0`;
|
||||
}
|
||||
|
||||
if (search) {
|
||||
if (decodeURIComponent(search).includes(',')) {
|
||||
searchQuery = `AND (${decodeURIComponent(search)
|
||||
.split(',')
|
||||
.slice(0, 5)
|
||||
.map((value: string, index: number) => {
|
||||
const key = `search${index}`;
|
||||
|
||||
params[key] = value;
|
||||
|
||||
return getSearchSQL(column, key).replace('and ', '');
|
||||
})
|
||||
.join(' OR ')})`;
|
||||
} else {
|
||||
searchQuery = getSearchSQL(column);
|
||||
}
|
||||
}
|
||||
|
||||
return rawQuery(
|
||||
`
|
||||
select ${column} as value, count(*)
|
||||
|
|
@ -77,6 +112,7 @@ async function clickhouseQuery(
|
|||
startDate,
|
||||
endDate,
|
||||
search,
|
||||
...params,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue