Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
16843f3
refactor: remove empty parent awaits
TGlide Mar 8, 2023
d171b33
refactor: change sdkForProject to a function
TGlide Mar 8, 2023
53c77dd
refactor: add sdk export
TGlide Mar 8, 2023
3ae953a
refactor: import sdk everywhere
TGlide Mar 8, 2023
e4cb016
refactor: replace sdkForConsole with sdk.forConsole
TGlide Mar 8, 2023
ef94411
refactor: replace sdkForProject() with sdk.forProject
TGlide Mar 8, 2023
f7c92b4
refactor: remove parent imports
TGlide Mar 8, 2023
5286b10
refactor: remove parent imports
TGlide Mar 8, 2023
bdc14ac
adding the missing quotes to JSON example
kabhamo Mar 9, 2023
8ec063c
test: add sdkForProject tests
TGlide Mar 9, 2023
1de6ab3
Merge branch 'appwrite:main' into fix-4940-missing-properties-josn-qu…
kabhamo Mar 9, 2023
f4542df
feat: smart forms
TorstenDittmann Mar 9, 2023
c21085f
feat: implement smart forms everywhere
TorstenDittmann Mar 9, 2023
9908338
tests: fix tests
TorstenDittmann Mar 9, 2023
6d7c6b9
fix: improve button logic
TorstenDittmann Mar 9, 2023
c0abf5b
fix: improve button readability
TorstenDittmann Mar 9, 2023
d339433
ci: update setup-node
TorstenDittmann Mar 9, 2023
8d11cef
fix: update Documentation hyperlink on empty sessions page
Pranav2612000 Mar 11, 2023
42f7a9e
refactor: remove members role col
TGlide Mar 14, 2023
0ccdcdc
feat: clickable member avatars
TGlide Mar 14, 2023
63aeccd
Updated danger zone to delete x
eldadfux Mar 14, 2023
a36a754
Updated comperssion card
eldadfux Mar 14, 2023
c4a1b2c
File extenstions card
eldadfux Mar 14, 2023
9b7c925
Removed `Update` prefix
eldadfux Mar 14, 2023
9e5a3ba
refactor: revert resend removal
TGlide Mar 15, 2023
2a489b7
fix: wrong docs link
TGlide Mar 15, 2023
e108b9a
refactor: make table sticky scroll only when overflowing
TGlide Mar 15, 2023
3c4e495
fix: wrong heading max file size
ArmanNik Mar 17, 2023
c14ce7e
refactor: rename buttons
TGlide Mar 17, 2023
73ab8c4
Merge branch 'main' into refactor/remove-parent-awaits
TorstenDittmann Mar 20, 2023
2c8d298
Merge pull request #348 from appwrite/refactor/rename-buttons
TorstenDittmann Mar 20, 2023
a49ef96
Merge pull request #345 from appwrite/fix/auth-docs-link
TorstenDittmann Mar 20, 2023
879fdd4
Merge pull request #347 from appwrite/fix-wrong-heading-max-file-size
TorstenDittmann Mar 20, 2023
487de8e
Merge pull request #341 from appwrite/feat/clickable-member-avatars
TorstenDittmann Mar 20, 2023
6936041
Merge pull request #340 from appwrite/refacotr/remove-role-column
TorstenDittmann Mar 20, 2023
c763227
Merge branch 'main' of https://github.com/appwrite/appwrite-console-p…
TorstenDittmann Mar 20, 2023
baaf9f1
Merge pull request #328 from appwrite/refactor/remove-parent-awaits
TorstenDittmann Mar 20, 2023
e091f99
Merge branch 'main' of https://github.com/appwrite/appwrite-console-p…
TorstenDittmann Mar 20, 2023
2c2b4ce
fix: some other forms
TorstenDittmann Mar 20, 2023
666b974
tests: add tests for new form
TorstenDittmann Mar 20, 2023
a7f56ee
tests: fix tests
TorstenDittmann Mar 20, 2023
d218cd5
tests: extend forms tests
TorstenDittmann Mar 20, 2023
4fd460d
Merge pull request #334 from appwrite/feat-smart-forms
TorstenDittmann Mar 20, 2023
47bb04c
Merge branch 'main' into fix-5189-update-documentation-link-on-empty-…
TorstenDittmann Mar 20, 2023
d906c91
Merge pull request #337 from Pranav2612000/fix-5189-update-documentat…
TorstenDittmann Mar 20, 2023
b09af13
Merge branch 'main' into feat-update-card-titles
TorstenDittmann Mar 20, 2023
d5cac3d
Merge pull request #343 from appwrite/feat-update-card-titles
TorstenDittmann Mar 20, 2023
532bd07
Merge pull request #346 from appwrite/refactor/sticky-scroll-only-on-…
TorstenDittmann Mar 20, 2023
dfe842c
Merge pull request #333 from kabhamo/fix-4940-missing-properties-josn…
TorstenDittmann Mar 20, 2023
a7575c0
fix: json
TorstenDittmann Mar 20, 2023
6fc1a60
sync against main
shimonewman Mar 21, 2023
e1552fa
sync against main
shimonewman Mar 21, 2023
bdb2acc
sync against main
shimonewman Apr 19, 2023
3835c13
reverting 3 commits
shimonewman Apr 19, 2023
6d1e9f7
Revert "sync against main"
shimonewman Apr 19, 2023
2b83ac3
Revert "sync against main" 2
shimonewman Apr 19, 2023
f58780f
removed unused vars + depress [any] type check
shimonewman Apr 19, 2023
7d4bc2f
Merge branch 'cloud-current' of https://github.com/appwrite/console i…
christyjacob4 Aug 4, 2023
a7a4009
fix: build errors
christyjacob4 Aug 4, 2023
e760d47
Merge branch 'cloud-1.2.x' of https://github.com/appwrite/console int…
christyjacob4 Aug 4, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: 18
# - name: Audit dependencies
Expand Down
4 changes: 2 additions & 2 deletions src/lib/components/avatarInitials.svelte
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<script lang="ts">
import { sdkForConsole } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import Avatar from './avatar.svelte';

export let name: string;
export let size: number;

$: src = sdkForConsole.avatars.getInitials(name, size * 2, size * 2).toString();
$: src = sdk.forConsole.avatars.getInitials(name, size * 2, size * 2).toString();
</script>

<Avatar {name} {size} {src} />
2 changes: 1 addition & 1 deletion src/lib/components/eventModal.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@
}
</script>

<Modal bind:show on:submit={create} size="big">
<Modal bind:show onSubmit={create} size="big">
<svelte:fragment slot="header">Create Event</svelte:fragment>
<slot />
<div>
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/feedbackGeneral.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
Your feedback is important to us. Please be honest and tell us what you think.
</div>

<Form on:submit={handleSubmit}>
<Form onSubmit={handleSubmit}>
<FormList>
<InputText
label="name"
Expand Down
2 changes: 1 addition & 1 deletion src/lib/components/feedbackNPS.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
think.
</div>

<Form on:submit={handleSubmit}>
<Form onSubmit={handleSubmit}>
<Evaluation bind:value>
How likely are you to recommend Appwrite to a friend or colleague?
</Evaluation>
Expand Down
9 changes: 6 additions & 3 deletions src/lib/components/modal.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@
import { createEventDispatcher, onDestroy, onMount } from 'svelte';
import { Alert } from '$lib/components';
import { trackEvent } from '$lib/actions/analytics';
import { Form } from '$lib/elements/forms';

export let show = false;
export let size: 'small' | 'big' = null;
export let warning = false;
export let error: string = null;
export let closable = true;
export let onSubmit: () => Promise<void> | void = function () {
return;
};

let dialog: HTMLDialogElement;
let alert: HTMLElement;
Expand Down Expand Up @@ -77,8 +81,7 @@
class:is-big={size === 'big'}
bind:this={dialog}>
{#if show}
<!-- svelte-ignore a11y-no-redundant-roles -->
<form class="modal-form" role="form" on:submit|preventDefault>
<Form isModal {onSubmit}>
<header class="modal-header">
{#if warning}
<div class="avatar is-warning is-medium">
Expand Down Expand Up @@ -127,6 +130,6 @@
</div>
</div>
{/if}
</form>
</Form>
{/if}
</dialog>
4 changes: 2 additions & 2 deletions src/lib/components/permissions/custom.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
$: disabled = !value || $groups.has(value);
</script>

<Modal bind:show on:close={reset} on:submit={create}>
<Modal bind:show on:close={reset} onSubmit={create}>
<svelte:fragment slot="header">Custom permission</svelte:fragment>
<p class="text">
Custom permissions allow you to grant access to specific users or teams using their ID and
Expand All @@ -44,6 +44,6 @@
</FormList>

<svelte:fragment slot="footer">
<Button submit {disabled}>Create</Button>
<Button submit {disabled}>Add</Button>
</svelte:fragment>
</Modal>
6 changes: 3 additions & 3 deletions src/lib/components/permissions/row.svelte
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script lang="ts">
import { tooltip } from '$lib/actions/tooltip';
import { sdkForProject } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import type { Models } from '@aw-labs/appwrite-console';
import { tick } from 'svelte';
import { AvatarInitials } from '../';
Expand All @@ -18,11 +18,11 @@
const role = permission.split(':')[0];
const id = permission.split(':')[1].split('/')[0];
if (role === 'user') {
const user = await sdkForProject.users.get(id);
const user = await sdk.forProject.users.get(id);
return user;
}
if (role === 'team') {
const team = await sdkForProject.teams.get(id);
const team = await sdk.forProject.teams.get(id);
return team;
}
}
Expand Down
8 changes: 4 additions & 4 deletions src/lib/components/permissions/team.svelte
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<script lang="ts">
import { Button, InputSearch } from '$lib/elements/forms';
import { createEventDispatcher } from 'svelte';
import { sdkForProject } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import { Query, type Models } from '@aw-labs/appwrite-console';
import { AvatarInitials, EmptySearch, Modal, PaginationInline } from '..';
import type { Writable } from 'svelte/store';
Expand Down Expand Up @@ -31,7 +31,7 @@

async function request() {
if (!show) return;
results = await sdkForProject.teams.list([Query.limit(5), Query.offset(offset)], search);
results = await sdk.forProject.teams.list([Query.limit(5), Query.offset(offset)], search);
}

function onSelection(event: Event, role: string) {
Expand All @@ -58,7 +58,7 @@
}
</script>

<Modal bind:show on:submit={create} on:close={reset} size="big">
<Modal bind:show onSubmit={create} on:close={reset} size="big">
<svelte:fragment slot="header">Select teams</svelte:fragment>
<p class="text">
Grant access to any member of a specific team. To grant access to team members with specific
Expand Down Expand Up @@ -144,6 +144,6 @@
{/if}

<svelte:fragment slot="footer">
<Button submit disabled={!hasSelection}>Create</Button>
<Button submit disabled={!hasSelection}>Add</Button>
</svelte:fragment>
</Modal>
8 changes: 4 additions & 4 deletions src/lib/components/permissions/user.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import { Button, InputSearch } from '$lib/elements/forms';
import { createEventDispatcher } from 'svelte';
import { AvatarInitials, EmptySearch, Modal, PaginationInline } from '..';
import { sdkForProject } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import { Query, type Models } from '@aw-labs/appwrite-console';
import type { Writable } from 'svelte/store';
import type { Permission } from './permissions.svelte';
Expand Down Expand Up @@ -31,7 +31,7 @@

async function request() {
if (!show) return;
results = await sdkForProject.users.list([Query.limit(5), Query.offset(offset)], search);
results = await sdk.forProject.users.list([Query.limit(5), Query.offset(offset)], search);
}

function onSelection(event: Event, role: string) {
Expand All @@ -58,7 +58,7 @@
}
</script>

<Modal bind:show on:submit={create} on:close={reset} size="big">
<Modal bind:show onSubmit={create} on:close={reset} size="big">
<svelte:fragment slot="header">Select users</svelte:fragment>
<p class="text">Grant access to any authenticated or anonymous user.</p>
<InputSearch
Expand Down Expand Up @@ -163,6 +163,6 @@
{/if}

<svelte:fragment slot="footer">
<Button submit disabled={!hasSelection}>Create</Button>
<Button submit disabled={!hasSelection}>Add</Button>
</svelte:fragment>
</Modal>
4 changes: 2 additions & 2 deletions src/lib/components/uploadBox.svelte
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<script lang="ts">
import { uploader } from '$lib/stores/uploader';
import { Pill } from '$lib/elements';
import { sdkForProject } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import { Avatar } from '$lib/components';
import { base } from '$app/paths';
import { page } from '$app/stores';

let hovering = false;

const getPreview = (fileId: string, bucketId: string) =>
sdkForProject.storage.getFilePreview(bucketId, fileId, 32, 32).toString() + '&mode=admin';
sdk.forProject.storage.getFilePreview(bucketId, fileId, 32, 32).toString() + '&mode=admin';
</script>

{#if $uploader?.isOpen}
Expand Down
13 changes: 11 additions & 2 deletions src/lib/elements/forms/button.svelte
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
<script lang="ts">
import { trackEvent } from '$lib/actions/analytics';
import { getContext, hasContext } from 'svelte';
import { readable } from 'svelte/store';
import type { FormContext } from './form.svelte';

export let submit = false;
export let secondary = false;
Expand All @@ -15,8 +18,14 @@
export let noMargin = false;
export let event: string = null;

const isSubmitting = hasContext('form')
? getContext<FormContext>('form').isSubmitting
: readable(false);

$: internalDisabled = (submit && $isSubmitting) || disabled;

//allows to add the disabled attribute to <a> tag without throwing an error
let attributes = { disabled } as Record<string, boolean>;
$: attributes = { internalDisabled } as Record<string, boolean>;

function track() {
if (!event) {
Expand Down Expand Up @@ -51,7 +60,7 @@
<button
on:click
on:click={track}
{disabled}
disabled={internalDisabled}
class="button"
class:is-only-icon={round}
class:is-secondary={secondary}
Expand Down
30 changes: 28 additions & 2 deletions src/lib/elements/forms/form.svelte
Original file line number Diff line number Diff line change
@@ -1,9 +1,35 @@
<script context="module" lang="ts">
import type { Writable } from 'svelte/store';

export type FormContext = {
isSubmitting: Writable<boolean>;
};
</script>

<script lang="ts">
import { setContext } from 'svelte';
import { writable } from 'svelte/store';

export let noMargin = false;
export let noStyle = false;
export let isModal = false;
export let onSubmit: () => Promise<void> | void;

const { isSubmitting } = setContext<FormContext>('form', {
isSubmitting: writable(false)
});

async function submit() {
isSubmitting.set(true);
await onSubmit();
isSubmitting.set(false);
}
</script>

<!-- svelte-ignore a11y-no-redundant-roles -->
<form role="form" class:form={!noStyle} class:common-section={!noMargin} on:submit|preventDefault>
<form
class:form={!noStyle}
class:common-section={!noMargin}
class:modal-form={isModal}
on:submit|preventDefault={submit}>
<slot />
</form>
24 changes: 22 additions & 2 deletions src/lib/elements/table/tableScroll.svelte
Original file line number Diff line number Diff line change
@@ -1,10 +1,30 @@
<script lang="ts">
import type { Action } from 'svelte/action';

export let isSticky = false;

const hasOverflow: Action<HTMLDivElement, (value: boolean) => void> = (node, callback) => {
const observer = new ResizeObserver((entries) => {
for (const entry of entries) {
callback(entry.contentRect.width < entry.target.scrollWidth);
}
});

observer.observe(node);

return {
destroy() {
observer.disconnect();
}
};
};

let isOverflowing = false;
</script>

<div class="table-with-scroll u-margin-block-start-32" data-private>
<div class="table-wrapper">
<table class="table" class:is-sticky-scroll={isSticky}>
<div class="table-wrapper" use:hasOverflow={(v) => (isOverflowing = v)}>
<table class="table" class:is-sticky-scroll={isSticky && isOverflowing}>
<slot />
</table>
</div>
Expand Down
5 changes: 5 additions & 0 deletions src/lib/helpers/project.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export function getProjectId() {
const pathname = window.location.pathname;
const projectMatch = pathname.match(/\/project-(.*?)\//);
return projectMatch?.[1] || null;
}
3 changes: 3 additions & 0 deletions src/lib/helpers/promises.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export async function sleep(ms: number): Promise<void> {
return new Promise((r) => setTimeout(r, ms));
}
4 changes: 2 additions & 2 deletions src/lib/layout/header.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import { goto } from '$app/navigation';
import { page } from '$app/stores';
import { Submit, trackEvent } from '$lib/actions/analytics';
import { sdkForConsole } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import { slide } from 'svelte/transition';
import { isCloud } from '$lib/system';

Expand All @@ -36,7 +36,7 @@
}

async function logout() {
await sdkForConsole.account.deleteSession('current');
await sdk.forConsole.account.deleteSession('current');
trackEvent(Submit.AccountLogout);
await goto(`${base}/login`);
}
Expand Down
6 changes: 3 additions & 3 deletions src/lib/layout/logs.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import { Button } from '$lib/elements/forms';
import { base } from '$app/paths';
import { app } from '$lib/stores/app';
import { sdkForConsole } from '$lib/stores/sdk';
import { sdk } from '$lib/stores/sdk';
import { page } from '$app/stores';
import { calculateTime } from '$lib/helpers/timeConversion';
import type { Models } from '@aw-labs/appwrite-console';
Expand All @@ -17,15 +17,15 @@
function isDeployment(data: Models.Deployment | Models.Execution): data is Models.Deployment {
if ('buildId' in data) {
selectedTab = 'logs';
rawData = `${sdkForConsole.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}/deployment/${$log.data.$id}?mode=admin&project=${$page.params.project}`;
return true;
}
}

function isExecution(data: Models.Deployment | Models.Execution): data is Models.Execution {
if ('trigger' in data) {
selectedTab = 'response';
rawData = `${sdkForConsole.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}/execution/${$log.data.$id}?mode=admin&project=${$page.params.project}`;
return true;
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/lib/layout/shell.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,14 @@
.main-side {
z-index: 25;
}

@media (max-width: 550.99px), (min-width: 551px) and (max-width: 1198.99px) {
.main-side {
top: 4.5rem;
}
}

.main-content {
overflow: hidden;
}
</style>
Loading