From e1e889062562b273f327f25d89e7430b1f11944b Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 4 Mar 2025 19:55:32 +0530 Subject: [PATCH 1/4] update: initial wip on project migration feature to pink2 wizards. --- .../(migration-wizard)/resource-form.svelte | 373 ++++++------------ .../{step1.svelte => credentials.svelte} | 117 +++--- .../migrations/(import)/importReport.svelte | 37 ++ .../migrations/(import)/wizard.svelte | 171 +++++++- .../settings/migrations/+page.svelte | 15 +- 5 files changed, 376 insertions(+), 337 deletions(-) rename src/routes/(console)/project-[project]/settings/migrations/(import)/{step1.svelte => credentials.svelte} (62%) create mode 100644 src/routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte diff --git a/src/routes/(console)/(migration-wizard)/resource-form.svelte b/src/routes/(console)/(migration-wizard)/resource-form.svelte index ac23279147..039c696875 100644 --- a/src/routes/(console)/(migration-wizard)/resource-form.svelte +++ b/src/routes/(console)/(migration-wizard)/resource-form.svelte @@ -1,12 +1,9 @@ - -
- Good to know -
-
- -
-
-

Project settings are not imported

-

You will need to set service and project settings manually

-
-
-
-
- -
-
-

Keep your organization plan's limits in mind

-

- Make sure to have enough storage in your organization plan when importing files. -

