From 1751928d1883d21b6024c72aa690a40d74d57411 Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Tue, 21 Mar 2023 13:41:38 +0000 Subject: [PATCH 01/33] refactor: improve table overflow detection --- src/lib/elements/table/tableScroll.svelte | 25 ++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/lib/elements/table/tableScroll.svelte b/src/lib/elements/table/tableScroll.svelte index 814fe00e5..6d30f8aff 100644 --- a/src/lib/elements/table/tableScroll.svelte +++ b/src/lib/elements/table/tableScroll.svelte @@ -2,11 +2,28 @@ import type { Action } from 'svelte/action'; export let isSticky = false; + let isOverflowing = false; - const hasOverflow: Action void> = (node, callback) => { + const hasOverflow: Action = (node) => { const observer = new ResizeObserver((entries) => { for (const entry of entries) { - callback(entry.contentRect.width < entry.target.scrollWidth); + let overflowing = false; + if (entry.contentRect.width < entry.target.scrollWidth) { + overflowing = true; + } + + const cols = entry.target.querySelectorAll('.table-thead-col'); + for (let i = 0; i < cols.length; i++) { + const col = cols[i]; + const cs = getComputedStyle(col); + const innerWidth = + col.clientWidth - parseFloat(cs.paddingLeft) - parseFloat(cs.paddingRight); + if (innerWidth < 32) { + overflowing = true; + } + } + + isOverflowing = overflowing; } }); @@ -18,12 +35,10 @@ } }; }; - - let isOverflowing = false;
-
(isOverflowing = v)}> +
From 9fb6de180c3974652cb6010e42a8668e285d9fa1 Mon Sep 17 00:00:00 2001 From: Rohan kumar <51409281+rohan220217@users.noreply.github.com> Date: Fri, 31 Mar 2023 20:46:17 +0530 Subject: [PATCH 02/33] fix: session modal was not closed after successfull deletion --- .../project-[project]/auth/user-[user]/deleteSession.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/routes/console/project-[project]/auth/user-[user]/deleteSession.svelte b/src/routes/console/project-[project]/auth/user-[user]/deleteSession.svelte index 306feb2d4..f934958b2 100644 --- a/src/routes/console/project-[project]/auth/user-[user]/deleteSession.svelte +++ b/src/routes/console/project-[project]/auth/user-[user]/deleteSession.svelte @@ -15,6 +15,7 @@ try { await sdk.forProject.users.deleteSession($page.params.user, selectedSessionId); await invalidate(Dependencies.SESSIONS); + showDelete = false; addNotification({ type: 'success', message: 'Session has been deleted' From 11cb07f0250669ef36808601c684a54539cc6c3d Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Thu, 13 Apr 2023 14:57:36 +0100 Subject: [PATCH 03/33] fix: empty db text truncating on mobile --- src/lib/components/empty.svelte | 8 +++++--- .../overview/platforms/wizard/flutter/step1.svelte | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/components/empty.svelte b/src/lib/components/empty.svelte index ab7d091a4..23d9c89c2 100644 --- a/src/lib/components/empty.svelte +++ b/src/lib/components/empty.svelte @@ -21,7 +21,8 @@ {#if single}
-
+
+ + + From 2120d77f27964ecab7d048607c2ca9d107fc5d72 Mon Sep 17 00:00:00 2001 From: Bhaskar Singh Date: Sun, 16 Apr 2023 15:55:48 +0530 Subject: [PATCH 05/33] Updating Re-Build to Retry Build --- .../functions/function-[function]/+page.svelte | 4 ++-- .../functions/function-[function]/rebuild.svelte | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte index bbadee285..119a813a4 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte @@ -221,7 +221,7 @@ }}> Activate - {#if ['failed'].includes(deployment.status)} + {#if 'failed' === deployment.status} { @@ -229,7 +229,7 @@ showRebuild = true; showDropdown = []; }}> - Re-Build + Retry Build {/if} - Re-build Deployment -

Are you sure you want to re-build this deployment?

+ Retry build Deployment +

Are you sure you want to retry build this deployment?

- +
From 89263731c474b825ca9309378ceb5dfccd1cc08d Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Mon, 17 Apr 2023 11:01:37 +0100 Subject: [PATCH 06/33] refactor: code style changes --- src/lib/components/empty.svelte | 5 +++-- src/lib/layout/shell.svelte | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/components/empty.svelte b/src/lib/components/empty.svelte index 23d9c89c2..4a3a614e3 100644 --- a/src/lib/components/empty.svelte +++ b/src/lib/components/empty.svelte @@ -41,8 +41,9 @@
- Create your first {target} to get started. + + Create your first {target} to get started. +

Need a hand? Check out our documentation.

diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index f4f5fd0cf..dfec2d000 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -92,4 +92,8 @@ grid-template-columns: auto 1fr !important; } } + + .main-content { + flex-grow: 1; + } From 25299adfc339c788ae58a48850ddc4f27029b610 Mon Sep 17 00:00:00 2001 From: Bhaskar Singh Date: Fri, 21 Apr 2023 22:25:54 +0530 Subject: [PATCH 07/33] Updated library name from @aw-labs/appwrite-console to @appwrite.io/console for rebuild.svelte --- .../functions/function-[function]/rebuild.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte b/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte index 877a06e6c..255e50e49 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte @@ -4,7 +4,7 @@ import { Button } from '$lib/elements/forms'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; - import type { Models } from '@aw-labs/appwrite-console'; + import type { Models } from '@appwrite.io/console'; import { createEventDispatcher } from 'svelte'; export let showRebuild = false; From 371a6e1f721fee712809e4e269efc4991a977551 Mon Sep 17 00:00:00 2001 From: yatharth Date: Tue, 25 Apr 2023 10:00:39 +0530 Subject: [PATCH 08/33] fix issue in gitlab oauth modal validation --- src/routes/console/project-[project]/auth/gitlabOAuth.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/auth/gitlabOAuth.svelte b/src/routes/console/project-[project]/auth/gitlabOAuth.svelte index 2b5aea8a6..934d73801 100644 --- a/src/routes/console/project-[project]/auth/gitlabOAuth.svelte +++ b/src/routes/console/project-[project]/auth/gitlabOAuth.svelte @@ -81,7 +81,7 @@ disabled={(secret === provider.secret && enabled === provider.enabled && appId === provider.appId) || - !(appId && clientSecret && endpoint)} + !(appId && clientSecret)} submit>Update From 869a084e486e27d0d8a1752b43b59503dcf1d5c3 Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Wed, 26 Apr 2023 11:42:22 +0100 Subject: [PATCH 09/33] refactor: remove footer hack --- src/lib/layout/shell.svelte | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index dfec2d000..f4f5fd0cf 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -92,8 +92,4 @@ grid-template-columns: auto 1fr !important; } } - - .main-content { - flex-grow: 1; - } From 9ef1cef8d3e8936aa5a6e85622c76d85d74388e8 Mon Sep 17 00:00:00 2001 From: Bhaskar Singh Date: Wed, 26 Apr 2023 23:38:24 +0530 Subject: [PATCH 10/33] Fixing the typo for rebuild Modal --- .../functions/function-[function]/rebuild.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte b/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte index 255e50e49..a3d1b4e1d 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/rebuild.svelte @@ -37,8 +37,8 @@ - Retry build Deployment -

