diff --git a/src/lib/components/breadcrumbs.svelte b/src/lib/components/breadcrumbs.svelte index bbd07c136..daafb4d6c 100644 --- a/src/lib/components/breadcrumbs.svelte +++ b/src/lib/components/breadcrumbs.svelte @@ -405,7 +405,7 @@ display: inline-flex; align-items: center; justify-content: center; - padding: var(--space-1, 2px) var(--space-1, 2px) var(--space-1, 2px) var(--space-3, 6px); + padding: var(--space-1, 2px) var(--space-2, 4px) var(--space-1, 2px) var(--space-3, 6px); gap: var(--space-2, 4px); margin: 0 var(--space-5, 10px) 0 var(--space-5, 10px); diff --git a/src/lib/components/filters/content.svelte b/src/lib/components/filters/content.svelte index 45d23abfb..8e4629982 100644 --- a/src/lib/components/filters/content.svelte +++ b/src/lib/components/filters/content.svelte @@ -14,7 +14,7 @@ import type { Column } from '$lib/helpers/types'; import type { Writable } from 'svelte/store'; import { TagList } from '.'; - import { Icon } from '@appwrite.io/pink-svelte'; + import { Icon, Layout } from '@appwrite.io/pink-svelte'; import { IconPlus } from '@appwrite.io/pink-icons-svelte'; // We cast to any to not cause type errors in the input components @@ -71,7 +71,7 @@
- + {#if column && operator && !operator?.hideInput} {#if column?.array} diff --git a/src/lib/components/filters/filters.svelte b/src/lib/components/filters/filters.svelte index bad4a6fe5..5f67ee624 100644 --- a/src/lib/components/filters/filters.svelte +++ b/src/lib/components/filters/filters.svelte @@ -14,8 +14,8 @@ ValidOperators } from './store'; import { createEventDispatcher } from 'svelte'; - import { Icon, Popover } from '@appwrite.io/pink-svelte'; - import { IconFilter } from '@appwrite.io/pink-icons-svelte'; + import { Icon, Layout, Popover } from '@appwrite.io/pink-svelte'; + import { IconFilter, IconFilterLine } from '@appwrite.io/pink-icons-svelte'; export let query = '[]'; export let columns: Writable; @@ -119,7 +119,7 @@
-
+ {#if displayQuickFilters} {:else} @@ -143,7 +143,6 @@ on:apply={afterApply} on:clear={() => (applied = 0)} /> {/if} -
Apply
-
+
diff --git a/src/lib/components/sidebar.svelte b/src/lib/components/sidebar.svelte index e8ffdc332..4cf8245cf 100644 --- a/src/lib/components/sidebar.svelte +++ b/src/lib/components/sidebar.svelte @@ -355,7 +355,7 @@ } .link-icon { - color: var(--color-fgcolor-neutral-primary); + color: var(--color-fgcolor-neutral-tertiary); } } } @@ -365,7 +365,7 @@ color: var(--color-fgcolor-neutral-primary); } .link-icon { - color: var(--color-fgcolor-neutral-primary); + color: var(--color-fgcolor-neutral-tertiary); } } @@ -419,15 +419,6 @@ border-bottom: var(--border-width-s, 1px) solid var(--color-border-neutral, #ededf0); background: var(--color-bgcolor-neutral-primary, #fff); - - .icon { - display: flex; - padding: var(--space-3, 6px); - justify-content: center; - align-items: center; - - color: var(--color-fgcolor-neutral-weak); - } } .products-label-container { @@ -440,7 +431,7 @@ } .icons .products-label-container { - margin-block-start: var(--base-32, 32px); + margin-block-start: var(--base-20, 20px); margin-block-end: var(--base-8, 8px); } diff --git a/src/lib/layout/container.svelte b/src/lib/layout/container.svelte index 641ce3b2b..5d229c030 100644 --- a/src/lib/layout/container.svelte +++ b/src/lib/layout/container.svelte @@ -27,8 +27,8 @@ margin-inline: 1rem; } @media (min-width: 1024px) { - margin-inline: 2.5rem; - max-width: 944px; + margin-inline: auto; + max-width: min(944px, calc(944px - 5rem)); } @media (min-width: 1280px) { margin-inline: auto; diff --git a/src/lib/layout/cover.svelte b/src/lib/layout/cover.svelte index 1fc815a12..f920c6281 100644 --- a/src/lib/layout/cover.svelte +++ b/src/lib/layout/cover.svelte @@ -40,8 +40,8 @@ margin-inline: 1rem; } @media (min-width: 1024px) { - margin-inline: 2.5rem; - max-width: 944px; + margin-inline: auto; + max-width: min(944px, calc(944px - 5rem)); } @media (min-width: 1280px) { margin-inline: auto; diff --git a/src/lib/layout/shell.svelte b/src/lib/layout/shell.svelte index f6f4a201f..d27ab9804 100644 --- a/src/lib/layout/shell.svelte +++ b/src/lib/layout/shell.svelte @@ -6,7 +6,7 @@ import { log } from '$lib/stores/logs'; import { wizard } from '$lib/stores/wizard'; import { activeHeaderAlert } from '$routes/(console)/store'; - import { type ComponentType, onDestroy, setContext } from 'svelte'; + import { type ComponentType, setContext } from 'svelte'; import { writable } from 'svelte/store'; import { showSubNavigation } from '$lib/stores/layout'; import { organization, organizationList } from '$lib/stores/organization'; @@ -135,7 +135,6 @@
{ }, new Map()); } + const organizations = await sdk.forConsole.teams.list(); + let projects = []; - const currentOrgId = params.organization ? params.organization : prefs.organization; + let currentOrgId = params.organization ? params.organization : prefs.organization; + + if (!currentOrgId && organizations.teams.length > 0) { + currentOrgId = organizations.teams[0].$id; + } if (currentOrgId) { const orgProjects = await sdk.forConsole.projects.list([ Query.equal('teamId', currentOrgId), @@ -53,6 +59,6 @@ export const load: LayoutLoad = async ({ params, fetch, depends, parent }) => { scopes: [], projects: projects, currentProjectId: params.project ?? '', - organizations: await sdk.forConsole.teams.list() + organizations: organizations }; }; 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 index 37d1e094e..20af9413e 100644 --- a/src/routes/(console)/project-[project]/functions/function-[function]/settings/dangerZone.svelte +++ b/src/routes/(console)/project-[project]/functions/function-[function]/settings/dangerZone.svelte @@ -27,4 +27,4 @@ - + diff --git a/src/routes/(console)/project-[project]/functions/function-[function]/settings/deleteModal.svelte b/src/routes/(console)/project-[project]/functions/function-[function]/settings/deleteModal.svelte index aa9a9fdf8..969906129 100644 --- a/src/routes/(console)/project-[project]/functions/function-[function]/settings/deleteModal.svelte +++ b/src/routes/(console)/project-[project]/functions/function-[function]/settings/deleteModal.svelte @@ -6,13 +6,18 @@ import Confirm from '$lib/components/confirm.svelte'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; + import { type Models } from '@appwrite.io/console'; + import { FormList, InputCheckbox } from '$lib/elements/forms'; export let showDelete = false; - const functionId = $page.params.function; + export let projectFunction: Models.Function; + let error: string; + let confirmedDeletion = false; + const handleSubmit = async () => { try { - await sdk.forProject.functions.delete(functionId); + await sdk.forProject.functions.delete(projectFunction.$id); showDelete = false; addNotification({ type: 'success', @@ -27,6 +32,25 @@ }; - - Are you sure you want to delete this function and all associated deployments from your project? + + +

Are you sure you want to delete {projectFunction.name}?

+ +

+ The function and all associated deployments will be permanently deleted. This action is + irreversible. +

+ + +
diff --git a/src/routes/(console)/project-[project]/overview/header.svelte b/src/routes/(console)/project-[project]/overview/header.svelte index d3251dceb..89110e70c 100644 --- a/src/routes/(console)/project-[project]/overview/header.svelte +++ b/src/routes/(console)/project-[project]/overview/header.svelte @@ -48,10 +48,8 @@ on:click={async () => { trackEvent('onboarding_hub_platform_dismiss'); await setHasOnboardingDismissed($project.$id); + await invalidate(Dependencies.ORGANIZATION); goto(`${base}/project-${$project.$id}/overview`); - requestAnimationFrame(() => { - invalidate(Dependencies.ORGANIZATION); - }); }}>Dismiss this page {/if} diff --git a/src/routes/(console)/project-[project]/sites/(components)/connectRepoModal.svelte b/src/routes/(console)/project-[project]/sites/(components)/connectRepoModal.svelte index b855373c9..fb88fcc60 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/connectRepoModal.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/connectRepoModal.svelte @@ -93,7 +93,9 @@ hideFooter={!repositoryBehaviour} onSubmit={connectRepo} bind:error> - Connect to a new repository or an existing one. + + Connect your site to an existing repository or create a new one. + {#if hasInstallations} @@ -127,7 +129,10 @@ {#if repositoryBehaviour === 'existing'} - Missing a repository? check your permissions + + Missing a repository? check your permissions + {:else if repositoryBehaviour === 'new'} diff --git a/src/routes/(console)/project-[project]/sites/(components)/deploymentActionMenu.svelte b/src/routes/(console)/project-[project]/sites/(components)/deploymentActionMenu.svelte index 3b2244564..0c0f89062 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/deploymentActionMenu.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/deploymentActionMenu.svelte @@ -1,5 +1,4 @@ - - - - Deployment logs - - + {#if !hideTitle} + + + + Deployment logs + + + + + {#if ['processing', 'building'].includes(status)} + + +

+ + + + {:else} + + {formatTimeDetailed(deployment.buildTime)} + + {/if} + - - {#if ['processing', 'building'].includes(status)} - - -

- - - - {:else} - - {formatTimeDetailed(deployment.buildTime)} - - {/if} - - + {/if} {#key buildLogs} {/key} diff --git a/src/routes/(console)/project-[project]/sites/(components)/openOnMobileModal.svelte b/src/routes/(console)/project-[project]/sites/(components)/openOnMobileModal.svelte index 9883291d9..50edf6aed 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/openOnMobileModal.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/openOnMobileModal.svelte @@ -23,7 +23,7 @@ Open the preview of your site on any mobile or tablet device. - + QR code diff --git a/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte b/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte index f35854f74..182906f4b 100644 --- a/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte +++ b/src/routes/(console)/project-[project]/sites/(components)/siteCard.svelte @@ -1,6 +1,5 @@ -

+ Connect later Deploy now and connect your version control later via CLI or Git integration in your settings. -
+ diff --git a/src/routes/(console)/project-[project]/sites/create-site/updateVariableModal.svelte b/src/routes/(console)/project-[project]/sites/create-site/updateVariableModal.svelte index 061729272..e6dda3e49 100644 --- a/src/routes/(console)/project-[project]/sites/create-site/updateVariableModal.svelte +++ b/src/routes/(console)/project-[project]/sites/create-site/updateVariableModal.svelte @@ -1,5 +1,5 @@ - - - + + + {#if data.deployment?.status === 'ready'} + + {/if} + + + + + + + + + + + + + +{#if showActivate} + +{/if} diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.ts b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.ts index a5896c33d..122527316 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.ts @@ -1,14 +1,19 @@ import { sdk } from '$lib/stores/sdk'; import { Dependencies } from '$lib/constants'; import type { PageLoad } from './$types'; +import { Query } from '@appwrite.io/console'; export const load: PageLoad = async ({ params, depends, parent }) => { depends(Dependencies.DEPLOYMENT); - const { site, proxyRuleList } = await parent(); + const { site } = await parent(); - const [deployment] = await Promise.all([ - sdk.forProject.sites.getDeployment(params.site, params.deployment) + const [deployment, proxyRuleList] = await Promise.all([ + sdk.forProject.sites.getDeployment(params.site, params.deployment), + sdk.forProject.proxy.listRules([ + Query.equal('resourceId', params.deployment), + Query.equal('resourceType', 'deployment') + ]) ]); return { diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte index 0252024c3..b7cfd3337 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/quickFilters.svelte @@ -12,7 +12,8 @@ } from '$lib/components/filters/store'; import { SelectSearchCheckbox } from '$lib/elements'; import type { Column } from '$lib/helpers/types'; - import { ActionMenu, Popover, Tag } from '@appwrite.io/pink-svelte'; + import { IconChevronDown, IconChevronUp } from '@appwrite.io/pink-icons-svelte'; + import { ActionMenu, Icon, Popover, Tag } from '@appwrite.io/pink-svelte'; import { type Writable } from 'svelte/store'; export let columns: Writable; @@ -184,13 +185,13 @@ {#each [typeFilter] as filter} - + {#key filter.tag} {filter?.tag ?? filter.title} {/key} - + @@ -233,14 +234,14 @@ - + {#key filter.tag} {filter?.tag ?? filter.title} {/key} - + diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts index a7915b8c5..f383a7772 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/store.ts @@ -16,16 +16,7 @@ export const columns = writable([ elements: ['ready', 'processing', 'building', 'waiting', 'cancelled', 'failed'], filter: false }, - { - id: 'domains', - title: 'Domains', - type: 'string', - show: true, - width: 150, - array: true, - format: 'string', - filter: false - }, + { id: 'buildTime', title: 'Build time', diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte index 54fc8ee74..066062e47 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/deployments/table.svelte @@ -1,5 +1,5 @@ - Settings diff --git a/src/routes/(console)/project-[project]/sites/site-[site]/settings/dangerZone.svelte b/src/routes/(console)/project-[project]/sites/site-[site]/settings/dangerZone.svelte index 290d5cbd0..bfe14638e 100644 --- a/src/routes/(console)/project-[project]/sites/site-[site]/settings/dangerZone.svelte +++ b/src/routes/(console)/project-[project]/sites/site-[site]/settings/dangerZone.svelte @@ -1,6 +1,5 @@ Coming soon diff --git a/src/routes/(console)/project-[project]/sites/usage/+page.ts b/src/routes/(console)/project-[project]/sites/usage/+page.ts new file mode 100644 index 000000000..1be4eb88b --- /dev/null +++ b/src/routes/(console)/project-[project]/sites/usage/+page.ts @@ -0,0 +1,13 @@ +import { sdk } from '$lib/stores/sdk'; +import { Dependencies } from '$lib/constants'; +import { Query } from '@appwrite.io/console'; + +export const load = async ({ params, depends, parent }) => { + depends(Dependencies.SITES); + + const usage = await sdk.forProject.sites.listUsage(); + + return { + usage + }; +};