-
+
-
Provider:
-
Channel:
-
Created: {toLocaleDateTime($providerData.$createdAt)}
+
+
+ Provider:
+
+
Type:
+
Created: {toLocaleDateTime($providerData.$createdAt)}
+
diff --git a/src/routes/console/project-[project]/messaging/providers/settingsFormInput.svelte b/src/routes/console/project-[project]/messaging/providers/settingsFormInput.svelte
new file mode 100644
index 000000000..6bec64045
--- /dev/null
+++ b/src/routes/console/project-[project]/messaging/providers/settingsFormInput.svelte
@@ -0,0 +1,147 @@
+
+
+{#if input.type === 'text'}
+
+
+
+
+
+{:else if input.type === 'password'}
+
+
+
+
+
+{:else if input.type === 'email'}
+
+
+
+
+
+{:else if input.type === 'domain'}
+
+
+
+
+
+{:else if input.type === 'phone'}
+
+
+
+
+
+{:else if input.type === 'file'}
+
+ {fullWidth}
+
+
+
+
+{:else if input.type === 'switch'}
+
+
+ {@html input.description}
+
+
+{:else if input.type === 'checkbox'}
+
+
+ {input.description}
+
+
+{:else if input.type === 'select'}
+
+{/if}
diff --git a/src/routes/console/project-[project]/messaging/providers/settingsFormList.svelte b/src/routes/console/project-[project]/messaging/providers/settingsFormList.svelte
index 609b55790..356ea4759 100644
--- a/src/routes/console/project-[project]/messaging/providers/settingsFormList.svelte
+++ b/src/routes/console/project-[project]/messaging/providers/settingsFormList.svelte
@@ -1,17 +1,6 @@
-
-
-
-
+
+
+
Subscribers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {#if data.subscribers.total}
+
+
+
+ {:else if $hasPageQueries}
+
+ {:else if data.search}
+
+
+
Sorry, we couldn't find '{data.search}'
+
There are no subscribers that match your search.
+
+
+
+ {:else}
+ (showAdd = true)}
+ href="https://appwrite.io/docs/products/messaging/topics#subscribe-targets-to-topics"
+ target="subscriber" />
+ {/if}
+
+
+
+
+ Add subscribers to this topic by selecting the targets for directing messages. Learn more about subscribers.
+
+
+
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.ts b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.ts
similarity index 100%
rename from src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.ts
rename to src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.ts
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/header.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/header.svelte
index 0848e48db..680a967e5 100644
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/header.svelte
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/header.svelte
@@ -11,11 +11,6 @@
const tabs = [
{
href: path,
- title: 'Overview',
- event: 'overview'
- },
- {
- href: `${path}/subscribers`,
title: 'Subscribers',
event: 'subscribers'
},
@@ -23,6 +18,11 @@
href: `${path}/activity`,
title: 'Activity',
event: 'activity'
+ },
+ {
+ href: `${path}/settings`,
+ title: 'Settings',
+ event: 'settings'
}
];
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/+page.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/+page.svelte
new file mode 100644
index 000000000..8c5837596
--- /dev/null
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/+page.svelte
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/dangerZone.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/dangerZone.svelte
similarity index 54%
rename from src/routes/console/project-[project]/messaging/topics/topic-[topic]/dangerZone.svelte
rename to src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/dangerZone.svelte
index b9a2801bd..4758bcd6f 100644
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/dangerZone.svelte
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/dangerZone.svelte
@@ -1,20 +1,10 @@
-
-
@@ -37,9 +27,9 @@
-
-
+
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/details.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/details.svelte
similarity index 92%
rename from src/routes/console/project-[project]/messaging/topics/topic-[topic]/details.svelte
rename to src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/details.svelte
index 09e919152..be120ba35 100644
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/details.svelte
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/details.svelte
@@ -1,7 +1,7 @@
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updateName.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/updateName.svelte
similarity index 97%
rename from src/routes/console/project-[project]/messaging/topics/topic-[topic]/updateName.svelte
rename to src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/updateName.svelte
index 4b9305911..ad1e1998b 100644
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updateName.svelte
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/updateName.svelte
@@ -2,7 +2,7 @@
import { CardGrid, Heading } from '$lib/components';
import { Button, Form, InputText } from '$lib/elements/forms';
import { onMount } from 'svelte';
- import { topic } from './store';
+ import { topic } from '../store';
import { invalidate } from '$app/navigation';
import { trackEvent, Submit, trackError } from '$lib/actions/analytics';
import { Dependencies } from '$lib/constants';
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updatePermissions.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/updatePermissions.svelte
similarity index 98%
rename from src/routes/console/project-[project]/messaging/topics/topic-[topic]/updatePermissions.svelte
rename to src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/updatePermissions.svelte
index c74b1ad10..7fff86143 100644
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/updatePermissions.svelte
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/updatePermissions.svelte
@@ -10,7 +10,7 @@
import { onMount } from 'svelte';
import { Roles } from '$lib/components/permissions';
import { symmetricDifference } from '$lib/helpers/array';
- import { topic } from './store';
+ import { topic } from '../store';
const topicId = $page.params.topic;
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
deleted file mode 100644
index 622b6bf41..000000000
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
-
-
-
-
Subscribers
-
- (showAdd = true)} event="create_subscriber">
-
- Add subscriber
-
-
-
-
-
-
-
-
- (showAdd = true)} event="create_subscriber">
-
- Add subscriber
-
-
-
-
-
- {#if data.subscribers.total}
-
-
-
- {:else if $hasPageQueries}
-
- {:else if data.search}
-
-
-
Sorry, we couldn't find '{data.search}'
-
There are no subscribers that match your search.
-
-
- Clear Search
-
-
- {:else}
- (showAdd = true)}
- href="https://appwrite.io/docs/products/messaging/topics#subscribe-targets-to-topics"
- target="subscriber" />
- {/if}
-
-
-
-
-
- Add subscribers to this topic by selecting the targets for directing messages. Learn more about subscribers.
-
-
-
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/store.ts b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/store.ts
deleted file mode 100644
index f5186a589..000000000
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/store.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import type { Column } from '$lib/helpers/types';
-import { writable } from 'svelte/store';
-
-export const columns = writable([
- { id: '$id', title: 'Subscriber ID', type: 'string', show: true, width: 140 },
- { id: 'userName', title: 'Name', type: 'string', show: true, filter: false, width: 100 },
- { id: 'targetId', title: 'Target ID', type: 'string', show: true, width: 140 },
- { id: 'target', title: 'Target', type: 'string', show: true, filter: false, width: 140 },
- { id: 'type', title: 'Type', type: 'string', show: true, width: 80 },
- { id: '$createdAt', title: 'Created', type: 'datetime', show: true, width: 100 }
-]);
diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/table.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte
similarity index 95%
rename from src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/table.svelte
rename to src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte
index 8fce7c8c3..e469b7991 100644
--- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/table.svelte
+++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte
@@ -18,15 +18,16 @@
} from '$lib/elements/table';
import { addNotification } from '$lib/stores/notifications';
import type { PageData } from './$types';
- import { columns } from './store';
- import ProviderType from '../../../providerType.svelte';
+ import ProviderType from '../../providerType.svelte';
import { toLocaleDateTime } from '$lib/helpers/date';
import { project } from '$routes/console/project-[project]/store';
import { sdk } from '$lib/stores/sdk';
import { page } from '$app/stores';
- import { targetsById } from '../../../store';
+ import { targetsById } from '../../store';
import { MessagingProviderType, type Models } from '@appwrite.io/console';
+ import type { Column } from '$lib/helpers/types';
+ export let columns: Column[];
export let data: PageData;
let subscribers: Record = {};
@@ -84,7 +85,7 @@
d.$id)} />
- {#each $columns as column}
+ {#each columns as column}
{#if column.show}
{column.title}
{/if}
@@ -97,10 +98,10 @@
href={`${base}/console/project-${$project.$id}/auth/user-${subscriber.target.userId}`}>
- {#each $columns as column}
+ {#each columns as column}
{#if column.show}
{#if column.id === '$id'}
- {#key $columns}
+ {#key column.id}
{subscriber.$id}
diff --git a/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte
index ca25f281c..693d209fb 100644
--- a/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte
+++ b/src/routes/console/project-[project]/messaging/wizard/emailFormList.svelte
@@ -49,6 +49,7 @@
@@ -56,10 +57,10 @@
-
diff --git a/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte
index 5137cafa2..7858daa6a 100644
--- a/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte
+++ b/src/routes/console/project-[project]/messaging/wizard/pushFormList.svelte
@@ -91,6 +91,7 @@
@@ -99,6 +100,7 @@
id="message"
label="Message"
placeholder="Type here..."
+ required
maxlength={1000}
bind:value={$messageParams[MessagingProviderType.Push]['body']}>
diff --git a/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte b/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte
index c01466df6..9b315caa1 100644
--- a/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte
+++ b/src/routes/console/project-[project]/messaging/wizard/smsFormList.svelte
@@ -38,8 +38,9 @@
diff --git a/src/routes/console/project-[project]/messaging/wizard/step2.svelte b/src/routes/console/project-[project]/messaging/wizard/step2.svelte
index da25ba1fa..b922dd4a2 100644
--- a/src/routes/console/project-[project]/messaging/wizard/step2.svelte
+++ b/src/routes/console/project-[project]/messaging/wizard/step2.svelte
@@ -41,13 +41,19 @@
$targetsById = rest;
}
+ async function beforeSubmit() {
+ if (topicIdsLength === 0 && targetIdsLength === 0) {
+ throw new Error('At least one topic or target is required.');
+ }
+ }
+
$: topicIdsLength = Object.keys($topicsById).length;
$: targetIdsLength = Object.keys($targetsById).length;
$: $messageParams[$providerType].targets = Object.keys($targetsById);
$: $messageParams[$providerType].topics = Object.keys($topicsById);
-
+
Targets
Select targets to whom this message should be directed.
diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte
index d20533a1f..ea1a2cbe6 100644
--- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte
+++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte
@@ -7,8 +7,7 @@
+
diff --git a/src/routes/console/project-[project]/settings/webhooks/[webhook]/details.svelte b/src/routes/console/project-[project]/settings/webhooks/[webhook]/details.svelte
new file mode 100644
index 000000000..37424e263
--- /dev/null
+++ b/src/routes/console/project-[project]/settings/webhooks/[webhook]/details.svelte
@@ -0,0 +1,89 @@
+
+
+
+ {$webhook.url}
+
+
+
+
+
+
+
+
+ - Created: {toLocaleDateTime($webhook.$createdAt)}
+ - Last updated: {toLocaleDateTime($webhook.$updatedAt)}
+
+
+
+
+
+
+
+ {#if $webhook.logs.length > 0}
+ (showFailed = true)} secondary>View logs
+ {/if}
+
+ Update
+
+
+
+
+
diff --git a/src/routes/console/project-[project]/settings/webhooks/[webhook]/header.svelte b/src/routes/console/project-[project]/settings/webhooks/[webhook]/header.svelte
index 9a09cbb01..8debdc385 100644
--- a/src/routes/console/project-[project]/settings/webhooks/[webhook]/header.svelte
+++ b/src/routes/console/project-[project]/settings/webhooks/[webhook]/header.svelte
@@ -12,6 +12,6 @@
{$webhook?.name}
- Webhook ID
+ {$webhook?.$id}
diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte
new file mode 100644
index 000000000..67437a82b
--- /dev/null
+++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+ Webhook {webhook.enabled ? 'enabled' : 'disabled'}
+
+
+ {#if showUpdateButton}
+
Update webhook
+ {/if}
+
+
+
+ The connection to {webhook.url} stopped after {webhook.attempts} consecutive failures. Please
+ refer to the logs below for more information or try to update the webhook to resolve this
+ issue.
+
+
+
+
+
+
+
+ (show = false)}>Close
+
+
diff --git a/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte b/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte
new file mode 100644
index 000000000..2c12a4ee0
--- /dev/null
+++ b/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ {enabled ? 'enabled' : 'stopped'}
+
+
diff --git a/src/routes/console/project-[project]/settings/webhooks/store.ts b/src/routes/console/project-[project]/settings/webhooks/store.ts
new file mode 100644
index 000000000..4d7bfd323
--- /dev/null
+++ b/src/routes/console/project-[project]/settings/webhooks/store.ts
@@ -0,0 +1,17 @@
+// import { page } from '$app/stores';
+import type { Column } from '$lib/helpers/types';
+// import type { Models } from '@appwrite.io/console';
+import { writable } from 'svelte/store';
+
+// export const database = derived(page, ($page) => $page.data.database as Models.Database);
+// export const showCreate = writable(false);
+
+export const columns = writable([
+ { id: '$id', title: 'Webhook ID', type: 'string', show: true, width: 150 },
+ { id: 'name', title: 'Name', type: 'string', show: true, width: 120 },
+ { id: 'url', title: 'Post URL', type: 'string', show: true, width: 120 },
+ { id: 'events', title: 'Events', type: 'string', show: true, width: 60 },
+ { id: 'enabled', title: 'Status', type: 'string', show: true, width: 150 },
+ { id: '$createdAt', title: 'Created', type: 'datetime', show: true, width: 120 },
+ { id: '$updatedAt', title: 'Updated', type: 'datetime', show: true, width: 120 }
+]);
diff --git a/src/routes/mfa/+page.svelte b/src/routes/mfa/+page.svelte
index eedc50900..46653e270 100644
--- a/src/routes/mfa/+page.svelte
+++ b/src/routes/mfa/+page.svelte
@@ -16,10 +16,10 @@
async function verify() {
try {
disabled = true;
- const challenge = await sdk.forConsole.account.createChallenge(
+ const challenge = await sdk.forConsole.account.createMfaChallenge(
AuthenticationFactor.Totp
);
- await sdk.forConsole.account.updateChallenge(challenge.$id, code);
+ await sdk.forConsole.account.updateMfaChallenge(challenge.$id, code);
await invalidate(Dependencies.ACCOUNT);
trackEvent(Submit.AccountCreate);
if ($page.url.searchParams) {
@@ -61,14 +61,4 @@
-
-
- Forgot Password?
-
-
-
- Sign Up
-
-
-