diff --git a/app/javascript/dashboard/components-next/captain/campaign/CampaignPlayground.vue b/app/javascript/dashboard/components-next/captain/campaign/CampaignPlayground.vue new file mode 100644 index 000000000..c013077f0 --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/campaign/CampaignPlayground.vue @@ -0,0 +1,115 @@ + + + diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/campaign/EditCampaignForm.vue b/app/javascript/dashboard/components-next/captain/pageComponents/campaign/EditCampaignForm.vue new file mode 100644 index 000000000..6909b27ac --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/campaign/EditCampaignForm.vue @@ -0,0 +1,328 @@ + + + diff --git a/app/javascript/dashboard/i18n/locale/en/campaign.json b/app/javascript/dashboard/i18n/locale/en/campaign.json index 10366e79e..09502b4ec 100644 --- a/app/javascript/dashboard/i18n/locale/en/campaign.json +++ b/app/javascript/dashboard/i18n/locale/en/campaign.json @@ -201,6 +201,61 @@ } } }, + "EDIT": { + "SUCCESS_MESSAGE": "Campaign updated successfully", + "ERROR_MESSAGE": "There was an error. Please try again.", + "NOT_FOUND": "Campaign not found" + }, + "FORM": { + "SECTIONS": { + "BASIC_DETAILS": "Basic Details", + "SELECT_TEMPLATE": "Select Template", + "SELECT_AUDIENCE": "Select Audience", + "SCHEDULE_TEMPLATE": "Schedule Template" + }, + "TITLE": { + "LABEL": "Campaign Title", + "PLACEHOLDER": "Enter campaign title" + }, + "DESCRIPTION": { + "LABEL": "Description", + "PLACEHOLDER": "Enter campaign description" + }, + "MESSAGE": { + "LABEL": "Message", + "PLACEHOLDER": "Enter your campaign message" + }, + "TEMPLATE": { + "LABEL": "Template", + "SELECT": "Select a template", + "INFO": "Select a template to use for this campaign." + }, + "AUDIENCE": { + "LABEL": "Audience", + "SELECT": "Select audience" + }, + "CAMPAIGN_TYPE": { + "LABEL": "Campaign Type", + "ONGOING": "Ongoing", + "ONE_OFF": "One-off" + }, + "SCHEDULED_AT": { + "LABEL": "Schedule Time" + }, + "UPDATE": "Update" + }, + "PLAYGROUND": { + "TITLE": "Template Preview", + "CAMPAIGN_TITLE": "Campaign Title", + "MESSAGE_PREVIEW": "Message Preview", + "TEMPLATE": "Template", + "AUDIENCE": "Audience", + "CAMPAIGN_TYPE": "Campaign Type", + "NO_TITLE": "No title set", + "NO_MESSAGE": "No message set", + "NO_TYPE": "No type set", + "PREVIEW_NOTE": "This is a preview of how your campaign will appear to recipients." + }, "CONFIRM_DELETE": { "TITLE": "Are you sure to delete?", "DESCRIPTION": "The delete action is permanent and cannot be reversed.", diff --git a/app/javascript/dashboard/routes/dashboard/campaigns/campaigns.routes.js b/app/javascript/dashboard/routes/dashboard/campaigns/campaigns.routes.js index c5f2dbdb1..4b6fb79be 100644 --- a/app/javascript/dashboard/routes/dashboard/campaigns/campaigns.routes.js +++ b/app/javascript/dashboard/routes/dashboard/campaigns/campaigns.routes.js @@ -4,6 +4,7 @@ import CampaignsPageRouteView from './pages/CampaignsPageRouteView.vue'; import LiveChatCampaignsPage from './pages/LiveChatCampaignsPage.vue'; import SMSCampaignsPage from './pages/SMSCampaignsPage.vue'; import WhatsAppCampaignsPage from './pages/WhatsAppCampaignsPage.vue'; +import CampaignEdit from './pages/CampaignEdit.vue'; import { FEATURE_FLAGS } from 'dashboard/featureFlags'; const meta = { @@ -62,6 +63,17 @@ const campaignsRoutes = { }, ], }, + { + path: frontendURL( + 'accounts/:accountId/campaigns/whatsapp/:campaignId/edit' + ), + name: 'campaigns_whatsapp_edit', + meta: { + ...meta, + featureFlag: FEATURE_FLAGS.WHATSAPP_CAMPAIGNS, + }, + component: CampaignEdit, + }, ], }; diff --git a/app/javascript/dashboard/routes/dashboard/campaigns/pages/CampaignEdit.vue b/app/javascript/dashboard/routes/dashboard/campaigns/pages/CampaignEdit.vue new file mode 100644 index 000000000..f306aa4cd --- /dev/null +++ b/app/javascript/dashboard/routes/dashboard/campaigns/pages/CampaignEdit.vue @@ -0,0 +1,101 @@ + + +