diff --git a/cmd/campaigns.go b/cmd/campaigns.go index 65cc99b..3a03aed 100644 --- a/cmd/campaigns.go +++ b/cmd/campaigns.go @@ -155,16 +155,14 @@ func handlePreviewCampaign(c echo.Context) error { var ( app = c.Get("app").(*App) id, _ = strconv.Atoi(c.Param("id")) - body = c.FormValue("body") - - camp = &models.Campaign{} ) if id < 1 { return echo.NewHTTPError(http.StatusBadRequest, app.i18n.T("globals.messages.invalidID")) } - err := app.queries.GetCampaignForPreview.Get(camp, id) + var camp models.Campaign + err := app.queries.GetCampaignForPreview.Get(&camp, id) if err != nil { if err == sql.ErrNoRows { return echo.NewHTTPError(http.StatusBadRequest, @@ -177,6 +175,12 @@ func handlePreviewCampaign(c echo.Context) error { "name", "{globals.terms.campaign}", "error", pqErrMsg(err))) } + // There's a body in the request to preview instead of the body in the DB. + if c.Request().Method == http.MethodPost { + camp.ContentType = c.FormValue("content_type") + camp.Body = c.FormValue("body") + } + var sub models.Subscriber // Get a random subscriber from the campaign. if err := app.queries.GetOneCampaignSubscriber.Get(&sub, camp.ID); err != nil { @@ -191,19 +195,14 @@ func handlePreviewCampaign(c echo.Context) error { } } - // Compile the template. - if body != "" { - camp.Body = body - } - - if err := camp.CompileTemplate(app.manager.TemplateFuncs(camp)); err != nil { + if err := camp.CompileTemplate(app.manager.TemplateFuncs(&camp)); err != nil { app.log.Printf("error compiling template: %v", err) return echo.NewHTTPError(http.StatusBadRequest, app.i18n.Ts("templates.errorCompiling", "error", err.Error())) } // Render the message body. - m := app.manager.NewCampaignMessage(camp, sub) + m := app.manager.NewCampaignMessage(&camp, sub) if err := m.Render(); err != nil { app.log.Printf("error rendering message: %v", err) return echo.NewHTTPError(http.StatusBadRequest, diff --git a/cmd/upgrade.go b/cmd/upgrade.go index 8fb7603..72e6b8f 100644 --- a/cmd/upgrade.go +++ b/cmd/upgrade.go @@ -29,6 +29,7 @@ var migList = []migFunc{ {"v0.7.0", migrations.V0_7_0}, {"v0.8.0", migrations.V0_8_0}, {"v0.9.0", migrations.V0_9_0}, + {"v1.0.0", migrations.V1_0_0}, } // upgrade upgrades the database to the current version by running SQL migration files diff --git a/frontend/src/components/CampaignPreview.vue b/frontend/src/components/CampaignPreview.vue index 4e83416..636ceda 100644 --- a/frontend/src/components/CampaignPreview.vue +++ b/frontend/src/components/CampaignPreview.vue @@ -11,6 +11,7 @@