From 3d383cd537272f317242f896a47d474e04e2137e Mon Sep 17 00:00:00 2001 From: Kailash Nadh Date: Sun, 19 Jan 2025 16:40:25 +0530 Subject: [PATCH] Make paused campaigns editable. --- cmd/campaigns.go | 14 +++++++------- frontend/src/views/Campaign.vue | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/campaigns.go b/cmd/campaigns.go index 468dc91e..0514dd79 100644 --- a/cmd/campaigns.go +++ b/cmd/campaigns.go @@ -248,7 +248,7 @@ func handleUpdateCampaign(c echo.Context) error { return err } - if isCampaignalMutable(cm.Status) { + if !canEditCampaign(cm.Status) { return echo.NewHTTPError(http.StatusBadRequest, app.i18n.T("campaigns.cantUpdate")) } @@ -597,12 +597,12 @@ func validateCampaignFields(c campaignReq, app *App) (campaignReq, error) { return c, nil } -// isCampaignalMutable tells if a campaign's in a state where it's -// properties can be mutated. -func isCampaignalMutable(status string) bool { - return status == models.CampaignStatusRunning || - status == models.CampaignStatusCancelled || - status == models.CampaignStatusFinished +// canEditCampaign returns true if a campaign is in a status where updating +// its properties is allowed. +func canEditCampaign(status string) bool { + return status == models.CampaignStatusDraft || + status == models.CampaignStatusPaused || + status == models.CampaignStatusScheduled } // makeOptinCampaignMessage makes a default opt-in campaign message body. diff --git a/frontend/src/views/Campaign.vue b/frontend/src/views/Campaign.vue index 86b9356a..9e922b13 100644 --- a/frontend/src/views/Campaign.vue +++ b/frontend/src/views/Campaign.vue @@ -613,7 +613,7 @@ export default Vue.extend({ canEdit() { return this.isNew - || this.data.status === 'draft' || this.data.status === 'scheduled'; + || this.data.status === 'draft' || this.data.status === 'scheduled' || this.data.status === 'paused'; }, canSchedule() { @@ -625,7 +625,7 @@ export default Vue.extend({ }, canStart() { - return this.data.status === 'draft' && !this.data.sendAt; + return this.data.status === 'draft' || this.data.status === 'paused'; }, canArchive() {