From 1716717536850a1403cb5ec3b87cc0fa28d71fad Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Thu, 30 Jan 2025 01:49:40 +0530 Subject: [PATCH] fix: general fixes to email notification form --- .../notification/NotificationSetting.vue | 1 + .../notification/NotificationSettingForm.vue | 344 +++++++++--------- .../admin/notification/formSchema.js | 31 +- 3 files changed, 197 insertions(+), 179 deletions(-) diff --git a/frontend/src/components/admin/notification/NotificationSetting.vue b/frontend/src/components/admin/notification/NotificationSetting.vue index b3907e48..022762fe 100644 --- a/frontend/src/components/admin/notification/NotificationSetting.vue +++ b/frontend/src/components/admin/notification/NotificationSetting.vue @@ -63,6 +63,7 @@ const submitForm = async (values) => { title: 'Success', description: 'Settings updated successfully' }) + await getNotificationSettings() } catch (error) { emitter.emit(EMITTER_EVENTS.SHOW_TOAST, { title: 'Error', diff --git a/frontend/src/components/admin/notification/NotificationSettingForm.vue b/frontend/src/components/admin/notification/NotificationSettingForm.vue index f401c52f..f3aed12d 100644 --- a/frontend/src/components/admin/notification/NotificationSettingForm.vue +++ b/frontend/src/components/admin/notification/NotificationSettingForm.vue @@ -1,145 +1,153 @@ \ No newline at end of file + diff --git a/frontend/src/components/admin/notification/formSchema.js b/frontend/src/components/admin/notification/formSchema.js index d06c2bba..160969ac 100644 --- a/frontend/src/components/admin/notification/formSchema.js +++ b/frontend/src/components/admin/notification/formSchema.js @@ -3,11 +3,16 @@ import { isGoDuration } from '@/utils/strings'; export const smtpConfigSchema = z.object({ enabled: z.boolean().describe('Enabled status').default(false), - username: z.string().describe('SMTP username').email(), - host: z.string().describe('SMTP host').default('smtp.gmail.com'), + username: z.string().describe('SMTP username').email().nonempty({ + message: "SMTP username is required" + }), + host: z.string().describe('SMTP host').nonempty({ + message: "SMTP host is required" + }), port: z .number({ - invalid_type_error: 'Port must be a number.' + invalid_type_error: 'Port must be a number.', + required_error: 'Port is required.' }) .min(1, { message: 'Port must be at least 1.' @@ -17,16 +22,18 @@ export const smtpConfigSchema = z.object({ }) .describe('SMTP port') .default(587), - password: z.string().describe('SMTP password').default(''), + password: z.string().describe('SMTP password').nonempty({ + message: "SMTP password is required" + }), max_conns: z .number({ - invalid_type_error: 'Must be a number.' + invalid_type_error: 'Must be a number.', + required_error: 'Maximum connections is required.' }) .min(1, { message: 'Maximum connections must be at least 1.' }) - .describe('Maximum concurrent connections') - .default(2), + .describe('Maximum concurrent connections'), idle_timeout: z .string() .describe('Idle timeout duration') @@ -43,12 +50,14 @@ export const smtpConfigSchema = z.object({ .default('5s'), auth_protocol: z .enum(['plain', 'login', 'cram', 'none']) - .describe('Authentication protocol') - .default('plain'), - email_address: z.string().describe('Email address'), + .describe('Authentication protocol'), + email_address: z.string().describe('Email address').email().nonempty({ + message: "Email address is required" + }), max_msg_retries: z .number({ - invalid_type_error: 'Must be a number.' + invalid_type_error: 'Must be a number.', + required_error: 'Maximum message retries is required.' }) .min(0, { message: 'Max message retries must be at least 0.'