From 3cb0e4f0e632b935304c31bae58772a0d202825b Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 12 Feb 2024 12:33:12 -0500 Subject: [PATCH 01/57] Updates copy for exceeds modal --- .../excesLimitModal.svelte | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/routes/console/organization-[organization]/excesLimitModal.svelte b/src/routes/console/organization-[organization]/excesLimitModal.svelte index b3a58ac1c..388d7cf85 100644 --- a/src/routes/console/organization-[organization]/excesLimitModal.svelte +++ b/src/routes/console/organization-[organization]/excesLimitModal.svelte @@ -57,29 +57,13 @@ - - Your usage exceeds the {tierToPlan($organization.billingPlan).name} plan limits - - - Appwrite Pro is now available. To facilitate a smooth transition for your projects, Starter plan - will maintain its current state of unlimited resource usage. This extension will be in effect - until January 31st, 2024. - - {#if $organization.billingPlan === BillingPlan.STARTER} -

- Usage for {$organization.name} organization has reached the limits of the {tierToPlan( - $organization.billingPlan - ).name} plan. Consider upgrading to increase your resource usage. -

- {:else} -

- Usage for {$organization.name} organization has reached the limits of the {tierToPlan( - $organization.billingPlan - ).name} plan. Excess usage fees will apply. -

- {/if} +

+ Usage for {$organization.name} organization + has reached the limits of the {tierToPlan($organization.billingPlan).name} plan. Excess usage fees will apply. +

+
From 8c4004cc50edd8ef72a1a9a7c27cf5f4ab630e35 Mon Sep 17 00:00:00 2001 From: wess Date: Wed, 21 Feb 2024 12:50:29 -0500 Subject: [PATCH 02/57] Removes unused import --- .../console/organization-[organization]/excesLimitModal.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/src/routes/console/organization-[organization]/excesLimitModal.svelte b/src/routes/console/organization-[organization]/excesLimitModal.svelte index 7ebca91fb..333ca8dda 100644 --- a/src/routes/console/organization-[organization]/excesLimitModal.svelte +++ b/src/routes/console/organization-[organization]/excesLimitModal.svelte @@ -13,7 +13,6 @@ import ChangeOrganizationTierCloud from '../changeOrganizationTierCloud.svelte'; import { goto } from '$app/navigation'; import { last } from '$lib/helpers/array'; - import { BillingPlan } from '$lib/constants'; import { trackEvent } from '$lib/actions/analytics'; export let show = false; From 882e5c9b588ddddd51e87bae852cbd03f2784a11 Mon Sep 17 00:00:00 2001 From: wess Date: Wed, 21 Feb 2024 12:52:55 -0500 Subject: [PATCH 03/57] Lint update --- .../organization-[organization]/excesLimitModal.svelte | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/console/organization-[organization]/excesLimitModal.svelte b/src/routes/console/organization-[organization]/excesLimitModal.svelte index 333ca8dda..848f1b51e 100644 --- a/src/routes/console/organization-[organization]/excesLimitModal.svelte +++ b/src/routes/console/organization-[organization]/excesLimitModal.svelte @@ -58,11 +58,11 @@

- Usage for {$organization.name} organization - has reached the limits of the {tierToPlan($organization.billingPlan).name} plan. Excess usage fees will apply. + Usage for {$organization.name} organization has reached the limits of the {tierToPlan( + $organization.billingPlan + ).name} plan. Excess usage fees will apply.

- From 97493c3416be318751a7082302bedefee22c859b Mon Sep 17 00:00:00 2001 From: wess Date: Thu, 8 Feb 2024 09:50:07 -0500 Subject: [PATCH 04/57] working on preview spacing --- .../console/project-[project]/messaging/smsPhone.svelte | 2 +- .../project-[project]/messaging/wizard/smsFormList.svelte | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/smsPhone.svelte b/src/routes/console/project-[project]/messaging/smsPhone.svelte index 918b87220..fc82ed6d3 100644 --- a/src/routes/console/project-[project]/messaging/smsPhone.svelte +++ b/src/routes/console/project-[project]/messaging/smsPhone.svelte @@ -51,7 +51,7 @@ .phone { position: relative; width: 320px; - height: 539px; + height: 430px; background-image: url('./sms-preview-light.svg'); background-repeat: no-repeat; diff --git a/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte index 876639a2f..5627dcd5c 100644 --- a/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte @@ -102,6 +102,6 @@
-
- +
+
From 62a5cbc514798c87e8d4b201400e17a7f54c9257 Mon Sep 17 00:00:00 2001 From: wess Date: Thu, 8 Feb 2024 09:53:27 -0500 Subject: [PATCH 05/57] adjusted height of phone for preview --- .../console/project-[project]/messaging/smsPhone.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/smsPhone.svelte b/src/routes/console/project-[project]/messaging/smsPhone.svelte index fc82ed6d3..46191efd1 100644 --- a/src/routes/console/project-[project]/messaging/smsPhone.svelte +++ b/src/routes/console/project-[project]/messaging/smsPhone.svelte @@ -36,7 +36,7 @@
{$project.name}
-
+
Today {getTime()}
@@ -51,7 +51,7 @@ .phone { position: relative; width: 320px; - height: 430px; + height: 410px; background-image: url('./sms-preview-light.svg'); background-repeat: no-repeat; From f196bcfb485adfb36324aabf32a3449471319bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Sun, 25 Feb 2024 17:50:01 +0100 Subject: [PATCH 06/57] Fix 2FA deletion copy --- src/routes/console/account/deleteMfa.svelte | 8 ++++++-- .../auth/user-[user]/deleteMfa.svelte | 13 +++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/routes/console/account/deleteMfa.svelte b/src/routes/console/account/deleteMfa.svelte index 6b113e406..d1fc639f9 100644 --- a/src/routes/console/account/deleteMfa.svelte +++ b/src/routes/console/account/deleteMfa.svelte @@ -39,14 +39,18 @@ -

Are you sure you want to delete this authentication method from your account?

+

+ Deleting the authentication method will disable multi-factor authentication for your + account. To re-enable it, you'll need to add a new authentication method. +

+

Enter the 6-digit verification code generated by your authenticator app to continue.

diff --git a/src/routes/console/project-[project]/auth/user-[user]/deleteMfa.svelte b/src/routes/console/project-[project]/auth/user-[user]/deleteMfa.svelte index 912fab0b1..06322677f 100644 --- a/src/routes/console/project-[project]/auth/user-[user]/deleteMfa.svelte +++ b/src/routes/console/project-[project]/auth/user-[user]/deleteMfa.svelte @@ -4,8 +4,6 @@ import { Modal } from '$lib/components'; import { Dependencies } from '$lib/constants'; import { Button } from '$lib/elements/forms'; - import FormList from '$lib/elements/forms/formList.svelte'; - import InputDigits from '$lib/elements/forms/inputDigits.svelte'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { AuthenticatorType } from '@appwrite.io/console'; @@ -13,7 +11,6 @@ export let showDelete = false; - let code: string; let error: string; async function deleteProvider() { @@ -34,23 +31,23 @@ } $: if (showDelete) { - code = ''; error = ''; } +

+ Deleting the authentication method will disable multi-factor authentication for this + account. To re-enable it, user will need to add a new authentication method. +

Are you sure you want to delete this authentication method from your account?

- - - From 232deea662eaa1580501311e7d90bbfcb1e153ae Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 16:57:20 -0800 Subject: [PATCH 07/57] feat(messaging) update the message topics card to allow updating --- .../messaging/message-[message]/+page.svelte | 14 +- .../messaging/message-[message]/topics.svelte | 59 ------- .../message-[message]/updateTopics.svelte | 161 ++++++++++++++++++ 3 files changed, 173 insertions(+), 61 deletions(-) delete mode 100644 src/routes/console/project-[project]/messaging/message-[message]/topics.svelte create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index 8bcefdc55..c10d41aac 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -13,11 +13,18 @@ import type { PageData } from './$types'; import { isValueOfStringEnum } from '$lib/helpers/types'; import { MessageStatus, MessagingProviderType } from '@appwrite.io/console'; - import Topics from './topics.svelte'; + import UpdateTopics from './updateTopics.svelte'; import Targets from './targets.svelte'; + import { onMount } from 'svelte'; export let data: PageData; + onMount(() => { + if (isValueOfStringEnum(MessagingProviderType, $message.providerType)) { + $providerType = $message.providerType; + } + }); + async function onEdit() { if (!isValueOfStringEnum(MessagingProviderType, $message.providerType)) { throw new Error(`Invalid provider type: ${$message.providerType}`); @@ -110,7 +117,10 @@ message={$message} onEdit={$message.status === MessageStatus.Draft ? onEdit : null} /> {/if} - + {#if $message.status !== MessageStatus.Processing} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/topics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/topics.svelte deleted file mode 100644 index 1df5200aa..000000000 --- a/src/routes/console/project-[project]/messaging/message-[message]/topics.svelte +++ /dev/null @@ -1,59 +0,0 @@ - - - - Topics - - {@const sum = topics.length} - {#if sum} -
- - - ID - Name - Subscribers - - - {#each topics.slice(offset, offset + limit) as topic (topic.$id)} - - - {topic.$id} - - - - {topic.name} - - - - {topic.smsTotal + topic.emailTotal + topic.pushTotal} - - - {/each} - -
-
-

Total topics: {sum}

- -
-
- {:else} - Edit the message to add a Topic - {/if} -
-
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte new file mode 100644 index 000000000..283f03064 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -0,0 +1,161 @@ + + +
+ + Topics + +
+
+ Topic +
+ +
+ {@const sum = topicIds.length} + {#if sum} +
+ + + + + + + {#each topics.slice(offset, offset + limit) as topic (topic.$id)} + + +
+ + + + {topic.name} + + + ({getTotal(topic)} targets) + + +
+
+ +
+ +
+
+
+ {/each} +
+
+
+

Total topics: {sum}

+ +
+
+ {:else} + (showTopics = true)}>Add a Topic + {/if} +
+ + + +
+
+ + { + showTopics = false; + topicsById = e.detail; + }} /> From 3d364d193810b01b547aa29e37232ade3c362e00 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 17:50:01 -0800 Subject: [PATCH 08/57] feat(messaging): update the message targets card to allow updating --- .../messaging/message-[message]/+page.svelte | 7 +- .../message-[message]/targets.svelte | 62 ------ .../message-[message]/updateTargets.svelte | 182 ++++++++++++++++++ 3 files changed, 187 insertions(+), 64 deletions(-) delete mode 100644 src/routes/console/project-[project]/messaging/message-[message]/targets.svelte create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index c10d41aac..daacb54fc 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -14,7 +14,7 @@ import { isValueOfStringEnum } from '$lib/helpers/types'; import { MessageStatus, MessagingProviderType } from '@appwrite.io/console'; import UpdateTopics from './updateTopics.svelte'; - import Targets from './targets.svelte'; + import UpdateTargets from './updateTargets.svelte'; import { onMount } from 'svelte'; export let data: PageData; @@ -121,7 +121,10 @@ messageId={$message.$id} messageType={$providerType} selectedTopicsById={data.topicsById} /> - + {#if $message.status !== MessageStatus.Processing} {/if} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/targets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/targets.svelte deleted file mode 100644 index ca3e6ae03..000000000 --- a/src/routes/console/project-[project]/messaging/message-[message]/targets.svelte +++ /dev/null @@ -1,62 +0,0 @@ - - - - Targets - - {@const sum = targets.length} - {#if sum} -
- - - ID - Name - Identifier - - - {#each targets.slice(offset, offset + limit) as target (target.$id)} - - - {target.$id} - - - - {usersById[target.userId]?.name || 'Unknown'} - - - - {target.providerType === MessagingProviderType.Push - ? target.name - : target.identifier} - - - {/each} - -
-
-

Total targets: {sum}

- -
-
- {:else} - Edit the message to add a Target - {/if} -
-
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte new file mode 100644 index 000000000..bf7d3ddf4 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -0,0 +1,182 @@ + + +
+ + Targets + +
+
+ Target +
+ +
+ {@const sum = targetIds.length} + {#if sum} +
+ + + + + + + + {#each targets.slice(offset, offset + limit) as target (target.$id)} + + +
+ + + + {#if target.providerType === MessagingProviderType.Push} + {target.name} + {:else} + {target.identifier} + {/if} + + +
+
+ +
+ +
+
+
+ {/each} +
+
+
+

Total targets: {sum}

+ +
+
+ {:else} + (showTargets = true)}>Add a Target + {/if} +
+ + + +
+
+ + { + showTargets = false; + targetsById = e.detail; + }}> + Select existing targets to which you want to send this message. + From 87845fd7dd6fdbd988b0f5e053ccbe8ce512553a Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 18:18:50 -0800 Subject: [PATCH 09/57] feat(messaging): rename the message preview cards and enable updating --- .../messaging/message-[message]/+page.svelte | 99 ++----------------- .../message-[message]/emailMessage.svelte | 66 +++++++++++++ .../message-[message]/emailPreview.svelte | 33 ------- .../message-[message]/pushMessage.svelte | 71 +++++++++++++ .../message-[message]/pushPreview.svelte | 33 ------- .../message-[message]/smsMessage.svelte | 64 ++++++++++++ .../message-[message]/smsPreview.svelte | 29 ------ 7 files changed, 208 insertions(+), 187 deletions(-) create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte delete mode 100644 src/routes/console/project-[project]/messaging/message-[message]/emailPreview.svelte create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte delete mode 100644 src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/smsMessage.svelte delete mode 100644 src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index daacb54fc..b8ebca83b 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -1,15 +1,12 @@ {#if $message.providerType === MessagingProviderType.Email} - + {:else if $message.providerType === MessagingProviderType.Sms} - + {:else if $message.providerType === MessagingProviderType.Push} - + {/if} + import { invalidate } from '$app/navigation'; + import { trackEvent, Submit, trackError } from '$lib/actions/analytics'; + import { CardGrid, Heading } from '$lib/components'; + import { Dependencies } from '$lib/constants'; + import { Button, Form, FormList, InputText, InputTextarea } from '$lib/elements/forms'; + import { addNotification } from '$lib/stores/notifications'; + import { sdk } from '$lib/stores/sdk'; + import type { Models } from '@appwrite.io/console'; + import { onMount } from 'svelte'; + + export let message: Models.Message & { data: Record }; + + let subject = ''; + let content = ''; + let disabled = true; + + onMount(() => { + subject = message.data.subject; + content = message.data.content; + }); + + async function update() { + try { + await sdk.forProject.messaging.updateEmail( + message.$id, + undefined, + undefined, + undefined, + subject, + content + ); + await invalidate(Dependencies.MESSAGING_MESSAGE); + addNotification({ + message: 'Message has been updated', + type: 'success' + }); + trackEvent(Submit.MessagingMessageUpdate); + } catch (error) { + addNotification({ + message: error.message, + type: 'error' + }); + trackError(error, Submit.MessagingMessageUpdate); + } + } + + $: disabled = subject === message.data.subject && content === message.data.content; + + +
+ +
+ Message +
+ + + + + + + + + +
+
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/emailPreview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/emailPreview.svelte deleted file mode 100644 index c6d5e051d..000000000 --- a/src/routes/console/project-[project]/messaging/message-[message]/emailPreview.svelte +++ /dev/null @@ -1,33 +0,0 @@ - - - -
- Preview -
- - - - - - -
- -
-
-
-
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte b/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte new file mode 100644 index 000000000..fcc7a1802 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte @@ -0,0 +1,71 @@ + + +
+ +
+ Message +
+ +
+
+ + + + +
+
+
+ + + +
+
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte deleted file mode 100644 index eefb59c0a..000000000 --- a/src/routes/console/project-[project]/messaging/message-[message]/pushPreview.svelte +++ /dev/null @@ -1,33 +0,0 @@ - - - -
- Preview -
- -
-
- - - - - - -
- -
-
-
-
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/smsMessage.svelte b/src/routes/console/project-[project]/messaging/message-[message]/smsMessage.svelte new file mode 100644 index 000000000..8d0e63f15 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/smsMessage.svelte @@ -0,0 +1,64 @@ + + +
+ +
+ Message + +
+ + + + + + + + +
+
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte deleted file mode 100644 index 8e6e772bb..000000000 --- a/src/routes/console/project-[project]/messaging/message-[message]/smsPreview.svelte +++ /dev/null @@ -1,29 +0,0 @@ - - - -
- Preview - -
- - - - -
- -
-
-
-
From cb4a69adb627ccd82adf95ba88f143a32a971335 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 21:54:14 -0800 Subject: [PATCH 10/57] fix(messaging): ensure scheduledAt is saved in draft messages --- .../console/project-[project]/messaging/wizard/step3.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/wizard/step3.svelte b/src/routes/console/project-[project]/messaging/wizard/step3.svelte index ba2e7be3b..c7ee27769 100644 --- a/src/routes/console/project-[project]/messaging/wizard/step3.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/step3.svelte @@ -44,7 +44,6 @@ $messageParams[$providerType].status = MessageStatus.Processing; if (when === 'later') { $messageParams[$providerType].status = 'scheduled' as MessageStatus; - $messageParams[$providerType].scheduledAt = dateTime.toISOString(); } } @@ -61,6 +60,9 @@ ? new Date(now.getTime() - timeZoneOffset).toISOString().split('T')[1].substring(0, 5) : '00:00'; $: dateTime = new Date(`${date}T${time}`); + $: if (!isNaN(dateTime.getTime())) { + $messageParams[$providerType].scheduledAt = dateTime.toISOString(); + } From 2c9788bad802367bba524942b3e6966839cf2278 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 22:29:00 -0800 Subject: [PATCH 11/57] fix(messaging): update message details to show scheduled/delivered at Only show when available. Othersise, hide the entire line. --- .../messaging/message-[message]/overview.svelte | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index b9c95e2d8..7e0116886 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -42,7 +42,12 @@

Created: {toLocaleDateTime($message.$createdAt)}

-

Scheduled at: {toLocaleDateTime(scheduledAt)}

+ {#if $message.scheduledAt} +

Scheduled at: {toLocaleDateTime($message.scheduledAt)}

+ {/if} + {#if $message.deliveredAt} +

Sent at: {toLocaleDateTime($message.deliveredAt)}

+ {/if}
From 1d6a8017e1c9f4ffe981e08762674e30ec802937 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 22:34:41 -0800 Subject: [PATCH 12/57] feat(messaging): update overview card to support scheduling and sending --- .../messaging/message-[message]/+page.svelte | 2 +- .../message-[message]/overview.svelte | 60 ++++---- .../message-[message]/scheduleModal.svelte | 144 ++++++++++++++++++ .../message-[message]/sendModal.svelte | 102 +++++++++++++ 4 files changed, 277 insertions(+), 31 deletions(-) create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index b8ebca83b..d542f2ed7 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -24,7 +24,7 @@ - + {#if $message.providerType === MessagingProviderType.Email} {:else if $message.providerType === MessagingProviderType.Sms} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index 7e0116886..ce12622c6 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -4,38 +4,27 @@ import { message } from './store'; import ProviderType from '../providerType.svelte'; import MessageStatusPill from '../messageStatusPill.svelte'; - import { MessagingProviderType } from '@appwrite.io/console'; + import { MessagingProviderType, type Models } from '@appwrite.io/console'; import { Button } from '$lib/elements/forms'; import FailedModal from '../failedModal.svelte'; + import SendModal from './sendModal.svelte'; + import ScheduleModal from './scheduleModal.svelte'; - let scheduledAt: string = ''; + export let messageType: MessagingProviderType; + export let topics: Models.Topic[]; + + let showSend = false; + let showSchedule = false; let showFailed = false; let errors: string[] = []; - - if ($message.status === 'sent') { - scheduledAt = $message.deliveredAt; - } else if ($message.status === 'scheduled') { - scheduledAt = $message.scheduledAt; - } - - let providerType = 'Invalid provider type'; - switch ($message.providerType) { - case MessagingProviderType.Email: - providerType = 'Email'; - break; - case MessagingProviderType.Sms: - providerType = 'SMS'; - break; - case MessagingProviderType.Push: - providerType = 'Push'; - break; - } - +
- {providerType} + + +
@@ -56,14 +45,25 @@ - + {#if $message.status === 'draft' || $message.status === 'scheduled'} +
+ + +
+ {:else if $message.status === 'failed'} + + {/if}
+ + + + diff --git a/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte new file mode 100644 index 000000000..2dc24a7fd --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte @@ -0,0 +1,144 @@ + + + +
+ +
+ + +
+
+ + {#if !dateTime || isNaN(dateTime.getTime())} + The message will be sent later + {:else} + The message will be sent at {dateTime.toLocaleString('en', formatOptions)} + {/if} + +
+ + + + +
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte new file mode 100644 index 000000000..ba06222b1 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte @@ -0,0 +1,102 @@ + + + +
+

+ You are about to send a message to an estimated {totalTargets} targets. Would you like to proceed? +

+ +

This action is irreversible.

+
+ + + + +
From 41a7caa6b5a33abf73e64c295376a72ac222a4f5 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 22:47:03 -0800 Subject: [PATCH 13/57] refactor(messaging): remove unused update message wizard code --- .../{wizard.svelte => create.svelte} | 119 +----------------- .../messaging/createMessageDropdown.svelte | 7 +- .../messaging/wizard/emailFormList.svelte | 26 ++-- .../messaging/wizard/pushFormList.svelte | 26 ++-- .../messaging/wizard/smsFormList.svelte | 26 ++-- .../messaging/wizard/store.ts | 1 - 6 files changed, 34 insertions(+), 171 deletions(-) rename src/routes/console/project-[project]/messaging/{wizard.svelte => create.svelte} (54%) diff --git a/src/routes/console/project-[project]/messaging/wizard.svelte b/src/routes/console/project-[project]/messaging/create.svelte similarity index 54% rename from src/routes/console/project-[project]/messaging/wizard.svelte rename to src/routes/console/project-[project]/messaging/create.svelte index 4fbc93c55..1392df1ec 100644 --- a/src/routes/console/project-[project]/messaging/wizard.svelte +++ b/src/routes/console/project-[project]/messaging/create.svelte @@ -7,13 +7,12 @@ import { sdk } from '$lib/stores/sdk'; import { Submit, trackError, trackEvent } from '$lib/actions/analytics'; import { addNotification } from '$lib/stores/notifications'; - import { goto, invalidate } from '$app/navigation'; + import { goto } from '$app/navigation'; import { base } from '$app/paths'; import { project } from '../store'; import { wizard } from '$lib/stores/wizard'; - import { providerType, messageParams, operation } from './wizard/store'; + import { providerType, messageParams } from './wizard/store'; import { ID, MessageStatus, MessagingProviderType, type Models } from '@appwrite.io/console'; - import { Dependencies } from '$lib/constants'; async function create() { try { @@ -112,115 +111,9 @@ } } - async function update() { - try { - let response: Models.Message; - - const messageId = $messageParams[$providerType].messageId; - - const params = $messageParams[$providerType]; - - console.log(params); - - switch ($providerType) { - case MessagingProviderType.Email: - response = await sdk.forProject.messaging.updateEmail( - messageId, - $messageParams[$providerType].topics, - $messageParams[$providerType].users, - $messageParams[$providerType].targets, - $messageParams[$providerType].subject, - $messageParams[$providerType].content, - $messageParams[$providerType].status, - $messageParams[$providerType].html, - undefined, - undefined, - $messageParams[$providerType].scheduledAt - ); - break; - case MessagingProviderType.Sms: - response = await sdk.forProject.messaging.updateSms( - messageId, - $messageParams[$providerType].topics, - $messageParams[$providerType].users, - $messageParams[$providerType].targets, - $messageParams[$providerType].content, - $messageParams[$providerType].status, - $messageParams[$providerType].scheduledAt - ); - break; - case MessagingProviderType.Push: - { - const customData: Record = {}; - const { data } = $messageParams[MessagingProviderType.Push]; - if (data && data.length > 0) { - data.forEach((item) => { - if (item[0] === '') return; - customData[item[0]] = item[1]; - }); - } - - response = await sdk.forProject.messaging.updatePush( - messageId, - $messageParams[$providerType].topics, - $messageParams[$providerType].users, - $messageParams[$providerType].targets, - $messageParams[$providerType].title, - $messageParams[$providerType].body, - customData, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - undefined, - $messageParams[$providerType].status, - $messageParams[$providerType].scheduledAt - ); - } - break; - } - wizard.hide(); - let message = ''; - switch (response.status) { - case MessageStatus.Draft: - message = 'The message has been saved as draft.'; - break; - case MessageStatus.Processing: - message = 'The message is queued for processing.'; - break; - case 'scheduled': - // TODO: fix message status - message = 'The message has been scheduled.'; - break; - } - addNotification({ - type: 'success', - message - }); - await invalidate(Dependencies.MESSAGING_MESSAGE); - trackEvent(Submit.MessagingMessageUpdate, { - providerType: $providerType, - status: params.status - }); - await goto(`${base}/console/project-${$project.$id}/messaging/message-${response.$id}`); - } catch (error) { - addNotification({ - type: 'error', - message: error.message - }); - trackError(error, Submit.MessagingMessageUpdate); - } - } - async function saveDraft() { $messageParams[$providerType].status = MessageStatus.Draft; - if ($operation === 'create') { - create(); - } else { - update(); - } + create(); } const stepsComponents: WizardStepsType = new Map(); @@ -256,8 +149,4 @@ }); - + diff --git a/src/routes/console/project-[project]/messaging/createMessageDropdown.svelte b/src/routes/console/project-[project]/messaging/createMessageDropdown.svelte index f35e08683..4e23952a0 100644 --- a/src/routes/console/project-[project]/messaging/createMessageDropdown.svelte +++ b/src/routes/console/project-[project]/messaging/createMessageDropdown.svelte @@ -3,8 +3,8 @@ import { Button } from '$lib/elements/forms'; import { wizard } from '$lib/stores/wizard'; import { providers } from './providers/store'; - import Wizard from './wizard.svelte'; - import { messageParams, operation, providerType, targetsById } from './wizard/store'; + import Create from './create.svelte'; + import { messageParams, providerType, targetsById } from './wizard/store'; import { topicsById } from './store'; import { MessagingProviderType } from '@appwrite.io/console'; @@ -30,7 +30,6 @@ ) return; $providerType = type; - $operation = 'create'; $topicsById = {}; $targetsById = {}; const common = { @@ -62,7 +61,7 @@ break; } showCreateDropdown = false; - wizard.start(Wizard); + wizard.start(Create); }}> {option.name} diff --git a/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte index bcc6be1d6..60992f0dd 100644 --- a/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte +++ b/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte @@ -1,5 +1,5 @@ {#if $organization?.$id} From fbd777d273c07155df211602fcb8ba4bb790ad58 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:29:45 +0000 Subject: [PATCH 15/57] fix: queries type --- src/lib/sdk/billing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/sdk/billing.ts b/src/lib/sdk/billing.ts index d3612312f..44227042e 100644 --- a/src/lib/sdk/billing.ts +++ b/src/lib/sdk/billing.ts @@ -849,7 +849,7 @@ export class Billing { ); } - async listAddresses(queries: Query[] = []): Promise { + async listAddresses(queries: string[] = []): Promise { const path = `/account/billing-addresses`; const params = { queries From c5b948e6dc45ce3d4e1ba5cfe32e3fb0a6c5d241 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:39:29 +0000 Subject: [PATCH 16/57] fix: invoices on selfhosted --- .../console/organization-[organization]/settings/+page.svelte | 4 +++- .../console/organization-[organization]/settings/+page.ts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/routes/console/organization-[organization]/settings/+page.svelte b/src/routes/console/organization-[organization]/settings/+page.svelte index 840754307..4b09765ee 100644 --- a/src/routes/console/organization-[organization]/settings/+page.svelte +++ b/src/routes/console/organization-[organization]/settings/+page.svelte @@ -99,4 +99,6 @@ {/if}
- +{#if isCloud && data.invoices} + +{/if} diff --git a/src/routes/console/organization-[organization]/settings/+page.ts b/src/routes/console/organization-[organization]/settings/+page.ts index f4db3678f..c3d520eb2 100644 --- a/src/routes/console/organization-[organization]/settings/+page.ts +++ b/src/routes/console/organization-[organization]/settings/+page.ts @@ -2,12 +2,14 @@ import type { PageLoad } from './$types'; import { Dependencies } from '$lib/constants'; import { sdk } from '$lib/stores/sdk'; import { Query } from '@appwrite.io/console'; +import { isCloud } from '$lib/system'; export const load: PageLoad = async ({ depends, parent }) => { const { organization } = await parent(); depends(Dependencies.ORGANIZATION); + return { projects: await sdk.forConsole.projects.list([Query.equal('teamId', organization.$id)]), - invoices: await sdk.forConsole.billing.listInvoices(organization.$id) + invoices: isCloud ? await sdk.forConsole.billing.listInvoices(organization.$id) : undefined }; }; From 8391ef917780be26ccc8563024793994008e40ab Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:42:03 +0000 Subject: [PATCH 17/57] fix: remove unused var --- src/lib/sdk/billing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/sdk/billing.ts b/src/lib/sdk/billing.ts index 44227042e..e6f91c83b 100644 --- a/src/lib/sdk/billing.ts +++ b/src/lib/sdk/billing.ts @@ -1,4 +1,4 @@ -import type { Client, Models, Query } from '@appwrite.io/console'; +import type { Client, Models } from '@appwrite.io/console'; import type { Organization } from '../stores/organization'; import type { PaymentMethod } from '@stripe/stripe-js'; import type { Tier } from '$lib/stores/billing'; From 1caba3792be431fb3feda84e0d18f8b1f56e75fc Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 08:17:49 -0800 Subject: [PATCH 18/57] fix(messaging): remove topic/target title and add button when empty --- .../message-[message]/updateTargets.svelte | 28 +++++++++---------- .../message-[message]/updateTopics.svelte | 28 +++++++++---------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte index bf7d3ddf4..18f43ca60 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -95,22 +95,22 @@ Targets -
-
- Target -
- -
{@const sum = targetIds.length} {#if sum} +
+
+ Target +
+ +
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte index 283f03064..3daa4feaa 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -81,22 +81,22 @@ Topics -
-
- Topic -
- -
{@const sum = topicIds.length} {#if sum} +
+
+ Topic +
+ +
From 57cd02825e0733cca5edcdb12783dd49b5fdfc13 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 08:18:39 -0800 Subject: [PATCH 19/57] fix(messaging): use sentence case in topic/target empty state --- .../messaging/message-[message]/updateTargets.svelte | 2 +- .../messaging/message-[message]/updateTopics.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte index 18f43ca60..bfa045ca6 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -159,7 +159,7 @@ {:else} - (showTargets = true)}>Add a Target + (showTargets = true)}>Add a target {/if} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte index 3daa4feaa..30c7f5709 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -142,7 +142,7 @@ {:else} - (showTopics = true)}>Add a Topic + (showTopics = true)}>Add a topic {/if} From 722d918cc956d68d90e3cf11de633065f8b8c28b Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 08:20:21 -0800 Subject: [PATCH 20/57] fix(messaging): make the send modal small It doesn't need that much space since it's just a little bit of content. --- .../messaging/message-[message]/sendModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte index ba06222b1..1bc47006f 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte @@ -86,7 +86,7 @@ }; - +

You are about to send a message to an estimated Date: Mon, 26 Feb 2024 08:21:35 -0800 Subject: [PATCH 21/57] fix(messaging): make schedule message modal bigger Give the inputs a bit more room. --- .../messaging/message-[message]/scheduleModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte index 2dc24a7fd..76bbef6ca 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte @@ -119,7 +119,7 @@ $: dateTime = new Date(`${date}T${time}`); - +

Date: Mon, 26 Feb 2024 08:31:33 -0800 Subject: [PATCH 22/57] fix(messaging): fix topics & targets empty state for non-draft Show empty search and link to docs since they shouldn't edit it. --- .../messaging/message-[message]/+page.svelte | 2 ++ .../message-[message]/updateTargets.svelte | 22 ++++++++++++++++--- .../message-[message]/updateTopics.svelte | 22 ++++++++++++++++--- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index d542f2ed7..3c0647e5c 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -35,10 +35,12 @@ {#if $message.status !== MessageStatus.Processing} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte index bfa045ca6..13abd4a0d 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -1,5 +1,5 @@ - + {#if $message.providerType === MessagingProviderType.Email} {:else if $message.providerType === MessagingProviderType.Sms} @@ -32,16 +32,8 @@ {:else if $message.providerType === MessagingProviderType.Push} {/if} - - + + {#if $message.status !== MessageStatus.Processing} {/if} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index ce12622c6..2b08d0000 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -1,16 +1,15 @@ - +
- + - +
-

Created: {toLocaleDateTime($message.$createdAt)}

- {#if $message.scheduledAt} -

Scheduled at: {toLocaleDateTime($message.scheduledAt)}

+

Created: {toLocaleDateTime(message.$createdAt)}

+ {#if message.scheduledAt} +

Scheduled at: {toLocaleDateTime(message.scheduledAt)}

{/if} - {#if $message.deliveredAt} -

Sent at: {toLocaleDateTime($message.deliveredAt)}

+ {#if message.deliveredAt} +

Sent at: {toLocaleDateTime(message.deliveredAt)}

{/if}
- +
- {#if $message.status === 'draft' || $message.status === 'scheduled'} + {#if message.status === 'draft' || message.status === 'scheduled'}
- {:else if $message.status === 'failed'} + {:else if message.status === 'failed'} {/if}
- + - + diff --git a/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte index 76bbef6ca..1b81dbd4c 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/scheduleModal.svelte @@ -9,7 +9,6 @@ import { Dependencies } from '$lib/constants'; export let show = false; - export let messageType: MessagingProviderType; export let message: Models.Message & { data: Record }; export let topics: Models.Topic[]; @@ -35,11 +34,11 @@ }; for (const topic of topics) { - if (messageType == MessagingProviderType.Push) { + if (message.providerType == MessagingProviderType.Push) { totalTargets = totalTargets + topic.pushTotal; - } else if (messageType == MessagingProviderType.Email) { + } else if (message.providerType == MessagingProviderType.Email) { totalTargets = totalTargets + topic.emailTotal; - } else if (messageType == MessagingProviderType.Sms) { + } else if (message.providerType == MessagingProviderType.Sms) { totalTargets = totalTargets + topic.smsTotal; } } @@ -47,7 +46,7 @@ const update = async () => { const status = MessageStatus.Scheduled; try { - if (messageType == MessagingProviderType.Email) { + if (message.providerType == MessagingProviderType.Email) { await sdk.forProject.messaging.updateEmail( message.$id, undefined, @@ -61,7 +60,7 @@ undefined, dateTime.toISOString() ); - } else if (messageType == MessagingProviderType.Sms) { + } else if (message.providerType == MessagingProviderType.Sms) { await sdk.forProject.messaging.updateSms( message.$id, undefined, @@ -71,7 +70,7 @@ status, dateTime.toISOString() ); - } else if (messageType == MessagingProviderType.Push) { + } else if (message.providerType == MessagingProviderType.Push) { await sdk.forProject.messaging.updatePush( message.$id, undefined, @@ -97,7 +96,7 @@ type: 'success' }); trackEvent(Submit.MessagingMessageUpdate, { - providerType: messageType, + providerType: message.providerType, status }); show = false; diff --git a/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte index 1bc47006f..2bf51ef7f 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/sendModal.svelte @@ -9,18 +9,17 @@ import { Dependencies } from '$lib/constants'; export let show = false; - export let messageType: MessagingProviderType; export let message: Models.Message & { data: Record }; export let topics: Models.Topic[]; let totalTargets = message.targets?.length ?? 0; for (const topic of topics) { - if (messageType == MessagingProviderType.Push) { + if (message.providerType == MessagingProviderType.Push) { totalTargets = totalTargets + topic.pushTotal; - } else if (messageType == MessagingProviderType.Email) { + } else if (message.providerType == MessagingProviderType.Email) { totalTargets = totalTargets + topic.emailTotal; - } else if (messageType == MessagingProviderType.Sms) { + } else if (message.providerType == MessagingProviderType.Sms) { totalTargets = totalTargets + topic.smsTotal; } } @@ -28,7 +27,7 @@ const update = async () => { const status = MessageStatus.Processing; try { - if (messageType == MessagingProviderType.Email) { + if (message.providerType == MessagingProviderType.Email) { await sdk.forProject.messaging.updateEmail( message.$id, undefined, @@ -38,7 +37,7 @@ undefined, status ); - } else if (messageType == MessagingProviderType.Sms) { + } else if (message.providerType == MessagingProviderType.Sms) { await sdk.forProject.messaging.updateSms( message.$id, undefined, @@ -47,7 +46,7 @@ undefined, status ); - } else if (messageType == MessagingProviderType.Push) { + } else if (message.providerType == MessagingProviderType.Push) { await sdk.forProject.messaging.updatePush( message.$id, undefined, @@ -72,7 +71,7 @@ type: 'success' }); trackEvent(Submit.MessagingMessageUpdate, { - providerType: messageType, + providerType: message.providerType, status }); show = false; diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte index 13abd4a0d..ba729f0d0 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -18,12 +18,12 @@ import { addNotification } from '$lib/stores/notifications'; import { Button, Form } from '$lib/elements/forms'; import UserTargetsModal from '../userTargetsModal.svelte'; + import { isValueOfStringEnum } from '$lib/helpers/types'; - export let messageId: string; - export let messageType: MessagingProviderType; - export let messageStatus: string; + export let message: Models.Message & { data: Record }; export let selectedTargetsById: Record; + let providerType: MessagingProviderType; let offset = 0; const limit = 10; let showTargets = false; @@ -32,6 +32,10 @@ let targets: Models.Target[] = []; let disabled = true; + if (isValueOfStringEnum(MessagingProviderType, message.providerType)) { + providerType = message.providerType; + } + onMount(() => { targetsById = { ...selectedTargetsById }; }); @@ -43,23 +47,23 @@ async function update() { try { - if (messageType == MessagingProviderType.Email) { + if (message.providerType == MessagingProviderType.Email) { await sdk.forProject.messaging.updateEmail( - messageId, + message.$id, undefined, undefined, targetIds ); - } else if (messageType == MessagingProviderType.Sms) { + } else if (message.providerType == MessagingProviderType.Sms) { await sdk.forProject.messaging.updateSms( - messageId, + message.$id, undefined, undefined, targetIds ); - } else if (messageType == MessagingProviderType.Push) { + } else if (message.providerType == MessagingProviderType.Push) { await sdk.forProject.messaging.updatePush( - messageId, + message.$id, undefined, undefined, targetIds @@ -159,7 +163,7 @@
- {:else if messageStatus == MessageStatus.Draft} + {:else if message.status == MessageStatus.Draft} (showTargets = true)}>Add a target {:else} @@ -186,7 +190,7 @@ { diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte index ba41efaf4..d0f1da8b6 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -19,12 +19,12 @@ import { Form, Button } from '$lib/elements/forms'; import { onMount } from 'svelte'; import { getTotal } from '../wizard/store'; + import { isValueOfStringEnum } from '$lib/helpers/types'; - export let messageId: string; - export let messageType: MessagingProviderType; - export let messageStatus: string; + export let message: Models.Message; export let selectedTopicsById: Record; + let providerType: MessagingProviderType; let offset = 0; const limit = 10; let showTopics = false; @@ -33,6 +33,10 @@ let topics: Models.Topic[] = []; let disabled = true; + if (isValueOfStringEnum(MessagingProviderType, message.providerType)) { + providerType = message.providerType; + } + onMount(() => { topicsById = { ...selectedTopicsById }; }); @@ -44,12 +48,12 @@ async function update() { try { - if (messageType == MessagingProviderType.Email) { - await sdk.forProject.messaging.updateEmail(messageId, topicIds); - } else if (messageType == MessagingProviderType.Sms) { - await sdk.forProject.messaging.updateSms(messageId, topicIds); - } else if (messageType == MessagingProviderType.Push) { - await sdk.forProject.messaging.updatePush(messageId, topicIds); + if (message.providerType == MessagingProviderType.Email) { + await sdk.forProject.messaging.updateEmail(message.$id, topicIds); + } else if (message.providerType == MessagingProviderType.Sms) { + await sdk.forProject.messaging.updateSms(message.$id, topicIds); + } else if (message.providerType == MessagingProviderType.Push) { + await sdk.forProject.messaging.updatePush(message.$id, topicIds); } await invalidate(Dependencies.MESSAGING_MESSAGE); addNotification({ @@ -142,7 +146,7 @@
- {:else if messageStatus == MessageStatus.Draft} + {:else if message.status == MessageStatus.Draft} (showTopics = true)}>Add a topic {:else} @@ -168,7 +172,7 @@ { From 88f661149bcaba9368a997aa0df697e661b65baa Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 11:41:07 -0800 Subject: [PATCH 24/57] fix(messaging): show cancel and reschedule for scheduled messages --- .../messaging/message-[message]/overview.svelte | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index 2b08d0000..3373321cc 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -3,7 +3,7 @@ import { toLocaleDateTime } from '$lib/helpers/date'; import ProviderType from '../providerType.svelte'; import MessageStatusPill from '../messageStatusPill.svelte'; - import { type Models } from '@appwrite.io/console'; + import { MessageStatus, type Models } from '@appwrite.io/console'; import { Button } from '$lib/elements/forms'; import FailedModal from '../failedModal.svelte'; import SendModal from './sendModal.svelte'; @@ -44,11 +44,16 @@
- {#if message.status === 'draft' || message.status === 'scheduled'} + {#if message.status === MessageStatus.Draft}
+ {:else if message.status === MessageStatus.Scheduled} +
+ + +
{:else if message.status === 'failed'} + {#if message.status == MessageStatus.Draft} + + {/if}
@@ -141,17 +143,19 @@ -
- +
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte index d0f1da8b6..f2ef9f55c 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -83,7 +83,7 @@ - + Topics {@const sum = topicIds.length} @@ -92,15 +92,17 @@
Topic
- + {#if message.status == MessageStatus.Draft} + + {/if}
@@ -125,16 +127,19 @@ -
- +
From bd9bf4cb699037c6a1dcd7953c0c024f8eac5c6c Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 13:02:55 -0800 Subject: [PATCH 26/57] feat(messaging): add custom data to message details --- .../message-[message]/pushMessage.svelte | 109 +++++++++++++++++- 1 file changed, 105 insertions(+), 4 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte b/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte index c882c88fb..f9bd9398d 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/pushMessage.svelte @@ -1,6 +1,16 @@ @@ -69,7 +106,71 @@ label="Message" disabled={message.status != MessageStatus.Draft} bind:value={body}> -
+ + + + +
+
    + {#each customData || [] as _, rowIndex} + + + + + + + + + {/each} +
+ {#if dataError} + {dataError} + {/if} + +
+ From 3c1219dc234aff0f78e5b500781fec5f457d010d Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 14:52:53 -0800 Subject: [PATCH 27/57] fix(messaging): add html mode switch to email message --- .../message-[message]/emailMessage.svelte | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte b/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte index fa4e9154f..d3b046d8c 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte @@ -3,7 +3,7 @@ import { trackEvent, Submit, trackError } from '$lib/actions/analytics'; import { CardGrid, Heading } from '$lib/components'; import { Dependencies } from '$lib/constants'; - import { Button, Form, FormList, InputText, InputTextarea } from '$lib/elements/forms'; + import { Button, Form, FormList, InputSwitch, InputText, InputTextarea } from '$lib/elements/forms'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { MessageStatus, type Models } from '@appwrite.io/console'; @@ -13,11 +13,13 @@ let subject = ''; let content = ''; + let html = false; let disabled = true; onMount(() => { subject = message.data.subject; content = message.data.content; + html = (message.data['html'] ?? false) as boolean; }); async function update() { @@ -28,7 +30,9 @@ undefined, undefined, subject, - content + content, + undefined, + html ); await invalidate(Dependencies.MESSAGING_MESSAGE); addNotification({ @@ -45,7 +49,7 @@ } } - $: disabled = subject === message.data.subject && content === message.data.content; + $: disabled = subject === message.data.subject && content === message.data.content && html === (message.data['html'] ?? false) as boolean;
@@ -65,6 +69,11 @@ label="Message" disabled={message.status != MessageStatus.Draft} bind:value={content}> + + + Enable the HTML mode if your message contains HTML tags. + +
From 8d1934f303d10204a5ccf76032bb8ff29dec3b51 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 14:54:30 -0800 Subject: [PATCH 28/57] fix(messaging): update topics/targets confirmation message --- .../messaging/message-[message]/updateTargets.svelte | 2 +- .../messaging/message-[message]/updateTopics.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte index 159c2299a..c4a1ca0db 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -71,7 +71,7 @@ } await invalidate(Dependencies.MESSAGING_MESSAGE); addNotification({ - message: 'Message has been updated', + message: 'Targets have been updated', type: 'success' }); trackEvent(Submit.MessagingMessageUpdate); diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte index f2ef9f55c..96dd7ab4c 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -57,7 +57,7 @@ } await invalidate(Dependencies.MESSAGING_MESSAGE); addNotification({ - message: 'Message has been updated', + message: 'Topics have been updated', type: 'success' }); trackEvent(Submit.MessagingMessageUpdate); From 2d3c7ef5201bcfc244b56d36e2313a49af7fcf6c Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 15:05:26 -0800 Subject: [PATCH 29/57] feat(messaging): support cancelling a scheduled message Update status to draft. --- .../message-[message]/cancelModal.svelte | 92 +++++++++++++++++++ .../message-[message]/overview.svelte | 8 +- 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte diff --git a/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte new file mode 100644 index 000000000..504b67a54 --- /dev/null +++ b/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte @@ -0,0 +1,92 @@ + + + +
+

+ Are you sure you want to cancel the scheduling of {message.data.title ?? message.data.subject ?? message.data.content ?? 'Message'}? +

+
+ + + +
diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index 3373321cc..d020e9b99 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -8,12 +8,14 @@ import FailedModal from '../failedModal.svelte'; import SendModal from './sendModal.svelte'; import ScheduleModal from './scheduleModal.svelte'; - + import CancelModal from './cancelModal.svelte'; + export let message: Models.Message & { data: Record }; export let topics: Models.Topic[]; let showSend = false; let showSchedule = false; + let showCancel = false; let showFailed = false; let errors: string[] = []; @@ -51,7 +53,7 @@ {:else if message.status === MessageStatus.Scheduled}
- +
{:else if message.status === 'failed'} @@ -70,4 +72,6 @@ + + From e9333da83d27bd6ad758b210158354b0c7057d35 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:15:47 +0000 Subject: [PATCH 30/57] fix: wizards copy --- src/lib/wizards/functions/steps/executeAccess.svelte | 2 +- src/routes/console/(migration-wizard)/step2.svelte | 2 +- .../console/organization-[organization]/wizard/step1.svelte | 2 +- .../collection-[collection]/wizard/step1.svelte | 2 +- .../console/project-[project]/functions/wizard/step1.svelte | 2 +- .../console/project-[project]/overview/keys/wizard/step1.svelte | 2 +- .../project-[project]/settings/migrations/(import)/step1.svelte | 2 +- .../project-[project]/settings/migrations/(import)/step2.svelte | 2 +- .../project-[project]/settings/webhooks/wizard/step1.svelte | 2 +- .../storage/bucket-[bucket]/create-file/step1.svelte | 2 +- .../storage/bucket-[bucket]/create-file/step2.svelte | 2 +- .../console/wizard/cloudOrganization/inviteMembers.svelte | 2 +- .../wizard/cloudOrganizationChangeTier/inviteMembers.svelte | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lib/wizards/functions/steps/executeAccess.svelte b/src/lib/wizards/functions/steps/executeAccess.svelte index 6d0e7c29d..6972bb2f6 100644 --- a/src/lib/wizards/functions/steps/executeAccess.svelte +++ b/src/lib/wizards/functions/steps/executeAccess.svelte @@ -5,7 +5,7 @@ - Execution permissions + Permissions Choose who can execute this function using the client API. For more information, visit our - Select resources + Resources Select the resources you need to migrate to Appwrite. Some resources can be migrated, but with limitations. - Project Details + Project details - Create data + Data Provide document data based on attributes you created earlier. diff --git a/src/routes/console/project-[project]/functions/wizard/step1.svelte b/src/routes/console/project-[project]/functions/wizard/step1.svelte index 17408aacb..8700c7bbe 100644 --- a/src/routes/console/project-[project]/functions/wizard/step1.svelte +++ b/src/routes/console/project-[project]/functions/wizard/step1.svelte @@ -20,7 +20,7 @@ - Configuration function + Configuration Create your new Appwrite Function. - Create an API key + API key Let's create an API key. - Select source + Source Select a source platform with the project you want to migrate. - Select source + Resources Select the resources you need to migrate to Appwrite. Some resources can be migrated, but with limitations. - Add your webhook + Webhook configuration Use webhooks to build integrations that subscribe to specific events on Appwrite. Appwrite will send an HTTP POST payload to the webhook's configured URL when one of the specified diff --git a/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte b/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte index 8453a8ee0..77a953bc6 100644 --- a/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte +++ b/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step1.svelte @@ -18,7 +18,7 @@ - Create file + File Upload a file to add it to your bucket. {#if isCloud} diff --git a/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step2.svelte b/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step2.svelte index 6a98039ef..58363e57d 100644 --- a/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step2.svelte +++ b/src/routes/console/project-[project]/storage/bucket-[bucket]/create-file/step2.svelte @@ -7,7 +7,7 @@ - Update Permissions + Permissions Choose who can access your buckets and files. For more information, check out the - Invite organization members + Invites Invite team members to collaborate with you in the Appwrite console. Members will have access to all services and payment data within your organization. diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/inviteMembers.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/inviteMembers.svelte index 94d86e267..0695e7e0f 100644 --- a/src/routes/console/wizard/cloudOrganizationChangeTier/inviteMembers.svelte +++ b/src/routes/console/wizard/cloudOrganizationChangeTier/inviteMembers.svelte @@ -52,7 +52,7 @@ - Invite organization members + Invites Invite team members to collaborate with you in the Appwrite console. Members will have access to all services and payment data within your organization. From 88a99b702ce80249d4c08a856db758c1746c9c81 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:18:18 +0000 Subject: [PATCH 31/57] fix: more wizard --- .../console/organization-[organization]/wizard/step1.svelte | 2 +- .../project-[project]/settings/webhooks/wizard/step1.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/console/organization-[organization]/wizard/step1.svelte b/src/routes/console/organization-[organization]/wizard/step1.svelte index bb7577386..612fd11fc 100644 --- a/src/routes/console/organization-[organization]/wizard/step1.svelte +++ b/src/routes/console/organization-[organization]/wizard/step1.svelte @@ -9,7 +9,7 @@ - Project details + Details - Webhook configuration + Configuration Use webhooks to build integrations that subscribe to specific events on Appwrite. Appwrite will send an HTTP POST payload to the webhook's configured URL when one of the specified From 59154148c78e0b90193e31aa0e9e202c27c54160 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:29:28 +0000 Subject: [PATCH 32/57] fix: big wizard audit --- src/lib/pages/domains/wizard/step1.svelte | 2 +- src/routes/console/(migration-wizard)/step1.svelte | 1 + .../billing/wizard/addCredit.svelte | 2 +- .../billing/wizard/paymentDetails.svelte | 2 +- .../overview/keys/wizard/step2.svelte | 2 +- .../overview/platforms/wizard/android/step1.svelte | 2 +- .../overview/platforms/wizard/android/step2.svelte | 1 + .../overview/platforms/wizard/android/step3.svelte | 1 + .../overview/platforms/wizard/apple/step1.svelte | 2 +- .../overview/platforms/wizard/apple/step2.svelte | 1 + .../overview/platforms/wizard/apple/step3.svelte | 1 + .../overview/platforms/wizard/flutter/step1.svelte | 12 ++++++------ .../overview/platforms/wizard/flutter/step2.svelte | 1 + .../overview/platforms/wizard/flutter/step3.svelte | 1 + .../overview/platforms/wizard/step4.svelte | 1 + .../overview/platforms/wizard/web/step1.svelte | 2 +- .../overview/platforms/wizard/web/step2.svelte | 1 + .../wizard/cloudOrganization/confirmDetails.svelte | 2 +- .../cloudOrganizationChangeTier/choosePlan.svelte | 2 +- .../confirmDetails.svelte | 4 ++-- .../cloudOrganizationChangeTier/usageExcess.svelte | 5 +++-- src/routes/console/wizard/feedback/step1.svelte | 1 + src/routes/console/wizard/feedback/step2.svelte | 1 + src/routes/console/wizard/support/step1.svelte | 1 + 24 files changed, 32 insertions(+), 19 deletions(-) diff --git a/src/lib/pages/domains/wizard/step1.svelte b/src/lib/pages/domains/wizard/step1.svelte index 2c0010a3a..794d6d945 100644 --- a/src/lib/pages/domains/wizard/step1.svelte +++ b/src/lib/pages/domains/wizard/step1.svelte @@ -34,7 +34,7 @@ - Add function domain + Domain Use your self-owned domain as the endpoint of your Appwrite API. + {hasProjects ? 'Select project' : 'Create project'} diff --git a/src/routes/console/organization-[organization]/billing/wizard/addCredit.svelte b/src/routes/console/organization-[organization]/billing/wizard/addCredit.svelte index ddc5292c2..d62ffc7ab 100644 --- a/src/routes/console/organization-[organization]/billing/wizard/addCredit.svelte +++ b/src/routes/console/organization-[organization]/billing/wizard/addCredit.svelte @@ -38,7 +38,7 @@ - Add credits + Credits Add Appwrite credits to your organization. A payment method is required before credits can be applied. diff --git a/src/routes/console/organization-[organization]/billing/wizard/paymentDetails.svelte b/src/routes/console/organization-[organization]/billing/wizard/paymentDetails.svelte index b4f54264d..72dfd81c2 100644 --- a/src/routes/console/organization-[organization]/billing/wizard/paymentDetails.svelte +++ b/src/routes/console/organization-[organization]/billing/wizard/paymentDetails.svelte @@ -41,7 +41,7 @@ - Payment details + Details Add a payment method to your organization. You will not be charged until you upgrade to a Pro or Scale plan. diff --git a/src/routes/console/project-[project]/overview/keys/wizard/step2.svelte b/src/routes/console/project-[project]/overview/keys/wizard/step2.svelte index 56638e8a0..383a8d426 100644 --- a/src/routes/console/project-[project]/overview/keys/wizard/step2.svelte +++ b/src/routes/console/project-[project]/overview/keys/wizard/step2.svelte @@ -6,7 +6,7 @@ - Add Scopes + Scopes Choose which permission scopes to grant your application. It is best practice to allow only the permissions you need to meet your project goals. diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/android/step1.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/android/step1.svelte index d756e05b9..bdd6b79a1 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/android/step1.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/android/step1.svelte @@ -41,7 +41,7 @@ - Register your Android app + Android registration + Get the SDK

First, add this to your root level build.gradle file.

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte index 736d87555..15c0cbe16 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte @@ -15,6 +15,7 @@ val client = Client(context) + Initialize SDK

Initialize your SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step1.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step1.svelte index 46adf251d..9c3b9761a 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step1.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step1.svelte @@ -36,7 +36,7 @@ - Register your bundle ID + Apple registration diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte index 2c0519fdb..cc3f1a5d7 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte @@ -29,6 +29,7 @@ + Get the SDK
(method = Method.Xcode)} selected={method === Method.Xcode}> diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte index 420994b55..c7683a46d 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte @@ -17,6 +17,7 @@ let client = Client() + Initialize SDK

Initialize your SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step1.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step1.svelte index 3aa0a579b..c64b948e6 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step1.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step1.svelte @@ -149,16 +149,16 @@ $: registee = { [PlatformType.Flutterandroid]: 'package name', - [PlatformType.Flutterios]: 'bundle ID', - [PlatformType.Flutterlinux]: 'package name', - [PlatformType.Fluttermacos]: 'bundle ID', - [PlatformType.Flutterwindows]: 'package name', - [PlatformType.Flutterweb]: 'hostname' + [PlatformType.Flutterios]: 'Bundle ID', + [PlatformType.Flutterlinux]: 'Package name', + [PlatformType.Fluttermacos]: 'Bundle ID', + [PlatformType.Flutterwindows]: 'Package name', + [PlatformType.Flutterweb]: 'Hostname' }[platform]; - Register your {registee} + {registee} registration
+ Get the SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte index cc82830e2..deb5cb79a 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte @@ -18,6 +18,7 @@ client + Initialize SDK

Initialize your SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte index cc2c48958..88a9ae2f7 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte @@ -6,6 +6,7 @@ + You're ready to go 🎉

{#if isFirstProject} diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/web/step1.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/web/step1.svelte index af152ddab..661b2472d 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/web/step1.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/web/step1.svelte @@ -44,7 +44,7 @@ - Register your hostname + Hostname registration + Get the SDK Choose your preferred method of installation diff --git a/src/routes/console/wizard/cloudOrganization/confirmDetails.svelte b/src/routes/console/wizard/cloudOrganization/confirmDetails.svelte index a7c6209f6..cf3363ab9 100644 --- a/src/routes/console/wizard/cloudOrganization/confirmDetails.svelte +++ b/src/routes/console/wizard/cloudOrganization/confirmDetails.svelte @@ -51,7 +51,7 @@ - Confirm your details + Details Confirm the details of your new organization and start your free trial. diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte index 5a94e9ec8..2327bd948 100644 --- a/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte +++ b/src/routes/console/wizard/cloudOrganizationChangeTier/choosePlan.svelte @@ -103,7 +103,7 @@ - Choose a plan + Plan selection

Plan

diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte index e62c6af3f..aa1c4bf8b 100644 --- a/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte +++ b/src/routes/console/wizard/cloudOrganizationChangeTier/confirmDetails.svelte @@ -49,7 +49,7 @@ {#if downgradeToStarter} - Confirm plan change + Change confirmation Your feedback is important to us and helps us improve the services Appwrite offer. If there is a specific reason you chose to change your plan at this time, please let us @@ -65,7 +65,7 @@ {:else} - Confirm your details + Details Confirm the details of your new organization and start your free trial. diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte index f3b1a6baa..570d2a2c8 100644 --- a/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte +++ b/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte @@ -7,8 +7,9 @@ - Your usage exceeds the limits of the {tierToPlan($organization.billingPlan).name} plan + + + Your usage exceeds the limits of the {tierToPlan($organization.billingPlan).name} plan View the current usage for {$organization.name} and where you will exceed the limits of your new plan. diff --git a/src/routes/console/wizard/feedback/step1.svelte b/src/routes/console/wizard/feedback/step1.svelte index c3a665590..e2e408b1e 100644 --- a/src/routes/console/wizard/feedback/step1.svelte +++ b/src/routes/console/wizard/feedback/step1.svelte @@ -32,6 +32,7 @@ + {$selectedFeedback.title} {$selectedFeedback.desc} diff --git a/src/routes/console/wizard/feedback/step2.svelte b/src/routes/console/wizard/feedback/step2.svelte index 1e91272cf..56d26c51c 100644 --- a/src/routes/console/wizard/feedback/step2.svelte +++ b/src/routes/console/wizard/feedback/step2.svelte @@ -6,6 +6,7 @@ + Thanks for the feedback!

diff --git a/src/routes/console/wizard/support/step1.svelte b/src/routes/console/wizard/support/step1.svelte index 06f8f265b..e82448d02 100644 --- a/src/routes/console/wizard/support/step1.svelte +++ b/src/routes/console/wizard/support/step1.svelte @@ -21,6 +21,7 @@ + How can we help you? Please describe your request in detail. If applicable, include steps for reproduction of any From 7f69ea5d55455088fae1c4e8f15a8e167a2c5dd8 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 14:31:48 +0000 Subject: [PATCH 33/57] fix: typo --- .../console/project-[project]/messaging/providers/create.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/providers/create.svelte b/src/routes/console/project-[project]/messaging/providers/create.svelte index 53cdf91a4..4f25dcda1 100644 --- a/src/routes/console/project-[project]/messaging/providers/create.svelte +++ b/src/routes/console/project-[project]/messaging/providers/create.svelte @@ -156,7 +156,7 @@ const stepsComponents: WizardStepsType = new Map(); stepsComponents.set(1, { - label: 'Proivder', + label: 'Provider', component: Provider }); stepsComponents.set(2, { From 213e72433f551513f30425c6a4c5d2825a2bedd8 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:06:50 +0000 Subject: [PATCH 34/57] chore: vincent suggestions --- .../overview/platforms/wizard/android/step2.svelte | 3 +-- .../overview/platforms/wizard/android/step3.svelte | 3 +-- .../overview/platforms/wizard/apple/step2.svelte | 3 +-- .../overview/platforms/wizard/apple/step3.svelte | 3 +-- .../overview/platforms/wizard/flutter/step2.svelte | 3 +-- .../overview/platforms/wizard/flutter/step3.svelte | 3 +-- .../project-[project]/overview/platforms/wizard/step4.svelte | 3 +-- .../overview/platforms/wizard/web/step2.svelte | 3 +-- .../wizard/cloudOrganizationChangeTier/usageExcess.svelte | 1 - src/routes/console/wizard/feedback/step1.svelte | 1 - src/routes/console/wizard/feedback/step2.svelte | 3 +-- src/routes/console/wizard/support/step1.svelte | 1 - 12 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/android/step2.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/android/step2.svelte index 30f7e0d85..a2c5dd1fb 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/android/step2.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/android/step2.svelte @@ -10,8 +10,7 @@ - - Get the SDK + Install

First, add this to your root level build.gradle file.

And add this to your project's build.gradle file.

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte index 15c0cbe16..9b47253d1 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/android/step3.svelte @@ -15,8 +15,7 @@ val client = Client(context) - - Initialize SDK + Initialize

Initialize your SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte index cc3f1a5d7..d77381e5b 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step2.svelte @@ -29,8 +29,7 @@ - - Get the SDK + Install

(method = Method.Xcode)} selected={method === Method.Xcode}> Xcode diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte index c7683a46d..6ff63e373 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/apple/step3.svelte @@ -17,8 +17,7 @@ let client = Client() - - Initialize SDK + Initialize

Initialize your SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step2.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step2.svelte index ab5f13aa8..27d4667f3 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step2.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step2.svelte @@ -9,8 +9,7 @@ - - Get the SDK + Install

Add Appwrite SDK to your package's pubspec.yaml file. You can diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte index deb5cb79a..3211a6796 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/flutter/step3.svelte @@ -18,8 +18,7 @@ client - - Initialize SDK + Initialize

Initialize your SDK

diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte index 88a9ae2f7..a1e237d41 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/step4.svelte @@ -6,8 +6,7 @@ - - You're ready to go 🎉 + All set

{#if isFirstProject} Congratulations on adding the first platform to your project! Start exploring by diff --git a/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte b/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte index 2eb9793eb..9c21ccc48 100644 --- a/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte +++ b/src/routes/console/project-[project]/overview/platforms/wizard/web/step2.svelte @@ -23,8 +23,7 @@ - - Get the SDK + Install Choose your preferred method of installation

diff --git a/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte b/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte index 570d2a2c8..e5bd500fb 100644 --- a/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte +++ b/src/routes/console/wizard/cloudOrganizationChangeTier/usageExcess.svelte @@ -8,7 +8,6 @@ - Your usage exceeds the limits of the {tierToPlan($organization.billingPlan).name} plan View the current usage for {$organization.name} and where you will exceed the limits of diff --git a/src/routes/console/wizard/feedback/step1.svelte b/src/routes/console/wizard/feedback/step1.svelte index e2e408b1e..c3a665590 100644 --- a/src/routes/console/wizard/feedback/step1.svelte +++ b/src/routes/console/wizard/feedback/step1.svelte @@ -32,7 +32,6 @@ - {$selectedFeedback.title} {$selectedFeedback.desc} diff --git a/src/routes/console/wizard/feedback/step2.svelte b/src/routes/console/wizard/feedback/step2.svelte index 56d26c51c..66c1c2d56 100644 --- a/src/routes/console/wizard/feedback/step2.svelte +++ b/src/routes/console/wizard/feedback/step2.svelte @@ -6,8 +6,7 @@ - - Thanks for the feedback! + Thanks you
{#if $app.themeInUse === 'dark'} diff --git a/src/routes/console/wizard/support/step1.svelte b/src/routes/console/wizard/support/step1.svelte index e82448d02..06f8f265b 100644 --- a/src/routes/console/wizard/support/step1.svelte +++ b/src/routes/console/wizard/support/step1.svelte @@ -21,7 +21,6 @@ - How can we help you? Please describe your request in detail. If applicable, include steps for reproduction of any From 8dfb58eaf5b09fb21b0f4d621cc0d9b7fe2d83f6 Mon Sep 17 00:00:00 2001 From: loks0n <22452787+loks0n@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:08:17 +0000 Subject: [PATCH 35/57] chore: vincent suggestion --- src/routes/console/(migration-wizard)/step1.svelte | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/routes/console/(migration-wizard)/step1.svelte b/src/routes/console/(migration-wizard)/step1.svelte index e326ac5f3..c34166a7f 100644 --- a/src/routes/console/(migration-wizard)/step1.svelte +++ b/src/routes/console/(migration-wizard)/step1.svelte @@ -12,7 +12,6 @@ let selectedOrg = organizations.length ? organizations[0].$id : null; let projects = [] as Models.ProjectList['projects']; - $: hasProjects = projects.length > 0; let loadingProjects = false; let projectType = 'existing'; @@ -43,10 +42,7 @@ - - - {hasProjects ? 'Select project' : 'Create project'} - + Project
{#if organizations.length > 1} From 7345a213acfa576120045d67ad1da0d0d8448bb1 Mon Sep 17 00:00:00 2001 From: "Luke B. Silver" <22452787+loks0n@users.noreply.github.com> Date: Tue, 27 Feb 2024 10:28:36 +0000 Subject: [PATCH 36/57] Update src/routes/console/wizard/feedback/step2.svelte Co-authored-by: Carla --- src/routes/console/wizard/feedback/step2.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/wizard/feedback/step2.svelte b/src/routes/console/wizard/feedback/step2.svelte index 66c1c2d56..6a79839c5 100644 --- a/src/routes/console/wizard/feedback/step2.svelte +++ b/src/routes/console/wizard/feedback/step2.svelte @@ -6,7 +6,7 @@ - Thanks you + Thank you
{#if $app.themeInUse === 'dark'} From 16d24f93c2d77d6996f4fab4d74b90dbaf45173c Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 27 Feb 2024 10:21:46 -0800 Subject: [PATCH 37/57] feat(messaging): hide remove topic/target button for non-draft messages --- .../message-[message]/cancelModal.svelte | 6 +++- .../message-[message]/emailMessage.svelte | 14 ++++++-- .../message-[message]/overview.svelte | 2 +- .../message-[message]/updateTargets.svelte | 30 +++++++++-------- .../message-[message]/updateTopics.svelte | 33 ++++++++++--------- 5 files changed, 52 insertions(+), 33 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte index 504b67a54..17ab1bf15 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/cancelModal.svelte @@ -83,7 +83,11 @@

Are you sure you want to cancel the scheduling of {message.data.title ?? message.data.subject ?? message.data.content ?? 'Message'}? + >{message.data.title ?? + message.data.subject ?? + message.data.content ?? + 'Message'}?

diff --git a/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte b/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte index d3b046d8c..7b4dc8338 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/emailMessage.svelte @@ -3,7 +3,14 @@ import { trackEvent, Submit, trackError } from '$lib/actions/analytics'; import { CardGrid, Heading } from '$lib/components'; import { Dependencies } from '$lib/constants'; - import { Button, Form, FormList, InputSwitch, InputText, InputTextarea } from '$lib/elements/forms'; + import { + Button, + Form, + FormList, + InputSwitch, + InputText, + InputTextarea + } from '$lib/elements/forms'; import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { MessageStatus, type Models } from '@appwrite.io/console'; @@ -49,7 +56,10 @@ } } - $: disabled = subject === message.data.subject && content === message.data.content && html === (message.data['html'] ?? false) as boolean; + $: disabled = + subject === message.data.subject && + content === message.data.content && + html === ((message.data['html'] ?? false) as boolean); diff --git a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte index d020e9b99..9c307ca1c 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/overview.svelte @@ -9,7 +9,7 @@ import SendModal from './sendModal.svelte'; import ScheduleModal from './scheduleModal.svelte'; import CancelModal from './cancelModal.svelte'; - + export let message: Models.Message & { data: Record }; export let topics: Models.Topic[]; diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte index c4a1ca0db..4252511c5 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTargets.svelte @@ -143,20 +143,22 @@
-
- -
+ {#if message.status === MessageStatus.Draft} +
+ +
+ {/if}
{/each} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte index 96dd7ab4c..26d18021d 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/updateTopics.svelte @@ -123,24 +123,27 @@ ({getTotal(topic)} targets) - + +
-
- -
+ {#if message.status === MessageStatus.Draft} +
+ +
+ {/if}
{/each} From 02fdd950b6b1ee546cd54117656d9350328b9fea Mon Sep 17 00:00:00 2001 From: Khushboo Verma <43381712+vermakhushboo@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:09:28 +0530 Subject: [PATCH 38/57] Update execution placeholder body --- .../functions/function-[function]/execute.svelte | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/routes/console/project-[project]/functions/function-[function]/execute.svelte b/src/routes/console/project-[project]/functions/function-[function]/execute.svelte index a8460d6db..57d52063d 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/execute.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/execute.svelte @@ -121,11 +121,7 @@
- + {:else} @@ -214,7 +210,7 @@ From f29089a748e6812970834b3c70dc3dedff17e30c Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 16:36:04 -0800 Subject: [PATCH 39/57] fix(messaging): show users w/o targets as disabled --- src/lib/components/collapsibleItem.svelte | 35 ++++++++++++++++--- .../messaging/userTargetsModal.svelte | 30 +++++++++++----- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/src/lib/components/collapsibleItem.svelte b/src/lib/components/collapsibleItem.svelte index 736f2fe21..3420b555c 100644 --- a/src/lib/components/collapsibleItem.svelte +++ b/src/lib/components/collapsibleItem.svelte @@ -3,10 +3,11 @@ export let withIndentation = false; export let open = false; + export let disabled = false;
  • -
    +
    - + {#if $$slots.subtitle} - + {/if}
    -
  • + + diff --git a/src/routes/console/project-[project]/messaging/userTargetsModal.svelte b/src/routes/console/project-[project]/messaging/userTargetsModal.svelte index 7552144aa..271f94ecc 100644 --- a/src/routes/console/project-[project]/messaging/userTargetsModal.svelte +++ b/src/routes/console/project-[project]/messaging/userTargetsModal.svelte @@ -132,22 +132,20 @@ {@const selectedCount = user.targets.filter( (target) => selected[target.$id] ).length} - + 0 && - user.targets.every((target) => targetsById[target.$id])} + disabled={!user.targets.length || + (user.targets.length > 0 && + user.targets.every((target) => targetsById[target.$id]))} checked={selectedCount > 0 && selectedCount === user.targets.length} on:change={(event) => onUserSelection(event, userId)} /> - + {#if user.name} {user.name} {:else if user.email} @@ -161,7 +159,11 @@ - ({selectedCount}/{user.targets.length} targets) + {#if user.targets.length === 0} + (0 targets) + {:else} + ({selectedCount}/{user.targets.length} targets) + {/if} {#each user.targets as target} @@ -235,3 +237,15 @@ + + From f492837dd4197c3c1a07e77b3232d3afbebd5c5a Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 15:51:18 -0800 Subject: [PATCH 40/57] fix(messaging): update link to docs regarding subscribers --- .../topics/topic-[topic]/subscribers/+page.svelte | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte index c5c308a5e..622b6bf41 100644 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte +++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte @@ -146,7 +146,7 @@ (showAdd = true)} - href="https://appwrite.io/docs/products/messaging/topics/#subscribe-targets-to-topics" + href="https://appwrite.io/docs/products/messaging/topics#subscribe-targets-to-topics" target="subscriber" /> {/if} @@ -159,10 +159,11 @@

    Add subscribers to this topic by selecting the targets for directing messages. Learn more about subscribers. + class="link">Learn more about subscribers.

    From e9004be4d8a64df25f19a8676ec0cbcd0dd3450b Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 15:20:03 -0800 Subject: [PATCH 41/57] fix(messaging): fix provider docs link --- .../messaging/providers/wizard/settings.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte b/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte index 57908ad4b..e995a63a1 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte +++ b/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte @@ -97,7 +97,7 @@
    From dce4dc4a989cdf62b50d879278e9eb0ef625d67c Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 15:20:22 -0800 Subject: [PATCH 42/57] fix(messaging) fix need a hand hover color --- .../messaging/providers/wizard/settings.svelte | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte b/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte index e995a63a1..46dc634e5 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte +++ b/src/routes/console/project-[project]/messaging/providers/wizard/settings.svelte @@ -135,7 +135,7 @@