Fix default campaign template not being setup on first install.
This was a ridiculous miss, where on first time installation, the well designed default e-mail template was never installed in the DB! I never spotted this because my local dev setup, and surprisingly, nobody ever complained that the default campaign template was a blank slate with no styles.
This commit is contained in:
parent
0add1c4e8b
commit
05928d57b1
|
@ -96,15 +96,15 @@ func install(lastVer string, db *sqlx.DB, fs stuffbin.FileSystem, prompt bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default template.
|
// Default template.
|
||||||
tplBody, err := ioutil.ReadFile("static/email-templates/default.tpl")
|
tplBody, err := fs.Get("/static/email-templates/default.tpl")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tplBody = []byte(tplTag)
|
lo.Fatalf("error reading default e-mail template: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var tplID int
|
var tplID int
|
||||||
if err := q.CreateTemplate.Get(&tplID,
|
if err := q.CreateTemplate.Get(&tplID,
|
||||||
"Default template",
|
"Default template",
|
||||||
string(tplBody),
|
string(tplBody.ReadBytes()),
|
||||||
); err != nil {
|
); err != nil {
|
||||||
lo.Fatalf("error creating default template: %v", err)
|
lo.Fatalf("error creating default template: %v", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package migrations
|
package migrations
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
"github.com/knadh/koanf"
|
"github.com/knadh/koanf"
|
||||||
"github.com/knadh/stuffbin"
|
"github.com/knadh/stuffbin"
|
||||||
|
@ -8,13 +10,28 @@ import (
|
||||||
|
|
||||||
// V0_9_0 performs the DB migrations for v.0.9.0.
|
// V0_9_0 performs the DB migrations for v.0.9.0.
|
||||||
func V0_9_0(db *sqlx.DB, fs stuffbin.FileSystem, ko *koanf.Koanf) error {
|
func V0_9_0(db *sqlx.DB, fs stuffbin.FileSystem, ko *koanf.Koanf) error {
|
||||||
_, err := db.Exec(`
|
if _, err := db.Exec(`
|
||||||
INSERT INTO settings (key, value) VALUES
|
INSERT INTO settings (key, value) VALUES
|
||||||
('app.lang', '"en"'),
|
('app.lang', '"en"'),
|
||||||
('app.message_sliding_window', 'false'),
|
('app.message_sliding_window', 'false'),
|
||||||
('app.message_sliding_window_duration', '"1h"'),
|
('app.message_sliding_window_duration', '"1h"'),
|
||||||
('app.message_sliding_window_rate', '10000')
|
('app.message_sliding_window_rate', '10000')
|
||||||
ON CONFLICT DO NOTHING;
|
ON CONFLICT DO NOTHING;
|
||||||
`)
|
`); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Until this version, the default template during installation was broken!
|
||||||
|
// Check if there's a broken default template and if yes, override it with the
|
||||||
|
// actual one.
|
||||||
|
tplBody, err := fs.Get("/static/email-templates/default.tpl")
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error reading default e-mail template: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := db.Exec(`UPDATE templates SET body=$1 WHERE body=$2`,
|
||||||
|
tplBody.ReadBytes(), `{{ template "content" . }}`); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue