-
+
{team.name}
{team.$id}
diff --git a/src/lib/components/permissions/user.svelte b/src/lib/components/permissions/user.svelte
index c6ba21c35..9415c321b 100644
--- a/src/lib/components/permissions/user.svelte
+++ b/src/lib/components/permissions/user.svelte
@@ -90,7 +90,7 @@
{#if user.email || user.phone}
{#if user.name}
-
+
{user.name}
diff --git a/src/lib/components/viewSelector.svelte b/src/lib/components/viewSelector.svelte
index f22a6a00a..3b819e781 100644
--- a/src/lib/components/viewSelector.svelte
+++ b/src/lib/components/viewSelector.svelte
@@ -6,8 +6,8 @@
import { onMount } from 'svelte';
import { View } from '$lib/helpers/load';
import type { Column } from '$lib/helpers/types';
- import { ActionMenu, Layout, Popover, ToggleButton } from '@appwrite.io/pink-svelte';
- import { IconViewGrid, IconViewList } from '@appwrite.io/pink-icons-svelte';
+ import { ActionMenu, Icon, Layout, Popover, ToggleButton } from '@appwrite.io/pink-svelte';
+ import { IconViewBoards, IconViewGrid, IconViewList } from '@appwrite.io/pink-icons-svelte';
import { goto } from '$app/navigation';
export let columns: Writable
;
@@ -82,15 +82,16 @@
{#if !hideColumns && view === View.Table}
{#if $columns?.length}
-
-
+
+
{#if !hideText}
Columns
{/if}
- {selectedColumnsNumber}
diff --git a/src/lib/elements/forms/button.svelte b/src/lib/elements/forms/button.svelte
index 6733a0f1c..a745d9204 100644
--- a/src/lib/elements/forms/button.svelte
+++ b/src/lib/elements/forms/button.svelte
@@ -17,6 +17,7 @@
export let external = false;
export let href: string = null;
export let download: string = undefined;
+ export let badge: string = null;
export let fullWidth = false;
export let fullWidthMobile = false;
export let ariaLabel: string = null;
@@ -78,6 +79,7 @@
on:click={track}
{size}
{icon}
+ {badge}
disabled={internalDisabled}
variant={secondary ? 'secondary' : text ? 'text' : 'primary'}
class={resolvedClasses}
diff --git a/src/lib/elements/table/cellHeadCheck.svelte b/src/lib/elements/table/cellHeadCheck.svelte
index d8da40a74..b45ebe121 100644
--- a/src/lib/elements/table/cellHeadCheck.svelte
+++ b/src/lib/elements/table/cellHeadCheck.svelte
@@ -26,7 +26,6 @@
diff --git a/src/lib/layout/activity.svelte b/src/lib/layout/activity.svelte
index 49c8a4c45..e989c4eb0 100644
--- a/src/lib/layout/activity.svelte
+++ b/src/lib/layout/activity.svelte
@@ -27,10 +27,10 @@
{#if log.userEmail}
{#if log.userName}
-
+
{log.userName}
{:else}
-
+
{log.userEmail}
{/if}
{:else}
diff --git a/src/lib/layout/header.svelte b/src/lib/layout/header.svelte
index 8be0ae801..deeb75a5d 100644
--- a/src/lib/layout/header.svelte
+++ b/src/lib/layout/header.svelte
@@ -158,7 +158,7 @@
{#if $user}
(showDropdown = !showDropdown)}>
-
+
{$user.name || $user.email}
{#if $organization}
diff --git a/src/lib/layout/unauthenticated.svelte b/src/lib/layout/unauthenticated.svelte
index 09c4eaf86..f645eb554 100644
--- a/src/lib/layout/unauthenticated.svelte
+++ b/src/lib/layout/unauthenticated.svelte
@@ -152,10 +152,10 @@
{#if currentReview?.image}
+ alt={currentReview.name}
+ size="m" />
{:else}
-
+
{/if}
{currentReview.name}
diff --git a/src/lib/pages/domains/index.svelte b/src/lib/pages/domains/index.svelte
index 6c6b0f7c1..e82763ffb 100644
--- a/src/lib/pages/domains/index.svelte
+++ b/src/lib/pages/domains/index.svelte
@@ -12,7 +12,8 @@
import Retry from './wizard/retry.svelte';
import { Pill } from '$lib/elements';
import { canWriteRules } from '$lib/stores/roles';
- import { Layout, Table, Link } from '@appwrite.io/pink-svelte';
+ import { Layout, Table, Link, Icon } from '@appwrite.io/pink-svelte';
+ import { IconDotsHorizontal, IconPlus } from '@appwrite.io/pink-icons-svelte';
export let rules: Models.ProxyRuleList;
export let type: ResourceType;
@@ -46,7 +47,8 @@
{#if $canWriteRules}
- Create domain
+
+ Create domain
{/if}
@@ -137,7 +139,7 @@
ariaLabel="more options"
on:click={() =>
(showDomainsDropdown[index] = !showDomainsDropdown[index])}>
-
+
{#if domain.status !== 'verified'}
diff --git a/src/lib/wizards/functions/components/repositories.svelte b/src/lib/wizards/functions/components/repositories.svelte
index 22e649f42..35d7b9b02 100644
--- a/src/lib/wizards/functions/components/repositories.svelte
+++ b/src/lib/wizards/functions/components/repositories.svelte
@@ -9,7 +9,13 @@
import { repositories } from '$routes/(console)/project-[project]/functions/function-[function]/store';
import { installation, installations, repository } from '../store';
import { createEventDispatcher } from 'svelte';
- import { Layout } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout } from '@appwrite.io/pink-svelte';
+ import {
+ IconAzure,
+ IconBitBucket,
+ IconGithub,
+ IconGitlab
+ } from '@appwrite.io/pink-icons-svelte';
const dispatch = createEventDispatcher();
@@ -204,20 +210,20 @@
{:else}
-
- GitHub
+
+ GitHub
-
- GitLab (coming soon)
+
+ GitLab (coming soon)
-
- BitBucket (coming soon)
+
+ BitBucket (coming soon)
-
- Azure (coming soon)
+
+ Azure (coming soon)
{/if}
diff --git a/src/lib/wizards/functions/steps/createRepository.svelte b/src/lib/wizards/functions/steps/createRepository.svelte
index e5610476d..aecb74761 100644
--- a/src/lib/wizards/functions/steps/createRepository.svelte
+++ b/src/lib/wizards/functions/steps/createRepository.svelte
@@ -12,6 +12,13 @@
import Repositories from '../components/repositories.svelte';
import { installation, repository, template, templateConfig } from '../store';
import { Box } from '$lib/components';
+ import {
+ IconAzure,
+ IconBitBucket,
+ IconGithub,
+ IconGitlab
+ } from '@appwrite.io/pink-icons-svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
let selectedInstallationId: string;
let hasInstallations: boolean;
@@ -123,20 +130,20 @@
{:else}
-
- GitHub
+
+ GitHub
-
- GitLab (coming soon)
+
+ GitLab (coming soon)
-
- BitBucket (coming soon)
+
+ BitBucket (coming soon)
-
- Azure (coming soon)
+
+ Azure (coming soon)
{/if}
diff --git a/src/routes/(authenticated)/mfa/+page.svelte b/src/routes/(authenticated)/mfa/+page.svelte
index 7505d260f..9edb09d26 100644
--- a/src/routes/(authenticated)/mfa/+page.svelte
+++ b/src/routes/(authenticated)/mfa/+page.svelte
@@ -8,6 +8,8 @@
import MfaChallengeFormList, { verify } from '$lib/components/mfaChallengeFormList.svelte';
import { page } from '$app/stores';
import { addNotification } from '$lib/stores/notifications.js';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconChevronLeft } from '@appwrite.io/pink-icons-svelte';
export let data;
@@ -55,9 +57,10 @@
diff --git a/src/routes/(console)/account/deleteAccount.svelte b/src/routes/(console)/account/deleteAccount.svelte
index 168d289e4..e7026e86c 100644
--- a/src/routes/(console)/account/deleteAccount.svelte
+++ b/src/routes/(console)/account/deleteAccount.svelte
@@ -18,7 +18,7 @@
-
+
{$user.name}
diff --git a/src/routes/(console)/account/identities.svelte b/src/routes/(console)/account/identities.svelte
index d482962ea..092c9e54b 100644
--- a/src/routes/(console)/account/identities.svelte
+++ b/src/routes/(console)/account/identities.svelte
@@ -10,7 +10,8 @@
import { Dependencies } from '$lib/constants';
import { oAuthProviders } from '$lib/stores/oauth-providers';
import EmptySearch from '$lib/components/emptySearch.svelte';
- import { Layout, Table } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout, Table } from '@appwrite.io/pink-svelte';
+ import { IconTrash } from '@appwrite.io/pink-icons-svelte';
async function deleteIdentity(id: string) {
try {
@@ -80,8 +81,9 @@
deleteIdentity(identity.$id)}
- >
+ on:click={() => deleteIdentity(identity.$id)}>
+
+
{/each}
diff --git a/src/routes/(console)/account/mfaRecoveryCodes.svelte b/src/routes/(console)/account/mfaRecoveryCodes.svelte
index 63ec5d0fa..6c42d3ed8 100644
--- a/src/routes/(console)/account/mfaRecoveryCodes.svelte
+++ b/src/routes/(console)/account/mfaRecoveryCodes.svelte
@@ -3,6 +3,8 @@
import { Button } from '$lib/elements/forms';
import { Table, TableBody, TableCell, TableRow } from '$lib/elements/table';
import { type Models } from '@appwrite.io/console';
+ import { IconDownload } from '@appwrite.io/pink-icons-svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
export let showRecoveryCodes = false;
export let codes: Models.MfaRecoveryCodes = null;
@@ -30,8 +32,8 @@
download="appwrite-backups.txt"
href={`data:application/octet-stream;charset=utf-8,${formattedBackupCodes}`}
text>
-
- Download .txt
+
+ Download .txt
diff --git a/src/routes/(console)/account/organizations/+page.svelte b/src/routes/(console)/account/organizations/+page.svelte
index be7c8313d..34bb93ab0 100644
--- a/src/routes/(console)/account/organizations/+page.svelte
+++ b/src/routes/(console)/account/organizations/+page.svelte
@@ -21,7 +21,8 @@
import { toLocaleDate } from '$lib/helpers/date';
import { BillingPlan } from '$lib/constants';
import { goto } from '$app/navigation';
- import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { Icon, Tooltip } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data: PageData;
let addOrganization = false;
@@ -49,8 +50,8 @@
Organizations
-
- Create organization
+
+ Create organization
diff --git a/src/routes/(console)/account/payments/billingAddress.svelte b/src/routes/(console)/account/payments/billingAddress.svelte
index fb58919bc..1b6992331 100644
--- a/src/routes/(console)/account/payments/billingAddress.svelte
+++ b/src/routes/(console)/account/payments/billingAddress.svelte
@@ -20,6 +20,8 @@
import { organizationList, type Organization } from '$lib/stores/organization';
import { base } from '$app/paths';
import { Pill } from '$lib/elements';
+ import { IconDotsHorizontal, IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
let show = false;
let showEdit = false;
@@ -112,7 +114,7 @@
on:click={() => {
showDropdown[i] = !showDropdown[i];
}}>
-
+
- (show = true)}>
-
- Add a billing address
+ (show = true)}>
+
+ Add a billing address
{:else}
(show = true)}>
diff --git a/src/routes/(console)/account/payments/paymentMethods.svelte b/src/routes/(console)/account/payments/paymentMethods.svelte
index bf92576cb..e94407fb0 100644
--- a/src/routes/(console)/account/payments/paymentMethods.svelte
+++ b/src/routes/(console)/account/payments/paymentMethods.svelte
@@ -25,6 +25,8 @@
import DeletePaymentModal from './deletePaymentModal.svelte';
import { hasStripePublicKey, isCloud } from '$lib/system';
import PaymentModal from '$lib/components/billing/paymentModal.svelte';
+ import { IconDotsHorizontal, IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
export let showPayment = false;
let showDropdown = [];
@@ -106,7 +108,7 @@
on:click={() => {
showDropdown[i] = !showDropdown[i];
}}>
-
+
- (showPayment = true)}>
-
- Add a payment method
+ (showPayment = true)}>
+
+ Add a payment method
{:else}
(showPayment = true)}>
diff --git a/src/routes/(console)/create-organization/+page.svelte b/src/routes/(console)/create-organization/+page.svelte
index 62ac4e1a9..be91c6978 100644
--- a/src/routes/(console)/create-organization/+page.svelte
+++ b/src/routes/(console)/create-organization/+page.svelte
@@ -24,6 +24,8 @@
import { organizationList, type Organization } from '$lib/stores/organization';
import { sdk } from '$lib/stores/sdk';
import { ID } from '@appwrite.io/console';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
import { onMount } from 'svelte';
import { writable } from 'svelte/store';
@@ -201,12 +203,9 @@
>
{#if !couponData?.code}
- (showCreditModal = true)}>
- Add credits
+ (showCreditModal = true)}>
+
+ Add credits
{/if}
{/if}
diff --git a/src/routes/(console)/organization-[organization]/+page.svelte b/src/routes/(console)/organization-[organization]/+page.svelte
index 00a27142b..ac21f8ae8 100644
--- a/src/routes/(console)/organization-[organization]/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/+page.svelte
@@ -33,6 +33,8 @@
import { organization } from '$lib/stores/organization';
import { canWriteProjects } from '$lib/stores/roles';
import { checkPricingRefAndRedirect } from '$lib/helpers/pricingRedirect';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data;
@@ -150,8 +152,8 @@
on:click={handleCreateProject}
event="create_project"
disabled={$readOnly && !GRACE_PERIOD_OVERRIDE}>
-
- Create project
+
+ Create project
{/if}
diff --git a/src/routes/(console)/organization-[organization]/billing/availableCredit.svelte b/src/routes/(console)/organization-[organization]/billing/availableCredit.svelte
index bdcbc0801..441ca0473 100644
--- a/src/routes/(console)/organization-[organization]/billing/availableCredit.svelte
+++ b/src/routes/(console)/organization-[organization]/billing/availableCredit.svelte
@@ -23,7 +23,8 @@
import { trackEvent } from '$lib/actions/analytics';
import { upgradeURL } from '$lib/stores/billing';
import { Pill } from '$lib/elements';
- import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { Icon, Tooltip } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
let offset = 0;
let creditList: CreditList = {
@@ -115,8 +116,8 @@
{#if creditList?.total}
-
- Add credits
+
+ Add credits
{/if}
diff --git a/src/routes/(console)/organization-[organization]/billing/billingAddress.svelte b/src/routes/(console)/organization-[organization]/billing/billingAddress.svelte
index 99c3c635d..87f491317 100644
--- a/src/routes/(console)/organization-[organization]/billing/billingAddress.svelte
+++ b/src/routes/(console)/organization-[organization]/billing/billingAddress.svelte
@@ -15,6 +15,8 @@
import AddressModal from '$routes/(console)/account/payments/addressModal.svelte';
import EditAddressModal from '$routes/(console)/account/payments/editAddressModal.svelte';
import ReplaceAddress from './replaceAddress.svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconDotsHorizontal, IconPlus } from '@appwrite.io/pink-icons-svelte';
export let billingAddress: Address = null;
@@ -81,7 +83,7 @@
on:click={() => {
showBillingAddressDropdown = !showBillingAddressDropdown;
}}>
-
+
{#if billingAddress.userId === $user.$id}
@@ -129,7 +131,7 @@
showCreate = true;
}
}}>
-
+
{#if $addressList?.total}
diff --git a/src/routes/(console)/organization-[organization]/billing/budgetAlert.svelte b/src/routes/(console)/organization-[organization]/billing/budgetAlert.svelte
index 9515c3152..fe9cbd27a 100644
--- a/src/routes/(console)/organization-[organization]/billing/budgetAlert.svelte
+++ b/src/routes/(console)/organization-[organization]/billing/budgetAlert.svelte
@@ -19,6 +19,8 @@
import { currentPlan, organization } from '$lib/stores/organization';
import { sdk } from '$lib/stores/sdk';
import { onMount } from 'svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
let search: string;
let selectedAlert: number;
@@ -145,7 +147,7 @@
ariaLabel="remove alert"
on:click={() =>
(alerts = alerts.filter((a) => a !== alert))}>
-
+
diff --git a/src/routes/(console)/organization-[organization]/billing/paymentMethods.svelte b/src/routes/(console)/organization-[organization]/billing/paymentMethods.svelte
index c2654f865..b511f6e31 100644
--- a/src/routes/(console)/organization-[organization]/billing/paymentMethods.svelte
+++ b/src/routes/(console)/organization-[organization]/billing/paymentMethods.svelte
@@ -22,7 +22,8 @@
import EditPaymentModal from '$routes/(console)/account/payments/editPaymentModal.svelte';
import PaymentModal from '$lib/components/billing/paymentModal.svelte';
import { user } from '$lib/stores/user';
- import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { Icon, Tooltip } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
let showDropdown = false;
let showDropdownBackup = false;
@@ -162,7 +163,7 @@
showPayment = true;
}
}}>
-
+
{#if $paymentMethods.total}
@@ -262,8 +263,8 @@
showPayment = true;
}
}}>
-
- Add a backup payment method
+
+ Add a backup payment method
(showCreditModal = true)}>
- Add credits
+
+ Add credits
{/if}
diff --git a/src/routes/(console)/organization-[organization]/header.svelte b/src/routes/(console)/organization-[organization]/header.svelte
index d2740ce30..252dfbba7 100644
--- a/src/routes/(console)/organization-[organization]/header.svelte
+++ b/src/routes/(console)/organization-[organization]/header.svelte
@@ -31,7 +31,8 @@
isOwner
} from '$lib/stores/roles';
import { GRACE_PERIOD_OVERRIDE, isCloud } from '$lib/system';
- import { Tooltip, Typography } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import { Icon, Tooltip, Typography } from '@appwrite.io/pink-svelte';
let areMembersLimited: boolean;
$: organization.subscribe(() => {
@@ -131,8 +132,8 @@
size="s"
on:click={() => newMemberModal.set(true)}
disabled={areMembersLimited}>
-
- Invite
+
+ Invite
{/if}
diff --git a/src/routes/(console)/organization-[organization]/members/+page.svelte b/src/routes/(console)/organization-[organization]/members/+page.svelte
index f9ce358d9..c98000ea3 100644
--- a/src/routes/(console)/organization-[organization]/members/+page.svelte
+++ b/src/routes/(console)/organization-[organization]/members/+page.svelte
@@ -2,8 +2,8 @@
import { page } from '$app/stores';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
import { AvatarInitials, DropList, DropListItem, PaginationWithLimit } from '$lib/components';
- import { Pill } from '$lib/elements';
- import { Container, ContainerHeader } from '$lib/layout';
+ import { Button as ConsoleButton } from '$lib/elements/forms';
+ import { Container } from '$lib/layout';
import { addNotification } from '$lib/stores/notifications';
import { newMemberModal, organization } from '$lib/stores/organization';
import { sdk } from '$lib/stores/sdk';
@@ -15,8 +15,8 @@
import Edit from './edit.svelte';
import { getRoleLabel } from '$lib/stores/billing';
import { Drop } from '$lib/components';
- import { Layout, Table } from '@appwrite.io/pink-svelte';
-
+ import { IconDotsHorizontal, IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import { Layout, Table, Badge, Button, Icon } from '@appwrite.io/pink-svelte';
import Upgrade from '$lib/components/roles/upgrade.svelte';
export let data: PageData;
@@ -54,133 +54,127 @@
- {#if data.organizationMembers.total}
- newMemberModal.set(true)}
- showAlert={false} />
-
-
- Name
- Email
- Roles
-
- (showPopover = !showPopover)}
- aria-label="input tooltip">
-
-
-
-
-
-
-
-
-
- 2FA
- {#if $isOwner}
-
- {/if}
-
- {#each data.organizationMembers.memberships as member, index}
-
-
-
-
-
- {member.userName ? member.userName : 'n/a'}
-
- {#if member.invited && !member.joined}
- Pending
- {/if}
-
-
-
- {member.userEmail}
-
-
- {member.roles.map((role) => getRoleLabel(role)).join(', ')}
-
-
-
- {#if member.mfa}
-
- enabled
- {:else}
- disabled
- {/if}
-
-
- {#if $isOwner}
-
-
- {
- showDropdown[index] = !showDropdown[index];
- }}>
-
-
-
- {
- selectedMember = member;
- showEdit = true;
- showDropdown[index] = false;
- }}>
- Edit role
-
- {#if member.invited && !member.joined}
- {
- resend(member);
- showDropdown[index] = false;
- }}>
- Resend
-
- {/if}
- {
- selectedMember = member;
- showDelete = true;
- showDropdown[index] = false;
- }}>
- Remove
-
-
-
-
- {/if}
-
- {/each}
-
+
+ newMemberModal.set(true)} event="create_user" size="s">
+
+ Invite
+
+
-
- {/if}
+
+
+ Name
+ Email
+ Roles
+
+ (showPopover = !showPopover)}
+ aria-label="input tooltip">
+
+
+
+
+
+
+
+
+
+ 2FA
+ {#if $isOwner}
+
+ {/if}
+
+ {#each data.organizationMembers.memberships as member, index}
+
+
+
+
+
+ {member.userName ? member.userName : 'n/a'}
+
+ {#if member.invited && !member.joined}
+
+ {/if}
+
+
+
+ {member.userEmail}
+
+
+ {member.roles.map((role) => getRoleLabel(role)).join(', ')}
+
+
+
+
+ {#if $isOwner}
+
+
+ {
+ e.preventDefault();
+ showDropdown[index] = !showDropdown[index];
+ }}>
+
+
+
+ {
+ selectedMember = member;
+ showEdit = true;
+ showDropdown[index] = false;
+ }}>
+ Edit role
+
+ {#if member.invited && !member.joined}
+ {
+ resend(member);
+ showDropdown[index] = false;
+ }}>
+ Resend
+
+ {/if}
+ {
+ selectedMember = member;
+ showDelete = true;
+ showDropdown[index] = false;
+ }}>
+ Remove
+
+
+
+
+ {/if}
+
+ {/each}
+
+
+
diff --git a/src/routes/(console)/organization-[organization]/members/+page.ts b/src/routes/(console)/organization-[organization]/members/+page.ts
index 69d4cb1f5..6f03ce677 100644
--- a/src/routes/(console)/organization-[organization]/members/+page.ts
+++ b/src/routes/(console)/organization-[organization]/members/+page.ts
@@ -1,5 +1,5 @@
import { Dependencies, PAGE_LIMIT } from '$lib/constants';
-import { getLimit, getPage, pageToOffset } from '$lib/helpers/load';
+import { getLimit, getPage, getSearch, pageToOffset } from '$lib/helpers/load';
import { sdk } from '$lib/stores/sdk';
import { Query } from '@appwrite.io/console';
import type { PageLoad } from './$types';
@@ -8,15 +8,18 @@ export const load: PageLoad = async ({ url, params, route, depends }) => {
depends(Dependencies.ORGANIZATION);
depends(Dependencies.MEMBERS);
const page = getPage(url);
+ const search = getSearch(url);
const limit = getLimit(url, route, PAGE_LIMIT);
const offset = pageToOffset(page, limit);
return {
offset,
limit,
- organizationMembers: await sdk.forConsole.teams.listMemberships(params.organization, [
- Query.limit(limit),
- Query.offset(offset)
- ])
+ search,
+ organizationMembers: await sdk.forConsole.teams.listMemberships(
+ params.organization,
+ [Query.limit(limit), Query.offset(offset)],
+ search
+ )
};
};
diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/totalMembers.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/totalMembers.svelte
index a0ecdb551..00bed58e5 100644
--- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/totalMembers.svelte
+++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/totalMembers.svelte
@@ -17,7 +17,8 @@
import { plansInfo, tierToPlan } from '$lib/stores/billing';
import { newMemberModal, organization } from '$lib/stores/organization';
import type { Models } from '@appwrite.io/console';
- import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
+ import { Icon, Tooltip } from '@appwrite.io/pink-svelte';
export let members: Models.MembershipList;
@@ -38,7 +39,8 @@
Members
newMemberModal.set(true)}>
- Invite
+
+ Invite
@@ -64,7 +66,7 @@
-
+
{member.userName ? member.userName : member.userEmail}
diff --git a/src/routes/(console)/project-[project]/auth/+page.svelte b/src/routes/(console)/project-[project]/auth/+page.svelte
index fa43817b7..6a46807ff 100644
--- a/src/routes/(console)/project-[project]/auth/+page.svelte
+++ b/src/routes/(console)/project-[project]/auth/+page.svelte
@@ -25,10 +25,23 @@
import { Tag } from '@appwrite.io/pink-svelte';
import { IconDuplicate, IconPlus } from '@appwrite.io/pink-icons-svelte';
import { canWriteUsers } from '$lib/stores/roles';
+ import type { Column } from '$lib/helpers/types';
+ import ViewSelector from '$lib/components/viewSelector.svelte';
+ import { View } from '$lib/helpers/load';
export let data: PageData;
const projectId = $page.params.project;
+ const columns = writable
([
+ { id: '$id', title: 'User ID', type: 'string', show: true, width: 140 },
+ { id: 'name', title: 'Name', type: 'string', show: true, width: 260 },
+ { id: 'identifiers', title: 'Identifiers', type: 'string', show: true, width: 140 },
+ { id: 'status', title: 'Status', type: 'string', show: true, width: 140 },
+ { id: 'labels', title: 'Labels', type: 'string', show: false, width: 140 },
+ { id: 'joined', title: 'Joined', type: 'string', show: true, width: 140 },
+ { id: 'lastActivity', title: 'Last activity', type: 'string', show: false, width: 140 }
+ ]);
+
async function userCreated(event: CustomEvent>>) {
await goto(`${base}/project-${projectId}/auth/user-${event.detail.$id}`);
}
@@ -40,6 +53,7 @@
+
($showCreateUser = true)} event="create_user" size="s">
Create user
@@ -50,21 +64,104 @@
{#if data.users.total}
- Name
- Identifiers
- Status
- ID
- Labels
- Joined
- Last Activity
+ {#each $columns as column (column.id)}
+ {#if column.show}
+ {column.title}
+ {/if}
+ {/each}
{#each data.users.users as user}
-
-
+ {#each $columns as column (column.id)}
+ {#if column.show}
+ {#if column.id === '$id'}
+
+
+
+
+ {user.$id}
+
+
+
+ {:else if column.id === 'name'}
+
+
+ {#if user.email || user.phone}
+ {#if user.name}
+
+
+ {user.name}
+
+ {:else}
+
+
+
+ {/if}
+ {:else}
+
+
+
+ {user.name}
+ {/if}
+
+
+ {:else if column.id === 'identifiers'}
+
+ {user.email && user.phone
+ ? [user.email, user.phone].join(',')
+ : user.email || user.phone}
+
+ {:else if column.id === 'status'}
+
+ {#if user.status}
+ {@const success =
+ user.emailVerification || user.phoneVerification}
+
+ {:else}
+
+ {/if}
+
+ {:else if column.id === 'labels'}
+
+ {user.labels.join(', ')}
+
+ {:else if column.id === 'joined'}
+
+ {toLocaleDateTime(user.registration)}
+
+ {:else if column.id === 'lastActivity'}
+
+ {user.accessedAt ? toLocaleDate(user.accessedAt) : 'never'}
+
+ {:else}
+
+ {user[column.id]}
+
+ {/if}
+ {/if}
+ {/each}
+
{/each}
diff --git a/src/routes/(console)/project-[project]/auth/security/updateMockNumbers.svelte b/src/routes/(console)/project-[project]/auth/security/updateMockNumbers.svelte
index 783f9a269..fc19d37d8 100644
--- a/src/routes/(console)/project-[project]/auth/security/updateMockNumbers.svelte
+++ b/src/routes/(console)/project-[project]/auth/security/updateMockNumbers.svelte
@@ -17,7 +17,8 @@
import { app } from '$lib/stores/app';
import Empty from '$lib/components/empty.svelte';
import type { Models } from '@appwrite.io/console';
- import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { Icon, Tooltip } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
let numbers: Models.MockNumber[] = $project?.authMockNumbers ?? [];
let initialNumbers = [];
@@ -217,8 +218,8 @@
otp: generateOTP()
})}
disabled={numbers.length >= 10}>
-
- Add number
+
+ Add number
{/if}
{:else}
diff --git a/src/routes/(console)/project-[project]/auth/teams/+page.svelte b/src/routes/(console)/project-[project]/auth/teams/+page.svelte
index 2681b5c39..22d69bd1b 100644
--- a/src/routes/(console)/project-[project]/auth/teams/+page.svelte
+++ b/src/routes/(console)/project-[project]/auth/teams/+page.svelte
@@ -21,7 +21,8 @@
import type { PageData } from './$types';
import { writable } from 'svelte/store';
import { canWriteTeams } from '$lib/stores/roles';
- import { Layout, Table } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout, Table } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data: PageData;
@@ -38,8 +39,8 @@
($showCreateTeam = true)} event="create_user" size="s">
-
- Create team
+
+ Create team
@@ -55,7 +56,7 @@
-
+
{team.name}
diff --git a/src/routes/(console)/project-[project]/auth/teams/team-[team]/+page.svelte b/src/routes/(console)/project-[project]/auth/teams/team-[team]/+page.svelte
index 68c4c6298..ae5dff7a4 100644
--- a/src/routes/(console)/project-[project]/auth/teams/team-[team]/+page.svelte
+++ b/src/routes/(console)/project-[project]/auth/teams/team-[team]/+page.svelte
@@ -11,7 +11,7 @@
-
+
{$team.name}
diff --git a/src/routes/(console)/project-[project]/auth/teams/team-[team]/dangerZone.svelte b/src/routes/(console)/project-[project]/auth/teams/team-[team]/dangerZone.svelte
index c89f13876..8806d08ea 100644
--- a/src/routes/(console)/project-[project]/auth/teams/team-[team]/dangerZone.svelte
+++ b/src/routes/(console)/project-[project]/auth/teams/team-[team]/dangerZone.svelte
@@ -19,7 +19,7 @@
-
+
{$team.name}
diff --git a/src/routes/(console)/project-[project]/auth/teams/team-[team]/members/+page.svelte b/src/routes/(console)/project-[project]/auth/teams/team-[team]/members/+page.svelte
index 3cb4160b5..25c06b50a 100644
--- a/src/routes/(console)/project-[project]/auth/teams/team-[team]/members/+page.svelte
+++ b/src/routes/(console)/project-[project]/auth/teams/team-[team]/members/+page.svelte
@@ -1,12 +1,6 @@
-
-
-
-
-
- (showCreate = true)} event="create_membership" size="s">
-
- Create membership
-
-
+
+ (showCreate = true)} event="create_membership" size="s">
+
+ Create membership
+
{#if data.memberships.total}
@@ -58,7 +48,7 @@
-
+
{membership.teamName ? membership.teamName : 'n/a'}
diff --git a/src/routes/(console)/project-[project]/auth/teams/team-[team]/updatePrefs.svelte b/src/routes/(console)/project-[project]/auth/teams/team-[team]/updatePrefs.svelte
index 523a67990..66cfa5233 100644
--- a/src/routes/(console)/project-[project]/auth/teams/team-[team]/updatePrefs.svelte
+++ b/src/routes/(console)/project-[project]/auth/teams/team-[team]/updatePrefs.svelte
@@ -8,7 +8,8 @@
import { sdk } from '$lib/stores/sdk';
import { onMount } from 'svelte';
import { team } from './store';
- import { Layout } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
$: if (prefs) {
if (JSON.stringify(prefs) !== JSON.stringify(Object.entries($team.prefs))) {
@@ -106,8 +107,8 @@
prefs = prefs;
}
}}>
-
- Add Preference
+
+ Add Preference
diff --git a/src/routes/(console)/project-[project]/auth/user-[user]/dangerZone.svelte b/src/routes/(console)/project-[project]/auth/user-[user]/dangerZone.svelte
index 4be1852a2..a6583ed6f 100644
--- a/src/routes/(console)/project-[project]/auth/user-[user]/dangerZone.svelte
+++ b/src/routes/(console)/project-[project]/auth/user-[user]/dangerZone.svelte
@@ -35,7 +35,7 @@
{#if $user.email || $user.phone}
{#if $user.name}
-
+
{:else}
diff --git a/src/routes/(console)/project-[project]/auth/user-[user]/memberships/+page.svelte b/src/routes/(console)/project-[project]/auth/user-[user]/memberships/+page.svelte
index a2a5fefde..eb00ac8cc 100644
--- a/src/routes/(console)/project-[project]/auth/user-[user]/memberships/+page.svelte
+++ b/src/routes/(console)/project-[project]/auth/user-[user]/memberships/+page.svelte
@@ -33,7 +33,7 @@
href={`${base}/project-${project}/auth/teams/team-${membership.teamId}`}>
-
+
{membership.teamName ? membership.teamName : 'n/a'}
diff --git a/src/routes/(console)/project-[project]/auth/user-[user]/targets/+page.svelte b/src/routes/(console)/project-[project]/auth/user-[user]/targets/+page.svelte
index e840f0d63..9046fe0fd 100644
--- a/src/routes/(console)/project-[project]/auth/user-[user]/targets/+page.svelte
+++ b/src/routes/(console)/project-[project]/auth/user-[user]/targets/+page.svelte
@@ -16,6 +16,8 @@
import { View } from '$lib/helpers/load';
import Create from './create.svelte';
import { Pill } from '$lib/elements';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data: PageData;
let showAdd = false;
@@ -46,8 +48,8 @@
(showAdd = true)} event="create_user_target">
-
- Add target
+
+ Add target
@@ -62,8 +64,8 @@
showColsTextMobile />
(showAdd = true)} event="create_user_target">
-
- Add target
+
+ Add target
diff --git a/src/routes/(console)/project-[project]/auth/user-[user]/updateMfa.svelte b/src/routes/(console)/project-[project]/auth/user-[user]/updateMfa.svelte
index 94b1c9b04..d3d43ab0f 100644
--- a/src/routes/(console)/project-[project]/auth/user-[user]/updateMfa.svelte
+++ b/src/routes/(console)/project-[project]/auth/user-[user]/updateMfa.svelte
@@ -20,6 +20,8 @@
import { addNotification } from '$lib/stores/notifications';
import { Dependencies } from '$lib/constants';
import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
let showDelete = false;
let userMfa: boolean = null;
@@ -81,9 +83,9 @@
-
-
- Add authentication factor
+
+
+ Add authentication factor
{:else}
diff --git a/src/routes/(console)/project-[project]/auth/user-[user]/updatePrefs.svelte b/src/routes/(console)/project-[project]/auth/user-[user]/updatePrefs.svelte
index 910156b27..536946f69 100644
--- a/src/routes/(console)/project-[project]/auth/user-[user]/updatePrefs.svelte
+++ b/src/routes/(console)/project-[project]/auth/user-[user]/updatePrefs.svelte
@@ -8,7 +8,8 @@
import { sdk } from '$lib/stores/sdk';
import { onMount } from 'svelte';
import { user } from './store';
- import { Layout } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
$: if (prefs) {
if (JSON.stringify(prefs) !== JSON.stringify(Object.entries($user.prefs))) {
@@ -99,8 +100,8 @@
prefs = prefs;
}
}}>
-
- Add preference
+
+ Add preference
diff --git a/src/routes/(console)/project-[project]/auth/user-[user]/updateStatus.svelte b/src/routes/(console)/project-[project]/auth/user-[user]/updateStatus.svelte
index 14f41c581..da2789d19 100644
--- a/src/routes/(console)/project-[project]/auth/user-[user]/updateStatus.svelte
+++ b/src/routes/(console)/project-[project]/auth/user-[user]/updateStatus.svelte
@@ -80,7 +80,7 @@
{#if $user.email || $user.phone}
{#if $user.name}
-
+
{$user.name}
{:else}
diff --git a/src/routes/(console)/project-[project]/databases/+page.svelte b/src/routes/(console)/project-[project]/databases/+page.svelte
index 273073b13..24316943a 100644
--- a/src/routes/(console)/project-[project]/databases/+page.svelte
+++ b/src/routes/(console)/project-[project]/databases/+page.svelte
@@ -14,7 +14,8 @@
import Table from './table.svelte';
import { registerCommands } from '$lib/commandCenter';
import { canWriteDatabases } from '$lib/stores/roles';
- import { Layout } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data: PageData;
@@ -58,8 +59,8 @@
on:click={() => (showCreate = true)}
event="create_database"
disabled={isCreationDisabled}>
-
- Create database
+
+ Create database
{/if}
diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/+page.svelte
index d5f679395..639425731 100644
--- a/src/routes/(console)/project-[project]/databases/database-[database]/+page.svelte
+++ b/src/routes/(console)/project-[project]/databases/database-[database]/+page.svelte
@@ -7,7 +7,8 @@
import Grid from './grid.svelte';
import type { PageData } from './$types';
import { canWriteCollections } from '$lib/stores/roles';
- import { Layout } from '@appwrite.io/pink-svelte';
+ import { Icon, Layout } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data: PageData;
@@ -25,8 +26,8 @@
hideView={!data.collections.total} />
{#if $canWriteCollections}
($showCreate = true)} event="create_collection">
-
- Create collection
+
+ Create collection
{/if}
diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/backups/containerHeader.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/backups/containerHeader.svelte
index d289bab62..0034aa853 100644
--- a/src/routes/(console)/project-[project]/databases/database-[database]/backups/containerHeader.svelte
+++ b/src/routes/(console)/project-[project]/databases/database-[database]/backups/containerHeader.svelte
@@ -4,6 +4,8 @@
import { Pill } from '$lib/elements';
import { wizard } from '$lib/stores/wizard';
import SupportWizard from '$routes/(console)/supportWizard.svelte';
+ import { Icon } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let isFlex = true;
export let title: string;
@@ -58,7 +60,7 @@
disabled={buttonDisabled}
text={buttonType === 'text'}
secondary={buttonType === 'secondary'}>
-
+
{buttonText}
{/if}
diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/backups/policy.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/backups/policy.svelte
index 2364af9d8..083880370 100644
--- a/src/routes/(console)/project-[project]/databases/database-[database]/backups/policy.svelte
+++ b/src/routes/(console)/project-[project]/databases/database-[database]/backups/policy.svelte
@@ -16,7 +16,8 @@
import type { BackupPolicy, BackupPolicyList } from '$lib/sdk/backups';
import { backupFrequencies } from '$lib/helpers/backups';
import { trackEvent } from '$lib/actions/analytics';
- import { Tooltip } from '@appwrite.io/pink-svelte';
+ import { Icon, Tooltip } from '@appwrite.io/pink-svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
let showDropdown = [];
let showDelete = false;
@@ -263,8 +264,8 @@
event="create_policy"
class="small-radius-border-button"
on:click={() => (showCreatePolicy = true)}>
-
- Create policy
+
+ Create policy
diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/+page.svelte
index 5a7a96e4b..cd0b46457 100644
--- a/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/+page.svelte
+++ b/src/routes/(console)/project-[project]/databases/database-[database]/collection-[collection]/+page.svelte
@@ -9,6 +9,7 @@
import { preferences } from '$lib/stores/preferences';
import { canWriteCollections, canWriteDocuments } from '$lib/stores/roles';
import { wizard } from '$lib/stores/wizard';
+ import { Icon } from '@appwrite.io/pink-svelte';
import type { PageData } from './$types';
import CreateAttributeDropdown from './attributes/createAttributeDropdown.svelte';
import type { Option } from './attributes/store';
@@ -16,6 +17,7 @@
import Create from './createDocument.svelte';
import { collection, columns } from './store';
import Table from './table.svelte';
+ import { IconPlus } from '@appwrite.io/pink-icons-svelte';
export let data: PageData;
@@ -55,8 +57,8 @@
disabled={!(hasAttributes && hasValidAttributes)}
on:click={openWizard}
event="create_document">
-
- Create document
+
+ Create document
@@ -78,8 +80,8 @@
disabled={!(hasAttributes && hasValidAttributes)}
on:click={openWizard}
event="create_document">
-
- Create document
+
+ Create document