From f593346dbdc9f33d3278673bd9debfd9c91d6bd3 Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 27 Oct 2022 14:37:23 +0200 Subject: [PATCH] feat: database activity --- .../activity/[[page]]/+page.svelte | 100 ++++++++++++++++++ .../activity/[[page]]/+page.ts | 19 ++++ .../document-[document]/activity/+page.svelte | 7 -- .../activity/[[page]]/+page.svelte | 100 ++++++++++++++++++ .../activity/[[page]]/+page.ts | 21 ++++ .../collection-[collection]/header.svelte | 4 + 6 files changed, 244 insertions(+), 7 deletions(-) create mode 100644 src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.svelte create mode 100644 src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.ts delete mode 100644 src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/+page.svelte create mode 100644 src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.svelte create mode 100644 src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.ts diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.svelte b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.svelte new file mode 100644 index 000000000..9426dfff0 --- /dev/null +++ b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.svelte @@ -0,0 +1,100 @@ + + + + {#if data.logs.total} + + + Client + Event + Location + IP + Date + + + {#each data.logs.logs as log} + + + {#if log.clientName} +
+
+ {log.clientName} +
+

+ {log.clientName} + {log.clientVersion} + on {log.osName} + {log.osVersion} +

+
+ {:else} +
+

+ + Unknown +

+
+ {/if} +
+ {log.event} + + {#if log.countryCode !== '--'} + {log.countryName} + {:else} + Unknown + {/if} + + {log.ip} + {toLocaleDateTime(log.time)} +
+ {/each} +
+
+ {:else} + +
+
+

No logs available

+
+
+ +
+
+
+ {/if} +
+

Total results: {data.logs.total}

+ +
+
diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.ts b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.ts new file mode 100644 index 000000000..bfb63d8c6 --- /dev/null +++ b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/activity/[[page]]/+page.ts @@ -0,0 +1,19 @@ +import { Query } from '@aw-labs/appwrite-console'; +import { sdkForProject } from '$lib/stores/sdk'; +import { pageToOffset } from '$lib/helpers/load'; +import { PAGE_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ params, parent }) => { + await parent(); + const page = Number(params.page); + const offset = pageToOffset(page, PAGE_LIMIT); + + return { + offset, + logs: sdkForProject.databases.listCollectionLogs(params.database, params.collection, [ + Query.limit(PAGE_LIMIT), + Query.offset(offset) + ]) + }; +}; diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/+page.svelte b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/+page.svelte deleted file mode 100644 index dde4f656b..000000000 --- a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/+page.svelte +++ /dev/null @@ -1,7 +0,0 @@ - - -

Activity

- - diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.svelte b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.svelte new file mode 100644 index 000000000..9426dfff0 --- /dev/null +++ b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.svelte @@ -0,0 +1,100 @@ + + + + {#if data.logs.total} + + + Client + Event + Location + IP + Date + + + {#each data.logs.logs as log} + + + {#if log.clientName} +
+
+ {log.clientName} +
+

+ {log.clientName} + {log.clientVersion} + on {log.osName} + {log.osVersion} +

+
+ {:else} +
+

+ + Unknown +

+
+ {/if} +
+ {log.event} + + {#if log.countryCode !== '--'} + {log.countryName} + {:else} + Unknown + {/if} + + {log.ip} + {toLocaleDateTime(log.time)} +
+ {/each} +
+
+ {:else} + +
+
+

No logs available

+
+
+ +
+
+
+ {/if} +
+

Total results: {data.logs.total}

+ +
+
diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.ts b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.ts new file mode 100644 index 000000000..aa93b9396 --- /dev/null +++ b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/activity/[[page]]/+page.ts @@ -0,0 +1,21 @@ +import { Query } from '@aw-labs/appwrite-console'; +import { sdkForProject } from '$lib/stores/sdk'; +import { pageToOffset } from '$lib/helpers/load'; +import { PAGE_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; + +export const load: PageLoad = async ({ params, parent }) => { + await parent(); + const page = Number(params.page); + const offset = pageToOffset(page, PAGE_LIMIT); + + return { + offset, + logs: sdkForProject.databases.listDocumentLogs( + params.database, + params.collection, + params.document, + [Query.limit(PAGE_LIMIT), Query.offset(offset)] + ) + }; +}; diff --git a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/header.svelte b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/header.svelte index 573f394a9..bb77e449f 100644 --- a/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/header.svelte +++ b/src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/header.svelte @@ -22,6 +22,10 @@ href: `${path}/indexes`, title: 'Indexes' }, + { + href: `${path}/activity`, + title: 'Activity' + }, { href: `${path}/usage`, title: 'Usage'