diff --git a/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.json b/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.json index 7f60faf0..5464d199 100644 --- a/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.json +++ b/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.json @@ -10,6 +10,7 @@ "access_token", "column_break_lwcw", "last_synced_at", + "enabled", "facebook_tab", "facebook_page", "column_break_uxlr", @@ -60,12 +61,18 @@ "label": "Facebook Lead Form", "options": "Facebook Lead Form", "unique": 1 + }, + { + "default": "1", + "fieldname": "enabled", + "fieldtype": "Check", + "label": "Enabled?" } ], "grid_page_length": 50, "index_web_pages_for_search": 1, "links": [], - "modified": "2025-09-29 19:03:14.804026", + "modified": "2025-09-29 19:54:24.841414", "modified_by": "Administrator", "module": "Lead Syncing", "name": "Lead Sync Source", diff --git a/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.py b/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.py index f13a1976..44dfb99a 100644 --- a/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.py +++ b/crm/lead_syncing/doctype/lead_sync_source/lead_sync_source.py @@ -26,6 +26,7 @@ class LeadSyncSource(Document): from frappe.types import DF access_token: DF.SmallText | None + enabled: DF.Check facebook_lead_form: DF.Link | None facebook_page: DF.Link | None last_synced_at: DF.Datetime | None diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 0e89df20..6d3dc1da 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -103,6 +103,7 @@ declare module 'vue' { DurationIcon: typeof import('./src/components/Icons/DurationIcon.vue')['default'] EditEmailTemplate: typeof import('./src/components/Settings/EmailTemplate/EditEmailTemplate.vue')['default'] EditIcon: typeof import('./src/components/Icons/EditIcon.vue')['default'] + EditLeadSyncSource: typeof import('./src/components/Settings/LeadSyncing/EditLeadSyncSource.vue')['default'] EditValueModal: typeof import('./src/components/Modals/EditValueModal.vue')['default'] Email2Icon: typeof import('./src/components/Icons/Email2Icon.vue')['default'] EmailAccountCard: typeof import('./src/components/Settings/EmailAccountCard.vue')['default'] @@ -178,6 +179,9 @@ declare module 'vue' { LeadModal: typeof import('./src/components/Modals/LeadModal.vue')['default'] LeadsIcon: typeof import('./src/components/Icons/LeadsIcon.vue')['default'] LeadsListView: typeof import('./src/components/ListViews/LeadsListView.vue')['default'] + LeadSyncSettings: typeof import('./src/components/Settings/LeadSyncing/LeadSyncSettings.vue')['default'] + LeadSyncSourcePage: typeof import('./src/components/Settings/LeadSyncing/LeadSyncSourcePage.vue')['default'] + LeadSyncSources: typeof import('./src/components/Settings/LeadSyncing/LeadSyncSources.vue')['default'] LightningIcon: typeof import('./src/components/Icons/LightningIcon.vue')['default'] Link: typeof import('./src/components/Controls/Link.vue')['default'] LinkedDocsListView: typeof import('./src/components/ListViews/LinkedDocsListView.vue')['default'] @@ -205,6 +209,7 @@ declare module 'vue' { MultipleAvatar: typeof import('./src/components/MultipleAvatar.vue')['default'] MuteIcon: typeof import('./src/components/Icons/MuteIcon.vue')['default'] NewEmailTemplate: typeof import('./src/components/Settings/EmailTemplate/NewEmailTemplate.vue')['default'] + NewLeadSyncSource: typeof import('./src/components/Settings/LeadSyncing/NewLeadSyncSource.vue')['default'] NoteArea: typeof import('./src/components/Activities/NoteArea.vue')['default'] NoteIcon: typeof import('./src/components/Icons/NoteIcon.vue')['default'] NoteModal: typeof import('./src/components/Modals/NoteModal.vue')['default'] diff --git a/frontend/src/components/Settings/LeadSyncing/EditLeadSyncSource.vue b/frontend/src/components/Settings/LeadSyncing/EditLeadSyncSource.vue new file mode 100644 index 00000000..41a40c8d --- /dev/null +++ b/frontend/src/components/Settings/LeadSyncing/EditLeadSyncSource.vue @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/components/Settings/LeadSyncing/LeadSyncSourcePage.vue b/frontend/src/components/Settings/LeadSyncing/LeadSyncSourcePage.vue new file mode 100644 index 00000000..cead8bb4 --- /dev/null +++ b/frontend/src/components/Settings/LeadSyncing/LeadSyncSourcePage.vue @@ -0,0 +1,50 @@ + + + \ No newline at end of file diff --git a/frontend/src/components/Settings/LeadSyncing/LeadSyncSources.vue b/frontend/src/components/Settings/LeadSyncing/LeadSyncSources.vue new file mode 100644 index 00000000..e9df0e36 --- /dev/null +++ b/frontend/src/components/Settings/LeadSyncing/LeadSyncSources.vue @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/frontend/src/components/Settings/LeadSyncing/NewLeadSyncSource.vue b/frontend/src/components/Settings/LeadSyncing/NewLeadSyncSource.vue new file mode 100644 index 00000000..41a40c8d --- /dev/null +++ b/frontend/src/components/Settings/LeadSyncing/NewLeadSyncSource.vue @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/components/Settings/Settings.vue b/frontend/src/components/Settings/Settings.vue index 22e56200..5217ab8c 100644 --- a/frontend/src/components/Settings/Settings.vue +++ b/frontend/src/components/Settings/Settings.vue @@ -60,6 +60,7 @@ import ProfileSettings from '@/components/Settings/ProfileSettings.vue' import WhatsAppSettings from '@/components/Settings/WhatsAppSettings.vue' import ERPNextSettings from '@/components/Settings/ERPNextSettings.vue' import HelpdeskSettings from '@/components/Settings/HelpdeskSettings.vue' +import LeadSyncSourcePage from '@/components/Settings/LeadSyncing/LeadSyncSourcePage.vue' import BrandSettings from '@/components/Settings/BrandSettings.vue' import HomeActions from '@/components/Settings/HomeActions.vue' import ForecastingSettings from '@/components/Settings/ForecastingSettings.vue' @@ -204,6 +205,12 @@ const tabs = computed(() => { component: markRaw(HelpdeskSettings), condition: () => isManager(), }, + { + label: __('Lead Syncing'), + icon: 'refresh-cw', + component: markRaw(LeadSyncSourcePage), + condition: () => isManager(), + }, ], condition: () => isManager() || isTelephonyAgent(), },