-
-
- {#if $provider.provider === 'firebase'} -
-
- -
-
-

Possible charges by Firebase

-

- Appwrite does not impose charges for importing data, but please note that - Firebase may have its own pricing for this service -

-
-
- {:else} -
-
- -
-
-

Transfer is free of charge

-

You won't be charged for Appwrite bandwidth usage for importing data

-
-
- {/if} -
-
- -{#if report && !isVersionAtLeast(version, '1.4.0') && $provider.provider === 'appwrite'} -
- p - 1); - } - } - ]}> + + {#if report && !isVersionAtLeast(version, '1.4.0') && $provider.provider === 'appwrite'} + Functions not available for import To migrate your functions, update the version of the Appwrite instance you're importing from to a version newer than 1.4 - -
-{/if} - -{#if error} -
- p - 1); - } - } - ]}> - Request failed - Please check if your credentials are filled in correctly in the previous step - -
-{/if} + + {/if} -
    -
  • - -
  • + {#if error} + + Please check if your credentials are filled in correctly in the previous step + + {/if} -
  • - -
  • -
+ + + + Deselect all + Select all + + + -
    {#if resources?.includes('user')} -
  • - -
    - Users - - {#if $provider.provider !== 'firebase'} - {#if report?.user !== undefined} - {report.user} - {:else if !error} - - {/if} - {/if} + + + + +
    +
    -
    - Import all users - - {#if resources?.includes('team')} -
      -
    • - -
      - Include teams - {#if $provider.provider === 'firebase'} - {#if report?.team !== undefined} - {report.team} - {:else if !error} - - {/if} - {/if} -
      -
      - Import all teams and the team memberships of your users -
    • -
    - {/if} -
  • + {/if} {#if resources?.includes('database')} -
  • - -
    - Databases - {#if $provider.provider !== 'firebase'} - {#if report?.database !== undefined} - {report.database} - {:else if !error} - - {/if} - {/if} + + + +
    +
    -
    - Import all databases, including collections, indexes and attributes - - {#if resources?.includes('document')} -
      -
    • - -
      - Include documents - {#if $provider.provider !== 'firebase'} - {#if report?.document !== undefined} - {report.document} - {:else if !error} - - {/if} - {/if} -
      -
      - Import all of your documents -
    • -
    - {/if} -
  • + {/if} {#if resources?.includes('function') && isVersionAtLeast(version, '1.4.0')} -
  • - -
    - Functions - {#if $provider.provider !== 'firebase'} - {#if report?.function !== undefined} - {report.function} - {:else if !error} - - {/if} - {/if} -
    -
    - Import all functions and their active deployment -
      - {#if resources?.includes('environment-variable')} -
    • - -
      - Include environment variables -
      -
      - Import all environment variables -
    • - {/if} - {#if resources?.includes('deployment')} -
    • - -
      - Include inactive deployments -
      -
      - Import all deployments that are not currently active -
    • - {/if} -
    -
  • + + + + {#if resources?.includes('environment-variable') || resources?.includes('deployment')} +
    + + {#if resources?.includes('environment-variable')} + + {/if} + + {#if resources?.includes('deployment')} + + {/if} + +
    + {/if} +
    {/if} {#if resources?.includes('bucket') && resources?.includes('file')} -
  • - -
    - Storage - {#if $provider.provider !== 'firebase'} - {#if report?.size !== undefined} - {`${report.size.toFixed(2)}MB`} - {:else if !error} - + {@const storageSize = report?.size >= 0 ? `${report?.size.toFixed(2)}MB` : undefined} + + + +
    + + Import all buckets + {#if $provider.provider !== 'firebase' && report?.bucket} + {report.bucket} + {/if} + and files + {#if $provider.provider !== 'firebase' && report?.file} + {report.file} {/if} - {/if} +
    -
    - -

    - Import all buckets - {#if $provider.provider !== 'firebase' && report?.bucket} - {report.bucket} - {/if} - and files - {#if $provider.provider !== 'firebase' && report?.file} - {report.file} - {/if} -

    -
  • + {/if} -
+ diff --git a/src/routes/(console)/project-[project]/settings/migrations/+page.svelte b/src/routes/(console)/project-[project]/settings/migrations/+page.svelte index 46566c1e60..3b4eb3a77f 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/+page.svelte @@ -34,18 +34,6 @@ let showExport = false; let showMigration = false; - const getStatus = (status: string) => { - if (status === 'failed') { - return 'failed'; - } else if (status === 'completed') { - return 'completed'; - } else if (status === 'processing') { - return 'processing'; - } - - return 'pending'; - }; - onMount(async () => { sdk.forConsole.client.subscribe(['project', 'console'], (response) => { if (response.events.includes('migrations.*')) { @@ -160,7 +148,6 @@ {#each data.migrations as entry} - {@const status = getStatus(entry.status)} {isSameDay(new Date(), new Date(entry.$createdAt)) ? 'Today' @@ -168,7 +155,7 @@ {entry.source} - +
From 125fb5e730783ae3373b3ba81a7a57a8331cd173 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 6 Mar 2025 13:07:55 +0530 Subject: [PATCH 2/4] update: layout, copies, --- package.json | 4 +- pnpm-lock.yaml | 32 +-- .../(migration-wizard)/resource-form.svelte | 33 ++-- .../migrations/(import)/credentials.svelte | 5 +- .../migrations/(import)/importReport.svelte | 11 +- .../settings/migrations/(import)/step2.svelte | 22 --- .../migrations/(import)/wizard.svelte | 182 ++++++++++-------- 7 files changed, 145 insertions(+), 144 deletions(-) delete mode 100644 src/routes/(console)/project-[project]/settings/migrations/(import)/step2.svelte diff --git a/package.json b/package.json index 121f0eb03d..03a5d409c9 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "dependencies": { "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ac51fcb", "@appwrite.io/pink-icons": "0.25.0", - "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157 ", + "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 ", "@appwrite.io/pink-legacy": "^1.0.2", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f57e0157", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf47462271..032f5cf502 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,14 +15,14 @@ importers: specifier: 0.25.0 version: 0.25.0 '@appwrite.io/pink-icons-svelte': - specifier: 'https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157 ' - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157(svelte@4.2.19) + specifier: 'https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 ' + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 (svelte@4.2.19) '@appwrite.io/pink-legacy': specifier: ^1.0.2 version: 1.0.2 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f57e0157 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f57e0157(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -107,7 +107,7 @@ importers: version: 6.6.3 '@testing-library/svelte': specifier: ^5.2.4 - version: 5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.5)(sass@1.85.1))(vitest@1.6.1) + version: 5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.5)(sass@1.85.1))(vitest@1.6.1(@types/node@22.13.5)(@vitest/ui@1.6.1)(jsdom@22.1.0)(sass@1.85.1)) '@testing-library/user-event': specifier: ^14.5.2 version: 14.6.1(@testing-library/dom@10.4.0) @@ -215,14 +215,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ac51fcb} version: 1.2.1 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 ': + resolution: {tarball: 'https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 '} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157006c846dc899e7bcdb83e5c0fb3c3149': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157006c846dc899e7bcdb83e5c0fb3c3149} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.2': resolution: {integrity: sha512-1AYNcfbV+x0Tyj56CoieSq5g7+u+7F5/LDVN/z+Hx1kp9gj7xc1eT39Dy832xxfihImF6ksjp0FXEMVSBR8cew==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f57e0157': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f57e0157} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4099,11 +4099,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ac51fcb': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 (svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157006c846dc899e7bcdb83e5c0fb3c3149(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@f57e0157(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@f57e0157006c846dc899e7bcdb83e5c0fb3c3149(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) @@ -5375,7 +5375,7 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/svelte@5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.5)(sass@1.85.1))(vitest@1.6.1)': + '@testing-library/svelte@5.2.7(svelte@4.2.19)(vite@5.4.14(@types/node@22.13.5)(sass@1.85.1))(vitest@1.6.1(@types/node@22.13.5)(@vitest/ui@1.6.1)(jsdom@22.1.0)(sass@1.85.1))': dependencies: '@testing-library/dom': 10.4.0 svelte: 4.2.19 diff --git a/src/routes/(console)/(migration-wizard)/resource-form.svelte b/src/routes/(console)/(migration-wizard)/resource-form.svelte index 039c696875..89ef8b0b20 100644 --- a/src/routes/(console)/(migration-wizard)/resource-form.svelte +++ b/src/routes/(console)/(migration-wizard)/resource-form.svelte @@ -15,13 +15,14 @@ import type { Models } from '@appwrite.io/console'; import ImportReport from '$routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte'; + export let errorInResources: boolean; export let formData: ReturnType; export let provider: ReturnType; export let projectSdk: ReturnType; type ValueOf = T[keyof T]; type FormData = WritableValue; - // TL;DR of this type: It gets a object with two levels (in this case FormData) + // TL;DR of this type: It gets an object with two levels (in this case FormData) // And returns a join of the keys with a dot between them. // e.g. If FormData was { users: { root: boolean, teams: boolean } } // The type would be 'users.root' | 'users.teams' @@ -131,12 +132,9 @@ isOpen = false; }); - $: resources = providerResources[$provider.provider]; + $: errorInResources = error; $: wizard.setNextDisabled(!report); - - $: { - console.log(JSON.stringify(report, null, 2)); - } + $: resources = providerResources[$provider.provider]; @@ -157,10 +155,20 @@ - Deselect all - Select all + { + event.preventDefault(); + deselectAll(); + }}>Deselect all + { + event.preventDefault(); + selectAll(); + }}>Select all @@ -173,7 +181,6 @@ handleChange={handleInputChange('users.root')} description="Import all users" reportValue={report?.user} - showReport={$provider.provider !== 'firebase'} isLoading={!error} /> @@ -195,7 +202,6 @@ handleChange={handleInputChange('databases.root')} description="Import all databases, including collections, indexes and attributes" reportValue={report?.database} - showReport={$provider.provider !== 'firebase'} isLoading={!error} />
@@ -205,7 +211,6 @@ handleChange={handleInputChange('databases.documents')} description="Import all functions and their active deployment" reportValue={report?.document} - showReport={$provider.provider !== 'firebase'} isLoading={!error} />
@@ -219,7 +224,6 @@ handleChange={handleInputChange('functions.root')} description="Import all functions and their active deployment" reportValue={report?.function} - showReport={$provider.provider !== 'firebase'} isLoading={!error} /> {#if resources?.includes('environment-variable') || resources?.includes('deployment')} @@ -254,7 +258,6 @@ checked={$formData.storage.root} handleChange={handleInputChange('storage.root')} reportValue={storageSize} - showReport={$provider.provider !== 'firebase'} isLoading={!error} />
diff --git a/src/routes/(console)/project-[project]/settings/migrations/(import)/credentials.svelte b/src/routes/(console)/project-[project]/settings/migrations/(import)/credentials.svelte index 1d799d7831..24ec506aaf 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/(import)/credentials.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/(import)/credentials.svelte @@ -8,7 +8,6 @@ InputTextarea } from '$lib/elements/forms'; import { provider } from '.'; - import { onMount } from 'svelte'; export let formSubmitted = false; @@ -71,10 +70,10 @@ + placeholder="Enter Service Account JSON credentials" /> {:else if $provider.provider === 'supabase'} diff --git a/src/routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte b/src/routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte index 216132c809..a7c0b4cc37 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte @@ -3,7 +3,6 @@ export let label: string; export let checked: boolean; - export let showReport: boolean = true; export let isLoading: boolean = false; export let handleChange: (event: Event) => void; export let description: string | undefined = undefined; @@ -16,12 +15,10 @@ - {#if showReport} - {#if reportValue !== undefined} - {reportValue} - {:else if isLoading} - - {/if} + {#if reportValue !== undefined} + {reportValue} + {:else if isLoading} + {/if} diff --git a/src/routes/(console)/project-[project]/settings/migrations/(import)/step2.svelte b/src/routes/(console)/project-[project]/settings/migrations/(import)/step2.svelte deleted file mode 100644 index a786481319..0000000000 --- a/src/routes/(console)/project-[project]/settings/migrations/(import)/step2.svelte +++ /dev/null @@ -1,22 +0,0 @@ - - - - Resources - - Select the resources you need to migrate to Appwrite. Some resources can be migrated, but - with limitations. - Learn about which resources are supported. - - - diff --git a/src/routes/(console)/project-[project]/settings/migrations/(import)/wizard.svelte b/src/routes/(console)/project-[project]/settings/migrations/(import)/wizard.svelte index 83d67c51b6..68eed429f5 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/(import)/wizard.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/(import)/wizard.svelte @@ -10,12 +10,19 @@ import { started } from '../stores'; import { showMigrationBox } from '$lib/components/migrationBox.svelte'; import { addNotification } from '$lib/stores/notifications'; - import { Button, Card, Fieldset, Layout, Typography } from '@appwrite.io/pink-svelte'; + import { Button, Card, Fieldset, Icon, Layout, Typography } from '@appwrite.io/pink-svelte'; import { Link } from '$lib/elements'; - import { Form } from '$lib/elements/forms'; - import { Box, EyebrowHeading } from '$lib/components'; + import { FormList } from '$lib/elements/forms'; + import { EyebrowHeading } from '$lib/components'; import Credentials from './credentials.svelte'; import ResourceForm from '$routes/(console)/(migration-wizard)/resource-form.svelte'; + import { + IconCog, + IconCurrencyDollar, + IconExclamation, + IconTrendingUp + } from '@appwrite.io/pink-icons-svelte'; + import { capitalize } from '$lib/helpers/string'; const onExit = () => { resetImportStores(); @@ -98,16 +105,18 @@ }; let showResources = false; - let showExitModal = false; + let errorInResources = false; + $: isFinalsButtonEnabled = + !errorInResources && + showResources && + Object.values($formData).some((category) => + Object.values(category).some((value) => value === true) + ); - -
+ +
@@ -126,7 +135,8 @@ id={key} value={key} title={platform} - imageRadius="s" /> + imageRadius="s" + disabled={showResources} /> {/each}
@@ -141,17 +151,16 @@ justifyContent="space-between" alignItems="center" gap="xs"> - - Credentials set - + + {capitalize($provider.provider)} credentials set successfully + (showResources = !showResources)}>Update + variant="secondary" + on:click={() => (showResources = !showResources)}> + Update + {/if} @@ -159,67 +168,73 @@ {#if showResources}
- +
{/if} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + Good to know + + + + + + + + Project settings are not imported + You will need to set service and project settings manually. + + + + + + + + + + Keep your organization plan's limits in mind + Make sure to have enough storage in your organization plan when importing files. + + + + + + {@const isFirebase = $provider.provider === 'firebase'} + + + + + + {isFirebase + ? 'Possible charges by Firebase' + : 'Transfer is free of charge'} + + + {#if isFirebase} + Appwrite does not impose charges for importing data, but please note + that Firebase may have its own pricing for this service + {:else} + You won't be charged for Appwrite bandwidth usage for importing data + {/if} + + + + + Cancel - - Create + Create @@ -237,6 +252,15 @@ .providers { display: grid; gap: var(--gap-l, 16px); - grid-template-columns: repeat(3, 1fr); + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + + @media (max-width: 768px) { + display: flex; + flex-direction: column; + } + } + + .icon-wrapper { + padding-block: 2px; } From d2b4227767025bc4b0825783dbe6f071dd57040c Mon Sep 17 00:00:00 2001 From: Darshan Date: Sat, 8 Mar 2025 12:50:20 +0530 Subject: [PATCH 3/4] address design comments. --- package.json | 4 +- pnpm-lock.yaml | 28 +++--- .../(migration-wizard)/resource-form.svelte | 17 ++-- .../overview/keys/scopes.svelte | 6 +- .../migrations/(import)/credentials.svelte | 5 +- .../migrations/(import)/wizard.svelte | 92 ++++++++++--------- .../settings/migrations/+page.svelte | 24 ++++- .../settings/migrations/details.svelte | 22 ++--- .../settings/migrations/exportModal.svelte | 33 ++++--- 9 files changed, 130 insertions(+), 101 deletions(-) diff --git a/package.json b/package.json index 03a5d409c9..8bc90b0365 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,9 @@ "dependencies": { "@appwrite.io/console": "https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ac51fcb", "@appwrite.io/pink-icons": "0.25.0", - "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 ", + "@appwrite.io/pink-icons-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@294", "@appwrite.io/pink-legacy": "^1.0.2", - "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291", + "@appwrite.io/pink-svelte": "https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@294", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^8.38.0", "@stripe/stripe-js": "^3.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 032f5cf502..916463ebe3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,14 +15,14 @@ importers: specifier: 0.25.0 version: 0.25.0 '@appwrite.io/pink-icons-svelte': - specifier: 'https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 ' - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 (svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@294 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@294(svelte@4.2.19) '@appwrite.io/pink-legacy': specifier: ^1.0.2 version: 1.0.2 '@appwrite.io/pink-svelte': - specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291 - version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) + specifier: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@294 + version: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@294(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -215,14 +215,14 @@ packages: resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ac51fcb} version: 1.2.1 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 ': - resolution: {tarball: 'https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 '} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@19a4e8e0fb092518aa9f9b00db6568a8a7e3a394': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@19a4e8e0fb092518aa9f9b00db6568a8a7e3a394} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf} + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@294': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@294} version: 1.0.0-next.7 peerDependencies: svelte: ^4.0.0 @@ -236,8 +236,8 @@ packages: '@appwrite.io/pink-legacy@1.0.2': resolution: {integrity: sha512-1AYNcfbV+x0Tyj56CoieSq5g7+u+7F5/LDVN/z+Hx1kp9gj7xc1eT39Dy832xxfihImF6ksjp0FXEMVSBR8cew==} - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291': - resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291} + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@294': + resolution: {tarball: https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@294} version: 1.0.0-next.85 peerDependencies: react-dom: ^18.0.0 @@ -4099,11 +4099,11 @@ snapshots: '@appwrite.io/console@https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@ac51fcb': {} - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@291 (svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@19a4e8e0fb092518aa9f9b00db6568a8a7e3a394(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf(svelte@4.2.19)': + '@appwrite.io/pink-icons-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@294(svelte@4.2.19)': dependencies: svelte: 4.2.19 @@ -4116,9 +4116,9 @@ snapshots: '@appwrite.io/pink-icons': 1.0.0 the-new-css-reset: 1.11.3 - '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@291(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': + '@appwrite.io/pink-svelte@https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-svelte@294(react-dom@18.3.1(react@18.3.1))(svelte@4.2.19)': dependencies: - '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@aedaf83a0e105ca863a264ac2c1bffa001ddc8cf(svelte@4.2.19) + '@appwrite.io/pink-icons-svelte': https://pkg.pr.new/appwrite/pink/@appwrite.io/pink-icons-svelte@19a4e8e0fb092518aa9f9b00db6568a8a7e3a394(svelte@4.2.19) '@floating-ui/dom': 1.6.13 '@melt-ui/pp': 0.3.2(@melt-ui/svelte@0.86.3(svelte@4.2.19))(svelte@4.2.19) '@melt-ui/svelte': 0.86.3(svelte@4.2.19) diff --git a/src/routes/(console)/(migration-wizard)/resource-form.svelte b/src/routes/(console)/(migration-wizard)/resource-form.svelte index 89ef8b0b20..a8ff2f4ec8 100644 --- a/src/routes/(console)/(migration-wizard)/resource-form.svelte +++ b/src/routes/(console)/(migration-wizard)/resource-form.svelte @@ -2,7 +2,7 @@ import { deepMap } from '$lib/helpers/object'; import type { WritableValue } from '$lib/helpers/types'; import { type getSdkForProject } from '$lib/stores/sdk'; - import { Alert, Button, Divider, Layout, Tag, Typography } from '@appwrite.io/pink-svelte'; + import { Alert, Divider, Layout, Tag, Typography } from '@appwrite.io/pink-svelte'; import { onMount } from 'svelte'; import { createMigrationFormStore, @@ -11,6 +11,7 @@ providerResources, resourcesToMigrationForm } from '$lib/stores/migration'; + import { Button } from '$lib/elements/forms'; import { wizard } from '$lib/stores/wizard'; import type { Models } from '@appwrite.io/console'; import ImportReport from '$routes/(console)/project-[project]/settings/migrations/(import)/importReport.svelte'; @@ -155,20 +156,18 @@ - { event.preventDefault(); deselectAll(); - }}>Deselect all - Deselect all + diff --git a/src/routes/(console)/project-[project]/overview/keys/scopes.svelte b/src/routes/(console)/project-[project]/overview/keys/scopes.svelte index 7bc921b5eb..05cd2ab102 100644 --- a/src/routes/(console)/project-[project]/overview/keys/scopes.svelte +++ b/src/routes/(console)/project-[project]/overview/keys/scopes.svelte @@ -1,11 +1,9 @@ @@ -156,7 +175,8 @@ {entry.source} - + {@const status = getTypedStatus(entry)} +
diff --git a/src/routes/(console)/project-[project]/settings/migrations/details.svelte b/src/routes/(console)/project-[project]/settings/migrations/details.svelte index 1219e29637..4812d05dd3 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/details.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/details.svelte @@ -7,7 +7,7 @@ import { formatNum } from '$lib/helpers/string'; import type { Models } from '@appwrite.io/console'; import { ResourcesFriendly } from '$lib/stores/migration'; - import { Card, Layout, Typography, Code } from '@appwrite.io/pink-svelte'; + import { Card, Layout, Typography, Code, Spinner, Tag } from '@appwrite.io/pink-svelte'; export let migration: Models.Migration = null; export let show = false; @@ -44,6 +44,7 @@ }; let tab = 'details' as 'details' | 'logs'; + let logs = JSON.stringify(migration, null, 2); {#if tab === 'logs'} - + {:else if tab === 'details'} @@ -94,14 +95,12 @@
{#each Object.keys(statusCounters) as entity} {@const entityCounter = statusCounters[entity]} -
+
{#if hasError(entityCounter)} {:else if isLoading(entityCounter)} -
- -
+ {:else if hasSucceeded(entityCounter)} {:else} @@ -114,9 +113,10 @@ >{total(Object.values(entityCounter)) > 1 ? ResourcesFriendly[entity].plural : ResourcesFriendly[entity].singular} - {totalItems(entityCounter)} + + {totalItems(entityCounter)}
-
+ {/each}
{/if} @@ -127,7 +127,7 @@ .box { padding: 0; - > div { + > :global(div) { padding: 1.25rem; &:not(:last-child) { @@ -142,10 +142,10 @@ width: 1.5rem; height: 1.5rem; - > * { - position: absolute; + > :global(*) { top: 50%; left: 50%; + position: absolute; transform: translate(-50%, -50%); } diff --git a/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte b/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte index ff6539a7cf..feae63ed1b 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte @@ -1,11 +1,12 @@ - + API key creation By initiating the transfer, an API key will be automatically generated in the background, which you can delete after completion - + { - if (!submitted) return; - const input = e.target; - const value = input.value; - - if (!isValidEndpoint(value)) { - input.setCustomValidity('Please enter a valid endpoint'); - } else { - input.setCustomValidity(''); - } - input.reportValidity(); - }} /> + on:input={validateInput} />

From 3f658b7a9481582159c4002734f78b163174fd37 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sat, 8 Mar 2025 13:06:28 +0530 Subject: [PATCH 4/4] misc: changes. --- .../settings/migrations/exportModal.svelte | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte b/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte index feae63ed1b..b02c59a5bb 100644 --- a/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte +++ b/src/routes/(console)/project-[project]/settings/migrations/exportModal.svelte @@ -1,15 +1,17 @@ @@ -128,32 +119,43 @@ + bind:value={endpointUrl} + label="Endpoint self-hosted instance" + placeholder="https://" /> -

- Share your feedback: why our self-hosted solution works better for you -

-

+ + + Share your feedback: why our self-hosted solution works better for you + + We appreciate your continued support and we understand that our self-hosted solution might better fit your needs. To help us improve our Cloud solution, please share why it works better for you. Your feedback is important to us and we'll use it to make our services better. -

-
+ -
+
-
- You will be redirected to your self-hosted instance - - -
+ + You will be redirected to your self-hosted instance + + +