Commit Graph

10770 Commits

Author SHA1 Message Date
Kevin Ansfield
944ffa8668 Added acceptance test for email preview with email card and replacements
no issue

- the email previews API should return html and plaintext content that contains any email cards and where any valid replacement strings have been replaced with desired fallbacks
- unknown/invalid replacement strings should appear as entered by the user (no %% wrappers that are used internally)
2020-04-20 12:48:00 +01:00
Kevin Ansfield
a09a6caf5f Fixed in-browser email preview showing raw replacement strings
no issue

- fixed plaintext templates being word wrapped and breaking across replacement strings
- updated `postEmailSerializer.serialize` to return the email template plus a replacements array that can be used for creating Mailgun-like recipient variable objects or more straight forward replacement
- updated email-preview API to work with the replacements data to show fallback data when previewing
2020-04-20 12:24:05 +01:00
Renovate Bot
2ea504255c
Update dependency ajv to v6.12.2 2020-04-20 00:15:31 +00:00
Kevin Ansfield
5c12bf3858
Update dependency @tryghost/kg-mobiledoc-html-renderer to v2.0.1 (#11750)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-17 14:13:15 +01:00
Daniel Lockyer
7ac614030d 🐛 Fixed structured metadata for images
fixes #11746

- the original fix[1] inadvertently moved the logo object down one level
- this commit moves it back up, and fixes the tests to reflect the
  expected format

[1]: 3f5daa60c8
2020-04-17 13:51:55 +01:00
Renovate Bot
7104183c6f
Update dependency @tryghost/kg-default-cards to v1.1.1 2020-04-17 11:23:24 +00:00
Kevin Ansfield
e0e0a85a32 Updated test emails to fetch member data if email matches
no issue

- with the email replacements feature it's useful to have real member data when sending test emails from the PSM
- if the supplied email address matches a member then that member's data will be used for any replacements
2020-04-17 12:15:39 +01:00
Kevin Ansfield
d0393b6223 Fixed {subscriber_firstname} not picking up member's name in emails
no issue

- in our replacements the member properties are prefixed with `subscriber_` but this wasn't taken into account when requesting data from the member object
2020-04-17 12:15:39 +01:00
Daniel Lockyer
8853067830 Added custom json-string format to AJV validator
no issue

- the value of `mobiledoc` when submitting a page/post via the API must
  be JSON, but we don't validate this
- this results in url-utils throwing an error, which ends up being a 500
- this commit adds a custom format to AJV to validate it is valid JSON
- also updates tests with bad JSON - 'a'
2020-04-17 11:56:20 +01:00
Kevin Ansfield
374b43ceab Fixed linting error 2020-04-17 11:32:29 +01:00
Daniel Lockyer
88c11ffbb2 Updated eslint-plugin-ghost
no issue
2020-04-17 11:29:33 +01:00
Kevin Ansfield
a801352c7f Added email card and replacement handling to member emails
no issue

- adjusted mega's post serializer to get full email contents
  - fetch `mobiledoc` from the API rather than the pre-rendered `html` and `plaintext`
  - re-generate `html` using the mobiledoc renderer with an "email" target so that the email-only card content is included
  - re-generate `plaintext` from the newly generated email html

- added replacement handling to mega's `getEmailData` function
  - find all of our `%%{replacement "fallback"}%%` instances in the html template and push them into a replacements array with the respective property on the member instance and desired fallback
  - transform the replacement for Mailgun compatibility. Mailgun uses `%recipient.variable_name%` for its template variables so we need to replace our custom replacement string with the compatible version. Our replacements system allows for the same replacement (`{subscriber_name}`) to be used multiple times and have different fallbacks, Mailgun doesn't support fallbacks so for each replacement we also need an indexed `variable_name` part so that we can put our fallbacks in the correct place
  - perform the same Mailgun template transformation for the plaintext version except we re-use the replacements array to avoid bloating the API request to Mailgun with duplicate template variables for every recipient
  - swapped `reduce` for a plain loop for easier readability
2020-04-17 10:23:03 +01:00
Renovate Bot
cdaa1b5dbb
Update dependency express-session to v1.17.1 2020-04-17 05:14:11 +00:00
Renovate Bot
ccff9f095b
Update dependency @tryghost/members-ssr to v0.7.5 2020-04-17 03:25:45 +00:00
Renovate Bot
0dab0449c2
Update dependency @tryghost/members-api to v0.18.1 2020-04-17 02:11:58 +00:00
Renovate Bot
0d266bb3bb
Update dependency @tryghost/zip to v1.0.1 2020-04-17 00:18:23 +00:00
Renovate Bot
663400166a
Update dependency @tryghost/vhost-middleware to v1.0.3 2020-04-16 22:15:05 +00:00
Renovate Bot
4ee2be4b19
Update dependency @tryghost/session-service to v0.1.1 2020-04-16 20:15:01 +00:00
Renovate Bot
b69684e05e
Update dependency @tryghost/image-transform to v0.2.1 2020-04-16 18:17:13 +00:00
Renovate Bot
d68cd44c60
Update dependency @tryghost/mw-session-from-token to v0.1.1 2020-04-16 16:50:40 +00:00
Renovate Bot
9fce5d8ac0
Update dependency @tryghost/errors to v0.1.2 2020-04-16 15:26:26 +00:00
Renovate Bot
0d97a98eba
Update dependency @tryghost/adapter-manager to v0.1.3 2020-04-16 13:44:40 +00:00
Nazar Gargol
192cb107a5 Fixed regression test for tag edit redirects
refs bd92fcd282

- Referenced commit broke the regression test
2020-04-16 22:10:28 +12:00
Daniel Lockyer
425ba6143e Enabled FORCE_COLOR for CI tests
no issue
2020-04-16 11:01:27 +01:00
Daniel Lockyer
f8a22da490 Enabled Ghost-CLI testing on Renovate branches
no issue
2020-04-16 10:57:59 +01:00
Nazar Gargol
bd92fcd282 🐛 Fixed /edit route redirect for tag taxonomies
refs 183e22e0bf (diff-f3a289058604b2b069d07bb8e2cda60cL39)

- When using the `/edit` route in the end of tag taxonomy redirect was landing on 404 page in Ghost-Admin. For example redirect for `/tags/getting-started/edit/` would redirect to `/#/settings/tags/getting-started`, instead of `/#/tags/getting-started`
- Referenced commit is where the routing in Ghost-Admin was changed from `/settings/tags/:slug/` to `/tags/:slug`
2020-04-16 21:23:38 +12:00
Daniel Lockyer
5adbc4aa6a Moved Ghost-CLI tests to main testing workflow
no issue

- keeps all testing in one place and allows us to depend on a single
  workflow in the future
2020-04-16 07:42:31 +01:00
Renovate Bot
fa1fcd8870
Update dependency knex to v0.20.15 2020-04-15 22:54:22 +00:00
Daniel Lockyer
d8c7f530ce Enabled Ghost-CLI tests for v2->v3 upgrade
no issue
2020-04-15 18:18:44 +01:00
Daniel Lockyer
8d9d129be4 Fixed spam prevention for private sites
fixes #11740

- there was a discrepancy in the use of `private_blog` within the
  code, and `private_block` in the default config
- this commit switches the code to `block` in order to avoid breaking
  existing configs
2020-04-15 16:44:53 +01:00
Renovate Bot
9ae5ce0f84
Update dependency @lodder/grunt-postcss to v2.0.2 2020-04-15 14:15:23 +00:00
Daniel Lockyer
b018a07357 v3.13.3 2020-04-15 14:06:16 +01:00
Daniel Lockyer
bd19d93482 Updated Ghost-Admin to v3.13.3 2020-04-15 14:06:16 +01:00
Hannah Wolfe
a4cf470c87 🐛 Fixed importer always erroring
- in 3.13.2 the importer always throws the error "The "path" argument must be of type string. Received an instance of Object"
- this is due to a change in method signature that wasn't accounted for
- added a test to catch similar changes to this code in future
2020-04-15 13:24:43 +01:00
Daniel Lockyer
c192dcc36d v3.13.2 2020-04-15 11:40:33 +01:00
Daniel Lockyer
ba6ef004e5 Updated Ghost-Admin to v3.13.2 2020-04-15 11:40:33 +01:00
Kevin Ansfield
8d0a6b2674 🐛 Fixed "View site" not logging into private sites with separate admin domains
no issue

- browsers now block cross-origin cookies unless they are explicitly set with `SameSite=none` and `Secure=true` options which was preventing the login request made by Ghost-Admin from working
- added an explicit `SameSite=none` option to the private site session cookie
- will only work when the front-end site is served over HTTPS - there's no way to get browsers to accept cross-origin cookies over HTTP
2020-04-15 10:52:30 +01:00
Daniel Lockyer
da237ca885 Returned error upon oembed catch
no issue
2020-04-15 10:35:22 +01:00
Daniel Lockyer
87bd26a4d6 Returned full error upon missing tag/label
no issue
2020-04-15 10:15:48 +01:00
Renovate Bot
9f27eeab02
Update dependency semver to v7.3.2 2020-04-14 17:47:18 +00:00
Renovate Bot
05c2334898
Update dependency semver to v7.3.1 2020-04-14 16:58:53 +00:00
Renovate Bot
7e910b9c09
Update dependency knex-migrator to v3.4.4 2020-04-14 15:21:50 +00:00
Renovate Bot
531c5a3e6f
Update metascraper to v5.11.9 2020-04-14 10:41:21 +00:00
Renovate Bot
af81cabf07 Update dependency semver to v7.3.0 2020-04-14 06:45:03 +01:00
Renovate Bot
9af9f8bed5
Update dependency knex to v0.20.14 2020-04-14 02:32:48 +00:00
Renovate Bot
6fb11a6ccc
Update dependency semver to v7.2.3 2020-04-13 19:29:58 +00:00
Renovate Bot
2216e0be21 Update dependency @tryghost/html-to-mobiledoc to v0.7.0 2020-04-13 20:28:57 +01:00
Renovate Bot
696879dca7 Update dependency jwks-rsa to v1.8.0 2020-04-13 20:28:24 +01:00
Renovate Bot
67d6f2dadb
Update dependency @tryghost/helpers to v1.1.27 2020-04-13 16:21:25 +00:00
Daniel Lockyer
a769bbe86c Fixed 500 error when deleting items that don't exist
fixes #11723

- when deleting an invite/label/tag/webhook that doesn't
  exist, Ghost would throw a 500 error
- this commit catches the NotFoundError
- also rejects from model if nothing was found
- spotted in Sentry
2020-04-13 16:13:33 +01:00