added simple loose wildcard search term support in the Admin UI

This commit is contained in:
Gani Georgiev
2023-04-14 14:37:51 +03:00
parent 25769e971a
commit 53c735d00b
36 changed files with 182 additions and 130 deletions
+9 -2
View File
@@ -37,10 +37,17 @@
admins = []; // reset
const normalizedFilter = CommonHelper.normalizeSearchFilter(filter, [
"id",
"email",
"created",
"updated",
]);
return ApiClient.admins
.getFullList(100, {
sort: sort || "-created",
filter: filter,
filter: normalizedFilter,
})
.then((result) => {
admins = result;
@@ -82,7 +89,7 @@
<Searchbar
value={filter}
placeholder={"Search filter, eg. email='test@example.com'"}
placeholder={"Search term or filter like email='test@example.com'"}
extraAutocompleteKeys={["email"]}
on:submit={(e) => (filter = e.detail)}
/>
+2 -1
View File
@@ -8,11 +8,12 @@
const uniqueId = "search_" + CommonHelper.randomString(7);
export let value = "";
export let placeholder = 'Search filter, ex. created > "2022-01-01"...';
export let placeholder = 'Search term or filter like created > "2022-01-01"...';
// autocomplete filter component fields
export let autocompleteCollection = new Collection();
export let extraAutocompleteKeys = [];
let filterComponent;
let isFilterComponentLoading = false;
+23 -17
View File
@@ -1,5 +1,6 @@
<script>
import { pageTitle } from "@/stores/app";
import CommonHelper from "@/utils/CommonHelper";
import Field from "@/components/base/Field.svelte";
import PageWrapper from "@/components/base/PageWrapper.svelte";
import Searchbar from "@/components/base/Searchbar.svelte";
@@ -10,12 +11,24 @@
const ADMIN_LOGS_LOCAL_STORAGE_KEY = "includeAdminLogs";
const autoCompleteKeys = [
"method",
"url",
"remoteIp",
"userIp",
"referer",
"status",
"auth",
"userAgent",
"created",
];
$pageTitle = "Request logs";
let logPanel;
let filter = "";
let includeAdminLogs = window.localStorage?.getItem(ADMIN_LOGS_LOCAL_STORAGE_KEY) << 0;
let refreshToken = 1;
let refreshKey = 1;
$: presets = !includeAdminLogs ? 'auth!="admin"' : "";
@@ -23,8 +36,10 @@
window.localStorage.setItem(ADMIN_LOGS_LOCAL_STORAGE_KEY, includeAdminLogs << 0);
}
$: normalizedFilter = CommonHelper.normalizeSearchFilter(filter, autoCompleteKeys);
function refresh() {
refreshToken++;
refreshKey++;
}
</script>
@@ -49,29 +64,20 @@
<Searchbar
value={filter}
placeholder="Search logs, ex. status > 200"
extraAutocompleteKeys={[
"method",
"url",
"remoteIp",
"userIp",
"referer",
"status",
"auth",
"userAgent",
]}
placeholder="Search term or filter like status >= 400"
extraAutocompleteKeys={autoCompleteKeys}
on:submit={(e) => (filter = e.detail)}
/>
<div class="clearfix m-b-base" />
{#key refreshToken}
<LogsChart bind:filter {presets} />
{#key refreshKey}
<LogsChart filter={normalizedFilter} {presets} />
{/key}
</div>
{#key refreshToken}
<LogsList bind:filter {presets} on:select={(e) => logPanel?.show(e?.detail)} />
{#key refreshKey}
<LogsList filter={normalizedFilter} {presets} on:select={(e) => logPanel?.show(e?.detail)} />
{/key}
</PageWrapper>
+3 -1
View File
@@ -125,10 +125,12 @@
listSort = parts.join(",");
}
const fallbackSearchFields = CommonHelper.getAllCollectionIdentifiers(collection);
return ApiClient.collection(collection.id)
.getList(page, 30, {
sort: listSort,
filter: filter,
filter: CommonHelper.normalizeSearchFilter(filter, fallbackSearchFields),
expand: relFields.map((field) => field.name).join(","),
$cancelKey: "records_list",
})
@@ -132,8 +132,10 @@
try {
const page = reset ? 1 : currentPage + 1;
const fallbackSearchFields = CommonHelper.getAllCollectionIdentifiers(collection);
const result = await ApiClient.collection(collectionId).getList(page, batchSize, {
filter: filter,
filter: CommonHelper.normalizeSearchFilter(filter, fallbackSearchFields),
sort: !collection?.$isView ? "-created" : "",
$cancelKey: uniqueId + "loadList",
});