From 3cb0e4f0e632b935304c31bae58772a0d202825b Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 12 Feb 2024 12:33:12 -0500 Subject: [PATCH 01/84] 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/84] 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/84] 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 0166d29d2e17755d5a1fb2f2521cf827af50fde8 Mon Sep 17 00:00:00 2001 From: wess Date: Fri, 23 Feb 2024 13:32:56 -0500 Subject: [PATCH 04/84] Adds columns to web hooks Filter and search will need to wait till it's available in the api --- package-lock.json | 513 +++++++++--------- src/lib/layout/containerHeader.svelte | 3 +- .../settings/webhooks/+page.svelte | 81 ++- .../settings/webhooks/+page.ts | 14 +- .../settings/webhooks/store.ts | 17 + 5 files changed, 354 insertions(+), 274 deletions(-) create mode 100644 src/routes/console/project-[project]/settings/webhooks/store.ts diff --git a/package-lock.json b/package-lock.json index e6751c176..cc1b8bf54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1405,9 +1405,9 @@ "dev": true }, "node_modules/@internationalized/date": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.1.tgz", - "integrity": "sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.2.tgz", + "integrity": "sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==", "dev": true, "dependencies": { "@swc/helpers": "^0.5.0" @@ -1868,9 +1868,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "engines": { "node": ">=6.0.0" } @@ -1996,9 +1996,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", - "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", "cpu": [ "arm" ], @@ -2009,9 +2009,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", - "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", "cpu": [ "arm64" ], @@ -2022,9 +2022,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", - "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", "cpu": [ "arm64" ], @@ -2035,9 +2035,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", - "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", "cpu": [ "x64" ], @@ -2048,9 +2048,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", - "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", "cpu": [ "arm" ], @@ -2061,9 +2061,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", - "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", "cpu": [ "arm64" ], @@ -2074,9 +2074,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", - "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", "cpu": [ "arm64" ], @@ -2087,9 +2087,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", - "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", "cpu": [ "riscv64" ], @@ -2100,9 +2100,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", - "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", "cpu": [ "x64" ], @@ -2113,9 +2113,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", - "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", "cpu": [ "x64" ], @@ -2126,9 +2126,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", - "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", "cpu": [ "arm64" ], @@ -2139,9 +2139,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", - "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", "cpu": [ "ia32" ], @@ -2152,9 +2152,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", - "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", "cpu": [ "x64" ], @@ -2165,97 +2165,97 @@ ] }, "node_modules/@sentry-internal/feedback": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.100.1.tgz", - "integrity": "sha512-yqcRVnjf+qS+tC4NxOKLJOaSJ+csHmh/dHUzvCTkf5rLsplwXYRnny2r0tqGTQ4tuXMxwgSMKPYwicg81P+xuw==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.102.1.tgz", + "integrity": "sha512-vY4hpLLMNLjICtWiizc7KeGbWOTUMGrF7C+9dPCztZww3CLgzWy9A7DvPj5hodRiYzpdRnAMl8yQnMFbYXh7bA==", "dependencies": { - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/core": "7.102.1", + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.100.1.tgz", - "integrity": "sha512-TnqxqJGhbFhhYRhTG2WLFer+lVieV7mNGeIxFBiw1L4kuj8KGl+C0sknssKyZSRVJFSahhHIosHJGRMkkD//7g==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.102.1.tgz", + "integrity": "sha512-GUX4RWI10uRjdjeyvCLtAAhWRVqnAnG6+yNxWfqUQ3qMA7B7XxG43KT2UhSnulmErNzODQ6hA68rGPwwYeRIww==", "dependencies": { - "@sentry/core": "7.100.1", - "@sentry/replay": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/core": "7.102.1", + "@sentry/replay": "7.102.1", + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry-internal/tracing": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.100.1.tgz", - "integrity": "sha512-+u9RRf5eL3StiyiRyAHZmdkAR7GTSGx4Mt4Lmi5NEtCcWlTGZ1QgW2r8ZbhouVmTiJkjhQgYCyej3cojtazeJg==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.102.1.tgz", + "integrity": "sha512-RkFlFyAC0fQOvBbBqnq0CLmFW5m3JJz9pKbZd5vXPraWAlniKSb1bC/4DF9SlNx0FN1LWG+IU3ISdpzwwTeAGg==", "dependencies": { - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/core": "7.102.1", + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/browser": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.100.1.tgz", - "integrity": "sha512-IxHQ08ixf0bmaWpe4yt1J4UUsOpg02fxax9z3tOQYXw5MSzz5pDXn8M8DFUVJB3wWuyXhHXTub9yD3VIP9fnoA==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.102.1.tgz", + "integrity": "sha512-7BOfPBiM7Kp6q/iy0JIbsBTxIASV+zWXByqqjuEMWGj3X2u4oRIfm3gv4erPU/l+CORQUVQZLSPGoIoM1gbB/A==", "dependencies": { - "@sentry-internal/feedback": "7.100.1", - "@sentry-internal/replay-canvas": "7.100.1", - "@sentry-internal/tracing": "7.100.1", - "@sentry/core": "7.100.1", - "@sentry/replay": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry-internal/feedback": "7.102.1", + "@sentry-internal/replay-canvas": "7.102.1", + "@sentry-internal/tracing": "7.102.1", + "@sentry/core": "7.102.1", + "@sentry/replay": "7.102.1", + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/core": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.100.1.tgz", - "integrity": "sha512-f+ItUge/o9AjlveQq0ZUbQauKlPH1FIJbC1TRaYLJ4KNfOdrsh8yZ29RmWv0cFJ/e+FGTr603gWpRPObF5rM8Q==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.102.1.tgz", + "integrity": "sha512-QjY+LSP3du3J/C8x/FfEbRxgZgsWd0jfTJ4P7s9f219I1csK4OeBMC3UA1HwEa0pY/9OF6H/egW2CjOcMM5Pdg==", "dependencies": { - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/replay": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.100.1.tgz", - "integrity": "sha512-B1NFjzGEFaqejxBRdUyEzH8ChXc2kfiqlA/W/Lg0aoWIl2/7nuMk+l4ld9gW5F5bIAXDTVd5vYltb1lWEbpr7w==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.102.1.tgz", + "integrity": "sha512-HR/j9dGIvbrId8fh8mQlODx7JrhRmawEd9e9P3laPtogWCg/5TI+XPb2VGSaXOX9VWtb/6Z2UjHsaGjgg6YcuA==", "dependencies": { - "@sentry-internal/tracing": "7.100.1", - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1" + "@sentry-internal/tracing": "7.102.1", + "@sentry/core": "7.102.1", + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/svelte": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/svelte/-/svelte-7.100.1.tgz", - "integrity": "sha512-2oZJNFZYfXeDX05mvBBLtve1KRfCI0DgrxZYe9qbYQIe7snobNSydTK+wIHX/SJeVUz3Z+qyovPqFzjkJPTFnw==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/svelte/-/svelte-7.102.1.tgz", + "integrity": "sha512-oXl+28ccsYwGr8DLhK8hfyB4DPJhpBVfqSCC9SOa4aSH5yqaXoCbXPm6yTkFtFY8o3w54OZbXhEAq7qd7Go3iQ==", "dependencies": { - "@sentry/browser": "7.100.1", - "@sentry/core": "7.100.1", - "@sentry/types": "7.100.1", - "@sentry/utils": "7.100.1", + "@sentry/browser": "7.102.1", + "@sentry/core": "7.102.1", + "@sentry/types": "7.102.1", + "@sentry/utils": "7.102.1", "magic-string": "^0.30.0" }, "engines": { @@ -2266,30 +2266,30 @@ } }, "node_modules/@sentry/tracing": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.100.1.tgz", - "integrity": "sha512-cmm2yz0qvOcW0RPegCn88X5nwbJdLx3w+Wl8319Kzkivc200e2tXQiDNwJ8kQdUvFsJg7Jz3G+hfZoy3ejtH7Q==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.102.1.tgz", + "integrity": "sha512-9VQEox0R7ouhhUVHtBwlGlXG5beDCM/Uo0BY+G0M1H03aFJsLAwnxPNeWnK3WvPejxf94EgdimKMjDjv9l2Sbg==", "dependencies": { - "@sentry-internal/tracing": "7.100.1" + "@sentry-internal/tracing": "7.102.1" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.100.1.tgz", - "integrity": "sha512-fLM+LedHuKzOd8IhXBqaQuym+AA519MGjeczBa5kGakes/BbAsUMwsNfjsKQedp7Kh44RgYF99jwoRPK2oDrXw==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.102.1.tgz", + "integrity": "sha512-htKorf3t/D0XYtM7foTcmG+rM47rDP6XdbvCcX5gBCuCYlzpM1vqCt2rl3FLktZC6TaIpFRJw1TLfx6m+x5jdA==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.100.1", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.100.1.tgz", - "integrity": "sha512-Ve6dXr1o6xiBe3VCoJgiutmBKrugryI65EZAbYto5XI+t+PjiLLf9wXtEMF24ZrwImo4Lv3E9Uqza+fWkEbw6A==", + "version": "7.102.1", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.102.1.tgz", + "integrity": "sha512-+8WcFjHVV/HROXSAwMuUzveElBFC43EiTG7SNEBNgOUeQzQVTmbUZXyTVgLrUmtoWqvnIxCacoLxtZo1o67kdg==", "dependencies": { - "@sentry/types": "7.100.1" + "@sentry/types": "7.102.1" }, "engines": { "node": ">=8" @@ -2336,9 +2336,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.0.tgz", - "integrity": "sha512-1uyXvzC2Lu1FZa30T4y5jUAC21R309ZMRG0TPt+PPPbNUoDpy8zSmSNVWYaBWxYDqLGQ5oPNWvjvvF2IjJ1jmA==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.1.tgz", + "integrity": "sha512-TKj08o3mJCoQNLTdRdGkHPePTCPUGTgkew65RDqjVU3MtPVxljsofXQYfXndHfq0P7KoPRO/0/reF6HesU0Djw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2663,9 +2663,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2916,13 +2916,13 @@ "dev": true }, "node_modules/@vitest/expect": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.2.tgz", - "integrity": "sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", + "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", "dev": true, "dependencies": { - "@vitest/spy": "1.2.2", - "@vitest/utils": "1.2.2", + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", "chai": "^4.3.10" }, "funding": { @@ -2930,12 +2930,12 @@ } }, "node_modules/@vitest/runner": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.2.tgz", - "integrity": "sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.3.1.tgz", + "integrity": "sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==", "dev": true, "dependencies": { - "@vitest/utils": "1.2.2", + "@vitest/utils": "1.3.1", "p-limit": "^5.0.0", "pathe": "^1.1.1" }, @@ -2971,9 +2971,9 @@ } }, "node_modules/@vitest/snapshot": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.2.tgz", - "integrity": "sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.3.1.tgz", + "integrity": "sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==", "dev": true, "dependencies": { "magic-string": "^0.30.5", @@ -3017,9 +3017,9 @@ "dev": true }, "node_modules/@vitest/spy": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.2.tgz", - "integrity": "sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", + "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", "dev": true, "dependencies": { "tinyspy": "^2.2.0" @@ -3029,12 +3029,12 @@ } }, "node_modules/@vitest/ui": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-1.2.2.tgz", - "integrity": "sha512-CG+5fa8lyoBr+9i+UZGS31Qw81v33QlD10uecHxN2CLJVN+jLnqx4pGzGvFFeJ7jSnUCT0AlbmVWY6fU6NJZmw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-1.3.1.tgz", + "integrity": "sha512-2UrFLJ62c/eJGPHcclstMKlAR7E1WB1ITe1isuowEPJJHi3HfqofvsUqQ1cGrEF7kitG1DJuwURUA3HLDtQkXA==", "dev": true, "dependencies": { - "@vitest/utils": "1.2.2", + "@vitest/utils": "1.3.1", "fast-glob": "^3.3.2", "fflate": "^0.8.1", "flatted": "^3.2.9", @@ -3046,13 +3046,13 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "^1.0.0" + "vitest": "1.3.1" } }, "node_modules/@vitest/utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.2.tgz", - "integrity": "sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", + "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", "dev": true, "dependencies": { "diff-sequences": "^29.6.3", @@ -3256,9 +3256,9 @@ } }, "node_modules/ai": { - "version": "2.2.35", - "resolved": "https://registry.npmjs.org/ai/-/ai-2.2.35.tgz", - "integrity": "sha512-YzR56VAMjqvGIVzMUFwH7jjo7K+Z3Old4nXcigiWsuqXnWQeQi3iPR8p2/xOZzmuZyMTOC+6jjbIJ8hoEOhfcQ==", + "version": "2.2.36", + "resolved": "https://registry.npmjs.org/ai/-/ai-2.2.36.tgz", + "integrity": "sha512-QX3ZXgHjn4cQ233PHne1m7ZP+nfP93CkDEgNCIxuiDp+mhLEIEV10F1Qk3NozJ8mmSoyIJR82ea16kMZKOi8hw==", "dependencies": { "eventsource-parser": "1.0.0", "nanoid": "3.3.6", @@ -3472,9 +3472,12 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3650,9 +3653,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -3670,8 +3673,8 @@ ], "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -3755,9 +3758,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", "dev": true, "funding": [ { @@ -4193,14 +4196,13 @@ } }, "node_modules/define-data-property": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.3.tgz", - "integrity": "sha512-h3GBouC+RPtNX2N0hHVLo2ZwPYurq8mLmXpOLTsw71gr7lHt5VaI4vVkDUNOfiWmm48JEXe3VM7PmLX45AMmmg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { + "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -4324,9 +4326,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.3.tgz", - "integrity": "sha512-II98GFrje5psQTSve0E7bnwMFybNLqT8Vu8JIFWRjsE3khyNUm/loZupuy5DVzG2IXf/ysxvrixYOQnM6mjD3A==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "engines": { "node": ">=12" }, @@ -4335,12 +4337,12 @@ } }, "node_modules/echarts": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz", - "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz", + "integrity": "sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==", "dependencies": { "tslib": "2.3.0", - "zrender": "5.4.4" + "zrender": "5.5.0" } }, "node_modules/echarts/node_modules/tslib": { @@ -4349,9 +4351,9 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "node_modules/electron-to-chromium": { - "version": "1.4.667", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.667.tgz", - "integrity": "sha512-66L3pLlWhTNVUhnmSA5+qDM3fwnXsM6KAqE36e2w4KN0g6pkEtlT5bs41FQtQwVwKnfhNBXiWRLPs30HSxd7Kw==", + "version": "1.4.680", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.680.tgz", + "integrity": "sha512-4nToZ5jlPO14W82NkF32wyjhYqQByVaDmLy4J2/tYcAbJfgO2TKJC780Az1V13gzq4l73CJ0yuyalpXvxXXD9A==", "dev": true, "peer": true }, @@ -4935,9 +4937,9 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/focus-trap": { @@ -5229,9 +5231,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -5683,11 +5685,14 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5784,15 +5789,15 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "peer": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" }, @@ -5831,9 +5836,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "peer": true, "dependencies": { @@ -7159,9 +7164,9 @@ } }, "node_modules/mlly": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", - "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.6.0.tgz", + "integrity": "sha512-YOvg9hfYQmnaB56Yb+KrJE2u0Yzz5zR+sLejEvF4fzwzV1Al6hkf2vyHTwqCRyv0hCi9rVCqVoXpyYevQIRwLQ==", "dev": true, "dependencies": { "acorn": "^8.11.3", @@ -7702,6 +7707,14 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", @@ -7855,9 +7868,9 @@ } }, "node_modules/prettier-plugin-svelte": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.1.2.tgz", - "integrity": "sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.1.tgz", + "integrity": "sha512-ENAPbIxASf2R79IZwgkG5sBdeNA9kLRlXVvKKmTXh79zWTy0KKoT86XO2pHrTitUPINd+iXWy12MRmgzKGVckA==", "dev": true, "peerDependencies": { "prettier": "^3.0.0", @@ -8159,9 +8172,9 @@ } }, "node_modules/rollup": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", - "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -8174,19 +8187,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.10.0", - "@rollup/rollup-android-arm64": "4.10.0", - "@rollup/rollup-darwin-arm64": "4.10.0", - "@rollup/rollup-darwin-x64": "4.10.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", - "@rollup/rollup-linux-arm64-gnu": "4.10.0", - "@rollup/rollup-linux-arm64-musl": "4.10.0", - "@rollup/rollup-linux-riscv64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-musl": "4.10.0", - "@rollup/rollup-win32-arm64-msvc": "4.10.0", - "@rollup/rollup-win32-ia32-msvc": "4.10.0", - "@rollup/rollup-win32-x64-msvc": "4.10.0", + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", "fsevents": "~2.3.2" } }, @@ -8262,9 +8275,9 @@ } }, "node_modules/sass": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", - "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -8367,13 +8380,14 @@ } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8461,9 +8475,9 @@ } }, "node_modules/solid-js": { - "version": "1.8.14", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.8.14.tgz", - "integrity": "sha512-kDfgHBm+ROVLDVuqaXh/jYz0ZVJ29TYfVsKsgDPtNcjoyaPtOvDX2l0tVnthjLdEXr7vDTYeqEYFfMkZakDsOQ==", + "version": "1.8.15", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.8.15.tgz", + "integrity": "sha512-d0QP/efr3UVcwGgWVPveQQ0IHOH6iU7yUhc2piy8arNG8wxKmvUy1kFxyF8owpmfCWGB87usDKMaVnsNYZm+Vw==", "peer": true, "dependencies": { "csstype": "^3.1.0", @@ -8675,17 +8689,23 @@ } }, "node_modules/strip-literal": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", - "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.0.0.tgz", + "integrity": "sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==", "dev": true, "dependencies": { - "acorn": "^8.10.0" + "js-tokens": "^8.0.2" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", + "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==", + "dev": true + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8712,9 +8732,9 @@ } }, "node_modules/svelte": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.10.tgz", - "integrity": "sha512-Ep06yCaCdgG1Mafb/Rx8sJ1QS3RW2I2BxGp2Ui9LBHSZ2/tO/aGLc5WqPjgiAP6KAnLJGaIr/zzwQlOo1b8MxA==", + "version": "4.2.12", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz", + "integrity": "sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==", "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", @@ -9270,9 +9290,9 @@ } }, "node_modules/vite": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.1.tgz", - "integrity": "sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.4.tgz", + "integrity": "sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -9325,9 +9345,9 @@ } }, "node_modules/vite-node": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.2.tgz", - "integrity": "sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.3.1.tgz", + "integrity": "sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==", "dev": true, "dependencies": { "cac": "^6.7.14", @@ -9361,18 +9381,17 @@ } }, "node_modules/vitest": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.2.tgz", - "integrity": "sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.3.1.tgz", + "integrity": "sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==", "dev": true, "dependencies": { - "@vitest/expect": "1.2.2", - "@vitest/runner": "1.2.2", - "@vitest/snapshot": "1.2.2", - "@vitest/spy": "1.2.2", - "@vitest/utils": "1.2.2", + "@vitest/expect": "1.3.1", + "@vitest/runner": "1.3.1", + "@vitest/snapshot": "1.3.1", + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", "acorn-walk": "^8.3.2", - "cac": "^6.7.14", "chai": "^4.3.10", "debug": "^4.3.4", "execa": "^8.0.1", @@ -9381,11 +9400,11 @@ "pathe": "^1.1.1", "picocolors": "^1.0.0", "std-env": "^3.5.0", - "strip-literal": "^1.3.0", + "strip-literal": "^2.0.0", "tinybench": "^2.5.1", "tinypool": "^0.8.2", "vite": "^5.0.0", - "vite-node": "1.2.2", + "vite-node": "1.3.1", "why-is-node-running": "^2.2.2" }, "bin": { @@ -9400,8 +9419,8 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "^1.0.0", - "@vitest/ui": "^1.0.0", + "@vitest/browser": "1.3.1", + "@vitest/ui": "1.3.1", "happy-dom": "*", "jsdom": "*" }, @@ -9495,9 +9514,9 @@ } }, "node_modules/vitest/node_modules/npm-run-path": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", - "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -9866,9 +9885,9 @@ } }, "node_modules/zrender": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz", - "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.5.0.tgz", + "integrity": "sha512-O3MilSi/9mwoovx77m6ROZM7sXShR/O/JIanvzTwjN3FORfLSr81PsUGd7jlaYOeds9d8tw82oP44+3YucVo+w==", "dependencies": { "tslib": "2.3.0" } diff --git a/src/lib/layout/containerHeader.svelte b/src/lib/layout/containerHeader.svelte index 0f6bf834d..258d89c5c 100644 --- a/src/lib/layout/containerHeader.svelte +++ b/src/lib/layout/containerHeader.svelte @@ -168,7 +168,7 @@ {/if}
- + {#if buttonText} {/if} + diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index d20533a1f..14f364359 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -7,8 +7,10 @@ @@ -40,34 +47,60 @@ - + + + + {#if data.webhooks.total} - Name - POST URL - Events + {#each $columns as column} + {#if column.show} + {column.title} + {/if} + {/each} {#each data.webhooks.webhooks as webhook} - -
- {webhook.name} - {#if webhook.security === false} - SLL/TLS disabled - {/if} -
-
- {webhook.url} - {webhook.events.length} events + {#each $columns as column (column.id)} + {#if column.show} + {#if column.id === '$id'} + {#key $columns} + + {webhook.$id} + + {/key} + {:else if column.id === 'events'} + + {webhook.events.length} + + {:else if column.type === 'datetime'} + + {#if !webhook[column.id]} + - + {:else} + {toLocaleDateTime(webhook[column.id])} + {/if} + + + {:else} + + {webhook[column.id]} + + {/if} + {/if} + {/each}
{/each}
diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.ts b/src/routes/console/project-[project]/settings/webhooks/+page.ts index 10c30754e..ce78bcbfe 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.ts +++ b/src/routes/console/project-[project]/settings/webhooks/+page.ts @@ -1,11 +1,21 @@ import { Dependencies } from '$lib/constants'; +import { + View, + getPage, + getView, +} from '$lib/helpers/load'; import { sdk } from '$lib/stores/sdk'; import type { PageLoad } from './$types'; -export const load: PageLoad = async ({ params, depends }) => { +export const load: PageLoad = async ({ params, url, route, depends }) => { depends(Dependencies.WEBHOOKS); + const page = getPage(url); + const view = getView(url, route, View.Grid); + return { - webhooks: await sdk.forConsole.projects.listWebhooks(params.project) + page, + view, + webhooks: await sdk.forConsole.projects.listWebhooks(params.project) }; }; 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..0154c8b7b --- /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: 120 }, + { id: 'enabled', title: 'Enabled', type: 'string', show: true, width: 120 }, + { id: '$createdAt', title: 'Created', type: 'datetime', show: true, width: 120 }, + { id: '$updatedAt', title: 'Updated', type: 'datetime', show: true, width: 120 } +]); From 232deea662eaa1580501311e7d90bbfcb1e153ae Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Sun, 25 Feb 2024 16:57:20 -0800 Subject: [PATCH 05/84] 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 06/84] 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 07/84] 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 08/84] 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 09/84] 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 10/84] 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 11/84] 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 @@ - +

