From 40eae92bf53d1975379fa59a0072b2c41514ebce Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 2 Jan 2024 16:13:03 -0800 Subject: [PATCH 01/15] Remove provider default param The default param was removed from the API so it should be removed from the Console as well. --- .../messaging/providers/create.svelte | 9 --------- .../providers/provider-[provider]/updateStatus.svelte | 9 --------- .../messaging/providers/update.svelte | 10 ---------- .../messaging/providers/wizard/provider.svelte | 9 --------- .../messaging/providers/wizard/store.ts | 1 - 5 files changed, 38 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/providers/create.svelte b/src/routes/console/project-[project]/messaging/providers/create.svelte index d828be10c8..b3054b4fa1 100644 --- a/src/routes/console/project-[project]/messaging/providers/create.svelte +++ b/src/routes/console/project-[project]/messaging/providers/create.svelte @@ -34,7 +34,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, accountSid: $providerParams[$provider].accountSid, authToken: $providerParams[$provider].authToken, @@ -56,7 +55,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, senderId: $providerParams[$provider].senderId, @@ -78,7 +76,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, username: $providerParams[$provider].username, @@ -100,7 +97,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, username: $providerParams[$provider].username, @@ -122,7 +118,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, apiKey: $providerParams[$provider].apiKey, @@ -144,7 +139,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, isEuRegion: $providerParams[$provider].isEuRegion, from: $providerParams[$provider].from, @@ -167,7 +161,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, apiKey: $providerParams[$provider].apiKey @@ -186,7 +179,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, serverKey: $providerParams[$provider].serverKey } @@ -206,7 +198,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, authKey: $providerParams[$provider].authKey, authKeyId: $providerParams[$provider].authKeyId, diff --git a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte index f4fddcc744..3185cc0778 100644 --- a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte +++ b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte @@ -30,7 +30,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, accountSid: $provider.credentials['accountSid'], authToken: $provider.credentials['authToken'], @@ -41,7 +40,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, from: $provider.options['from'], senderId: $provider.credentials['senderId'], @@ -52,7 +50,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, username: $provider.credentials['username'], password: $provider.credentials['password'], @@ -63,7 +60,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, username: $provider.credentials['username'], apiKey: $provider.credentials['apiKey'], @@ -74,7 +70,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, apiKey: $provider.credentials['apiKey'], apiSecret: $provider.credentials['apiSecret'], @@ -85,7 +80,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, isEuRegion: false, from: $provider.options['from'], @@ -97,7 +91,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, apiKey: $provider.credentials['apiKey'], from: $provider.options['from'] @@ -107,7 +100,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, serverKey: $provider.credentials['serverKey'] }; @@ -116,7 +108,6 @@ $providerParams[$wizardProvider] = { providerId: $provider.$id, name: $provider.name, - default: $provider.default, enabled: $provider.enabled, authKey: $provider.credentials['authKey'], authKeyId: $provider.credentials['authKeyId'], diff --git a/src/routes/console/project-[project]/messaging/providers/update.svelte b/src/routes/console/project-[project]/messaging/providers/update.svelte index 4f3c14c44f..13c3aa7585 100644 --- a/src/routes/console/project-[project]/messaging/providers/update.svelte +++ b/src/routes/console/project-[project]/messaging/providers/update.svelte @@ -33,7 +33,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, accountSid: $providerParams[$provider].accountSid, authToken: $providerParams[$provider].authToken, @@ -55,7 +54,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, senderId: $providerParams[$provider].senderId, @@ -77,7 +75,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, username: $providerParams[$provider].username, @@ -99,7 +96,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, username: $providerParams[$provider].username, @@ -121,7 +117,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, apiKey: $providerParams[$provider].apiKey, @@ -143,7 +138,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, isEuRegion: $providerParams[$provider].isEuRegion, from: $providerParams[$provider].from, @@ -166,7 +160,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, from: $providerParams[$provider].from, apiKey: $providerParams[$provider].apiKey @@ -187,7 +180,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, serverKey: $providerParams[$provider].serverKey } @@ -207,7 +199,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, authKey: $providerParams[$provider].authKey, authKeyId: $providerParams[$provider].authKeyId, @@ -230,7 +221,6 @@ { providerId: providerId, name: $providerParams[$provider].name, - default: $providerParams[$provider].default, enabled: $providerParams[$provider].enabled, serverKey: $providerParams[$provider].serverKey } diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte b/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte index 1f9e238a1a..6a1a4703d2 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte +++ b/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte @@ -19,7 +19,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, accountSid: '', authToken: '', @@ -30,7 +29,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, from: '', senderId: '', @@ -41,7 +39,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, username: '', password: '', @@ -52,7 +49,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, username: '', apiKey: '', @@ -63,7 +59,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, apiKey: '', apiSecret: '', @@ -74,7 +69,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, isEuRegion: false, from: '', @@ -86,7 +80,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, apiKey: '', from: '' @@ -96,7 +89,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, serverKey: '' }; @@ -105,7 +97,6 @@ $providerParams[$provider] = { providerId: id, name: name, - default: false, enabled: false, authKey: '', authKeyId: '', diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/store.ts b/src/routes/console/project-[project]/messaging/providers/wizard/store.ts index 9f47f8a41a..4e8aed06f7 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/store.ts +++ b/src/routes/console/project-[project]/messaging/providers/wizard/store.ts @@ -5,7 +5,6 @@ import { writable } from 'svelte/store'; type ProviderParams = { providerId: string; name: string; - default: boolean; enabled: boolean; }; From c90d05bc2643bc4bfd7e0323d92d924a3ee3d448 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 2 Jan 2024 16:15:01 -0800 Subject: [PATCH 02/15] Remove MQTT provider as it was descoped for G1 --- .../messaging/provider.svelte | 5 ----- .../messaging/providers/create.svelte | 20 ------------------- .../provider-[provider]/updateStatus.svelte | 20 ------------------- .../messaging/providers/update.svelte | 20 ------------------- .../providers/wizard/provider.svelte | 2 -- .../project-[project]/messaging/store.ts | 12 ----------- 6 files changed, 79 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/provider.svelte b/src/routes/console/project-[project]/messaging/provider.svelte index 5e2da923a0..aefa0ba76f 100644 --- a/src/routes/console/project-[project]/messaging/provider.svelte +++ b/src/routes/console/project-[project]/messaging/provider.svelte @@ -9,7 +9,6 @@ Sendgrid = 'sendgrid', FCM = 'fcm', APNS = 'apns', - MQTT = 'mqtt' } @@ -44,10 +43,6 @@ icon = 'apple'; displayName = name || 'APNS'; break; - case Providers.MQTT: - icon = 'mqtt'; - displayName = name || 'MQTT'; - break; case Providers.Sendgrid: icon = 'sendgrid'; break; diff --git a/src/routes/console/project-[project]/messaging/providers/create.svelte b/src/routes/console/project-[project]/messaging/providers/create.svelte index b3054b4fa1..5cae6700ce 100644 --- a/src/routes/console/project-[project]/messaging/providers/create.svelte +++ b/src/routes/console/project-[project]/messaging/providers/create.svelte @@ -206,26 +206,6 @@ } ); break; - case Providers.MQTT: - response = await sdk.forProject.client.call( - 'POST', - new URL( - sdk.forProject.client.config.endpoint + '/messaging/providers/mqtt' - ), - { - 'X-Appwrite-Project': sdk.forProject.client.config.project, - 'content-type': 'application/json', - 'X-Appwrite-Mode': 'admin' - }, - { - providerId: providerId, - name: $providerParams[$provider].name, - default: $providerParams[$provider].default, - enabled: $providerParams[$provider].enabled, - serverKey: $providerParams[$provider].serverKey - } - ); - break; } wizard.hide(); addNotification({ diff --git a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte index 3185cc0778..1349d56328 100644 --- a/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte +++ b/src/routes/console/project-[project]/messaging/providers/provider-[provider]/updateStatus.svelte @@ -115,8 +115,6 @@ bundleId: $provider.credentials['bundleId'] }; break; - case Providers.MQTT: - break; } wizard.start(Update); @@ -289,24 +287,6 @@ } ); break; - case Providers.MQTT: - response = await sdk.forProject.client.call( - 'PATCH', - new URL( - sdk.forProject.client.config.endpoint + - '/messaging/providers/mqtt/' + - providerId - ), - { - 'X-Appwrite-Project': sdk.forProject.client.config.project, - 'content-type': 'application/json', - 'X-Appwrite-Mode': 'admin' - }, - { - enabled: enabled - } - ); - break; } await invalidate(Dependencies.MESSAGING_PROVIDER); addNotification({ diff --git a/src/routes/console/project-[project]/messaging/providers/update.svelte b/src/routes/console/project-[project]/messaging/providers/update.svelte index 13c3aa7585..42b1dfcfd5 100644 --- a/src/routes/console/project-[project]/messaging/providers/update.svelte +++ b/src/routes/console/project-[project]/messaging/providers/update.svelte @@ -1,5 +1,4 @@ diff --git a/src/routes/console/project-[project]/messaging/store.ts b/src/routes/console/project-[project]/messaging/store.ts index d30c67b808..839c0526b2 100644 --- a/src/routes/console/project-[project]/messaging/store.ts +++ b/src/routes/console/project-[project]/messaging/store.ts @@ -144,18 +144,6 @@ export const providersById: { [providerId: string]: Provider } = { credentials: {}, options: {} }, - '637a40ba7a703e3936e3': { - $id: '637a40ba7a703e3936e3', - $createdAt: '2021-08-31T12:00:00.000Z', - $updatedAt: '2021-08-31T12:00:00.000Z', - name: 'My MQTT', - provider: Providers.MQTT, - type: ProviderTypes.Push, - default: false, - enabled: false, - credentials: {}, - options: {} - }, '637a40ba7a703e3936e4': { $id: '637a40ba7a703e3936e4', $createdAt: '2021-08-31T12:00:00.000Z', From 205b99e4a327436960700bc42c2484b7afd35839 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Tue, 2 Jan 2024 16:18:46 -0800 Subject: [PATCH 03/15] Default enabled to true when creating a provider --- .../messaging/providers/wizard/provider.svelte | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte b/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte index 95abec8802..97b7ca2d54 100644 --- a/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte +++ b/src/routes/console/project-[project]/messaging/providers/wizard/provider.svelte @@ -19,7 +19,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, accountSid: '', authToken: '', from: '' @@ -29,7 +29,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, from: '', senderId: '', authKey: '' @@ -39,7 +39,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, username: '', password: '', from: '' @@ -49,7 +49,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, username: '', apiKey: '', from: '' @@ -59,7 +59,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, apiKey: '', apiSecret: '', from: '' @@ -69,7 +69,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, isEuRegion: false, from: '', apiKey: '', @@ -80,7 +80,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, apiKey: '', from: '' }; @@ -89,7 +89,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, serverKey: '' }; break; @@ -97,7 +97,7 @@ $providerParams[$provider] = { providerId: id, name: name, - enabled: false, + enabled: true, authKey: '', authKeyId: '', teamId: '', From 329c90c9cb0261596737c9404a3aa7e0c39e9147 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 8 Jan 2024 16:46:31 -0800 Subject: [PATCH 04/15] Add a route to show user targets There's some code for creating a target, but it must go through design first. --- src/lib/actions/analytics.ts | 2 + src/lib/constants.ts | 1 + .../auth/user-[user]/header.svelte | 5 + .../auth/user-[user]/targets/+page.svelte | 118 ++++++++++++ .../auth/user-[user]/targets/+page.ts | 83 ++++++++ .../auth/user-[user]/targets/create.svelte | 146 +++++++++++++++ .../auth/user-[user]/targets/store.ts | 10 + .../auth/user-[user]/targets/table.svelte | 177 ++++++++++++++++++ 8 files changed, 542 insertions(+) create mode 100644 src/routes/console/project-[project]/auth/user-[user]/targets/+page.svelte create mode 100644 src/routes/console/project-[project]/auth/user-[user]/targets/+page.ts create mode 100644 src/routes/console/project-[project]/auth/user-[user]/targets/create.svelte create mode 100644 src/routes/console/project-[project]/auth/user-[user]/targets/store.ts create mode 100644 src/routes/console/project-[project]/auth/user-[user]/targets/table.svelte diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index 39551514b2..44ad9b0da0 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -161,6 +161,8 @@ export enum Submit { UserUpdateStatus = 'submit_user_update_status', UserUpdateVerificationEmail = 'submit_user_update_verification_email', UserUpdateVerificationPhone = 'submit_user_update_verification_phone', + UserTargetCreate = 'submit_user_target_create', + UserTargetDelete = 'submit_user_target_delete', OrganizationCreate = 'submit_organization_create', OrganizationDelete = 'submit_organization_delete', OrganizationUpdateName = 'submit_organization_update_name', diff --git a/src/lib/constants.ts b/src/lib/constants.ts index da342ce92c..260bae7f1c 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -16,6 +16,7 @@ export enum Dependencies { ACCOUNT_SESSIONS = 'dependency:account_sessions', USER = 'dependency:user', USERS = 'dependency:users', + USER_TARGETS = 'dependency:user_targets', SESSIONS = 'dependency:sessions', TEAM = 'dependency:team', TEAMS = 'dependency:teams', diff --git a/src/routes/console/project-[project]/auth/user-[user]/header.svelte b/src/routes/console/project-[project]/auth/user-[user]/header.svelte index 06f7d48f2e..e3e0641fc9 100644 --- a/src/routes/console/project-[project]/auth/user-[user]/header.svelte +++ b/src/routes/console/project-[project]/auth/user-[user]/header.svelte @@ -19,6 +19,11 @@ title: 'Memberships', event: 'memberships' }, + { + href: `${path}/targets`, + title: 'Targets', + event: 'targets' + }, { href: `${path}/sessions`, title: 'Sessions', diff --git a/src/routes/console/project-[project]/auth/user-[user]/targets/+page.svelte b/src/routes/console/project-[project]/auth/user-[user]/targets/+page.svelte new file mode 100644 index 0000000000..e47d65f9d1 --- /dev/null +++ b/src/routes/console/project-[project]/auth/user-[user]/targets/+page.svelte @@ -0,0 +1,118 @@ + + + +
+
+ Targets +
+ +
+
+ + + +
+ +
+ +
+ +
+
+
+
+
+ + +
+
+ + +
+
+
+ {#if data.targets.total} + + + + {:else if $hasPageQueries} + + {:else if data.search} + +
+ Sorry, we couldn't find '{data.search}' +

There are no targets that match your search.

+
+ +
+ {:else} + + (showAdd = true)} + href="https://appwrite.io/docs/references/cloud/client-web/teams" + target="subscriber" /> + {/if} + + + (showAdd = false)} /> + diff --git a/src/routes/console/project-[project]/auth/user-[user]/targets/+page.ts b/src/routes/console/project-[project]/auth/user-[user]/targets/+page.ts new file mode 100644 index 0000000000..55a04e0f56 --- /dev/null +++ b/src/routes/console/project-[project]/auth/user-[user]/targets/+page.ts @@ -0,0 +1,83 @@ +import { Query } from '@appwrite.io/console'; +import { sdk } from '$lib/stores/sdk'; +import { getLimit, getPage, getQuery, getSearch, pageToOffset } from '$lib/helpers/load'; +import { Dependencies, PAGE_LIMIT } from '$lib/constants'; +import type { PageLoad } from './$types'; +import { queryParamToMap, queries } from '$lib/components/filters'; +import type { Provider, Target } from '$routes/console/project-[project]/messaging/store'; + +export const load: PageLoad = async ({ params, url, route, depends }) => { + depends(Dependencies.USER_TARGETS); + const page = getPage(url); + const limit = getLimit(url, route, PAGE_LIMIT); + const offset = pageToOffset(page, limit); + const search = getSearch(url); + const query = getQuery(url); + + const parsedQueries = queryParamToMap(query || '[]'); + queries.set(parsedQueries); + + const payload = { + queries: [ + Query.limit(limit), + Query.offset(offset), + Query.orderDesc(''), + ...parsedQueries.values() + ] + }; + + if (search) { + payload['search'] = search; + } + + // TODO: remove when the API is ready with data + // This allows us to mock w/ data and when search returns 0 results + const targets: { targets: Target[]; total: number } = + await sdk.forProject.client.call( + 'GET', + new URL( + `${sdk.forProject.client.config.endpoint}/users/${params.user}/targets` + ), + { + 'X-Appwrite-Project': sdk.forProject.client.config.project, + 'content-type': 'application/json', + 'X-Appwrite-Mode': 'admin' + }, + payload + ); + + const promisesById: Record> = {}; + targets.targets.forEach((target) => { + if (target.providerId && !promisesById[target.providerId]) { + promisesById[target.providerId] = sdk.forProject.client.call( + 'GET', + new URL( + `${sdk.forProject.client.config.endpoint}/messaging/providers/${target.providerId}` + ), + { + 'X-Appwrite-Project': sdk.forProject.client.config.project, + 'content-type': 'application/json', + 'X-Appwrite-Mode': 'admin' + } + ); + } + }); + + const providersById: Record = {}; + const resolved = await Promise.allSettled(Object.values(promisesById)); + resolved.forEach((result) => { + if (result.status === 'fulfilled') { + const provider = result.value; + providersById[provider.$id] = provider; + } + }); + + return { + offset, + limit, + search, + query, + targets, + providersById, + }; +}; diff --git a/src/routes/console/project-[project]/auth/user-[user]/targets/create.svelte b/src/routes/console/project-[project]/auth/user-[user]/targets/create.svelte new file mode 100644 index 0000000000..d8973633cf --- /dev/null +++ b/src/routes/console/project-[project]/auth/user-[user]/targets/create.svelte @@ -0,0 +1,146 @@ + + + + + + {#if providerType === ProviderTypes.Push} + + + + {:else if providerType === ProviderTypes.Email} + + {:else if providerType === ProviderTypes.Sms} + + {/if} + + {#if !showCustomId} +
+ (showCustomId = !showCustomId)} + > +
+ {:else} + + {/if} +
+ + + + +
diff --git a/src/routes/console/project-[project]/auth/user-[user]/targets/store.ts b/src/routes/console/project-[project]/auth/user-[user]/targets/store.ts new file mode 100644 index 0000000000..425b4ccbd4 --- /dev/null +++ b/src/routes/console/project-[project]/auth/user-[user]/targets/store.ts @@ -0,0 +1,10 @@ +import type { Column } from '$lib/helpers/types'; +import { writable } from 'svelte/store'; + +export const columns = writable([ + { id: '$id', title: 'Target ID', type: 'string', show: true, width: 140 }, + { id: 'target', title: 'Target', type: 'string', show: true, filter: false, width: 140 }, + { id: 'providerType', title: 'Type', type: 'string', show: true, filter: true, width: 80 }, + { id: 'provider', title: 'Provider', type: 'string', show: true, filter: false, width: 80 }, + { id: '$createdAt', title: 'Created', type: 'string', show: true, width: 100 } +]); diff --git a/src/routes/console/project-[project]/auth/user-[user]/targets/table.svelte b/src/routes/console/project-[project]/auth/user-[user]/targets/table.svelte new file mode 100644 index 0000000000..7382c498b9 --- /dev/null +++ b/src/routes/console/project-[project]/auth/user-[user]/targets/table.svelte @@ -0,0 +1,177 @@ + + + + + d.$id)} /> + {#each $columns as column} + {#if column.show} + {column.title} + {/if} + {/each} + + + {#each data.targets.targets as target (target.$id)} + {@const provider = data.providersById[target.providerId]} + + + + {#each $columns as column} + {#if column.show} + {#if column.id === '$id'} + {#key $columns} + + + {target[column.id]} + + + {/key} + {:else if column.id === 'target'} + + {#if target.providerType === ProviderTypes.Push} + {target.name} + {:else} + {target.identifier} + {/if} + + {:else if column.id === 'providerType'} + + + + {:else if column.id === 'provider'} + + {#if provider} + + {/if} + + {:else if column.id === '$createdAt'} + + {toLocaleDateTime(target[column.id])} + + {:else} + + {target[column.id]} + + {/if} + {/if} + {/each} + + {/each} + + + + 0}> +
+
+ {selectedIds.length} +

+ + {selectedIds.length > 1 ? 'subscribers' : 'subscriber'} + + selected +

+
+ +
+ + +
+
+
+ + +

+ Are you sure you want to delete {selectedIds.length} + {selectedIds.length > 1 ? 'targets' : 'target'}? +

+ + + + +
From 5f6c90775c0cf967582de91f1a8748119e758c3b Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 11 Jan 2024 01:57:30 +0000 Subject: [PATCH 05/15] Allow topics with empty string We must pass undefined because the server won't accept an empty string. Undefined will make the server use the default value, which is an empty string. --- .../project-[project]/messaging/topics/create.svelte | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/topics/create.svelte b/src/routes/console/project-[project]/messaging/topics/create.svelte index 2bb52245e2..3d9dd416e3 100644 --- a/src/routes/console/project-[project]/messaging/topics/create.svelte +++ b/src/routes/console/project-[project]/messaging/topics/create.svelte @@ -1,8 +1,8 @@ -

Grant access to any authenticated or anonymous user.

+

Select recipients for this message from your users.

Date: Thu, 18 Jan 2024 00:07:53 +0000 Subject: [PATCH 12/15] Remove bullet points from the topics modal --- .../messaging/topicsModal.svelte | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/topicsModal.svelte b/src/routes/console/project-[project]/messaging/topicsModal.svelte index f1141b26e0..7285cb44d0 100644 --- a/src/routes/console/project-[project]/messaging/topicsModal.svelte +++ b/src/routes/console/project-[project]/messaging/topicsModal.svelte @@ -1,9 +1,9 @@ @@ -127,6 +131,7 @@ $: sortedSteps = [...steps].sort(([a], [b]) => (a > b ? 1 : -1)); $: isLastStep = $wizard.step === steps.size; + $: currentStep = steps.get($wizard.step); @@ -175,7 +180,7 @@ {/each}