Are you sure you want to retry build this deployment?

+ Retry build +

Are you sure you want to retry building this deployment?

From 28c7293a2c70fbdd585a098d81539c8c6661f506 Mon Sep 17 00:00:00 2001 From: Suven-p Date: Fri, 5 May 2023 10:05:20 +0545 Subject: [PATCH 11/33] Remove trailing space in bash code snippet --- CONTRIBUTING.md | 3 +++ .../functions/function-[function]/create.svelte | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 607bb07f6..ad67fbd68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -40,12 +40,15 @@ git clone https://github.com/appwrite/console.git appwrite-console ``` ### 2. Install dependencies with npm + Navigate to the Appwrite Console repository and install dependencies. + ```bash cd appwrite-console && npm install ``` ### 3. Install and run Appwrite locally + When you run the Appwrite Console locally, it needs to point to a backend as well. The easiest way to do this is to run an Appwrite instance locally. Follow the [install instructions](https://appwrite.io/docs/installation) in the Appwrite docs. diff --git a/src/routes/console/project-[project]/functions/function-[function]/create.svelte b/src/routes/console/project-[project]/functions/function-[function]/create.svelte index 806ff23ca..4d65e044b 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/create.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/create.svelte @@ -62,10 +62,10 @@ function setCodeSnippets(lang: string) { return { Unix: { - code: `appwrite functions createDeployment \\ - --functionId=${functionId} \\ - --entrypoint='index.${lang}' \\ - --code="." \\ + code: `appwrite functions createDeployment \\ + --functionId=${functionId} \\ + --entrypoint='index.${lang}' \\ + --code="." \\ --activate=true`, language: 'bash' }, From 8ba4a196e40d085dc39690660b05b8869a77751d Mon Sep 17 00:00:00 2001 From: "Vincent (Wen Yu) Ge" Date: Sat, 6 May 2023 20:51:28 +0000 Subject: [PATCH 12/33] Update description of disabled services. --- CONTRIBUTING.md | 3 +++ src/routes/console/project-[project]/settings/+page.svelte | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 607bb07f6..ad67fbd68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -40,12 +40,15 @@ git clone https://github.com/appwrite/console.git appwrite-console ``` ### 2. Install dependencies with npm + Navigate to the Appwrite Console repository and install dependencies. + ```bash cd appwrite-console && npm install ``` ### 3. Install and run Appwrite locally + When you run the Appwrite Console locally, it needs to point to a backend as well. The easiest way to do this is to run an Appwrite instance locally. Follow the [install instructions](https://appwrite.io/docs/installation) in the Appwrite docs. diff --git a/src/routes/console/project-[project]/settings/+page.svelte b/src/routes/console/project-[project]/settings/+page.svelte index ccce2b50b..cf8659329 100644 --- a/src/routes/console/project-[project]/settings/+page.svelte +++ b/src/routes/console/project-[project]/settings/+page.svelte @@ -115,7 +115,10 @@ Services -