You are about to send a message to an estimated Date: Mon, 26 Feb 2024 08:21:35 -0800 Subject: [PATCH 15/84] 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 16/84] 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 @@ + + +
+
+

+

+ + +
+ +

+ 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. +

+
+ +
+
+ + + + +
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..be4d09a6e --- /dev/null +++ b/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte @@ -0,0 +1,22 @@ + + + + + + diff --git a/src/routes/console/project-[project]/settings/webhooks/store.ts b/src/routes/console/project-[project]/settings/webhooks/store.ts index 0154c8b7b..4d7bfd323 100644 --- a/src/routes/console/project-[project]/settings/webhooks/store.ts +++ b/src/routes/console/project-[project]/settings/webhooks/store.ts @@ -10,8 +10,8 @@ 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: 120 }, - { id: 'enabled', title: 'Enabled', 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 } ]); From 689df57642f5607e865fba4d726e4e60da65aa80 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 11:52:18 -0500 Subject: [PATCH 18/84] Lint updateds --- src/lib/layout/containerHeader.svelte | 3 +- .../settings/webhooks/+page.svelte | 122 ++++++++---------- .../settings/webhooks/+page.ts | 12 +- .../settings/webhooks/failedModal.svelte | 29 ++--- .../webhooks/messageStatusPill.svelte | 22 ++-- 5 files changed, 81 insertions(+), 107 deletions(-) diff --git a/src/lib/layout/containerHeader.svelte b/src/lib/layout/containerHeader.svelte index 258d89c5c..0f6bf834d 100644 --- a/src/lib/layout/containerHeader.svelte +++ b/src/lib/layout/containerHeader.svelte @@ -168,7 +168,7 @@ {/if}
- + {#if buttonText} {/if} - diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index a5ebd2c92..dbf8b2971 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -7,10 +7,7 @@ - + - + From c6ed6604a03b06d3d6198e14f0478c9660dd9442 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 08:53:38 -0800 Subject: [PATCH 19/84] refactor(messaging): update message detail cards to accept message param Rely less on global store for possibility to test in the future. --- .../messaging/message-[message]/+page.svelte | 14 ++------ .../message-[message]/overview.svelte | 33 +++++++++---------- .../message-[message]/scheduleModal.svelte | 15 ++++----- .../message-[message]/sendModal.svelte | 15 ++++----- .../message-[message]/updateTargets.svelte | 26 ++++++++------- .../message-[message]/updateTopics.svelte | 26 ++++++++------- 6 files changed, 63 insertions(+), 66 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 3c0647e5c..cf3ea176e 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} @@ -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 bc9ddf084e261b2df965c88d4613075f7dbd1b32 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 11:54:40 -0500 Subject: [PATCH 20/84] lint fixes --- .../project-[project]/settings/webhooks/failedModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index 9b282e914..21274b7e1 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -7,7 +7,7 @@ import Button from '$lib/elements/forms/button.svelte'; export let show: boolean; - export let webhook: { [key: string]: any }; + export let webhook: { [key: string]: string|number|boolean }; const projectId = $page.params.project; const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; From 91e38b32e9cd0261b766208fc144e849995aa675 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:02:05 -0500 Subject: [PATCH 21/84] Lint fixes --- .../project-[project]/settings/webhooks/failedModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index 21274b7e1..c73bb51fe 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -7,7 +7,7 @@ import Button from '$lib/elements/forms/button.svelte'; export let show: boolean; - export let webhook: { [key: string]: string|number|boolean }; + export let webhook: { [key: string]: string | number | boolean }; const projectId = $page.params.project; const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; From 1827f4642ee5a0632bac72bd7106e88643114f96 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:04:25 -0500 Subject: [PATCH 22/84] Lint fixes --- .../project-[project]/settings/webhooks/failedModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index c73bb51fe..b3ce80f03 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -7,7 +7,7 @@ import Button from '$lib/elements/forms/button.svelte'; export let show: boolean; - export let webhook: { [key: string]: string | number | boolean }; + export let webhook: { [key: string | number]: string | number | boolean }; const projectId = $page.params.project; const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; From 21e1719fbaacf0709f9f2d0d4e5b863ff34a63ca Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:09:34 -0500 Subject: [PATCH 23/84] Lint fixes --- .../project-[project]/settings/webhooks/failedModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index b3ce80f03..201517a50 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -7,7 +7,7 @@ import Button from '$lib/elements/forms/button.svelte'; export let show: boolean; - export let webhook: { [key: string | number]: string | number | boolean }; + export let webhook: { [key: string ]: any }; const projectId = $page.params.project; const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; From 3575083c89db3d4ada8e7610beb3d88dd4fab010 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:14:42 -0500 Subject: [PATCH 24/84] Fixing spacing --- .../project-[project]/settings/webhooks/failedModal.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index 201517a50..9b282e914 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -7,7 +7,7 @@ import Button from '$lib/elements/forms/button.svelte'; export let show: boolean; - export let webhook: { [key: string ]: any }; + export let webhook: { [key: string]: any }; const projectId = $page.params.project; const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; From 4410d6000fb24a7a67bb7e8ca025a48d19f56d27 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:23:21 -0500 Subject: [PATCH 25/84] Fixes imports --- .../project-[project]/settings/webhooks/failedModal.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index 9b282e914..e2238671a 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -5,9 +5,10 @@ import Code from '$lib/components/code.svelte'; import Modal from '$lib/components/modal.svelte'; import Button from '$lib/elements/forms/button.svelte'; + import {type Models} from '@appwrite.io/console'; export let show: boolean; - export let webhook: { [key: string]: any }; + export let webhook: Models.Webhook; const projectId = $page.params.project; const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; From 65daa89003459fcb7d224820a504ebd2f9af38d9 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:25:54 -0500 Subject: [PATCH 26/84] Fixes imports --- .../console/project-[project]/settings/webhooks/+page.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index dbf8b2971..b6cb4e930 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -24,6 +24,7 @@ import type { PageData } from './$types'; import { columns } from './store'; import { updateCommandGroupRanks } from '$lib/commandCenter'; + import {type Models} from '@appwrite.io/console'; import Create from './createWebhook.svelte'; import FailedModal from './failedModal.svelte'; import MessageStatusPill from './messageStatusPill.svelte'; @@ -31,7 +32,7 @@ export let data: PageData; let showFailed = false; - let selectedWebhook = {}; + let selectedWebhook:Models.Webhook function openWizard() { wizard.start(Create); From 2ed97400fea1edfff549061ac2319f74d906a576 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 12:27:36 -0500 Subject: [PATCH 27/84] Lint updates --- .../console/project-[project]/settings/webhooks/+page.svelte | 4 ++-- .../project-[project]/settings/webhooks/failedModal.svelte | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index b6cb4e930..351aaad9a 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -24,7 +24,7 @@ import type { PageData } from './$types'; import { columns } from './store'; import { updateCommandGroupRanks } from '$lib/commandCenter'; - import {type Models} from '@appwrite.io/console'; + import { type Models } from '@appwrite.io/console'; import Create from './createWebhook.svelte'; import FailedModal from './failedModal.svelte'; import MessageStatusPill from './messageStatusPill.svelte'; @@ -32,7 +32,7 @@ export let data: PageData; let showFailed = false; - let selectedWebhook:Models.Webhook + let selectedWebhook: Models.Webhook; function openWizard() { wizard.start(Create); diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index e2238671a..3bf4c27a8 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -5,7 +5,7 @@ import Code from '$lib/components/code.svelte'; import Modal from '$lib/components/modal.svelte'; import Button from '$lib/elements/forms/button.svelte'; - import {type Models} from '@appwrite.io/console'; + import { type Models } from '@appwrite.io/console'; export let show: boolean; export let webhook: Models.Webhook; From 98b16920a817ab723aebfa742d277ff7870f46c4 Mon Sep 17 00:00:00 2001 From: wess Date: Mon, 26 Feb 2024 13:34:37 -0500 Subject: [PATCH 28/84] Fixes issue where null webhook would cause failure --- .../console/project-[project]/settings/webhooks/+page.svelte | 3 --- .../project-[project]/settings/webhooks/failedModal.svelte | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/routes/console/project-[project]/settings/webhooks/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/+page.svelte index 351aaad9a..057859cb0 100644 --- a/src/routes/console/project-[project]/settings/webhooks/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/+page.svelte @@ -41,8 +41,6 @@ const projectId = $page.params.project; $: $updateCommandGroupRanks({ webhooks: 20, domains: 10 }); - - console.log(data.webhooks); @@ -101,7 +99,6 @@ link on:click={(e) => { e.preventDefault(); - console.log(webhook); selectedWebhook = webhook; showFailed = true; }}>Details diff --git a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte index 3bf4c27a8..32761aaf0 100644 --- a/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/failedModal.svelte @@ -11,7 +11,9 @@ export let webhook: Models.Webhook; const projectId = $page.params.project; - const webhookPath = `${base}/console/project-${projectId}/settings/webhooks/${webhook.$id}`; + const webhookPath = webhook + ? `${base}/console/project-${projectId}/settings/webhooks/` + (webhook['$id'] ?? '') + : ''; From 88f661149bcaba9368a997aa0df697e661b65baa Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Mon, 26 Feb 2024 11:41:07 -0800 Subject: [PATCH 29/84] 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 31/84] 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 32/84] 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 33/84] 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 34/84] 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 35/84] 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 36/84] 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 37/84] 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 38/84] 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 39/84] 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 40/84] 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 41/84] 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 c218b0b5f13ac6ec45afb13d8e28790b9d9def49 Mon Sep 17 00:00:00 2001 From: wess Date: Tue, 27 Feb 2024 10:36:24 -0500 Subject: [PATCH 42/84] Adds Webbhook enable to analytics Adds disable/enable section to webhook details --- src/lib/actions/analytics.ts | 1 + .../settings/webhooks/[webhook]/+page.svelte | 2 + .../webhooks/[webhook]/details.svelte | 92 +++++++++++++++++++ .../webhooks/messageStatusPill.svelte | 6 +- 4 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 src/routes/console/project-[project]/settings/webhooks/[webhook]/details.svelte diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index e967ec3d2..906576a49 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -245,6 +245,7 @@ export enum Submit { WebhookUpdateUrl = 'submit_webhook_update_url', WebhookUpdateEvents = 'submit_webhook_update_events', WebhookUpdateName = 'submit_webhook_update_name', + WebhookUpdateEnabled = 'submit_webhook_update_enabled', WebhookUpdateSecurity = 'submit_webhook_update_security', BucketCreate = 'submit_bucket_create', BucketDelete = 'submit_bucket_delete', diff --git a/src/routes/console/project-[project]/settings/webhooks/[webhook]/+page.svelte b/src/routes/console/project-[project]/settings/webhooks/[webhook]/+page.svelte index ab3bd3c63..329aa82df 100644 --- a/src/routes/console/project-[project]/settings/webhooks/[webhook]/+page.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/[webhook]/+page.svelte @@ -6,9 +6,11 @@ import UpdateSecurity from './updateSecurity.svelte'; import UpdateSignature from './updateSignature.svelte'; import UpdateUrl from './updateURL.svelte'; + import Details from './details.svelte'; +
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..74d50a026 --- /dev/null +++ b/src/routes/console/project-[project]/settings/webhooks/[webhook]/details.svelte @@ -0,0 +1,92 @@ + + + + {$webhook.url} + + +
+
    + + + +
  • Created: {toLocaleDateTime($webhook.$createdAt)}
  • +
  • Last updated: {toLocaleDateTime($webhook.$updatedAt)}
  • +
+ +
+
+ + + +
+ + +
+
+ +
+ + + + + diff --git a/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte b/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte index 3b4fafae6..68dbf385a 100644 --- a/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte +++ b/src/routes/console/project-[project]/settings/webhooks/messageStatusPill.svelte @@ -3,13 +3,13 @@ export let enabled: boolean; - const style = `color: ${enabled ? 'hsl(var(--color-success-100))' : 'hsl(var(--color-danger-100))'}`; - const iconClass = enabled ? 'icon-check-circle' : 'icon-exclamation-circle'; + $:style = `color: ${enabled ? 'hsl(var(--color-success-100))' : 'hsl(var(--color-danger-100))'}`; + $:iconClass = (enabled ? 'icon-check-circle' : 'icon-exclamation-circle') + ' u-font-size-12'; -
-
- -
+ {#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 45/84] 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 46/84] 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 47/84] 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 48/84] 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 49/84] 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 @@ From 513c5bfc1bb9f553900db8bade7270fa1de23a52 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 20:17:47 -0800 Subject: [PATCH 76/84] feat(messaging): move topic pages Show subscribers first as that's probably the most useful/important thing for developers. Move/rename details to settings to match other pages. --- .../topics/topic-[topic]/+page.svelte | 171 +++++++++++++++++- .../topic-[topic]/{subscribers => }/+page.ts | 0 .../topics/topic-[topic]/header.svelte | 10 +- .../topic-[topic]/settings/+page.svelte | 14 ++ .../{ => settings}/dangerZone.svelte | 22 +-- .../{ => settings}/details.svelte | 2 +- .../{ => settings}/updateName.svelte | 2 +- .../{ => settings}/updatePermissions.svelte | 2 +- .../messaging/topics/topic-[topic]/store.ts | 11 +- .../topic-[topic]/subscribers/+page.svelte | 169 ----------------- .../topics/topic-[topic]/subscribers/store.ts | 11 -- .../{subscribers => }/table.svelte | 4 +- 12 files changed, 203 insertions(+), 215 deletions(-) rename src/routes/console/project-[project]/messaging/topics/topic-[topic]/{subscribers => }/+page.ts (100%) create mode 100644 src/routes/console/project-[project]/messaging/topics/topic-[topic]/settings/+page.svelte rename src/routes/console/project-[project]/messaging/topics/topic-[topic]/{ => settings}/dangerZone.svelte (54%) rename src/routes/console/project-[project]/messaging/topics/topic-[topic]/{ => settings}/details.svelte (92%) rename src/routes/console/project-[project]/messaging/topics/topic-[topic]/{ => settings}/updateName.svelte (97%) rename src/routes/console/project-[project]/messaging/topics/topic-[topic]/{ => settings}/updatePermissions.svelte (98%) delete mode 100644 src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/+page.svelte delete mode 100644 src/routes/console/project-[project]/messaging/topics/topic-[topic]/subscribers/store.ts rename src/routes/console/project-[project]/messaging/topics/topic-[topic]/{subscribers => }/table.svelte (98%) diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte index 8c5837596..cf086e081 100644 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte @@ -1,14 +1,169 @@ -
    - - - +
    +
    + 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]/store.ts b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/store.ts index dec5bf146..29c6212f5 100644 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/store.ts +++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/store.ts @@ -1,6 +1,7 @@ -import { derived } from 'svelte/store'; +import { derived, writable } from 'svelte/store'; import { page } from '$app/stores'; import type { Models } from '@appwrite.io/console'; +import type { Column } from '$lib/helpers/types'; export const topic = derived( page, @@ -11,3 +12,11 @@ export const topicTotal = derived( topic, ($topic) => $topic.emailTotal + $topic.smsTotal + $topic.pushTotal ); +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 } +]); \ No newline at end of file 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 -
    - -
    -
    - - -
    - - - -
    -
    -
    -
    - - -
    -
    - - -
    -
    -
    - {#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/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 98% 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..56ccf7cec 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 @@ -19,12 +19,12 @@ 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'; export let data: PageData; From d8a30856f1dcda74984d06844efc757b5b18f3cc Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 20:26:23 -0800 Subject: [PATCH 77/84] fix(messaging): localize the subscribers columns When it was global, the state (show values) would persist when switching between different projects rather than resetting back to the default. --- .../messaging/topics/topic-[topic]/+page.svelte | 13 +++++++++++-- .../messaging/topics/topic-[topic]/store.ts | 11 +---------- .../messaging/topics/topic-[topic]/table.svelte | 9 +++++---- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte index cf086e081..7b977d1ee 100644 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/+page.svelte @@ -23,12 +23,21 @@ import UserTargetsModal from '../../userTargetsModal.svelte'; import { onMount } from 'svelte'; import { Filters, hasPageQueries } from '$lib/components/filters'; - import { columns } from './store'; import { View } from '$lib/helpers/load'; + import { writable } from 'svelte/store'; + import type { Column } from '$lib/helpers/types'; export let data: PageData; let showAdd = false; let subscribersByTargetId: Record = {}; + 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 } + ]); onMount(() => { $targetsById = {}; @@ -121,7 +130,7 @@ {#if data.subscribers.total} -
    +
    $topic.emailTotal + $topic.smsTotal + $topic.pushTotal ); -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 } -]); \ No newline at end of file diff --git a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte index 56ccf7cec..e469b7991 100644 --- a/src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte +++ b/src/routes/console/project-[project]/messaging/topics/topic-[topic]/table.svelte @@ -18,7 +18,6 @@ } 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 { toLocaleDateTime } from '$lib/helpers/date'; import { project } from '$routes/console/project-[project]/store'; @@ -26,7 +25,9 @@ import { page } from '$app/stores'; 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} From 86af600143f06c941348edbe2e893282e4694853 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 20:37:01 -0800 Subject: [PATCH 78/84] fix(components): only override columns if prefs found Before this, it didn't matter if a column had show = false as it would default to be show if preferences weren't found. --- src/lib/components/viewSelector.svelte | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lib/components/viewSelector.svelte b/src/lib/components/viewSelector.svelte index 0ece86889..4aeb21dd7 100644 --- a/src/lib/components/viewSelector.svelte +++ b/src/lib/components/viewSelector.svelte @@ -31,12 +31,15 @@ } else { const prefs = preferences.get($page.route); - columns.set( - $columns.map((column) => { - column.show = prefs.columns?.includes(column.id) ?? true; - return column; - }) - ); + // Override the shown columns only if a preference was set + if (prefs?.columns) { + columns.set( + $columns.map((column) => { + column.show = prefs.columns?.includes(column.id) ?? true; + return column; + }) + ); + } } columns.subscribe((ctx) => { From 6991e5bf32a3ca7fcc77c8e3cccf63a8c736d8cb Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 20:46:22 -0800 Subject: [PATCH 79/84] fix(messaging): localize the topics columns When it was global, the state (show values) would persist when switching between different projects rather than resetting back to the default. --- .../messaging/topics/+page.svelte | 23 +++++++++++++++++-- .../messaging/topics/store.ts | 11 --------- .../messaging/topics/table.svelte | 9 ++++---- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/topics/+page.svelte b/src/routes/console/project-[project]/messaging/topics/+page.svelte index 4cd0959c8..118d31a46 100644 --- a/src/routes/console/project-[project]/messaging/topics/+page.svelte +++ b/src/routes/console/project-[project]/messaging/topics/+page.svelte @@ -16,14 +16,33 @@ import { base } from '$app/paths'; import type { Models } from '@appwrite.io/console'; import type { PageData } from './$types'; - import { columns, showCreate } from './store'; + import { showCreate } from './store'; import { View } from '$lib/helpers/load'; import { Filters, hasPageQueries } from '$lib/components/filters'; import Table from './table.svelte'; + import type { Column } from '$lib/helpers/types'; + import { writable } from 'svelte/store'; export let data: PageData; const project = $page.params.project; + const columns = writable([ + { id: '$id', title: 'Topic ID', type: 'string', show: true, width: 140 }, + { id: 'name', title: 'Name', type: 'string', show: true, width: 140 }, + { id: 'emailTotal', title: 'Email Subscribers', type: 'integer', show: false, width: 140 }, + { id: 'smsTotal', title: 'SMS Subscribers', type: 'integer', show: false, width: 140 }, + { id: 'pushTotal', title: 'Push Subscribers', type: 'integer', show: false, width: 140 }, + { + id: 'total', + title: 'Subscribers', + type: 'integer', + show: true, + filter: false, + width: 140 + }, + { id: '$createdAt', title: 'Created', type: 'datetime', show: true, width: 140 } + ]); + const topicCreated = async (event: CustomEvent>>) => { await goto(`${base}/console/project-${project}/messaging/topics/topic-${event.detail.$id}`); }; @@ -73,7 +92,7 @@ {#if data.topics.total} -
    +
    ([ - { id: '$id', title: 'Topic ID', type: 'string', show: true, width: 140 }, - { id: 'name', title: 'Name', type: 'string', show: true, width: 140 }, - { id: 'emailTotal', title: 'Email Subscribers', type: 'integer', show: false, width: 140 }, - { id: 'smsTotal', title: 'SMS Subscribers', type: 'integer', show: false, width: 140 }, - { id: 'pushTotal', title: 'Push Subscribers', type: 'integer', show: false, width: 140 }, - { id: 'total', title: 'Subscribers', type: 'integer', show: true, filter: false, width: 140 }, - { id: '$createdAt', title: 'Created', type: 'datetime', show: true, width: 140 } -]); diff --git a/src/routes/console/project-[project]/messaging/topics/table.svelte b/src/routes/console/project-[project]/messaging/topics/table.svelte index 8e611a83b..9ffc0b2eb 100644 --- a/src/routes/console/project-[project]/messaging/topics/table.svelte +++ b/src/routes/console/project-[project]/messaging/topics/table.svelte @@ -16,13 +16,14 @@ } from '$lib/elements/table'; import { addNotification } from '$lib/stores/notifications'; import type { PageData } from './$types'; - import { columns } from './store'; import { project } from '$routes/console/project-[project]/store'; import { invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { sdk } from '$lib/stores/sdk'; import { toLocaleDateTime } from '$lib/helpers/date'; + import type { Column } from '$lib/helpers/types'; + export let columns: Column[]; export let data: PageData; let selectedIds: string[] = []; @@ -62,7 +63,7 @@ d.$id)} /> - {#each $columns as column} + {#each columns as column} {#if column.show} {column.title} {/if} @@ -74,10 +75,10 @@ href={`${base}/console/project-${$project.$id}/messaging/topics/topic-${topic.$id}`}> - {#each $columns as column (column.id)} + {#each columns as column (column.id)} {#if column.show} {#if column.id === '$id'} - {#key $columns} + {#key column.id} {topic.$id} From 2c8acf343097b8342a15fda8794ad3f6b9361eb3 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 20:49:10 -0800 Subject: [PATCH 80/84] fix(messaging): localize the messages columns When it was global, the state (show values) would persist when switching between different projects rather than resetting back to the default. --- .../console/project-[project]/messaging/+page.svelte | 12 +++++++++++- .../console/project-[project]/messaging/store.ts | 10 ---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/routes/console/project-[project]/messaging/+page.svelte b/src/routes/console/project-[project]/messaging/+page.svelte index e27bd3f07..ea367ea75 100644 --- a/src/routes/console/project-[project]/messaging/+page.svelte +++ b/src/routes/console/project-[project]/messaging/+page.svelte @@ -34,12 +34,14 @@ import FailedModal from './failedModal.svelte'; import MessageStatusPill from './messageStatusPill.svelte'; import ProviderType from './providerType.svelte'; - import { columns, showCreate } from './store'; + import { showCreate } from './store'; import { sdk } from '$lib/stores/sdk'; import { invalidate } from '$app/navigation'; import { trackEvent, Submit, trackError } from '$lib/actions/analytics'; import { Dependencies } from '$lib/constants'; import { addNotification } from '$lib/stores/notifications'; + import type { Column } from '$lib/helpers/types'; + import { writable } from 'svelte/store'; export let data: PageData; let selected: string[] = []; @@ -50,6 +52,14 @@ let showCreateDropdownMobile = false; let showCreateDropdownDesktop = false; let showCreateDropdownEmpty = false; + const columns = writable([ + { id: '$id', title: 'Message ID', type: 'string', show: true, width: 140 }, + { id: 'message', title: 'Message', type: 'string', show: false, filter: false, width: 140 }, + { id: 'providerType', title: 'Type', type: 'string', show: true, width: 100 }, + { id: 'status', title: 'Status', type: 'string', show: true, width: 120 }, + { id: 'scheduledAt', title: 'Scheduled at', type: 'datetime', show: true, width: 120 }, + { id: 'deliveredAt', title: 'Delivered at', type: 'datetime', show: false, width: 120 } + ]); const project = $page.params.project; diff --git a/src/routes/console/project-[project]/messaging/store.ts b/src/routes/console/project-[project]/messaging/store.ts index bf214f6c3..cdd4bffdc 100644 --- a/src/routes/console/project-[project]/messaging/store.ts +++ b/src/routes/console/project-[project]/messaging/store.ts @@ -1,17 +1,7 @@ -import type { Column } from '$lib/helpers/types'; import type { Models } from '@appwrite.io/console'; import { writable } from 'svelte/store'; export const showCreate = writable(false); -export const columns = writable([ - { id: '$id', title: 'Message ID', type: 'string', show: true, width: 140 }, - { id: 'message', title: 'Message', type: 'string', show: false, filter: false, width: 140 }, - { id: 'providerType', title: 'Type', type: 'string', show: true, width: 100 }, - { id: 'status', title: 'Status', type: 'string', show: true, width: 120 }, - { id: 'scheduledAt', title: 'Scheduled at', type: 'datetime', show: true, width: 120 }, - { id: 'deliveredAt', title: 'Delivered at', type: 'datetime', show: false, width: 120 } -]); - export const targetsById = writable>({}); export const topicsById = writable>({}); From 6f264cf7812febb2c710314d48818159e11276a1 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 21:01:14 -0800 Subject: [PATCH 81/84] fix(messaging): provider details design fixes - rename channel label to type for consistency - add spacing below Enabled/Disabled switch --- .../provider-[provider]/updateStatus.svelte | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 6e62a27fc..adb34d307 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 @@ -134,16 +134,20 @@
    -
    +
    -

    Provider:

    -

    Channel:

    -

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

    +
    +

    + Provider: +

    +

    Type:

    +

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

    +
    From 750a839336d3ae5a47dc603deb32deefaca08188 Mon Sep 17 00:00:00 2001 From: Steven Nguyen Date: Thu, 29 Feb 2024 21:34:01 -0800 Subject: [PATCH 82/84] feat(messaging): validate before moving to the next message wizard step --- .../messaging/wizard/emailFormList.svelte | 3 ++- .../messaging/wizard/pushFormList.svelte | 2 ++ .../project-[project]/messaging/wizard/smsFormList.svelte | 3 ++- .../project-[project]/messaging/wizard/step2.svelte | 8 +++++++- 4 files changed, 13 insertions(+), 3 deletions(-) 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. From 0df541c80042c6915bb17e95d01376130eec6d98 Mon Sep 17 00:00:00 2001 From: Arman Date: Fri, 1 Mar 2024 11:55:59 +0100 Subject: [PATCH 83/84] fix: messaging page container header mobile view --- src/lib/components/drop.svelte | 2 + src/lib/components/dropList.svelte | 12 ++++- src/lib/components/filters/filters.svelte | 3 +- src/lib/components/searchQuery.svelte | 3 +- src/lib/components/viewSelector.svelte | 8 +++- .../project-[project]/messaging/+page.svelte | 47 +++++++++---------- 6 files changed, 44 insertions(+), 31 deletions(-) diff --git a/src/lib/components/drop.svelte b/src/lib/components/drop.svelte index f61ff6a24..a1c222e08 100644 --- a/src/lib/components/drop.svelte +++ b/src/lib/components/drop.svelte @@ -12,6 +12,7 @@ export let childStart = false; export let noStyle = false; export let fullWidth = false; + export let wrapperFullWidth = false; export let fixed = false; export let display = 'block'; @@ -104,6 +105,7 @@
    diff --git a/src/lib/components/dropList.svelte b/src/lib/components/dropList.svelte index dd8271f1d..c6ad97dd1 100644 --- a/src/lib/components/dropList.svelte +++ b/src/lib/components/dropList.svelte @@ -11,10 +11,20 @@ export let noStyle = false; export let width: string = null; export let fullWidth = false; + export let wrapperFullWidth = false; export let position: 'relative' | 'static' = 'relative'; - +
    ; + export let fullWidthMobile = false; const parsedQueries = queryParamToMap(query); queries.set(parsedQueries); @@ -55,7 +56,7 @@
    -