diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte
index 238686d4e..107fe1314 100644
--- a/packages/web/src/icons/FontIcon.svelte
+++ b/packages/web/src/icons/FontIcon.svelte
@@ -226,6 +226,7 @@
'icon type-unknown': 'mdi mdi-help-box',
'icon equal': 'mdi mdi-equal',
'icon not-equal': 'mdi mdi-not-equal-variant',
+ 'icon warn': 'mdi mdi-alert',
'icon at': 'mdi mdi-at',
'icon expand-all': 'mdi mdi-expand-all',
diff --git a/packages/web/src/widgets/DbKeysTree.svelte b/packages/web/src/widgets/DbKeysTree.svelte
index 8512a9c71..512198a44 100644
--- a/packages/web/src/widgets/DbKeysTree.svelte
+++ b/packages/web/src/widgets/DbKeysTree.svelte
@@ -33,6 +33,7 @@
import AppObjectListHandler from './AppObjectListHandler.svelte';
import { getOpenDetailOnArrowsSettings } from '../settings/settingsTools';
import openNewTab from '../utility/openNewTab';
+ import ConfirmModal from '../modals/ConfirmModal.svelte';
export let conid;
export let database;
@@ -83,20 +84,30 @@
if (loadNext) loadNextPage();
}
- async function loadNextPage() {
+ async function loadNextPage(skipCount = false) {
isLoading = true;
const nextScan = await apiCall('database-connections/scan-keys', {
conid,
database,
pattern: filter,
cursor: model.cursor,
- count: model.loadCount,
+ count: skipCount ? undefined : model.loadCount,
});
model = dbKeys_mergeNextPage(model, nextScan);
isLoading = false;
}
+ async function loadAll() {
+ showModal(ConfirmModal, {
+ message:
+ 'This will scan all keys in the database, which could affect server performance. Do you want to continue?',
+ onConfirm: () => {
+ loadNextPage(true);
+ },
+ });
+ }
+
function reloadModel() {
changeModel(model => dbKeys_clearLoadedData(model), true);
}
@@ -145,9 +156,14 @@