Enabled GrapeJS and Mosaico
This commit is contained in:
parent
588eed008b
commit
ed6d3011f3
5 changed files with 161 additions and 28 deletions
12
.gitignore
vendored
12
.gitignore
vendored
|
@ -4,3 +4,15 @@ npm-debug.log
|
||||||
config/development.*
|
config/development.*
|
||||||
config/production.*
|
config/production.*
|
||||||
dump.rdb
|
dump.rdb
|
||||||
|
|
||||||
|
public/mosaico/uploads/*
|
||||||
|
!public/mosaico/uploads/README.md
|
||||||
|
public/mosaico/custom/*
|
||||||
|
!public/mosaico/custom/README.md
|
||||||
|
public/mosaico/templates/*
|
||||||
|
!public/mosaico/templates/versafix-1
|
||||||
|
|
||||||
|
public/grapejs/uploads/*
|
||||||
|
!public/grapejs/uploads/README.md
|
||||||
|
public/grapejs/templates/*
|
||||||
|
!public/grapejs/templates/demo
|
||||||
|
|
6
app.js
6
app.js
|
@ -35,6 +35,9 @@ let webhooks = require('./routes/webhooks');
|
||||||
let subscription = require('./routes/subscription');
|
let subscription = require('./routes/subscription');
|
||||||
let archive = require('./routes/archive');
|
let archive = require('./routes/archive');
|
||||||
let api = require('./routes/api');
|
let api = require('./routes/api');
|
||||||
|
let editorapi = require('./routes/editorapi');
|
||||||
|
let grapejs = require('./routes/grapejs');
|
||||||
|
let mosaico = require('./routes/mosaico');
|
||||||
|
|
||||||
let app = express();
|
let app = express();
|
||||||
|
|
||||||
|
@ -205,6 +208,9 @@ app.use('/webhooks', webhooks);
|
||||||
app.use('/subscription', subscription);
|
app.use('/subscription', subscription);
|
||||||
app.use('/archive', archive);
|
app.use('/archive', archive);
|
||||||
app.use('/api', api);
|
app.use('/api', api);
|
||||||
|
app.use('/editorapi', editorapi);
|
||||||
|
app.use('/grapejs', grapejs);
|
||||||
|
app.use('/mosaico', mosaico);
|
||||||
|
|
||||||
// catch 404 and forward to error handler
|
// catch 404 and forward to error handler
|
||||||
app.use((req, res, next) => {
|
app.use((req, res, next) => {
|
||||||
|
|
|
@ -24,6 +24,8 @@ title="mailtrain"
|
||||||
# Enabled HTML editors
|
# Enabled HTML editors
|
||||||
editors=[
|
editors=[
|
||||||
["summernote", "Summernote"],
|
["summernote", "Summernote"],
|
||||||
|
["grapejs", "GrapeJS"],
|
||||||
|
["mosaico", "Mosaico"],
|
||||||
["codeeditor", "Code Editor"]
|
["codeeditor", "Code Editor"]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -123,3 +125,13 @@ host="127.0.0.1"
|
||||||
# How many parallel sender processes to spawn
|
# How many parallel sender processes to spawn
|
||||||
# You can use more than 1 process only if you have Redis enabled
|
# You can use more than 1 process only if you have Redis enabled
|
||||||
processes=1
|
processes=1
|
||||||
|
|
||||||
|
[mosaico]
|
||||||
|
# Installed templates
|
||||||
|
templates=[["versafix-1", "Versafix One"]]
|
||||||
|
# Inject custom scripts from public/mosaico/custom/
|
||||||
|
# customscripts=["some-lib.js", "my-mosaico-plugin.js"]
|
||||||
|
|
||||||
|
[grapejs]
|
||||||
|
# Installed templates
|
||||||
|
templates=[["demo", "Demo Template"]]
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"POT-Creation-Date: 2017-03-07 19:52+0000\n"
|
"POT-Creation-Date: 2017-03-10 08:57+0000\n"
|
||||||
|
|
||||||
#: views/archive/layout.hbs:1
|
#: views/archive/layout.hbs:1
|
||||||
#: views/layout.hbs:1
|
#: views/layout.hbs:1
|
||||||
|
@ -65,7 +65,7 @@ msgstr ""
|
||||||
#: views/users/forgot.hbs:1
|
#: views/users/forgot.hbs:1
|
||||||
#: views/users/login.hbs:1
|
#: views/users/login.hbs:1
|
||||||
#: views/users/reset.hbs:1
|
#: views/users/reset.hbs:1
|
||||||
#: app.js:169
|
#: app.js:172
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ msgstr ""
|
||||||
#: views/campaigns/delivered.hbs:7
|
#: views/campaigns/delivered.hbs:7
|
||||||
#: views/campaigns/opened.hbs:7
|
#: views/campaigns/opened.hbs:7
|
||||||
#: views/campaigns/unsubscribed.hbs:7
|
#: views/campaigns/unsubscribed.hbs:7
|
||||||
#: views/lists/subscription/import-failed.hbs:9
|
#: views/lists/subscription/import-failed.hbs:8
|
||||||
#: views/lists/view.hbs:18
|
#: views/lists/view.hbs:18
|
||||||
#: views/triggers/triggered.hbs:6
|
#: views/triggers/triggered.hbs:6
|
||||||
msgid "Address"
|
msgid "Address"
|
||||||
|
@ -216,6 +216,7 @@ msgstr ""
|
||||||
#: views/lists/create.hbs:7
|
#: views/lists/create.hbs:7
|
||||||
#: views/lists/edit.hbs:10
|
#: views/lists/edit.hbs:10
|
||||||
#: views/lists/lists.hbs:8
|
#: views/lists/lists.hbs:8
|
||||||
|
#: views/mosaico/editor.hbs:3
|
||||||
#: views/partials/merge-tag-reference.hbs:4
|
#: views/partials/merge-tag-reference.hbs:4
|
||||||
#: views/templates/create.hbs:9
|
#: views/templates/create.hbs:9
|
||||||
#: views/templates/edit.hbs:8
|
#: views/templates/edit.hbs:8
|
||||||
|
@ -1451,6 +1452,7 @@ msgstr ""
|
||||||
|
|
||||||
#: views/lists/fields/edit.hbs:30
|
#: views/lists/fields/edit.hbs:30
|
||||||
#: views/lists/fields/fields.hbs:8
|
#: views/lists/fields/fields.hbs:8
|
||||||
|
#: views/mosaico/editor.hbs:2
|
||||||
#: views/partials/merge-tag-reference.hbs:3
|
#: views/partials/merge-tag-reference.hbs:3
|
||||||
msgid "Merge tag"
|
msgid "Merge tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -1789,10 +1791,17 @@ msgid "Failed addresses"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/lists/subscription/import-failed.hbs:6
|
#: views/lists/subscription/import-failed.hbs:6
|
||||||
|
msgid ""
|
||||||
|
"Role-based addresses like postmaster@example.com are blocked when "
|
||||||
|
"importing. Subscribers with role-based email addresses can join your list "
|
||||||
|
"using the subscription form"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/lists/subscription/import-failed.hbs:7
|
||||||
msgid "see here"
|
msgid "see here"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/lists/subscription/import-failed.hbs:10
|
#: views/lists/subscription/import-failed.hbs:9
|
||||||
msgid "Fail reason"
|
msgid "Fail reason"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1908,17 +1917,76 @@ msgstr ""
|
||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/mosaico/editor.hbs:1
|
||||||
|
#: views/partials/merge-tag-reference.hbs:1
|
||||||
|
msgid "Merge tag reference"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/mosaico/editor.hbs:4
|
||||||
|
msgid "MOSAICO Responsive Email Designer"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/mosaico/editor.hbs:5
|
||||||
|
msgid "Sucessfully saved"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/mosaico/editor.hbs:6
|
||||||
|
msgid "An error occured while saving the document"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/mosaico/editor.hbs:7
|
||||||
|
msgid "Unsaved changes will be lost. Close now?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/mosaico/editor.hbs:8
|
||||||
|
#: views/mosaico/editor.hbs:9
|
||||||
|
msgid "Tags"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: views/partials/codeeditor.hbs:1
|
#: views/partials/codeeditor.hbs:1
|
||||||
|
#: views/partials/grapejs.hbs:1
|
||||||
|
#: views/partials/mosaico.hbs:1
|
||||||
#: views/partials/summernote.hbs:1
|
#: views/partials/summernote.hbs:1
|
||||||
msgid "Template content (HTML)"
|
msgid "Template content (HTML)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/editor-navbar.hbs:1
|
||||||
|
msgid "SAVE"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/editor-navbar.hbs:2
|
||||||
|
msgid "SAVING"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/editor-navbar.hbs:3
|
||||||
|
msgid "CLOSE"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/grapejs.hbs:2
|
||||||
|
msgid "Open GrapeJS"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: views/partials/html-preview.hbs:1
|
#: views/partials/html-preview.hbs:1
|
||||||
msgid "Toggle HTML preview"
|
msgid "Toggle HTML preview"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/partials/merge-tag-reference.hbs:1
|
#: views/partials/html-to-text.hbs:1
|
||||||
msgid "Merge tag reference"
|
msgid ""
|
||||||
|
"To extract the text from HTML click <a id=\"html-to-plaintext-btn\" "
|
||||||
|
"role=\"button\">here</a>."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/html-to-text.hbs:2
|
||||||
|
msgid ""
|
||||||
|
"Please note that your existing plaintext in the field above will be "
|
||||||
|
"overwritten. This feature uses the <a "
|
||||||
|
"href=\"http://premailer.dialect.ca/api\" target=\"_blank\" "
|
||||||
|
"rel=\"noreferrer\">Premailer API</a>, a third party service. Their Terms of "
|
||||||
|
"Service and Privacy Policy apply."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/html-to-text.hbs:3
|
||||||
|
msgid "An error occurred while talking to the server"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: views/partials/merge-tag-reference.hbs:2
|
#: views/partials/merge-tag-reference.hbs:2
|
||||||
|
@ -1929,6 +1997,10 @@ msgid ""
|
||||||
"text value used when <code>TAG_NAME</code> is empty."
|
"text value used when <code>TAG_NAME</code> is empty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: views/partials/mosaico.hbs:2
|
||||||
|
msgid "Open Mosaico"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: views/partials/plaintext.hbs:1
|
#: views/partials/plaintext.hbs:1
|
||||||
msgid "Template content (plaintext)"
|
msgid "Template content (plaintext)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2891,6 +2963,31 @@ msgstr ""
|
||||||
msgid "Please enter a new password."
|
msgid "Please enter a new password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/editor-helpers.js:16
|
||||||
|
#: routes/templates.js:109
|
||||||
|
msgid "Could not find template with specified ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/editor-helpers.js:32
|
||||||
|
#: routes/archive.js:140
|
||||||
|
#: routes/campaigns.js:131
|
||||||
|
#: routes/campaigns.js:295
|
||||||
|
#: routes/campaigns.js:390
|
||||||
|
#: routes/campaigns.js:435
|
||||||
|
#: routes/campaigns.js:475
|
||||||
|
#: routes/campaigns.js:739
|
||||||
|
#: routes/campaigns.js:762
|
||||||
|
#: routes/campaigns.js:781
|
||||||
|
#: routes/campaigns.js:803
|
||||||
|
#: routes/triggers.js:146
|
||||||
|
msgid "Could not find campaign with specified ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/editor-helpers.js:46
|
||||||
|
#: routes/editorapi.js:276
|
||||||
|
msgid "Invalid resource type"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: lib/feed.js:31
|
#: lib/feed.js:31
|
||||||
msgid "Bad status code %s"
|
msgid "Bad status code %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3364,37 +3461,26 @@ msgstr ""
|
||||||
#: routes/archive.js:31
|
#: routes/archive.js:31
|
||||||
#: routes/archive.js:43
|
#: routes/archive.js:43
|
||||||
#: routes/archive.js:55
|
#: routes/archive.js:55
|
||||||
#: app.js:211
|
#: app.js:217
|
||||||
msgid "Not Found"
|
msgid "Not Found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: routes/archive.js:116
|
#: routes/archive.js:116
|
||||||
#: services/sender.js:447
|
#: services/sender.js:451
|
||||||
msgid "Received status code %s from %s"
|
msgid "Received status code %s from %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: routes/archive.js:140
|
|
||||||
#: routes/campaigns.js:131
|
|
||||||
#: routes/campaigns.js:295
|
|
||||||
#: routes/campaigns.js:390
|
|
||||||
#: routes/campaigns.js:435
|
|
||||||
#: routes/campaigns.js:475
|
|
||||||
#: routes/campaigns.js:739
|
|
||||||
#: routes/campaigns.js:762
|
|
||||||
#: routes/campaigns.js:781
|
|
||||||
#: routes/campaigns.js:803
|
|
||||||
#: routes/triggers.js:146
|
|
||||||
msgid "Could not find campaign with specified ID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: routes/archive.js:148
|
#: routes/archive.js:148
|
||||||
#: routes/campaigns.js:789
|
#: routes/campaigns.js:789
|
||||||
msgid "Attachment not found"
|
msgid "Attachment not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: routes/campaigns.js:26
|
#: routes/campaigns.js:26
|
||||||
|
#: routes/editorapi.js:33
|
||||||
#: routes/fields.js:13
|
#: routes/fields.js:13
|
||||||
|
#: routes/grapejs.js:13
|
||||||
#: routes/lists.js:49
|
#: routes/lists.js:49
|
||||||
|
#: routes/mosaico.js:14
|
||||||
#: routes/segments.js:13
|
#: routes/segments.js:13
|
||||||
#: routes/settings.js:23
|
#: routes/settings.js:23
|
||||||
#: routes/templates.js:17
|
#: routes/templates.js:17
|
||||||
|
@ -3520,6 +3606,19 @@ msgstr ""
|
||||||
msgid "Could not delete attachment"
|
msgid "Could not delete attachment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: routes/editorapi.js:39
|
||||||
|
msgid "Invalid editor name"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: routes/editorapi.js:220
|
||||||
|
#: routes/editorapi.js:246
|
||||||
|
msgid "Method not supported"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: routes/editorapi.js:316
|
||||||
|
msgid "Invalid resource type or ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: routes/fields.js:28
|
#: routes/fields.js:28
|
||||||
#: routes/fields.js:64
|
#: routes/fields.js:64
|
||||||
#: routes/fields.js:118
|
#: routes/fields.js:118
|
||||||
|
@ -3891,10 +3990,6 @@ msgstr ""
|
||||||
msgid "Template created"
|
msgid "Template created"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: routes/templates.js:109
|
|
||||||
msgid "Could not find template with specified ID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: routes/templates.js:140
|
#: routes/templates.js:140
|
||||||
msgid "Template settings updated"
|
msgid "Template settings updated"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
12
package.json
12
package.json
|
@ -34,6 +34,7 @@
|
||||||
"jsxgettext-andris": "^0.9.0-patch.1"
|
"jsxgettext-andris": "^0.9.0-patch.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"async": "^2.1.5",
|
||||||
"aws-sdk": "^2.24.0",
|
"aws-sdk": "^2.24.0",
|
||||||
"bcrypt-nodejs": "0.0.3",
|
"bcrypt-nodejs": "0.0.3",
|
||||||
"body-parser": "^1.17.1",
|
"body-parser": "^1.17.1",
|
||||||
|
@ -51,8 +52,10 @@
|
||||||
"express-session": "^1.15.1",
|
"express-session": "^1.15.1",
|
||||||
"faker": "^4.1.0",
|
"faker": "^4.1.0",
|
||||||
"feedparser": "^2.1.0",
|
"feedparser": "^2.1.0",
|
||||||
|
"file-type": "^4.1.0",
|
||||||
"geoip-ultralight": "^0.1.5",
|
"geoip-ultralight": "^0.1.5",
|
||||||
"gettext-parser": "^1.2.2",
|
"gettext-parser": "^1.2.2",
|
||||||
|
"gm": "^1.23.0",
|
||||||
"handlebars": "^4.0.6",
|
"handlebars": "^4.0.6",
|
||||||
"hbs": "^4.0.1",
|
"hbs": "^4.0.1",
|
||||||
"he": "^1.1.1",
|
"he": "^1.1.1",
|
||||||
|
@ -60,21 +63,27 @@
|
||||||
"humanize": "0.0.9",
|
"humanize": "0.0.9",
|
||||||
"is-url": "^1.2.2",
|
"is-url": "^1.2.2",
|
||||||
"isemail": "^2.2.1",
|
"isemail": "^2.2.1",
|
||||||
|
"jquery-file-upload-middleware": "^0.1.8",
|
||||||
"jsdom": "^9.11.0",
|
"jsdom": "^9.11.0",
|
||||||
"juice": "^4.0.2",
|
"juice": "^4.0.2",
|
||||||
"libmime": "^3.1.0",
|
"libmime": "^3.1.0",
|
||||||
"marked": "^0.3.6",
|
"marked": "^0.3.6",
|
||||||
|
"memory-cache": "^0.1.6",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"moment-timezone": "^0.5.11",
|
"moment-timezone": "^0.5.11",
|
||||||
"morgan": "^1.8.1",
|
"morgan": "^1.8.1",
|
||||||
"multer": "^1.3.0",
|
"multer": "^1.3.0",
|
||||||
|
"multiparty": "^4.1.3",
|
||||||
"mysql": "^2.13.0",
|
"mysql": "^2.13.0",
|
||||||
|
"node-gettext": "^2.0.0-rc.0",
|
||||||
|
"node-mocks-http": "^1.6.1",
|
||||||
"nodemailer": "^3.1.5",
|
"nodemailer": "^3.1.5",
|
||||||
"nodemailer-openpgp": "^1.0.2",
|
"nodemailer-openpgp": "^1.0.2",
|
||||||
"npmlog": "^4.0.2",
|
"npmlog": "^4.0.2",
|
||||||
"openpgp": "^2.4.0",
|
"openpgp": "^2.4.0",
|
||||||
"passport": "^0.3.2",
|
"passport": "^0.3.2",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
|
"premailer-api": "^1.0.4",
|
||||||
"redfour": "^1.0.0",
|
"redfour": "^1.0.0",
|
||||||
"redis": "^2.6.5",
|
"redis": "^2.6.5",
|
||||||
"request": "^2.80.0",
|
"request": "^2.80.0",
|
||||||
|
@ -83,7 +92,6 @@
|
||||||
"slugify": "^1.1.0",
|
"slugify": "^1.1.0",
|
||||||
"smtp-server": "^2.0.2",
|
"smtp-server": "^2.0.2",
|
||||||
"striptags": "^3.0.1",
|
"striptags": "^3.0.1",
|
||||||
"toml": "^2.3.2",
|
"toml": "^2.3.2"
|
||||||
"node-gettext": "^2.0.0-rc.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue