Merge branch 'main' of https://github.com/appwrite/appwrite-console-poc into design-review-overview

This commit is contained in:
Torsten Dittmann
2022-11-08 15:35:54 +01:00
59 changed files with 95 additions and 102 deletions
+1 -1
View File
@@ -147,7 +147,7 @@ Adding a new dependency should have vital value on the product with minimum poss
│ │ │ │ ├── _create.svelte // Component to Create collections
│ │ │ │ └── index.svelte // Entrypoint for "/console/[PROJECT_ID]/database"
│ │ │ ├── storage // Storage Service "/console/[PROJECT]/storage"
│ │ │ └── authentication // Users Service "/console/[PROJECT]/authentication"
│ │ │ └── auth // Users Service "/console/[PROJECT]/auth"
│ │ └──...
│ ├── login.svelte // Component for Login "/console/login"
│ └── register.svelte // Component for Register "/console/register"
+4 -4
View File
@@ -41,22 +41,22 @@ export const scopes: {
{
scope: 'users.read',
description: "Access to read your project's users",
category: 'Authentication'
category: 'Auth'
},
{
scope: 'users.write',
description: "Access to create, update, and delete your project's users",
category: 'Authentication'
category: 'Auth'
},
{
scope: 'teams.read',
description: "Access to read your project's teams",
category: 'Authentication'
category: 'Auth'
},
{
scope: 'teams.write',
description: "Access to create, update, and delete your project's teams",
category: 'Authentication'
category: 'Auth'
},
{
scope: 'databases.read',
+18 -20
View File
@@ -31,6 +31,15 @@
<span class="text">Overview</span>
</a>
</li>
<li class="drop-list-item">
<a
class="drop-button"
class:is-selected={$page.url.pathname.startsWith(`${path}/auth`)}
href={`${path}/auth`}>
<span class="icon-user-group" aria-hidden="true" />
<span class="text">Auth</span>
</a>
</li>
<li class="drop-list-item">
<a
class="drop-button"
@@ -40,26 +49,6 @@
<span class="text">Databases</span>
</a>
</li>
<li class="drop-list-item">
<a
class="drop-button"
class:is-selected={$page.url.pathname.startsWith(`${path}/storage`)}
href={`${path}/storage`}>
<span class="icon-folder" aria-hidden="true" />
<span class="text">Storage</span>
</a>
</li>
<li class="drop-list-item">
<a
class="drop-button"
class:is-selected={$page.url.pathname.startsWith(
`${path}/authentication`
)}
href={`${path}/authentication`}>
<span class="icon-user-group" aria-hidden="true" />
<span class="text">Authentication</span>
</a>
</li>
<li class="drop-list-item">
<a
class="drop-button"
@@ -69,6 +58,15 @@
<span class="text">Functions</span>
</a>
</li>
<li class="drop-list-item">
<a
class="drop-button"
class:is-selected={$page.url.pathname.startsWith(`${path}/storage`)}
href={`${path}/storage`}>
<span class="icon-folder" aria-hidden="true" />
<span class="text">Storage</span>
</a>
</li>
</ul>
</section>
</div>
+6 -6
View File
@@ -1,11 +1,11 @@
import { writable } from 'svelte/store';
import type { Models } from '@aw-labs/appwrite-console';
import type { SvelteComponent } from 'svelte';
import Apple from '../../routes/console/project-[project]/authentication/_appleOAuth.svelte';
import Microsoft from '../../routes/console/project-[project]/authentication/_microsoftOAuth.svelte';
import Okta from '../../routes/console/project-[project]/authentication/_oktaOAuth.svelte';
import Auth0 from '../../routes/console/project-[project]/authentication/_auth0OAuth.svelte';
import Main from '../../routes/console/project-[project]/authentication/_mainOAuth.svelte';
import Apple from '../../routes/console/project-[project]/auth/_appleOAuth.svelte';
import Microsoft from '../../routes/console/project-[project]/auth/_microsoftOAuth.svelte';
import Okta from '../../routes/console/project-[project]/auth/_oktaOAuth.svelte';
import Auth0 from '../../routes/console/project-[project]/auth/_auth0OAuth.svelte';
import Main from '../../routes/console/project-[project]/auth/_mainOAuth.svelte';
export type Provider = Models.Provider & {
icon: string;
@@ -105,7 +105,7 @@ const setProviders = (project: Models.Project): Provider[] => {
docs = 'https://developers.tradeshift.com/docs/api';
break;
case 'twitch':
docs = 'https://dev.twitch.tv/docs/authentication';
docs = 'https://dev.twitch.tv/docs/auth';
break;
case 'wordpress':
docs = 'https://developer.wordpress.com/docs/oauth2/';
@@ -108,7 +108,7 @@
<Button
external
secondary
href="https://appwrite.io/docs/server/authentication?sdk=nodejs-default#usersGetsessions">
href="https://appwrite.io/docs/server/auth?sdk=nodejs-default#usersGetsessions">
Documentation
</Button>
</div>
@@ -0,0 +1,5 @@
<svelte:head>
<title>Auth - Appwrite</title>
</svelte:head>
<slot />
@@ -34,7 +34,7 @@
let showCreate = false;
const projectId = $page.params.project;
const userCreated = async (event: CustomEvent<Models.User<Record<string, unknown>>>) => {
await goto(`${base}/console/project-${projectId}/authentication/user-${event.detail.$id}`);
await goto(`${base}/console/project-${projectId}/auth/user-${event.detail.$id}`);
};
</script>
@@ -65,7 +65,7 @@
<TableBody>
{#each data.users.users as user}
<TableRowLink
href={`${base}/console/project-${projectId}/authentication/user-${user.$id}`}>
href={`${base}/console/project-${projectId}/auth/user-${user.$id}`}>
<TableCell title="Name">
<div class="u-flex u-gap-12 u-cross-center">
{#if user.email || user.phone}
@@ -126,7 +126,7 @@
offset={data.offset}
limit={PAGE_LIMIT}
sum={data.users.total}
path={`/console/project-${projectId}/authentication`} />
path={`/console/project-${projectId}/auth`} />
</div>
{:else if data.search}
<EmptySearch>
@@ -134,9 +134,7 @@
<b>Sorry, we couldn't find '{data.search}'</b>
<p>There are no users that match your search.</p>
</div>
<Button href={`/console/project-${projectId}/authentication`} secondary>
Clear Search
</Button>
<Button href={`/console/project-${projectId}/auth`} secondary>Clear Search</Button>
</EmptySearch>
{:else}
<Empty single on:click={() => (showCreate = true)}>
@@ -13,8 +13,8 @@
title: $project?.name
},
{
href: `/console/project-${$project?.$id}/authentication`,
title: 'Authentication'
href: `/console/project-${$project?.$id}/auth`,
title: 'Auth'
}
];
</script>
@@ -5,7 +5,7 @@
import { Cover, CoverTitle } from '$lib/layout';
const projectId = $page.params.project;
const path = `/console/project-${projectId}/authentication`;
const path = `/console/project-${projectId}/auth`;
const tabs = [
{
href: path,
@@ -34,7 +34,7 @@
<Cover>
<svelte:fragment slot="header">
<CoverTitle>Authentication</CoverTitle>
<CoverTitle>Auth</CoverTitle>
</svelte:fragment>
<Tabs>
{#each tabs as tab}
@@ -44,7 +44,7 @@
{#if $authMethods && $OAuthProviders}
<Container>
<CardGrid>
<Heading tag="h2" size="7">Authentication Methods</Heading>
<Heading tag="h2" size="7">Auth Methods</Heading>
<p>Enable the authentication methods you wish to use.</p>
<svelte:fragment slot="aside">
<form class="form">
@@ -27,9 +27,7 @@
const project = $page.params.project;
const teamCreated = async (event: CustomEvent<Models.Team>) => {
await goto(
`${base}/console/project-${project}/authentication/teams/team-${event.detail.$id}`
);
await goto(`${base}/console/project-${project}/auth/teams/team-${event.detail.$id}`);
};
</script>
@@ -58,7 +56,7 @@
<TableBody>
{#each data.teams.teams as team}
<TableRowLink
href={`${base}/console/project-${project}/authentication/teams/team-${team.$id}`}>
href={`${base}/console/project-${project}/auth/teams/team-${team.$id}`}>
<TableCell title="ID">
<div class="u-flex u-gap-12">
<AvatarInitials size={32} name={team.name} />
@@ -77,7 +75,7 @@
<p class="text">Total results: {data.teams.total}</p>
<Pagination
limit={PAGE_LIMIT}
path={`/console/project-${$page.params.project}/authentication/teams`}
path={`/console/project-${$page.params.project}/auth/teams`}
offset={data.offset}
sum={data.teams.total} />
</div>
@@ -87,9 +85,7 @@
<b>Sorry, we couldnt find {data.search}</b>
<p>There are no teams that match your search.</p>
</div>
<Button
secondary
href={`/console/project-${$page.params.project}/authentication/teams`}>
<Button secondary href={`/console/project-${$page.params.project}/auth/teams`}>
Clear Search
</Button>
</EmptySearch>
@@ -4,7 +4,7 @@
import { Activity } from '$lib/layout';
export let data: PageData;
const path = `/console/project-${$page.params.project}/authentication/user-${$page.params.user}/activity`;
const path = `/console/project-${$page.params.project}/auth/teams/team-${$page.params.team}/activity`;
</script>
<Activity {path} logs={data.logs} offset={data.offset} />
@@ -14,11 +14,11 @@
title: $project?.name
},
{
href: `/console/project-${$project?.$id}/authentication`,
title: 'Authentication'
href: `/console/project-${$project?.$id}/auth`,
title: 'Auth'
},
{
href: `/console/project-${$project?.$id}/authentication/teams-${$team?.$id}`,
href: `/console/project-${$project?.$id}/auth/teams-${$team?.$id}`,
title: $team?.name
}
];
@@ -15,7 +15,7 @@
let error: string;
const create = async () => {
const url = `${$page.url.origin}/console/project-${$page.params.project}/authentication/teams-${$page.params.team}/members`;
const url = `${$page.url.origin}/console/project-${$page.params.project}/auth/teams-${$page.params.team}/members`;
try {
const user = await sdkForProject.teams.createMembership(
@@ -23,7 +23,7 @@
showDelete = false;
dispatch('deleted');
await goto(
`${base}/console/project-${$page.params.project}/authentication/teams/team-${selectedMembership.teamId}/members`
`${base}/console/project-${$page.params.project}/auth/teams/team-${selectedMembership.teamId}/members`
);
} catch (error) {
addNotification({
@@ -15,7 +15,7 @@
try {
await sdkForProject.teams.delete(team.$id);
showDelete = false;
await goto(`${base}/console/project-${$page.params.project}/authentication/teams`);
await goto(`${base}/console/project-${$page.params.project}/auth/teams`);
} catch (error) {
addNotification({
type: 'error',
@@ -8,7 +8,7 @@
const projectId = $page.params.project;
const teamId = $page.params.team;
const path = `/console/project-${projectId}/authentication/teams/team-${teamId}`;
const path = `/console/project-${projectId}/auth/teams/team-${teamId}`;
const tabs = [
{
href: path,
@@ -29,7 +29,7 @@
<Cover>
<svelte:fragment slot="header">
<CoverTitle href={`/console/project-${projectId}/authentication/teams`}>
<CoverTitle href={`/console/project-${projectId}/auth/teams`}>
{$team?.name}
</CoverTitle>
<Copy value={$team?.$id}>
@@ -29,9 +29,7 @@
const project = $page.params.project;
async function memberCreated(event: CustomEvent<Models.Membership>) {
await goto(
`${base}/console/project-${project}/authentication/teams-${event.detail.teamId}/members`
);
await goto(`${base}/console/project-${project}/auth/teams-${event.detail.teamId}/members`);
}
</script>
@@ -53,7 +51,7 @@
<TableBody>
{#each data.memberships.memberships as membership}
<TableRowLink
href={`${base}/console/project-${project}/authentication/user-${membership.userId}`}>
href={`${base}/console/project-${project}/auth/user-${membership.userId}`}>
<TableCellText title="Name">
<div class="u-flex u-gap-12">
<AvatarInitials size={32} name={membership.userName} />
@@ -83,7 +81,7 @@
<p class="text">Total results: {data.memberships.total}</p>
<Pagination
limit={PAGE_LIMIT}
path={`/console/project-${$page.params.project}/authentication/teams/team-${$page.params.team}/members`}
path={`/console/project-${$page.params.project}/auth/teams/team-${$page.params.team}/members`}
offset={data.offset}
sum={data.memberships.total} />
</div>
@@ -95,7 +93,7 @@
</div>
<Button
secondary
href={`/console/project-${$page.params.project}/authentication/teams/team-${$page.params.team}/members`}
href={`/console/project-${$page.params.project}/auth/teams/team-${$page.params.team}/members`}
>Clear Search</Button>
</EmptySearch>
{:else}
@@ -14,7 +14,7 @@
<Usage
title="Users"
path={`/console/project-${$page.params.project}/authentication/usage`}
path={`/console/project-${$page.params.project}/auth/usage`}
{count}
{created}
{read}
@@ -4,7 +4,7 @@
import { Activity } from '$lib/layout';
export let data: PageData;
const path = `/console/project-${$page.params.project}/authentication/teams/team-${$page.params.team}/activity`;
const path = `/console/project-${$page.params.project}/auth/user-${$page.params.user}/activity`;
</script>
<Activity {path} logs={data.logs} offset={data.offset} />
@@ -14,11 +14,11 @@
title: $project?.name
},
{
href: `/console/project-${$project?.$id}/authentication`,
title: 'Authentication'
href: `/console/project-${$project?.$id}/auth`,
title: 'Auth'
},
{
href: `/console/project-${$project?.$id}/authentication/user-${$user?.$id}`,
href: `/console/project-${$project?.$id}/auth/user-${$user?.$id}`,
title: $user?.name
}
];
@@ -19,7 +19,7 @@
message: `All memberships have been deleted`
});
await goto(
`${base}/console/project-${$page.params.project}/authentication/${$user.$id}/membeships`
`${base}/console/project-${$page.params.project}/auth/${$user.$id}/membeships`
);
} catch (error) {
addNotification({
@@ -26,7 +26,7 @@
message: `Membership has been deleted`
});
await goto(
`${base}/console/project-${$page.params.project}/authentication/user-${selectedMembership.userId}/memberships`
`${base}/console/project-${$page.params.project}/auth/user-${selectedMembership.userId}/memberships`
);
} catch (error) {
addNotification({
@@ -19,7 +19,7 @@
type: 'success',
message: `${$user.name ? $user.name : 'User'} has been deleted`
});
await goto(`${base}/console/project-${$page.params.project}/authentication`);
await goto(`${base}/console/project-${$page.params.project}/auth`);
} catch (error) {
addNotification({
type: 'error',
@@ -8,7 +8,7 @@
const projectId = $page.params.project;
const userId = $page.params.user;
const path = `/console/project-${projectId}/authentication/user-${userId}`;
const path = `/console/project-${projectId}/auth/user-${userId}`;
const tabs = [
{
href: path,
@@ -32,7 +32,7 @@
<Cover>
<svelte:fragment slot="header">
<CoverTitle href={`/console/project-${projectId}/authentication`}>
<CoverTitle href={`/console/project-${projectId}/auth`}>
{$user.name ? $user.name : '-'}
</CoverTitle>
<Copy value={$user.$id}>
@@ -43,7 +43,7 @@
<TableBody>
{#each data.memberships.memberships as membership}
<TableRowLink
href={`${base}/console/project-${project}/authentication/teams/team-${membership.teamId}`}>
href={`${base}/console/project-${project}/auth/teams/team-${membership.teamId}`}>
<TableCellText title="Name">
<div class="u-flex u-gap-12">
<AvatarInitials size={32} name={membership.teamName} />
@@ -72,7 +72,7 @@
<Button
external
secondary
href="https://appwrite.io/docs/server/authentication?sdk=nodejs-default#usersGetMemberships"
href="https://appwrite.io/docs/server/auth?sdk=nodejs-default#usersGetMemberships"
>Documentation</Button>
</Empty>
{/if}
@@ -88,7 +88,7 @@
<Button
external
secondary
href="https://appwrite.io/docs/server/authentication?sdk=nodejs-default#usersGetSessions">
href="https://appwrite.io/docs/server/auth?sdk=nodejs-default#usersGetSessions">
Documentation
</Button>
</Empty>
@@ -1,5 +0,0 @@
<svelte:head>
<title>Authentication - Appwrite</title>
</svelte:head>
<slot />
@@ -144,7 +144,7 @@
disabled={$work[attribute.key][$work[attribute.key].length - 1] === null}
on:click={() => addArrayItem(attribute.key)}>
<span class="icon-plus" aria-hidden="true" />
<span class="text"> Add item</span>
<span class="text">Add item</span>
</Button>
{:else}
<ul class="form-list">
@@ -158,7 +158,6 @@
<TableCellHead width={100}>Status</TableCellHead>
<TableCellHead width={90}>Build time</TableCellHead>
<TableCellHead width={70}>Size</TableCellHead>
<TableCellHead width={60} />
<TableCellHead width={25} />
</TableHeader>
<TableBody>
@@ -187,16 +186,7 @@
<TableCellText title="Size">
{calculateSize(deployment.size)}
</TableCellText>
<TableCell>
<Button
secondary
on:click={() => {
selectedDeployment = deployment;
showActivate = true;
}}>
<span class="text">Activate</span>
</Button>
</TableCell>
<TableCell showOverflow>
<DropList
bind:show={showDropdown[index]}
@@ -211,6 +201,15 @@
<span class="icon-dots-horizontal" aria-hidden="true" />
</button>
<svelte:fragment slot="list">
<DropListItem
icon="lightning-bolt"
on:click={() => {
selectedDeployment = deployment;
showActivate = true;
showDropdown = [];
}}>
Activate
</DropListItem>
<DropListItem
icon="terminal"
on:click={() => {
@@ -218,14 +217,18 @@
$log.func = $func;
$log.data = deployment;
showDropdown = [];
}}>Output</DropListItem>
}}>
Output
</DropListItem>
<DropListItem
icon="trash"
on:click={() => {
selectedDeployment = deployment;
showDropdown = [];
showDelete = true;
}}>Delete</DropListItem>
}}>
Delete
</DropListItem>
</svelte:fragment>
</DropList>
</TableCell>
@@ -122,13 +122,13 @@
</div>
</a>
<a
href={`${base}/console/project-${projectId}/authentication`}
href={`${base}/console/project-${projectId}/auth`}
class="card is-2-columns-large-screen">
<div class="grid-item-1">
<div class="grid-item-1-start-start">
<div class="eyebrow-heading-3">
<span class="icon-user-group" aria-hidden="true" />
<span class="text">Authentication</span>
<span class="text">Auth</span>
</div>
</div>
@@ -8,7 +8,7 @@
export let scopes: string[];
enum Category {
Authentication = 'Authentication',
Auth = 'Auth',
Database = 'Database',
Functions = 'Functions',
Storage = 'Storage',
@@ -82,7 +82,7 @@
<Button text on:click={selectAll}>Select all</Button>
</div>
<Collapsible>
{#each [Category.Authentication, Category.Database, Category.Functions, Category.Storage, Category.Other] as category}
{#each [Category.Auth, Category.Database, Category.Functions, Category.Storage, Category.Other] as category}
{@const checked = categoryState(category, scopes)}
<CollapsibleItem withIndentation>
<svelte:fragment slot="beforetitle">