diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts
index 49b8fdada..11f965d00 100644
--- a/src/lib/actions/analytics.ts
+++ b/src/lib/actions/analytics.ts
@@ -221,5 +221,16 @@ export enum Submit {
BucketUpdateExtensions = 'submit_bucket_update_extensions',
FileCreate = 'submit_file_create',
FileDelete = 'submit_file_delete',
- FileUpdatePermissions = 'submit_file_update_permissions'
+ FileUpdatePermissions = 'submit_file_update_permissions',
+ EmailChangeLocale = 'submit_email_change_locale',
+ EmailResetTemplate = 'submit_email_reset_template',
+ EmailUpdateInviteTemplate = 'submit_email_update_invite_template',
+ EmailUpdateMagicUrlTemplate = 'submit_email_update_magic_url_template',
+ EmailUpdateRecoveryTemplate = 'submit_email_update_recovery_template',
+ EmailUpdateVerificationTemplate = 'submit_email_update_verification_template',
+ SmsChangeLocale = 'submit_sms_change_locale',
+ SmsResetTemplate = 'submit_sms_reset_template',
+ SmsUpdateInviteTemplate = 'submit_sms_update_invite_template',
+ SmsUpdateLoginTemplate = 'submit_sms_update_login_template',
+ SmsUpdateVerificationTemplate = 'submit_sms_update_verification_template'
}
diff --git a/src/routes/console/project-[project]/auth/templates/+page.svelte b/src/routes/console/project-[project]/auth/templates/+page.svelte
index 2e8ff0eb2..61a5de7ef 100644
--- a/src/routes/console/project-[project]/auth/templates/+page.svelte
+++ b/src/routes/console/project-[project]/auth/templates/+page.svelte
@@ -38,7 +38,7 @@
import EmailInviteTemplate from './emailInviteTemplate.svelte';
import SmsVerificationTemplate from './smsVerificationTemplate.svelte';
import SmsLoginTemplate from './smsLoginTemplate.svelte';
- import { baseEmailTemplate, baseSmsTemplate, emailTemplate, smsTemplate } from './strote';
+ import { baseEmailTemplate, baseSmsTemplate, emailTemplate, smsTemplate } from './store';
import { Button } from '$lib/elements/forms';
export let data: PageData;
@@ -91,7 +91,7 @@
{
name: 'Add SMTP server',
method: () => {
- goto(base + '/console/project-' + $project.$id + '/settings/smtp');
+ goto(`${base}/console/project-${$project.$id}/settings/smtp`);
}
}
]}>
@@ -165,7 +165,7 @@
-
diff --git a/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte
index 662cdaf4a..ece738a44 100644
--- a/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte
+++ b/src/routes/console/project-[project]/auth/templates/emailInviteTemplate.svelte
@@ -4,9 +4,10 @@
import type { Models } from '@appwrite.io/console';
import { loadEmailTemplate } from './+page.svelte';
import { page } from '$app/stores';
- import { baseEmailTemplate, emailTemplate } from './strote';
+ import { baseEmailTemplate, emailTemplate } from './store';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
+ import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'invitation', locale);
- clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
+ trackEvent(Submit.EmailChangeLocale, { locale, type: 'invitation' });
} catch (error) {
- clearTimeout(timeout);
+ trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
+ clearTimeout(timeout);
loading = false;
}
}
diff --git a/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte
index 0ebbc6b89..0170381bb 100644
--- a/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte
+++ b/src/routes/console/project-[project]/auth/templates/emailMagicUrlTemplate.svelte
@@ -3,10 +3,11 @@
import EmailTemplate from './emailTemplate.svelte';
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
- import { baseEmailTemplate, emailTemplate } from './strote';
+ import { baseEmailTemplate, emailTemplate } from './store';
import { page } from '$app/stores';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
+ import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
const projectId = $page.params.project;
@@ -20,16 +21,18 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'magicSession', locale);
- clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
+ trackEvent(Submit.EmailChangeLocale, { locale, type: 'magicSession' });
} catch (error) {
- clearTimeout(timeout);
+ trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
+ clearTimeout(timeout);
+
loading = false;
}
}
diff --git a/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte
index 1f49ad7d2..52300e899 100644
--- a/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte
+++ b/src/routes/console/project-[project]/auth/templates/emailRecoveryTemplate.svelte
@@ -2,11 +2,12 @@
import EmailTemplate from './emailTemplate.svelte';
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
- import { baseEmailTemplate, emailTemplate } from './strote';
+ import { baseEmailTemplate, emailTemplate } from './store';
import { loadEmailTemplate } from './+page.svelte';
import { page } from '$app/stores';
import { addNotification } from '$lib/stores/notifications';
import { Id } from '$lib/components';
+ import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
const projectId = $page.params.project;
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'recovery', locale);
- clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
+ trackEvent(Submit.EmailChangeLocale, { locale, type: 'recovery' });
} catch (error) {
- clearTimeout(timeout);
+ trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
+ clearTimeout(timeout);
loading = false;
}
}
diff --git a/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte
index 248b71523..403719755 100644
--- a/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte
+++ b/src/routes/console/project-[project]/auth/templates/emailTemplate.svelte
@@ -11,12 +11,15 @@
import { sdk } from '$lib/stores/sdk';
import { project } from '../../store';
import ResetEmail from './resetEmail.svelte';
- import { baseEmailTemplate, emailTemplate } from './strote';
+ import { baseEmailTemplate, emailTemplate } from './store';
import { deepEqual } from '$lib/helpers/object';
+ import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let loading = false;
let openResetModal = false;
+ let eventType = Submit.EmailUpdateInviteTemplate;
+
async function saveEmailTemplate() {
if (!$emailTemplate.locale) {
addNotification({
@@ -26,6 +29,20 @@
return;
}
try {
+ switch ($emailTemplate.type) {
+ case 'invitation':
+ eventType = Submit.EmailUpdateInviteTemplate;
+ break;
+ case 'magicSession':
+ eventType = Submit.EmailUpdateMagicUrlTemplate;
+ break;
+ case 'recovery':
+ eventType = Submit.EmailUpdateRecoveryTemplate;
+ break;
+ case 'verification':
+ eventType = Submit.EmailUpdateVerificationTemplate;
+ break;
+ }
await sdk.forConsole.projects.updateEmailTemplate(
$project.$id,
$emailTemplate.type,
@@ -40,11 +57,16 @@
$baseEmailTemplate = {
...$emailTemplate
};
+
addNotification({
type: 'success',
message: `Email ${$emailTemplate.type} template for ${$emailTemplate.locale} updated`
});
+ trackEvent(eventType, {
+ locale: $emailTemplate.locale
+ });
} catch (e) {
+ trackError(e, eventType);
addNotification({
type: 'error',
message: e.message
diff --git a/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte b/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte
index e09ec654b..ccc85aa37 100644
--- a/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte
+++ b/src/routes/console/project-[project]/auth/templates/emailVerificationTemplate.svelte
@@ -3,10 +3,11 @@
import LocaleOptions from './localeOptions.svelte';
import type { Models } from '@appwrite.io/console';
import { loadEmailTemplate } from './+page.svelte';
- import { baseEmailTemplate, emailTemplate } from './strote';
+ import { baseEmailTemplate, emailTemplate } from './store';
import { page } from '$app/stores';
import { Id } from '$lib/components';
import { addNotification } from '$lib/stores/notifications';
+ import { Submit, trackError, trackEvent } from '$lib/actions/analytics';
export let localeCodes: Models.LocaleCode[];
const projectId = $page.params.project;
@@ -20,16 +21,17 @@
}, 1000);
try {
const template = await loadEmailTemplate(projectId, 'verification', locale);
- clearTimeout(timeout);
emailTemplate.set(template);
$baseEmailTemplate = { ...$emailTemplate };
+ trackEvent(Submit.EmailChangeLocale, { locale, type: 'verification' });
} catch (error) {
- clearTimeout(timeout);
+ trackError(error, Submit.EmailChangeLocale);
addNotification({
type: 'error',
message: error.message
});
} finally {
+ clearTimeout(timeout);
loading = false;
}
}
diff --git a/src/routes/console/project-[project]/auth/templates/resetEmail.svelte b/src/routes/console/project-[project]/auth/templates/resetEmail.svelte
index e14308c56..4e09434a6 100644
--- a/src/routes/console/project-[project]/auth/templates/resetEmail.svelte
+++ b/src/routes/console/project-[project]/auth/templates/resetEmail.svelte
@@ -1,10 +1,11 @@