Choose services you wish to enable or disable.

+

+ Choose services you wish to enable or disable for the client API. When disabled, the + services are not accessible to client SDKs but remain accessible to server SDKs. +

From bdfcadfee321a73bec45a60312cc6a5380bfc9f7 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 9 May 2023 10:20:07 -0700 Subject: [PATCH 13/33] Replace image-item with avatar class The image-item class had a bug where the width could be incorrect causing the iamge to look squished. The new avatar class fixes this problem. --- .../project-[project]/auth/settings/+page.svelte | 14 +++++++------- .../auth/user-[user]/sessions/+page.svelte | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/routes/console/project-[project]/auth/settings/+page.svelte b/src/routes/console/project-[project]/auth/settings/+page.svelte index eba59cea4..42f640d07 100644 --- a/src/routes/console/project-[project]/auth/settings/+page.svelte +++ b/src/routes/console/project-[project]/auth/settings/+page.svelte @@ -1,17 +1,17 @@
  • {#if href} - + {:else} @@ -22,7 +82,10 @@ class="tabs-button" class:is-selected={selected} on:click|preventDefault - on:click={track}> + on:click={track} + tabindex={selected ? 0 : -1} + on:keydown={handleKeyDown} + role="tab"> {/if} diff --git a/src/lib/helpers/style.ts b/src/lib/helpers/style.ts new file mode 100644 index 000000000..fef15c8cc --- /dev/null +++ b/src/lib/helpers/style.ts @@ -0,0 +1,16 @@ +type Direction = 'rtl' | 'ltr'; + +function isDirection(dir: string): dir is Direction { + return dir === 'rtl' || dir === 'ltr'; +} + +function parseDirection(dir: string): Direction { + return isDirection(dir) ? dir : 'ltr'; +} + +export function getElementDir(el: HTMLElement): Direction { + if (window.getComputedStyle) { + return parseDirection(window.getComputedStyle(el, null).getPropertyValue('direction')); + } + return parseDirection(el.style.direction); +} From 895f77a21374a25e12efc863c303f8e6d3220b9a Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Mon, 15 May 2023 16:11:23 +0100 Subject: [PATCH 15/33] refactor: change id naming --- .../functions/function-[function]/header.svelte | 4 +++- .../project-[project]/storage/bucket-[bucket]/header.svelte | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/functions/function-[function]/header.svelte b/src/routes/console/project-[project]/functions/function-[function]/header.svelte index c878a4b00..f48bc5324 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/header.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/header.svelte @@ -40,7 +40,9 @@ {$func?.name} - Function ID + {#if $func?.$id} + {$func.$id} + {/if} diff --git a/src/routes/console/project-[project]/storage/bucket-[bucket]/header.svelte b/src/routes/console/project-[project]/storage/bucket-[bucket]/header.svelte index 0422235be..ce37faa4d 100644 --- a/src/routes/console/project-[project]/storage/bucket-[bucket]/header.svelte +++ b/src/routes/console/project-[project]/storage/bucket-[bucket]/header.svelte @@ -34,7 +34,9 @@ {$bucket?.name} - Bucket ID + {#if $bucket?.$id} + {$bucket.$id} + {/if} From ede7a8e1b4ca7c9e88f3456bade223107c13635e Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Tue, 16 May 2023 13:55:05 +0545 Subject: [PATCH 16/33] transfer project UI --- src/lib/actions/analytics.ts | 1 + .../project-[project]/settings/+page.svelte | 33 +++++++++++ .../settings/transferProject.svelte | 59 +++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 src/routes/console/project-[project]/settings/transferProject.svelte diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index 84c178cc4..b9724ff75 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -131,6 +131,7 @@ export enum Submit { ProjectCreate = 'submit_project_create', ProjectDelete = 'submit_project_delete', ProjectUpdateName = 'submit_project_update_name', + ProjectUpdateTeam = 'submit_project_update_team', ProjectService = 'submit_project_service', MemberCreate = 'submit_member_create', MemberDelete = 'submit_member_delete', diff --git a/src/routes/console/project-[project]/settings/+page.svelte b/src/routes/console/project-[project]/settings/+page.svelte index ccce2b50b..80c5f4e97 100644 --- a/src/routes/console/project-[project]/settings/+page.svelte +++ b/src/routes/console/project-[project]/settings/+page.svelte @@ -3,6 +3,7 @@ import { onMount } from 'svelte'; import { toLocaleDateTime } from '$lib/helpers/date'; import { addNotification } from '$lib/stores/notifications'; + import { organizationList } from '$lib/stores/organization'; import { project } from '../store'; import { services, type Service } from '$lib/stores/project-services'; import { CardGrid, CopyInput, Box, Heading } from '$lib/components'; @@ -14,14 +15,19 @@ import { base } from '$app/paths'; import { page } from '$app/stores'; import { Submit, trackEvent, trackError } from '$lib/actions/analytics'; + import InputSelect from '$lib/elements/forms/inputSelect.svelte'; + import Transfer from './transferProject.svelte'; let name: string = null; + let teamId: string = null; let showDelete = false; + let showTransfer = false; const endpoint = sdk.forConsole.client.config.endpoint; const projectId = $page.params.project; onMount(async () => { name ??= $project.name; + teamId ??= $project.teamId; }); async function updateName() { @@ -134,7 +140,28 @@ + + Transfer project +

    Transfer your project to another organization that you own.

    + + + ({ + value: team.$id, + label: team.name + }))} /> + + + + + + +
    Delete Project @@ -160,3 +187,9 @@ +{#if teamId} + t.$id == teamId).name} + bind:show={showTransfer} /> +{/if} diff --git a/src/routes/console/project-[project]/settings/transferProject.svelte b/src/routes/console/project-[project]/settings/transferProject.svelte new file mode 100644 index 000000000..bc9c9d34a --- /dev/null +++ b/src/routes/console/project-[project]/settings/transferProject.svelte @@ -0,0 +1,59 @@ + + + + Delete Project +

    Are you sure you want to transfer {$project.name} to {teamName}?

    +

    + Members who are not part of the destination organization must be invited to gain access to + this project. +

    + + + + + +
    From 7fcba3c21c4cbbb908f67058af8f583d8fc56595 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 17 May 2023 13:16:16 +0545 Subject: [PATCH 17/33] fix import --- .../console/project-[project]/settings/+page.svelte | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/settings/+page.svelte b/src/routes/console/project-[project]/settings/+page.svelte index 80c5f4e97..4508266b1 100644 --- a/src/routes/console/project-[project]/settings/+page.svelte +++ b/src/routes/console/project-[project]/settings/+page.svelte @@ -7,7 +7,14 @@ import { project } from '../store'; import { services, type Service } from '$lib/stores/project-services'; import { CardGrid, CopyInput, Box, Heading } from '$lib/components'; - import { Button, Form, FormList, InputText, InputSwitch } from '$lib/elements/forms'; + import { + Button, + Form, + FormList, + InputText, + InputSwitch, + InputSelect + } from '$lib/elements/forms'; import { Container } from '$lib/layout'; import { invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; @@ -15,7 +22,6 @@ import { base } from '$app/paths'; import { page } from '$app/stores'; import { Submit, trackEvent, trackError } from '$lib/actions/analytics'; - import InputSelect from '$lib/elements/forms/inputSelect.svelte'; import Transfer from './transferProject.svelte'; let name: string = null; From e6d02cfdcfa52f3ab26ea0b07a3ac9ef4c799119 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 17 May 2023 13:20:22 +0545 Subject: [PATCH 18/33] fix title and design --- .../console/project-[project]/settings/transferProject.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/settings/transferProject.svelte b/src/routes/console/project-[project]/settings/transferProject.svelte index bc9c9d34a..2384b6c7e 100644 --- a/src/routes/console/project-[project]/settings/transferProject.svelte +++ b/src/routes/console/project-[project]/settings/transferProject.svelte @@ -44,8 +44,8 @@ }; - - Delete Project + + Transfer Project

    Are you sure you want to transfer {$project.name} to {teamName}?

    Members who are not part of the destination organization must be invited to gain access to From 43a0d8ebe504de99da42c20b2be5601ed100a461 Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 17 May 2023 14:02:38 +0545 Subject: [PATCH 19/33] fixed --- src/routes/console/project-[project]/settings/+page.svelte | 6 ++++-- .../project-[project]/settings/transferProject.svelte | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/settings/+page.svelte b/src/routes/console/project-[project]/settings/+page.svelte index 4508266b1..95d9a3171 100644 --- a/src/routes/console/project-[project]/settings/+page.svelte +++ b/src/routes/console/project-[project]/settings/+page.svelte @@ -164,8 +164,10 @@ - + diff --git a/src/routes/console/project-[project]/settings/transferProject.svelte b/src/routes/console/project-[project]/settings/transferProject.svelte index 2384b6c7e..9e16d5611 100644 --- a/src/routes/console/project-[project]/settings/transferProject.svelte +++ b/src/routes/console/project-[project]/settings/transferProject.svelte @@ -45,7 +45,7 @@ - Transfer Project + Transfer project

    Are you sure you want to transfer {$project.name} to {teamName}?

    Members who are not part of the destination organization must be invited to gain access to From 602c2268ab1ef87159f4d2c5d8b404e755960964 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Wed, 17 May 2023 12:02:27 -0700 Subject: [PATCH 20/33] Update CONTRIBUTING.md to fix linting error --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 607bb07f6..ad67fbd68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -40,12 +40,15 @@ git clone https://github.com/appwrite/console.git appwrite-console ``` ### 2. Install dependencies with npm + Navigate to the Appwrite Console repository and install dependencies. + ```bash cd appwrite-console && npm install ``` ### 3. Install and run Appwrite locally + When you run the Appwrite Console locally, it needs to point to a backend as well. The easiest way to do this is to run an Appwrite instance locally. Follow the [install instructions](https://appwrite.io/docs/installation) in the Appwrite docs. From 8e0df5445660135d9260c03a7ff3f90e8e4001a5 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Wed, 17 May 2023 12:06:49 -0700 Subject: [PATCH 21/33] Update CI to build last The other checks are faster and would result in a faster feedback loop. --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1f4ef8396..aaac70173 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -22,11 +22,11 @@ jobs: # run: npm audit --audit-level low - name: Install dependencies run: npm ci - - name: Build Console - run: npm run build - name: Svelte Diagnostics run: npm run check - name: Linter run: npm run lint - name: Unit Tests run: npm test + - name: Build Console + run: npm run build From 51a59ce4ec7e7888fbae8cb165fd52507f41aa78 Mon Sep 17 00:00:00 2001 From: "Vincent (Wen Yu) Ge" Date: Fri, 19 May 2023 17:54:40 +0000 Subject: [PATCH 22/33] Maybe this link should go to the package, certainly better than the main page --- .../overview/platforms/wizard/web/step2.svelte | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte index 9699669ff..bff1c05dc 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte @@ -35,8 +35,12 @@ {#if method === Method.NPM}

    - Use NPM (node package manager) from your command line to add Appwrite SDK to your project. + Use NPM (node package manager) from your command line to add Appwrite SDK + to your project.

    From 4492059a2bac9a4e6b3da2228f88b1670bbfd018 Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 22 May 2023 16:57:17 +0200 Subject: [PATCH 23/33] refactor: function settings --- .../function-[function]/settings/+page.svelte | 527 +----------------- .../settings/dangerZone.svelte | 33 ++ .../{delete.svelte => deleteModal.svelte} | 0 .../settings/executeFunction.svelte | 36 ++ .../settings/updateName.svelte | 66 +++ .../settings/updatePermissions.svelte | 78 +++ .../settings/updateSchedule.svelte | 71 +++ .../settings/updateTimeout.svelte | 66 +++ .../settings/updateVariables.svelte | 233 ++++++++ ...les.svelte => uploadVariablesModal.svelte} | 0 10 files changed, 599 insertions(+), 511 deletions(-) create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/dangerZone.svelte rename src/routes/console/project-[project]/functions/function-[function]/settings/{delete.svelte => deleteModal.svelte} (100%) create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/updateName.svelte create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/updatePermissions.svelte create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/updateSchedule.svelte create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/updateTimeout.svelte create mode 100644 src/routes/console/project-[project]/functions/function-[function]/settings/updateVariables.svelte rename src/routes/console/project-[project]/functions/function-[function]/settings/{uploadVariables.svelte => uploadVariablesModal.svelte} (100%) diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/+page.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/+page.svelte index 94aadbc6c..85f8265db 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/settings/+page.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/+page.svelte @@ -1,520 +1,25 @@ - -

    -
    - technology -
    -
    - {$func.name} - -

    {$func.runtime}

    -
    -
    - -
    -
    -

    Function ID: {$func.$id}

    -

    Created at: {toLocaleDateTime($func.$createdAt)}

    -

    Updated at: {toLocaleDateTime($func.$updatedAt)}

    -
    -
    -
    - - - - - - - - - Name - - -
      - -
    -
    - - - - -
    - - -
    - - Execute Access -

    - Choose who can execute this function using the client API. For more information, - check out the - Permissions Guide - . -

    - - - - - - - -
    -
    - + + + - -
    - - Schedule -

    - Set a Cron schedule to trigger your function. Leave blank for no schedule. - More details on Cron syntax here. -

    - - - - - - - - - -
    -
    - - - Variables -

    Set the variables (or secret keys) that will be passed to your function at runtime.

    - -
    - - -
    - {@const limit = 10} - {@const sum = data.variables.total} - {#if sum} -
    - - - Key - Value - - - - {#each data.variables.variables.slice(offset, offset + limit) as variable, i} - - - - {variable.key} - - - - - - - - - - - { - selectedVar = variable; - showVariablesDropdown[i] = false; - showVariablesModal = true; - }}> - Edit - - { - handleVariableDeleted(variable); - showVariablesDropdown[i] = false; - }}> - Delete - - - - - - {/each} - -
    - -
    -

    Total variables: {sum}

    - -
    -
    - {:else} - (showVariablesModal = !showVariablesModal)}> - Create a variable to get started - - {/if} -
    -
    - -
    - - Timeout -

    - Limit the execution time of your function. Maximum value is 900 seconds (15 - minutes). -

    - - - - - - - - - -
    -
    - - - Delete Function -

    - The function will be permanently deleted, including all deployments associated with it. - This action is irreversible. -

    - - - -
    {$func.name}
    -
    -

    Last Updated: {toLocaleDateTime($func.$updatedAt)}

    -
    -
    - - - - -
    + + + + - - -{#if showVariablesModal} - -{/if} -{#if showVariablesUpload} - -{/if} diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/dangerZone.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/dangerZone.svelte new file mode 100644 index 000000000..d5ec9fbf4 --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/dangerZone.svelte @@ -0,0 +1,33 @@ + + + + Delete Function +

    + The function will be permanently deleted, including all deployments associated with it. This + action is irreversible. +

    + + + +
    {$func.name}
    +
    +

    Last Updated: {toLocaleDateTime($func.$updatedAt)}

    +
    +
    + + + + +
    + + diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/delete.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/deleteModal.svelte similarity index 100% rename from src/routes/console/project-[project]/functions/function-[function]/settings/delete.svelte rename to src/routes/console/project-[project]/functions/function-[function]/settings/deleteModal.svelte diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte new file mode 100644 index 000000000..194b18bed --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte @@ -0,0 +1,36 @@ + + + +
    +
    + technology +
    +
    + {$func.name} + +

    {$func.runtime}

    +
    +
    + +
    +
    +

    Function ID: {$func.$id}

    +

    Created at: {toLocaleDateTime($func.$createdAt)}

    +

    Updated at: {toLocaleDateTime($func.$updatedAt)}

    +
    +
    +
    + + + + +
    diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/updateName.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/updateName.svelte new file mode 100644 index 000000000..431d12e5f --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/updateName.svelte @@ -0,0 +1,66 @@ + + +
    + + Name + + +
      + +
    +
    + + + + +
    +
    diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/updatePermissions.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/updatePermissions.svelte new file mode 100644 index 000000000..369f936a9 --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/updatePermissions.svelte @@ -0,0 +1,78 @@ + + +
    + + Execute Access +

    + Choose who can execute this function using the client API. For more information, check + out the + Permissions Guide + . +

    + + + + + + + +
    +
    diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/updateSchedule.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/updateSchedule.svelte new file mode 100644 index 000000000..e60ba6e99 --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/updateSchedule.svelte @@ -0,0 +1,71 @@ + + +
    + + Schedule +

    + Set a Cron schedule to trigger your function. Leave blank for no schedule. + More details on Cron syntax here. +

    + + + + + + + + + +
    +
    diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/updateTimeout.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/updateTimeout.svelte new file mode 100644 index 000000000..94489f929 --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/updateTimeout.svelte @@ -0,0 +1,66 @@ + + +
    + + Timeout +

    Limit the execution time of your function. Maximum value is 900 seconds (15 minutes).

    + + + + + + + + + +
    +
    diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/updateVariables.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/updateVariables.svelte new file mode 100644 index 000000000..c3915babc --- /dev/null +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/updateVariables.svelte @@ -0,0 +1,233 @@ + + + + Variables +

    Set the variables (or secret keys) that will be passed to your function at runtime.

    + +
    + + +
    + {@const limit = 10} + {@const sum = variableList.total} + {#if sum} +
    + + + Key + Value + + + + {#each variableList.variables.slice(offset, offset + limit) as variable, i} + + + + {variable.key} + + + + + + + + + + + { + selectedVar = variable; + showVariablesDropdown[i] = false; + showVariablesModal = true; + }}> + Edit + + { + handleVariableDeleted(variable); + showVariablesDropdown[i] = false; + }}> + Delete + + + + + + {/each} + +
    + +
    +

    Total variables: {sum}

    + +
    +
    + {:else} + (showVariablesModal = !showVariablesModal)}> + Create a variable to get started + + {/if} +
    +
    + +{#if showVariablesModal} + +{/if} +{#if showVariablesUpload} + +{/if} diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/uploadVariables.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/uploadVariablesModal.svelte similarity index 100% rename from src/routes/console/project-[project]/functions/function-[function]/settings/uploadVariables.svelte rename to src/routes/console/project-[project]/functions/function-[function]/settings/uploadVariablesModal.svelte From b3ca78f4ae0a527609e9e803f378d4d26a4cb9e1 Mon Sep 17 00:00:00 2001 From: "Vincent (Wen Yu) Ge" Date: Tue, 23 May 2023 21:38:18 +0000 Subject: [PATCH 24/33] Add custom copy for google oauth provider --- src/lib/stores/oauth-providers.ts | 2 + .../project-[project]/auth/googleOAuth.svelte | 82 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/routes/console/project-[project]/auth/googleOAuth.svelte diff --git a/src/lib/stores/oauth-providers.ts b/src/lib/stores/oauth-providers.ts index 8047d6bdb..40bcff26a 100644 --- a/src/lib/stores/oauth-providers.ts +++ b/src/lib/stores/oauth-providers.ts @@ -7,6 +7,7 @@ import Okta from '../../routes/console/project-[project]/auth/oktaOAuth.svelte'; import Auth0 from '../../routes/console/project-[project]/auth/auth0OAuth.svelte'; import Authentik from '../../routes/console/project-[project]/auth/authentikOAuth.svelte'; import GitLab from '../../routes/console/project-[project]/auth/gitlabOAuth.svelte'; +import Google from '../../routes/console/project-[project]/auth/googleOAuth.svelte'; import Main from '../../routes/console/project-[project]/auth/mainOAuth.svelte'; export type Provider = Models.Provider & { @@ -81,6 +82,7 @@ const setProviders = (project: Models.Project): Provider[] => { break; case 'google': docs = 'https://support.google.com/googleapi/answer/6158849'; + component = Google; break; case 'linkedin': docs = 'https://developer.linkedin.com/'; diff --git a/src/routes/console/project-[project]/auth/googleOAuth.svelte b/src/routes/console/project-[project]/auth/googleOAuth.svelte new file mode 100644 index 000000000..1b4d3c986 --- /dev/null +++ b/src/routes/console/project-[project]/auth/googleOAuth.svelte @@ -0,0 +1,82 @@ + + + + {provider.name} OAuth2 Settings + +

    + To use {provider.name} authentication in your application, first fill in this form. For more + info you can + visit the docs. +

    + + + + + To complete set up, add this OAuth2 redirect URI to your {provider.name} app configuration + and select web application as the application type. + +
    +

    URI

    + +
    +
    + + + + +
    From 71ccb987b6f2817e69802554dfdf4f8a3621e5c6 Mon Sep 17 00:00:00 2001 From: Arman Date: Fri, 26 May 2023 14:14:09 +0200 Subject: [PATCH 25/33] fix: add scroll to tables in mobile --- .../databases/database-[database]/table.svelte | 8 ++++---- .../project-[project]/databases/table.svelte | 8 ++++---- .../settings/webhooks/+page.svelte | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/routes/console/project-[project]/databases/database-[database]/table.svelte b/src/routes/console/project-[project]/databases/database-[database]/table.svelte index 317956ae7..458baaa62 100644 --- a/src/routes/console/project-[project]/databases/database-[database]/table.svelte +++ b/src/routes/console/project-[project]/databases/database-[database]/table.svelte @@ -3,13 +3,13 @@ import { page } from '$app/stores'; import { Id } from '$lib/components'; import { - Table, TableBody, TableCell, TableCellHead, TableCellText, TableHeader, - TableRowLink + TableRowLink, + TableScroll } from '$lib/elements/table'; import { toLocaleDateTime } from '$lib/helpers/date'; import type { PageData } from './$types'; @@ -20,7 +20,7 @@ const databaseId = $page.params.database; - + {#each $columns as column} {#if column.show} @@ -54,4 +54,4 @@ {/each} -
    + diff --git a/src/routes/console/project-[project]/databases/table.svelte b/src/routes/console/project-[project]/databases/table.svelte index 401364401..ac63aa184 100644 --- a/src/routes/console/project-[project]/databases/table.svelte +++ b/src/routes/console/project-[project]/databases/table.svelte @@ -3,13 +3,13 @@ import { page } from '$app/stores'; import { Id } from '$lib/components'; import { - Table, TableBody, TableCell, TableCellHead, TableCellText, TableHeader, - TableRowLink + TableRowLink, + TableScroll } from '$lib/elements/table'; import { toLocaleDateTime } from '$lib/helpers/date'; import type { PageData } from './$types'; @@ -19,7 +19,7 @@ const projectId = $page.params.project; - + {#each $columns as column} {#if column.show} @@ -55,4 +55,4 @@ {/each} -
    + diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index fde1c291e..1e22b243a 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -6,13 +6,13 @@ import { Button } from '$lib/elements/forms'; import { Pill } from '$lib/elements'; import { - Table, TableBody, TableRowLink, TableCellHead, TableCell, TableCellText, - TableHeader + TableHeader, + TableScroll } from '$lib/elements/table'; import { Container } from '$lib/layout'; import { wizard } from '$lib/stores/wizard'; @@ -46,10 +46,10 @@
    {#if data.webhooks.total} - + - Name - POST URL + Name + POST URL Events @@ -57,7 +57,7 @@ -
    +
    {webhook.name} {#if webhook.security === false} SLL/TLS disabled @@ -69,7 +69,7 @@ {/each} -
    + {:else} Date: Wed, 31 May 2023 17:26:14 +0200 Subject: [PATCH 26/33] run linter --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 607bb07f6..ad67fbd68 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -40,12 +40,15 @@ git clone https://github.com/appwrite/console.git appwrite-console ``` ### 2. Install dependencies with npm + Navigate to the Appwrite Console repository and install dependencies. + ```bash cd appwrite-console && npm install ``` ### 3. Install and run Appwrite locally + When you run the Appwrite Console locally, it needs to point to a backend as well. The easiest way to do this is to run an Appwrite instance locally. Follow the [install instructions](https://appwrite.io/docs/installation) in the Appwrite docs. From e37436d1044b022acb420d3a3209b14cf80b19d5 Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Wed, 31 May 2023 18:52:55 +0100 Subject: [PATCH 27/33] feat: tabs focus on navigate --- src/lib/components/tab.svelte | 27 ++++++++++++++++++++++----- src/lib/helpers/waitUntil.ts | 14 ++++++++++++++ 2 files changed, 36 insertions(+), 5 deletions(-) create mode 100644 src/lib/helpers/waitUntil.ts diff --git a/src/lib/components/tab.svelte b/src/lib/components/tab.svelte index db46fb6b2..3fdf83096 100644 --- a/src/lib/components/tab.svelte +++ b/src/lib/components/tab.svelte @@ -1,14 +1,31 @@ -Missing Redirect URL -

    - Your OAuth login flow is missing a proper redirect URL. Please check the - OAuth docs - and send request for new session with a valid callback URL. -

    +{#await redirect then} +
    +
    + Login failed +

    You will be automatically redirected back to your app shortly.

    +

    + If you are not redirected, please click on the following + link. +

    +
    +
    +{:catch} +
    +
    + Missing Redirect URL +

    + Your OAuth login flow is missing a proper redirect URL. Please check the + OAuth docs + and send request for new session with a valid callback URL. +

    +
    +
    +{/await} + + diff --git a/src/routes/auth/oauth2/success/+page.svelte b/src/routes/auth/oauth2/success/+page.svelte index 359c6ffdc..b67ad0ce6 100644 --- a/src/routes/auth/oauth2/success/+page.svelte +++ b/src/routes/auth/oauth2/success/+page.svelte @@ -2,20 +2,56 @@ import { goto } from '$app/navigation'; import { page } from '$app/stores'; import { Heading } from '$lib/components'; - import { onMount } from 'svelte'; - onMount(async () => { - const project = $page.url.searchParams.get('project'); - if (project) { - await goto(`appwrite-callback-${project}://${$page.url.search}`); + const project = $page.url.searchParams.get('project'); + const link = `appwrite-callback-${project}://${$page.url.search}`; + + const redirect = new Promise((resolve, reject) => { + if (!project) { + reject('no-project'); } + // this timeout is needed because goto does not + // throw an exception if the redirect does not work + setTimeout(() => reject('timeout'), 500); + // goto will resolve on successful redirect + goto(link).then(resolve); }); -Missing Redirect URL -

    - Your OAuth login flow is missing a proper redirect URL. Please check the - OAuth docs - and send request for new session with a valid callback URL. -

    +{#await redirect then} +
    +
    + You're now logged in +

    You will be automatically redirected back to your app shortly.

    +

    + If you are not redirected, please click on the following + link. +

    +
    +
    +{:catch} +
    +
    + Missing Redirect URL +

    + Your OAuth login flow is missing a proper redirect URL. Please check the + OAuth docs + and send request for new session with a valid callback URL. +

    +
    +
    +{/await} + + From 68cc27c4bb8772bc9100b8a149d2a4ae090e1f67 Mon Sep 17 00:00:00 2001 From: Binyamin Yawitz Date: Thu, 29 Jun 2023 17:34:51 -0400 Subject: [PATCH 32/33] Change *Raw Data* links from singular to plural --- src/lib/layout/logs.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/layout/logs.svelte b/src/lib/layout/logs.svelte index fcaabd80f..7b27b8b3d 100644 --- a/src/lib/layout/logs.svelte +++ b/src/lib/layout/logs.svelte @@ -17,7 +17,7 @@ function isDeployment(data: Models.Deployment | Models.Execution): data is Models.Deployment { if ('buildId' in data) { selectedTab = 'logs'; - rawData = `${sdk.forConsole.client.config.endpoint}/functions/${$log.func.$id}/deployment/${$log.data.$id}?mode=admin&project=${$page.params.project}`; + rawData = `${sdk.forConsole.client.config.endpoint}/functions/${$log.func.$id}/deployments/${$log.data.$id}?mode=admin&project=${$page.params.project}`; return true; } } @@ -25,7 +25,7 @@ function isExecution(data: Models.Deployment | Models.Execution): data is Models.Execution { if ('trigger' in data) { selectedTab = 'response'; - rawData = `${sdk.forConsole.client.config.endpoint}/functions/${$log.func.$id}/execution/${$log.data.$id}?mode=admin&project=${$page.params.project}`; + rawData = `${sdk.forConsole.client.config.endpoint}/functions/${$log.func.$id}/executions/${$log.data.$id}?mode=admin&project=${$page.params.project}`; return true; } } From c2d9fba323de6fcc99ec5e270400b5425ece5b0a Mon Sep 17 00:00:00 2001 From: tglide <26071571+TGlide@users.noreply.github.com> Date: Mon, 3 Jul 2023 12:37:40 +0100 Subject: [PATCH 33/33] fix: tab tests --- tests/unit/components/tab.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/components/tab.test.ts b/tests/unit/components/tab.test.ts index a0d7b0dcb..9e75e25e8 100644 --- a/tests/unit/components/tab.test.ts +++ b/tests/unit/components/tab.test.ts @@ -6,12 +6,12 @@ import { Tab } from '../../../src/lib/components'; test('shows tab', () => { const { getByRole } = render(Tab); - expect(getByRole('button')).toBeInTheDocument(); + expect(getByRole('tab')).toBeInTheDocument(); }); test('shows tab - is selected', () => { const { getByRole } = render(Tab, { selected: true }); - expect(getByRole('button')).toHaveClass('is-selected'); + expect(getByRole('tab')).toHaveClass('is-selected'); }); test('shows tab - is link', () => { @@ -23,7 +23,7 @@ test('shows tab - is link', () => { test('shows tab - on:click', async () => { const { getByRole, component } = render(Tab); - const tab = getByRole('button'); + const tab = getByRole('tab'); const callback = vi.fn(); component.$on('click', callback);