Commit Graph

10378 Commits

Author SHA1 Message Date
Daniel Lockyer
94f5add1c0 Refactored default settings population to reduce unnecessary DB queries
refs https://github.com/TryGhost/Toolbox/issues/202

- this code suffers from two problems:
  - when we don't have any new settings to insert, we still end up
    fetching the columnInfo and owner info, even though we only need
    them if we're inserting data. This results in 3 extra queries upon
    boot
  - secondly, we insert every setting with a separate query - MySQL and
    SQLite both support batch inserts and knex has a utility to help us
    that I've [used
    before](38821c5242).
    With 95 settings at the time of writing, this adds 94 extra queries
    during the DB init
- this commit refactors the code so that we only fetch the columnInfo and
  owner data if we've got new settings to insert, and batches the
  inserts using knex's batchInsert util
- this query results in ~95 less queries during DB init and saves a
  couple of queries during boot
2022-02-08 10:11:00 +01:00
Torsten Zander
f1b71f7fd7
🐛 Fixed AssetHelper not working with svg (#13978)
loses TryGhost#13971

This fixes an issue with links containing # anchor. It makes sure the # part is at the end of the url like url?v=hash#anhor

Co-authored-by: Hannah Wolfe <github.erisds@gmail.com>
2022-02-07 15:07:18 +00:00
Daniel Lockyer
af240816d8 Added eslint exemption for camelcase line
no issue

- the new eslint bump seems to flag this line up for using camelcase
- i'm not sure why this hasn't flagged before but it seems we want to
  keep the naming because the function name has the same linting exemption
2022-02-07 13:16:05 +01:00
Thibaut Patel
daeb06e835 Added a theme parameter to the /authentication/setup route
refs https://github.com/TryGhost/Team/issues/1296

- The `theme` must be a github `org/repo` string
- This uses the internal API instead of the services because the API has extra implementation details not present in the services.
2022-02-07 12:03:40 +01:00
Daniel Lockyer
54829a4bb8 Updated Admin to v4.35.0 2022-02-04 16:00:26 +00:00
Rishabh Garg
f3119cbf77
Handled default value in post for specific tier content visibility (#14121)
refs https://github.com/TryGhost/Team/issues/1071

Default visibility for a post when set to specific tiers needs special handling as data for specific tiers is stored as an array of tiers on a pivot table. This change handles the default visibility for a new post when set to specific tiers to generate the right default values in model.
2022-02-04 21:00:08 +05:30
Rishabh Garg
744e5e57a0
Fixed missing portal product data (#14115)
closes  https://github.com/TryGhost/Team/issues/1311

For some sites, the `portal_products` array was created without any value and due to a possible bug in older version of Ghost, it also didn't get filled on Stripe connect with default product. This causes a side-effect of sites not showing the prices in Portal when tiers beta is enabled or is out as GA. This change populates the missing product data in `portal_product` for sites that have a single tier (haven't enabled tiers beta), as they right now don't have an option to hide the tier.
2022-02-04 19:57:38 +05:30
Rishabh
c99ee980af Added migration to transform default tiers visibility from nql string
refs https://github.com/TryGhost/Team/issues/1071

Default content visiblity for specific tiers is now stored split between `default_content_visiblity` and `default_content_visibility_tiers` setting, with former storing the value as `tiers` and the latter stores the list of tiers that the visibility is restricted to. This migration transforms all existing sites that have default visibility stored as an NQL string from previous versions to follow the new model and store correctly on the new setting.
2022-02-04 19:56:11 +05:30
Rishabh
6f89ccf901 Added default_content_visibility_tiers setting for default tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

Default content visibility for a post can be one of `public|members|paid|tiers`, where `tiers` denotes visibility restricted to specific tiers. This change adds a new setting to store the tier ids when default content visibility is set to `tiers`. This closely matches how the visibility is stored on `posts` table as well, with `visibility` stored as `tiers` and tiers data is stored on tiers pivot table.
2022-02-04 19:56:11 +05:30
Fabien 'egg' O'Carroll
d60d24e744
Migrated email filter columns from VARCHAR to TEXT (#14091)
refs https://github.com/TryGhost/Team/issues/1287

Currently we have a hard limit of how large an email filter can be,
which is very restrictive once a site starts using Tiers - by moving
toward a TEXT column, we essentially give the filters unlimited size.

This currently doesn't handle SQLite as there are no limits on VARCHARS
in SQLite.

The down migration is a loop so we don't have to handle values larger than
50 characters
2022-02-04 16:09:35 +02:00
Daniel Lockyer
a1166d575f
Updated migration logging string for correctness
no issue

- we check the presence of `members_free_signup_redirect` here but the
  log line said `members_paid_signup_redirect`
- this must have been missed in review but it's simple enough to fix
2022-02-04 12:54:11 +01:00
Sam Lord
92c3e8d7ca Added source to the verification trigger
no issue

Helps us to tell the difference between a verification trigger caused by import vs API
2022-02-03 16:20:37 +00:00
Matt Hanley
48bcb36adc Merged v4.34.3 into main
v4.34.3
2022-02-02 16:02:54 +00:00
Daniel Lockyer
2b5986c2bd Updated Admin to v4.34.3 2022-02-02 15:42:32 +00:00
Matt Hanley
6d4538cc2b Updated wording on unsubscribe confirmation with paid conditional
refs https://github.com/TryGhost/Team/issues/1228

- We were displaying a message referencing paid subscriptions to all users, which was causing confusion
- We don't have the `member.paid` flag in this context, so we use the match helper on member.status not free
2022-02-02 12:36:41 +00:00
Daniel Lockyer
fd69899b9f
Merged v4.34.2 into main
v4.34.2
2022-02-01 16:08:47 +00:00
Daniel Lockyer
4714a95748 Updated Admin to v4.34.2 2022-02-01 15:30:00 +00:00
Sam Lord
c7e0cc0bf2
Fixed the TPL variable name used for verification trigger
no issue

- not nice but it get the job done for now
2022-02-01 15:20:20 +00:00
Daniel Lockyer
805bb0b87a
Fixed variable scoping issue with email verification
no issue

- `this` isn't referring to the correct `this` in this scope, and the
  library is an import of the file anyway, so this fixes the undefined
  function call as a result
2022-02-01 13:54:13 +00:00
Sam Lord
c3eb3cd567 Fix imports triggering verification when below threshold
no issue

Swapped the variable names for importSize and importThreshold
2022-02-01 12:07:37 +00:00
Sam Lord
77f2acaf65 Fix usage of "ghostMailer" in email verification trigger
no issue

Introduced bug when refactoring the verification trigger by referencing an undefined member.
2022-02-01 12:07:32 +00:00
Sam Lord
c9ac6deb9b Fix imports triggering verification when below threshold
no issue

Swapped the variable names for importSize and importThreshold
2022-02-01 12:04:39 +00:00
Sam Lord
6d38a66662 Fix usage of "ghostMailer" in email verification trigger
no issue

Introduced bug when refactoring the verification trigger by referencing an undefined member.
2022-02-01 12:00:01 +00:00
Nicholas Scalf
da799997c2
Added alt tag for logo image on emails (#13953)
fixes: https://github.com/TryGhost/Ghost/issues/12871

- This Ghost recommended email scanner, mail-tester.com, reports not having this alt as having an impact of -0.5 out of 10 on your email score.
2022-02-01 11:29:17 +00:00
Fabien 'egg' O'Carroll
155ee6055d
Migrated redirect settings to welcome_page_urls (#14083)
refs https://github.com/TryGhost/Team/issues/1168

This migrates the existing settings onto the Tier objects, so that users
with Tiers enabled can seamless move from global settings to Tier level
settings - without losing/modifying data/functionality.
2022-02-01 11:00:13 +02:00
Daniel Lockyer
dd7227d622
Merged v4.34.1 into main
v4.34.1
2022-02-01 08:58:24 +00:00
Daniel Lockyer
c317b22005 Updated Admin to v4.34.1 2022-02-01 08:50:37 +00:00
Rishabh
93596a1375 Updated frontend routing to include products for page/post
refs https://github.com/TryGhost/Team/issues/1071

- `products` relation is needed on post/page to tackle custom tiers visibility, this change attaches `products` as default include for frontend controllers
2022-02-01 11:13:51 +05:30
Rishabh
15d692dc01 Updated frontend helpers to handle tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

- visibility handling for posts/pages with restricted tiers access has changed, this change updates frontend helpers
2022-02-01 11:13:51 +05:30
Rishabh
b259bb2431 Updated content gating to use new tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

- `tiers` are now attached as a list on post with restricted tiers access
2022-02-01 11:13:51 +05:30
Rishabh
d461525978 Updated validation for post/page
refs https://github.com/TryGhost/Team/issues/1071

- ignores `tiers` as its a valid visibility filter
2022-02-01 11:13:51 +05:30
Rishabh
bc5c00ba05 Updated post model to attach products relation
refs https://github.com/TryGhost/Team/issues/1071

- attaches products relation for post/pages to include tiers with access when applicable
2022-02-01 11:13:51 +05:30
Rishabh
7ab4c44475 Updated serialization for handling tiers visibility
refs https://github.com/TryGhost/Team/issues/1071

Going forward, if the visibility of a page/post is set for specific tiers, we send a `tiers` array in API response that contains list of tiers with access. This change -

- updates post/page mapper to transform existing data where `visibility` is a custom nql string to tiers array
- updates default include for post/pages to include `products`, which allows attaching relevant tiers from the pivot table
- cleans up usage of `visibility_filter` in serialization
2022-02-01 11:13:51 +05:30
Peter Zimon
209aab12e9
Remove Editor card settings panel alpha flag (#14087) 2022-01-31 14:12:05 +01:00
Fabien "egg" O'Carroll
a75908bb8a Added alpha flag for Tier welcome pages
refs https://github.com/TryGhost/Team/issues/1168
2022-01-31 13:40:33 +02:00
Kevin Ansfield
a0da017ab6 Added "improvedOnboarding" labs flag
refs https://github.com/TryGhost/Team/issues/1294

- used for working on changes to the setup flow and launch wizard
2022-01-31 11:23:14 +00:00
Rishabh Garg
eeafc8603b
Added pivot table to store tiers on post (#14038)
refs https://github.com/TryGhost/Team/issues/1071

We used `posts.visibility` originally to store visibility as `free|paid` with a character limit of 50. This same field was repurposed to store an NQL filter when member tiers is enabled. The NQL filter uses the slug of the tier name, which can easily create a filter longer than 50 characters, adding an unwanted limitation on number of tiers that can be added to post's visibility.
Going forward, we'd like to store the visibility of posts for tiers in a separate pivot table and instead store the value of `visibility` as `tiers` when restricting post access to specific tiers. This change -

- adds a new pivot table fixture for storing relation between posts and tiers
- adds a migration for creating the new table
- updates tests
2022-01-31 15:33:58 +05:30
Fabien "egg" O'Carroll
3d9e4b4c6c Synced Tiers welcome_page_urls with Settings
refs https://github.com/TryGhost/Team/issues/1168

Because Tiers is still behind a flag - any users which are not using
Tiers will still be editing their settings, and when they switch to
Tiers - the redirects will not necessarily be correct, unless we keep
the Tier columns up to date with any settings changes.
2022-01-30 17:41:57 +02:00
Fabien "egg" O'Carroll
0e866aaa1e Updated redirect logic to handle tier based urls
refs https://github.com/TryGhost/Team/issues/1168

This makes the actual switch to use a Tiers redirect URL rather than the
settings when the Tiers feature is enabled.
2022-01-30 17:41:57 +02:00
Fabien "egg" O'Carroll
4f5257859d Added welcome_page_url to Products API
refs https://github.com/TryGhost/Team/issues/1168

This updates the JSON API Schema to allow for the welcome_page_url
property, as well as including the new column in API responses, so that
we can both read and write the value via the API.
2022-01-30 17:41:57 +02:00
Daniel Lockyer
a6154938b8 Updated Admin to v4.34.0 2022-01-28 16:00:27 +00:00
Sam Lord
08829a6f0c
Trigger email verification workflow on API usage
refs: TryGhost/Toolbox#166

The new VerificationTrigger listens to events form the members repository, and will cause the verification workflow to be triggered if the number of events is greater than the configured threshold in a rolling 30 day window.

The importer also no longer depends on the import threshold, so the threshold testing is now done in the processImport method in Ghost - seems sensible since we already had this wrapper and the logic is now tiny, since it's just relying on @tryghost/verification-trigger to handle the real stuff.
2022-01-27 14:06:29 +00:00
Peter Zimon
5713dfe7f7
Updated support email address redirect (#14075)
refs. a488b93465

- Updates redirect to member settings page after changing the support email address
2022-01-27 12:43:01 +01:00
Daniel Lockyer
b79ca4188d
Merged v4.33.2 into main
v4.33.2
2022-01-27 10:29:30 +00:00
Daniel Lockyer
3275f0f07d Updated Admin to v4.33.2 2022-01-27 10:20:51 +00:00
Fabien 'egg' O'Carroll
8393c1e90a
Added welcome_page_url column to products table
refs https://github.com/TryGhost/Team/issues/1168

Rather than using a single url for paid signup redirects, we want to
support setting a welcome page on a tier by tier basis. This column will
be used to store the URL. A text column of length 2000 is how we have
stored URL's elsewhere in the schema.
2022-01-26 11:44:40 +02:00
Fabien "egg" O'Carroll
60777ac7fb Cleaned up Products API add & edit
refs https://github.com/TryGhost/Team/issues/1291

This is cleanup from the initial implementation.
2022-01-25 15:45:20 +02:00
Daniel Lockyer
a2c44efa6a
Merged v4.33.1 into main
v4.33.1
2022-01-24 16:03:16 +00:00
Daniel Lockyer
1559961f66 Updated Admin to v4.33.1 2022-01-24 15:59:59 +00:00
Fabien "egg" O'Carroll
91df910dbb 🐛 Fixed crashing on boot with revoked Stripe keys
no-issue

The refactor of Stripe boot logic missed catching any errors from the
migrations running or the webhooks initialising. This adds try/catches
to the services so that we can log the errors.
2022-01-24 17:50:55 +02:00
Fabien 'egg' O'Carroll
01f30eb632
Included benefits with theme product data (#14051)
refs https://github.com/TryGhost/Team/issues/1079

These were missing when benefits were added to products, and will allow
theme developers to make more useful custom subscribe pages.
2022-01-24 13:55:25 +02:00
Fabien 'egg' O'Carroll
db4da54265
Removed archived Tiers from theme data (#14049)
refs https://github.com/TryGhost/Team/issues/1252

In order to allow existing subscribe pages to continue working without
an extra flag, we're going to filter out the archived tiers.
2022-01-24 12:47:24 +02:00
Hannah Wolfe
9d8089a748
Removed deprecated routes.yaml data format
refs: https://github.com/TryGhost/Ghost/issues/10434
refs: https://github.com/TryGhost/Ghost/pull/10449
refs: https://github.com/TryGhost/Ghost/pull/10559

- We originally had a weird structure returned for data keys in routes.yaml.
- To the best of my knowledge this was never desired or really used
- I'm removing it now simply because I'm trying to remove all references to v2/v3 in tests, and this had a comment saying it was deprecated in v3
- I could have changed the comment to be a proper @deprecated comment and leave this til we rewrite dynamic routing
- However it's weird and confusing and I believe entirely unused - so getting rid is way way better
2022-01-21 20:16:43 +00:00
Thibaut Patel
817e556ea6 Updated the /members/event filtering logic
refs https://github.com/TryGhost/Team/issues/1277

- Enabled the `filter` attribute on the route.
- The events are now filtered in-memory instead of in the database.
- This fixes a wrong logic where the API user would have to know the internal event structure.
2022-01-21 18:35:02 +01:00
Daniel Lockyer
1bd0df3905 Updated Admin to v4.33.0 2022-01-21 16:00:31 +00:00
Fabien "egg" O'Carroll
26ef4afdb9 🐛 Fixed config API not returning boolean
no-issue

The mailgunIsConfigured config should be a boolean, rather than a string/undefined/null.
2022-01-20 18:25:41 +02:00
Fabien 'egg' O'Carroll
231a7b9bf4
Added active flag to products API (#14021)
refs https://github.com/TryGhost/Team/issues/1252

This flag is used to determine whether a Tier (currently product) as
active or archived
2022-01-20 17:46:53 +02:00
Fabien "egg" O'Carroll
1d73c17d5b Fixed unparsed booleans for "boolean" type columns
no-issue

Knex.js aliases "bool" -> "boolean" - this means that you can use either
one in our schema.json file and it'll correctly create the column. Our
model plugin however would only handle columns which used the "bool"
alias. This fixes the plugin to handle both strings.
2022-01-20 17:00:16 +02:00
Fabien 'egg' O'Carroll
534ebecc19
Added active column to products table (#14016)
refs https://github.com/TryGhost/Team/issues/1252

We need a way to signal whether or not a Tier is active or archived, and
we'll be using the active flag in the same way we do for Offers.
2022-01-20 15:50:18 +02:00
Marat Vyshegorodtsev
74b97e99cd
Added timezone and locale to the options of the date helper (#13892)
fixes https://github.com/TryGhost/Ghost/issues/13832

The `date` handlebars helper has only one option currently — `format`. It assumes the locale and timezone from the `options.data.site` object which is not always desired behavior.

The helper sometimes is used, for example, in custom RSS template where we always need the `en-US` locale, not the one that we have configured for the website globally. This change makes the two options configurable, and defaults to the `options.data.site` object values, if not specified in the helper (keeps the backwards compatibility with the current behavior).
2022-01-19 14:43:53 +00:00
Thibaut Patel
a1af064f79 Added three email delivery events to the member/event endpoint
refs https://github.com/TryGhost/Team/issues/1277

- The new events types are: `email_delivered_event`, `email_opened_event` and `email_failed_event`.
- This makes existing data accessible to the admin dashboard
2022-01-19 14:43:29 +01:00
Fabien 'egg' O'Carroll
8a81cd0a36
Removed duplicate offer redemptions (#14011)
refs https://github.com/TryGhost/Team/issues/1257

As well as fixing the code so that we do not create duplicate offer
redemptions going forward, we need to clean up the existing database.

We loop in code because the query to find and delete duplicates is complicated,
and will introduce more risk
2022-01-19 14:36:30 +02:00
Fabien 'egg' O'Carroll
a565da06b2
🐛 Fixed Offer Redemptions being over counted (#13988)
refs https://github.com/TryGhost/Team/issues/1257

Offer Redemptions were being overcounted due to the way we were updating
Stripe configuration for the Members service. We would create a new
instance of the members-api, which would have event handlers for
creating Offer Redemptions - by creating a new instance each time Stripe
config changed, we would overcount them.

Here we've pulled out Stripe related logic into the Stripe service, and
updated it internally - rather than creating a new instance. This means
that we've been able to remove all of the logic for re-instantiating the
members-api.

- Bumped members-api & stripe-service
- Removed reinstantiation of members-api
- Used stripe service to execute migrations
- Updated Stripe Service to handle webhooks & migrations
- Used webhook controller from stripe service
- Used disconnect method from stripe service
- Removed unused stripe dependency
- Removed Stripe webhook config from members-api
2022-01-18 17:56:47 +02:00
Daniel Lockyer
eb68e8d339 Added library for extracting database information
refs https://github.com/TryGhost/Toolbox/issues/175

- we're going to be making some changes in v5 wrt supported databases
- we needed a way of detecting the difference between MySQL 5 + 8,
  MariaDB etc
- I've created `@tryghost/database-info`, which is a small wrapper
  around `knex`, which returns this information
- this commit:
  - adds the library to Ghost
  - initializes the DB info library upon boot
  - updates the Admin API /config/ endpoint and UpdateCheck to return
    the new string - `mysql5`, `mysql8` etc
2022-01-18 09:31:08 +00:00
Rishabh
1f9edcefec Updated Portal to show free tier description and benefits
refs https://github.com/TryGhost/Team/issues/1037

- bumps portal to show free tier description and benefits when tiers beta is enabled
2022-01-17 23:26:58 +05:30
Rishabh
62777d7f26 Handled default product to use first paid product
Since we now have 2 products by default for all ghost sites, free and default paid, the usage of default product which so far was using first product needs to be updated to use the first paid product.

- updates default product usage to use first paid tier
- updates tests
2022-01-17 22:59:34 +05:30
Rishabh
345eb5828c Added tier type in API response
refs https://github.com/TryGhost/Team/issues/1037

Tiers now have a `type` column to differentiate between `free` and `paid` tiers. This change allows `type` data for a tier in Admin and Portal API output.
2022-01-17 22:59:34 +05:30
Rishabh
e54395eab5 Added new default free tier
refs https://github.com/TryGhost/Team/issues/1037

Free tier is now setup the same way as other tiers, to allow custom description/benefits. This change:

- adds a migration to add a default free tier for all sites
- adds a default fixture to insert a free tier for all new sites
2022-01-17 22:59:34 +05:30
Rishabh
761a330e16 Added new type column for tiers
refs https://github.com/TryGhost/Team/issues/1037

- adds new `type` column for tiers to differentiate between free and paid tiers
- all existing tiers are updated to be `paid` tiers
2022-01-17 22:59:34 +05:30
Kevin Ansfield
d77948540a Added membersActivityFeed alpha labs flag
refs https://github.com/TryGhost/Team/issues/1277

- used for prototyping a separate activity feed screen that can show all members activity, combining the events shown in the dashboard with the email events shown on the member screen
2022-01-17 12:23:38 +00:00
Fabien 'egg' O'Carroll
10c214c148
Switched AMP to be 'off' by default in all new Ghost instances (#13907)
refs https://github.com/TryGhost/Team/issues/1189

Support for AMP is slowly in decline, and makes developing new cards trickier,
since AMP no longer has an effect of SEO we're going to disable it by default
as a first step toward moving away from it.

Co-authored-by: Thibaut Patel <thibaut@ghost.org>
2022-01-14 18:55:48 +02:00
Daniel Lockyer
f370d10401 Updated Admin to v4.32.3 2022-01-14 16:00:28 +00:00
Kevin Ansfield
96ec60e393
🐛 Fixed "Create Post" action error in Zapier when assigning new tags (#13972)
closes https://github.com/TryGhost/Zapier/issues/56

- fixes tag creation when creating posts with `tags: [{slug: 'new'}]` which should be supported
  - assigning tags with only `{slug: 'new'}` was triggering our validation for the required `name` property then bubbling up to the `bookshelf-relations` library resulting in a 500 error
  - the fix applied here is to set the `name` field to the same as the `slug` field if a name is not provided
2022-01-14 13:37:20 +00:00
Fabien "egg" O'Carroll
f58b5984cb Updated caching policy for /members/.well-known
refs https://github.com/TryGhost/Team/issues/1273

This endpoint currently only serves the members public key, which should
never change. A 24 hours cache will drastically reduce the number of
requests for the key, with little to no impact on functionality.
2022-01-14 14:04:23 +02:00
Fabien "egg" O'Carroll
5d8f491823 Updated caching policy for /members/api/site
refs https://github.com/TryGhost/Team/issues/1240

As this endpoint is hit on every page load when Portal is enabled, it
can cause a lot of traffic to Ghost. The data does not change very
frequently so we've added a 30s cache policy to alleviate load on servers.
2022-01-14 14:04:23 +02:00
Fabien "egg" O'Carroll
76b33b6e77 Added JSDoc to cache control middleware
no-issue
2022-01-14 14:04:23 +02:00
Daniel Lockyer
dbd6e31fc0
Merged v4.32.2 into main
v4.32.2
2022-01-12 10:02:33 +00:00
Daniel Lockyer
98ac844ee4 Updated Admin to v4.32.2 2022-01-12 10:00:20 +00:00
Fabien 'egg' O'Carroll
0aec18deee Stopped reconfiguring MemberAPI on settings change (#13943)
refs https://github.com/TryGhost/Team/issues/1257
refs https://github.com/TryGhost/Team/issues/1261

Certain event listens are being added twice due to the way we "reload"
the MembersAPI which can cause duplicate counts of Offer Redemptions.

Rather than creating multiple instances of the MembersAPI we're moving
toward being able to reload the config in place or passing getters for
the config which will allows us to use the MembersAPI as a singleton,
and remove any bugs which come from creating multiple instances.

This also fixes a bug with the allowSelfSignup config not refreshing when
the portal_plans setting was changed.
2022-01-12 11:31:59 +02:00
Matt Hanley
620059c7b4 🐛 Fixed incorrect edit redirect for authors
closes https://github.com/TryGhost/Ghost/issues/13942

- Admin routes were updated, and the author page was moved under the settings route, but the /edit redirect was missed
2022-01-10 16:56:33 +00:00
Fabien 'egg' O'Carroll
68127cf4d4
Stopped reconfiguring MemberAPI on settings change (#13943)
refs https://github.com/TryGhost/Team/issues/1257
refs https://github.com/TryGhost/Team/issues/1261

Certain event listens are being added twice due to the way we "reload"
the MembersAPI which can cause duplicate counts of Offer Redemptions.

Rather than creating multiple instances of the MembersAPI we're moving
toward being able to reload the config in place or passing getters for
the config which will allows us to use the MembersAPI as a singleton,
and remove any bugs which come from creating multiple instances.

This also fixes a bug with the allowSelfSignup config not refreshing when
the portal_plans setting was changed.
2022-01-10 18:21:09 +02:00
Daniel Lockyer
2e3628443d Updated Admin to v4.32.1 2022-01-07 16:00:35 +00:00
Rishabh
912d338b6b Added discount information for a member on Portal home page
refs https://github.com/TryGhost/Team/issues/1195

- adds discounted subscription price info where applicable on Portal account home page
2022-01-06 18:47:22 +05:30
Kevin Ansfield
c27ad6e6b8 🎨 Improved copy on member email unsubscribe page
closes https://github.com/TryGhost/Team/issues/1228

- copy updated to clarify the unsubscribe was for emails only, not full account cancelation
- added a link to member account management so members can easily re-subscribe to emails if desired
2022-01-05 15:27:13 +00:00
Thibaut Patel
01e833376b
🐛 Added pagination to sitemap.xml to avoid max 50,000 entries limit
refs https://github.com/TryGhost/Team/issues/1044
refs https://github.com/TryGhost/Ghost/pull/13298

- This splits the sitemaps according to the limit set by Google https://developers.google.com/search/docs/advanced/sitemaps/large-sitemaps

Co-authored-by:
- Kevin Ansfield (@kevinansfield)
2022-01-05 11:54:35 +01:00
Kevin Ansfield
5b5f756a8d Fixed linter error
refs https://github.com/TryGhost/Team/issues/1258

- all uses of `labs` service in the frontend site router have been removed but the require had been left in place
2022-01-04 15:29:00 +00:00
Kevin Ansfield
9b210f9add Fixed linter error
refs https://github.com/TryGhost/Team/issues/1258

- all uses of `labs` service in canary routes have been removed but the require had been left in place
2022-01-04 15:26:17 +00:00
Kevin Ansfield
fc6ed1a45e Removed headerCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 14:57:46 +00:00
Kevin Ansfield
829b410c78 Removed fileCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 14:57:25 +00:00
Kevin Ansfield
0de2c7e261 Removed filesAPI GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- files API is GA so labs flag and conditional access to files API routes is no longer necessary
2022-01-04 14:56:07 +00:00
Kevin Ansfield
ebae98f538 Removed membersAutoLogin GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- members auto login after Stripe checkout feature is GA so labs flag is no longer necessary
- bumps `@tryghost/members-api` to version that does not use the labs flag
2022-01-04 14:54:11 +00:00
Kevin Ansfield
2773e82e3e Removed mediaAPI GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- media API is GA so labs flag and conditional access to media API routes is no longer necessary
2022-01-04 13:11:23 +00:00
Kevin Ansfield
09228298b1 Removed audioCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 13:08:18 +00:00
Kevin Ansfield
afb402991d Removed richTwitterNewsletters GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- conditional custom-processing of twitter embeds is GA so no longer needs the flag or conditional
2022-01-04 13:07:39 +00:00
Kevin Ansfield
cd745e09a8 Removed productCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 13:04:53 +00:00
Kevin Ansfield
3d256d200e Removed accordionCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 13:03:43 +00:00
Kevin Ansfield
ee4ef59c43 Removed videoCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 12:58:06 +00:00
Kevin Ansfield
81d6385598 Removed calloutCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 12:56:51 +00:00
Kevin Ansfield
c4caf1c373 Removed nftCard GA labs flag
refs https://github.com/TryGhost/Team/issues/1258

- labs flag conditionals have been removed from Admin so the GA flag is no longer necessary
2022-01-04 12:55:33 +00:00
Kevin Ansfield
30c27ee1c3 🐛 Fixed Flickr embeds appearing distorted in emails
refs https://github.com/TryGhost/Team/issues/1262

- Flickr embeds have fixed width/height attributes on the `img` elements but the displayed width is always constrained to the width of the email content container which is less than the attribute width, however the fixed height is observed by email clients resulting in images that are stretched vertically
- added a `height: auto` CSS override so email clients will correctly recalculate the image size when resized to fit the container width
2022-01-04 11:33:08 +00:00
Fabien O'Carroll
4d457461c9 Deleted all SingleUseTokens on boot
refs https://github.com/TryGhost/Team/issues/1216

Since we are increasing the grace period to 10 minutes, we want to make
sure that server crashes during those 10 minutes do not cause single use
tokens to remain in the system. The quickest was to ensure that without
restartable background jobs is to delete all tokens upon boot.
2022-01-04 11:14:31 +01:00
Matt Hanley
cc7f527a6a
🐛 Added fallback for meta_description to custom_excerpt (#13927)
closes https://github.com/TryGhost/Ghost/issues/13920

- Custom excerpt should be used as a fallback for meta_description in line with the behaviour of OG and Twitter metadata
- We specifically don't want to use the full fallback to the auto-generated preview text when a custom excerpt isn't defined, because we trust search engines to be able to summarise content better than we can
2022-01-03 19:09:03 +00:00
Kevin Ansfield
cabf78e938 Cleaned up customThemeSettings labs flag
closes https://github.com/TryGhost/Team/issues/1164

- `customThemeSettings` feature is GA so any conditionals can be cleaned up
- removed conditional loading of custom theme settings and associated API routes
- removed event trigger for reloading custom theme settings when the feature flag is toggled
- removed flag from labs GA list
2022-01-03 17:45:25 +00:00
Fabien 'egg' O'Carroll
bc75d20cef
Updated SingleUseToken grace period to 10 minutes (#13926)
refs https://github.com/TryGhost/Team/issues/1216

Some email security clients are scanning links at delivery, rather than
at the point the user clicks on them. This is causing magic links to
expire. To get around this we're increasing the grace period in which a
link can be used multiple times to 10 minutes.
2022-01-03 17:55:53 +02:00
Juan Delgadillo
76cde79186
Fixed AMP style compliance (#13912)
no issue

- `!important` qualifier is not allowed in AMP styles as it's disallowed by the framework's spec https://amp.dev/documentation/guides-and-tutorials/develop/style_and_layout/style_pages/#disallowed-styles
2021-12-21 21:32:53 -05:00
Peter Zimon
25748f420c Applied default box sizing to all cards
refs. https://github.com/TryGhost/Ghost/issues/13874

- Improved stability of cards by adding 'box-sizing: border-box;' CSS property to all of them so that it's not required by themes anymore
2021-12-17 15:28:35 +01:00
Daniel Lockyer
435b385d94 Updated Admin to v4.32.0 2021-12-17 11:32:32 +00:00
Daniel Lockyer
3eabc6ca35
Added header card to editor
refs https://github.com/TryGhost/Team/issues/1253

- moves the header card flag to GA for public release
2021-12-17 12:20:10 +01:00
Peter Zimon
e64e646587 Refined default header styles 2021-12-17 07:53:16 +01:00
Peter Zimon
1d46adf07a Updated header card colors and typography 2021-12-17 04:23:46 +01:00
Peter Zimon
fb39a0032e Revert "Used neutral background colors for default header styles"
This reverts commit 999dc867b6.
2021-12-17 04:15:37 +01:00
Peter Zimon
999dc867b6 Used neutral background colors for default header styles 2021-12-17 03:41:50 +01:00
Peter Zimon
384efab031 Updated header frontend styles 2021-12-16 19:39:30 +01:00
James Morris
81374e3040 Updated button for header card frontend to not style inner span
refs https://github.com/TryGhost/Team/issues/1253
2021-12-16 18:26:02 +00:00
Peter Zimon
683ac885fd Updated email template for header card 2021-12-16 18:54:21 +01:00
Thibaut Patel
4984223bf2 Renamed the header styles
refs https://github.com/TryGhost/Team/issues/1253

- The naming is easier to understand for theme developers
2021-12-16 18:22:16 +01:00
James Morris
90c99afcfb Removed unnecessary styles from header card frontend
refs https://github.com/TryGhost/Team/issues/1253
2021-12-16 17:20:12 +00:00
James Morris
c373e41699 Added in proper header link colours
refs https://github.com/TryGhost/Team/issues/1253
2021-12-16 17:05:39 +00:00
James Morris
3490047a36 Updated frontend with header style tweaks
refs https://github.com/TryGhost/Team/issues/1253
2021-12-16 16:37:02 +00:00
Fabien 'egg' O'Carroll
a4783e1800
Removed empty class attribute from emails (#13906)
no-issue

This is causing some ESP's to think our markup is invalid, and this is
affecting deliverability
2021-12-16 16:58:33 +02:00
Sodbileg Gansukh
7898828cc6 Add gap to image card on smaller screen sizes 2021-12-16 21:54:23 +08:00
Sodbileg Gansukh
2649ba4c4b Add gap custom CSS property to image card
This adds margin to the image card next to a gallery card
2021-12-16 21:50:43 +08:00
Fabien 'egg' O'Carroll
0c853a372b
Supported restricting limit="all" in get helper (#13903)
refs https://github.com/TryGhost/Team/issues/1251

With sites that have a huge number of resources, using limit="all" can
cause OOM errors at the Node level. Administrators now have the ability
to cap limit="all" requests via config. This only affects the get helper
used in themes, not the API, this is by design as themes have less
visibility of issues.
2021-12-16 13:59:39 +02:00
Daniel Lockyer
78030ac848 Updated Admin to v4.31.0 2021-12-16 09:33:21 +00:00
Peter Zimon
41e4ba68c9 Updated toggle and product card spacings 2021-12-16 08:49:37 +01:00
Peter Zimon
9a8461e06b Added underline to accented callout card links 2021-12-16 08:45:31 +01:00
Naz
f882ebc58e Added support for additional wav MIME types
refs https://github.com/TryGhost/Toolbox/issues/95
refs 975750afe9

- The `audio/x-wav`, `audio/wav`, and `audio/wave` are also commonly used MIME types for the .wav files.
- As a reference for these new types used https://github.com/jshttp/mime-db
2021-12-16 10:58:39 +04:00
Naz
22d0c1efac Reformatted media content types
no issue

- The list is gonna get longer and has pottential to be edited few more times in the near future. It's a formatting change to allow seeing added/removed entries easier
2021-12-16 10:54:21 +04:00
Rishabh Garg
5927e38084
Added file card to editor
refs https://github.com/TryGhost/Team/issues/1231

- new file card in editor that allows custom file uploads
2021-12-16 01:11:41 +05:30
James Morris
5dc30ba6a9 Added AMP styles for headers as well as more tweaks for email and frontend
refs https://github.com/TryGhost/Team/issues/1253
2021-12-15 18:42:25 +00:00
Fabien egg O'Carroll
9db1c843c3 Updated Before/After card markup
refs https://github.com/TryGhost/Team/issues/1249

This removes some superfluous markup as well as renaming the slider
handle classname
2021-12-15 20:11:16 +02:00
James Morris
ad96ad4baa Next round of styles for headers in frontend and email
refs https://github.com/TryGhost/Team/issues/1253
2021-12-15 17:45:01 +00:00
Peter Zimon
4353763de1 Updated file upload frontend styles 2021-12-15 17:44:37 +01:00
Fabien egg O'Carroll
6938808276 Improved styling of mismatched aspect ratio sliders
refs https://github.com/TryGhost/Team/issues/1249

The height:100%; stops taller images escaping the slider component.
2021-12-15 17:04:06 +02:00
Fabien egg O'Carroll
6f97396c1b Removed focus from slider after use
refs https://github.com/TryGhost/Team/issues/1249

If we leave focus on the slider than after interacting with it, it will
capture scroll events and move the slider rather than scrolling the
page.
2021-12-15 16:59:25 +02:00
Fabien egg O'Carroll
c745211ee4 Fixed small images in "wide" before/after card
refs https://github.com/TryGhost/Team/issues/1249

Because we cannot resize the container of teh slider without affecting
the surrounding content, e.g. in the context of a grid. We need to
stretch images to fit the slider container.

This also applies the `object-fit: cover` property to the slider image
to help with mis-matched aspect ratios
2021-12-15 16:56:46 +02:00
Fabien egg O'Carroll
16c6e535be Fixed image widths for before/after slider
refs https://github.com/TryGhost/Team/issues/1249

Instead of attempting to calculate teh width of the container, we leave
one image to fill up space naturally as the browser allows it, and then
use that to set the width of the secondary image.
2021-12-15 16:32:35 +02:00
Peter Zimon
acd0223f5b Callout style refinements 2021-12-15 14:51:55 +01:00
Thibaut Patel
49170e7ff2 Added a first version of the header card frontend rendering
refs https://github.com/TryGhost/Team/issues/1253

- Based on the editor card, the css isn't correct yet as it has undefined css variables
2021-12-15 14:46:00 +01:00
Fabien egg O'Carroll
a21a436f98 Added handle for before/after slider
refs https://github.com/TryGhost/Team/issues/1249

Using an input as the slider handle meant setting a width of 100% + px,
which could push width over the size of the screen - not good! This
takes the same approach as the CodePen linked below and uses a separate
element, which has the position of it updated by JS in realtime.

https://codepen.io/josephwong2004/pen/NWRGxdR
2021-12-15 15:16:29 +02:00
Daniel Lockyer
66df325721 Updated Admin to v4.30.1 2021-12-15 13:10:47 +00:00
Daniel Lockyer
8397e9489c Updated Admin to v4.30.0 2021-12-15 12:49:15 +00:00
Peter Zimon
45066b11fd Default card style updates
- fixed video styles for small videos
- cleaned up callout card typography spacings
2021-12-15 13:40:26 +01:00
Rishabh Garg
306e565fc1
Added new video card
refs https://github.com/TryGhost/Team/issues/1229

- new video card allows adding custom video files with thumbnail to post/page
2021-12-15 18:02:28 +05:30
Rishabh
ffe502fa84 Refined layout for videos with smaller aspect ratio
refs https://github.com/TryGhost/Team/issues/1229
2021-12-15 17:57:25 +05:30
Peter Zimon
cebbc7ce38
Card css specificity updates (#13895)
The default CSS styles of the new cards that have been released in the past couple of weeks was overoptimised for overridability. It was done by defining the lowest specificity scores for each card style. This resulted in certain default styles being unusable for a lot of themes – e.g. the text color of a button (which is a a element that is usually defined on a higher specificity) could easily be the same color as its background (accent color by default).

The solution to this issue is to increase the specificity level of globally used default elements (such as a's h1 and other headings, p's etc.) to a medium level so that they have precedence over styles that are defined in most themes. Our baseline specificity score for these default style is 21, which seems to be covering most of the cases in popular themes.

This commit contains CSS updates in card default styles that implement this change.
2021-12-15 12:58:24 +01:00
Sodbileg Gansukh
aba5382070 Add pointer cursor to audio/video card buttons by default 2021-12-15 16:27:33 +08:00
Peter Zimon
a3078589dd Updated file styles 2021-12-14 20:50:35 +01:00
Rishabh
e21eb935f4 Fixed video player overlay issue on loop
refs https://github.com/TryGhost/Team/issues/1229
2021-12-15 00:44:49 +05:30
Sanne de Vries
2ac0302da1 Fixed responsive issues for video card
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 19:57:06 +01:00
Rishabh
c158f9ebfc Refined video controls hidden behavior
no refs

This reverts commit 182899150f.
2021-12-14 22:41:58 +05:30
Rishabh
182899150f Refined video controls hidden behavior
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 22:40:03 +05:30
Sanne de Vries
e574a8f2b3 Refined video player controls
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 18:04:25 +01:00
Rishabh
e43fe45d24 Removed play icon on video player after first play
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 22:25:30 +05:30
Rishabh
04baa88c23 Fixed video not playing sometimes via player controls
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 22:20:55 +05:30
Peter Zimon
ae2a782987 Audio and file card frontend styles refinements 2021-12-14 17:46:30 +01:00
Rishabh
a6a25dbb77 Updated event handling for custom video player
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 22:15:08 +05:30
Rishabh
61f7f29eed Fixed pause not working for video player
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 22:05:29 +05:30
Rishabh
9ec83214ba Fixed hidden controls for videos on loop
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 21:54:56 +05:30
Sanne de Vries
2364de5696 Added animation to control behavior for video cards
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 17:22:36 +01:00
Rishabh
b8b0a29a2e Refined video player UI behavior
refs https://github.com/TryGhost/Team/issues/1229

- allows pausing video by clicking on video overlay
2021-12-14 21:50:27 +05:30
Rishabh
441307c6ad Updated video card player behavior
refs https://github.com/TryGhost/Team/issues/1229

- refines player control UI behavior on mouseenter
2021-12-14 21:32:52 +05:30
Sanne de Vries
aa80cf415b Refined video controls behaviour
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 16:51:00 +01:00
Sanne de Vries
79a48df75c Updated video card frontend rendering
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 16:31:42 +01:00
Rishabh
64b3bbf1a6 Refined video controls behavior
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 21:01:22 +05:30
Sam Lord
97c68dd388
Replace error handler middleware with @tryghost/mw-error-handler (#13879)
refs: https://github.com/TryGhost/Toolbox/issues/137

Extract error handling middleware and replace with a package.
2021-12-14 15:18:46 +00:00
Rishabh
271d2c02b0 Added video overlay icon handling
refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 20:38:07 +05:30
Sanne de Vries
ad35b4f17e Updated video card frontend rendering
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 14:44:57 +01:00
Peter Zimon
5ddb2a8a40 Updated file card frontend styles 2021-12-14 14:37:36 +01:00
Sam Lord
80a385ef0c Replace GhostError with InternalServerError
no issue

@tryghost/errors no longer exports GhostError, as we should only be using subclasses. Replace with InternalServerError as a new default, but should be replaced with a relevant error when one exists.
2021-12-14 12:17:48 +00:00
Sam Lord
76f06fae3c
Revert "Revert "Extract logging from DI patterns, only use @tryghost/logging package"" (#13884)
This reverts commit fa8c3ebe99.

Reverting the revert, which will allow us to fully switch to @tryghost/logging v2.
2021-12-14 11:22:39 +00:00
Sanne de Vries
5a798c35ba Updated video card frontend rendering
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-14 11:48:33 +01:00
Sanne de Vries
7db12650f9 Fixed seeker width jumping when playing audio
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-14 09:46:14 +01:00
Fabien egg O'Carroll
ac5aa4e0c5 Logged in members after Stripe Checkout
refs https://github.com/TryGhost/Team/issues/1067

As well as providing a better UX for Members, allowing them to use the
site immediately after payment, rather than having to check emails and
use the magic link to sign in, this should reduce issues with members
signing up twice due to being confused after Stripe Checkout.
2021-12-14 09:54:46 +02:00
Daniel Lockyer
c20cbbbaa5 Updated Admin to v4.29.0 2021-12-14 07:25:03 +00:00
Rishabh Garg
daea92cf3f
Added new audio card
refs https://github.com/TryGhost/Team/issues/1230

- new audio card allows adding custom audio files with thumbnail to post/page
- also adds new file and media API to manage files/thumbnails uploaded for new cards
2021-12-14 10:54:45 +05:30
Sanne de Vries
93a81fc0ca Updated audio card frontend rendering
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 22:15:20 +01:00
Sanne de Vries
57969dea6c Refined audio and bookmark frontend styles
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 19:10:06 +01:00
Rishabh
f91bf677ff Removed disallowed amp class names for audio player
refs https://github.com/TryGhost/Team/issues/1230

- `i-amphtml-media-component` class name is not allowed in amp styles as they are disallowed by amp spec
2021-12-13 22:36:30 +05:30
Daniel Lockyer
59d51b58d2 Updated Admin to v4.28.0 2021-12-13 16:58:05 +00:00
Thibaut Patel
3f2e4fc4d0 Added a product card to the editor
closes https://github.com/TryGhost/Team/issues/1245

The product card enables to show product recommendations in pages and posts.
2021-12-13 17:44:53 +01:00
Fabien egg O'Carroll
8966f45993 Added basic input styling for Before/After card
refs https://github.com/TryGhost/Team/issues/1249

This makes the input act as a slider over the image.
2021-12-13 17:41:21 +02:00
Thibaut Patel
2800f538bc Updated the product card classes
refs https://github.com/TryGhost/Team/issues/1245

- Removes dependency from the product card css to other cards' css
2021-12-13 16:13:57 +01:00
Sanne de Vries
8c52e001c1 Refined audio card frontend rendering
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 15:54:38 +01:00
Rishabh
7e061cee39 Renamed generic class names for video card
refs https://github.com/TryGhost/Team/issues/1229
2021-12-13 19:01:30 +05:30
Rishabh
cd238c64ba Updated frontend styles for file card
refs https://github.com/TryGhost/Team/issues/1231
2021-12-13 19:01:30 +05:30
djordje vlaisavljevic
1256d28615 Updated product card amp styles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-13 14:23:35 +01:00
Fabien egg O'Carroll
c665b65e03 Added initial CSS&JS for Before/After card
refs https://github.com/TryGhost/Team/issues/1249

This contains the initial frontend code to provide a working slider for
the Before/After card. The JS is enclosed in an IIFE so as to not leak
any variables, and the CSS is all scoped to the card only to avoid
interfering with existing styles.
2021-12-13 15:08:57 +02:00
Sanne de Vries
d4d98d0ab5 Refined audio player UI
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 14:08:39 +01:00
Sanne de Vries
10d59e9795 Updated audio player class-names
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 13:46:19 +01:00
Sanne de Vries
c10db9a885 Fixed audio thumbnail placeholder in email
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 13:35:40 +01:00
Sanne de Vries
c8ebe22a0c Updated audio card AMP styling
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 13:16:51 +01:00
Rishabh
f237879251 Updated loop behavior for video player on theme
refs https://github.com/TryGhost/Team/issues/1229
2021-12-13 17:31:57 +05:30
Rishabh
4205951f7a Added accent background color for default audio thumbnail
refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 16:53:41 +05:30
djordje vlaisavljevic
7f248381ec Updated product card styles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-13 12:22:59 +01:00
Sanne de Vries
d8e49cb039 Fixed background color for transparent pngs as audio thumbnails
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 11:10:11 +01:00
Sanne de Vries
0322c47a58 Fixed audio card responsive behaviour on frontend
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-13 09:10:32 +01:00
Rishabh
3df7737de7 Added custom video player controls
refs https://github.com/TryGhost/Team/issues/1229

- adds custom video player controls, similar to audio player
2021-12-13 13:25:16 +05:30
Peter Zimon
baf6db2a48 Added dynamic styles for star rating in products 2021-12-13 08:31:06 +01:00
Peter Zimon
14f871e244 Adjusted product card frontend styles 2021-12-13 07:59:49 +01:00
Peter Zimon
3ec833266a Fixed NFT card margin 2021-12-13 07:34:43 +01:00
djordje vlaisavljevic
e0cb8cc3c9 Updated product card styles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-12 19:23:42 +01:00
djordje vlaisavljevic
d55e44e5e9 Switched product card frontend to CSS grid
https://github.com/TryGhost/Team/issues/1245
2021-12-11 17:01:43 +01:00
Daniel Lockyer
8b9e1528f0 Updated Admin to v4.27.2 2021-12-10 16:00:27 +00:00
djordje vlaisavljevic
9b2b37b8f1 Updated product card line heights
ref https://github.com/TryGhost/Team/issues/1245
2021-12-10 16:36:18 +01:00
Sodbileg Gansukh
fc4d8d7de0 Fix audio card player button alignment 2021-12-10 11:27:35 +08:00
Rishabh
4f52e28c04 Cleaned up frontend audio card player script
refs https://github.com/TryGhost/Team/issues/1230

- removes unnecessary use of src attribute in the script as the theme file is already loaded with the src
2021-12-10 01:30:06 +05:30
Rishabh
f272da0536 Added post url option for mobiledoc cards conversion to html
refs https://github.com/TryGhost/Team/issues/1231
refs https://github.com/TryGhost/Team/issues/1230
refs https://github.com/TryGhost/Team/issues/1229

- passes post url to mobiledoc html renderer
- allows using the post url in email templates for upload cards, linking the static card ui to post directly
2021-12-10 00:05:07 +05:30
Kevin Ansfield
0fbec65a6e Added headerCard labs flag
refs https://github.com/TryGhost/Team/issues/1253

- setup for an editor card that lets you lay out a header title with background image
2021-12-09 13:35:29 +00:00
djordje vlaisavljevic
5b3f82dda2 Added padding between paragraphs in product card description
refs https://github.com/TryGhost/Team/issues/1245
2021-12-09 13:41:05 +01:00
djordje vlaisavljevic
7f89b07c85 Updated the way star rating colors are shown
ref https://github.com/TryGhost/Team/issues/1245
2021-12-09 13:41:05 +01:00
Sodbileg Gansukh
00546e6ff3 Add resets to audio card form elements 2021-12-09 19:30:30 +08:00
Peter Zimon
dc6e7a690a Updated NFT styles to use px sizings 2021-12-09 11:55:05 +01:00
Peter Zimon
4d59c7a694 Updated button styles to use relative sizings 2021-12-09 11:50:49 +01:00
Sanne de Vries
fc8ecc352f Updated rendering of audio cards without thumbnail
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-09 09:14:01 +00:00
Kevin Ansfield
d4c110a55b Added first pass of video card rendering
refs https://github.com/TryGhost/Team/issues/1229

- bumped @tryghost/kg-default-cards that contains initial video card rendering
- added video card CSS file with basic style that prevents video element rendering larger than the content width (similar to default image styles in most themes)
2021-12-08 18:01:44 +00:00
Rishabh
2d43c12276 Fixed global variable leak for new card scripts
no issue

- wraps the card js scripts into an IIFE to avoid polluting global variables on the site
- also any fixes errors caused by `swup` and its scripts-plugin that trips over already created global variables
2021-12-08 22:58:22 +05:30
Daniel Lockyer
44ad9fde09 Updated Admin to v4.27.1 2021-12-08 16:02:08 +00:00
Fabien egg O'Carroll
55d7176e51 🐛 Fixed card scripts executing before DOM is parsed
no-issue

Using the async attribute means that the script is downloaded in
parallel with the parsing of the html into DOM, and then executed upon
completion. This means that the script cannot be sure that particular
parts of the DOM exist as it may not have finished parsing. This has
resulted in bugs with the new toggle card not working.

Switching our script to use the defer attribute means that the script is
still downloaded in parallel with parsing, but it is not executed until
parsing is complete. This means that the script can safely access the
DOM.
2021-12-08 17:54:37 +02:00
Daniel Lockyer
52491e7a6e Updated Admin to v4.27.0 2021-12-08 15:38:06 +00:00
Kevin Ansfield
b3a57f702b Removed quoteStyles flag
refs https://github.com/TryGhost/Team/issues/1239

- alternative blockquote style feature is no longer behind the flag in Admin so we no longer need the flag server-side
2021-12-08 15:21:49 +00:00
Fabien egg O'Carroll
d6e6f2e4be Added support for rich Twitter embeds in emails
refs https://github.com/TryGhost/Team/issues/1001

This adds custom rendering to Twitter embeds for email newsletters, so
that rather than displaying a plaintext blockquote with the tweet
contents, we render an rich Twitter card.
2021-12-08 17:19:27 +02:00
Daniel Lockyer
fa8c3ebe99 Revert "Extract logging from DI patterns, only use @tryghost/logging package"
This reverts commit 97451a93cb.
2021-12-08 14:28:41 +00:00
Daniel Lockyer
2d090b8b2a Revert "Remove unnecessary references to ghostVersion"
This reverts commit 443ee369d2.
2021-12-08 14:28:41 +00:00
Sanne de Vries
6e4be46fb3 Updated audio card frontend styles in Chrome
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-08 12:22:39 +00:00
djordje vlaisavljevic
e72092fa5e Updated product card frontend styles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-08 12:40:57 +01:00
Rishabh
9cbaab119b Refined audio card player with multiple playback rate options
refs https://github.com/TryGhost/Team/issues/1230

- adds multiple playback rate option to audio card player on click
2021-12-08 16:36:22 +05:30
Thibaut Patel
62988fe1db Added the tweetGridCard feature flag
refs https://github.com/TryGhost/Team/issues/1255

- developer flag for enabling tweet grid cards in the card menus
2021-12-08 10:07:56 +01:00
djordje vlaisavljevic
cb86c06504 Removed unnecessary CSS and !important declarations
refs https://github.com/TryGhost/Team/issues/1245
2021-12-08 10:03:12 +01:00
djordje vlaisavljevic
88238e6403 Updated frontend styles for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 20:58:42 +01:00
djordje vlaisavljevic
325de3e5cf Updated frontend styles for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 20:16:45 +01:00
Rishabh
27ced6cc84 Refined audio card player sliders
refs https://github.com/TryGhost/Team/issues/1230

- refines seek and volume sliders for audio player to show progress marker with background color
2021-12-08 00:16:32 +05:30
djordje vlaisavljevic
bf78df0e07 Added frontend CSS file for product card
refs https://github.com/TryGhost/Team/issues/1233
2021-12-07 17:33:13 +01:00
Rishabh
52faba6dac Added dynamic play/pause and unmute state for audio card player
refs https://github.com/TryGhost/Team/issues/1230

- adds dynamic play/pause icon toggle for audio player
- adds dynamic mute/unmute icon toggle for mute behavior
- fixed volume slider not working
2021-12-07 20:43:20 +05:30
Sam Lord
443ee369d2
Remove unnecessary references to ghostVersion
refs: https://github.com/TryGhost/Toolbox/issues/146
GhostVersion was passed in here but not used at all. This just removes those unnecessary usages.
2021-12-07 13:48:22 +00:00
Sanne de Vries
986f731e60 Updated audio card frontend styles
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-07 13:47:36 +00:00
Sanne de Vries
259d40641d Updated audio card playback speed characters
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-07 13:16:04 +00:00
Sanne de Vries
b6544afff5 Updated audio card frontend rendering
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-07 13:04:44 +00:00
James Morris
0aaa1b9c75 Removed more unnecessary styles from blockquote card styles
refs https://github.com/TryGhost/Team/issues/1239
2021-12-07 11:53:46 +00:00
James Morris
5c4cfc785f Removed blockquote selector from card styles plus email tweaks
refs https://github.com/TryGhost/Team/issues/1239
2021-12-07 11:35:58 +00:00
Daniel Lockyer
0d8bc06fb9
Merged v4.26.1 into main
v4.26.1
2021-12-07 09:36:54 +00:00
Daniel Lockyer
9f0d72f159 Updated Admin to v4.26.1 2021-12-07 09:35:14 +00:00
Fabien egg O'Carroll
2a1eb3de88 Improved rendering for twitter newsletter embeds
refs https://github.com/TryGhost/Team/issues/1001

This also adds the missing alpha flag so that we can release this when
it's ready.
2021-12-07 11:23:54 +02:00
djordje vlaisavljevic
aa7d1e240c
🎨 Made toggle card closed by default
refs https://github.com/TryGhost/Team/issues/1209
2021-12-07 09:00:43 +00:00
djordje vlaisavljevic
67b6304807 Made toggle card closed by default
refs https://github.com/TryGhost/Team/issues/1209
2021-12-06 22:15:54 +01:00
Sam Lord
97451a93cb
Extract logging from DI patterns, only use @tryghost/logging package
refs: https://github.com/TryGhost/Toolbox/issues/146

Switched to @tryghost/logging instead of passing around the library. The main sticking points of this change are jobs. When jobs are launched we don't want them to use a separate @tryghost/logging instance because they would start parallel rotation jobs. @tryghost/logging v2.x passes all logs to the parent process if run in a child process, so that we can use the same patterns in jobs and the rest of the codebase.
2021-12-06 18:00:55 +00:00
Daniel Lockyer
070992b316 Updated Admin to v4.26.0 2021-12-06 13:29:21 +00:00
Thibaut Patel
361033ead2 Added a callout card
refs https://github.com/TryGhost/Team/issues/1206

- The callout card displays an emoji and a paragraph of text inside a highlighted box.

Co-authored-by:
- Sanne de Vries (@sanne-san)
2021-12-06 14:13:43 +01:00
James Morris
5b34af9954 Tweaked AMP and email CSS and moved from REM to EM
refs https://github.com/TryGhost/Team/issues/1239
2021-12-06 13:08:02 +00:00
Fabien egg O'Carroll
e43296f1d7 Added include data to Twitter embed
refs https://github.com/TryGhost/Team/issues/1001

This data is required to render information for linked content, for
example images, polls, and mentioned users.
2021-12-06 14:24:59 +02:00
Rishabh Garg
ea54393e88
Added toggle card to editor (#13834)
closes https://github.com/TryGhost/Team/issues/1209

The toggle card allows adding collapsible content in pages and posts.
2021-12-06 17:43:33 +05:30
djordje vlaisavljevic
024f735844 Moved svg arrow styles from inline to CSS file
refs https://github.com/TryGhost/Team/issues/1209
2021-12-06 12:58:47 +01:00
Sanne de Vries
1bc64dc7e4 Fixed callout card link invisible on brand-color background in AMP 2021-12-06 11:02:21 +00:00
Rishabh
2aa353a1a0 Added custom audio player UI for audio card
refs https://github.com/TryGhost/Team/issues/1230

- adds custom css and js for custom audio card player
- bumps `kg-default-cards` to add custom audio player ui for theme
2021-12-06 14:24:41 +05:30
Naz
abcd715907 Fixed express app stacking
refs https://github.com/TryGhost/Toolbox/issues/152

- Because the root app module was initialized only once per runtime it caused all the express apps to stack on each other causing all sorts of strange behavior when trying to test redirects/vhost mounts etc. Lesson here: be very cautious of how the module is initialized, an explicit function is almost always a better way!
2021-12-06 21:28:53 +13:00
Naz
91338b23d9 Fixed typo 2021-12-06 21:28:53 +13:00
Naz
de121e1219 Modified boot to conditionally return an express app
refs 3c7a8dead4

- The idea is a rip-off from the referenced commit. It allows to isolate initialization logic to "frontend" mounted on top of a "parent"
- Gives path to simplify the express-mock tests

Co-authored-by: Hannah Wolfe <erisds@gmail.com>
2021-12-06 21:28:53 +13:00
Naz
b19424acb3 Moved vhost mounts into boot file
refs https://github.com/TryGhost/Toolbox/issues/152

- This stops the mounting of the admin and frontend from being buried deep in express initialisation
- Instead it's explicit, which makes two things almost possible:
   1. we can potentially boot the frontend or backend independently
   2. we can pass services and settings loaded during boot into the frontend
- This needs more work, but we can start to group all the frontend code together
- Meanwhile we also need to rip apart the routing and url services to decouple the frontend from the backend fully
- BABY STEPS!

Co-authored-by: Hannah Wolfe <erisds@gmail.com>
2021-12-06 21:28:53 +13:00
Daniel Lockyer
71b647aab1
Removed unused import
refs ec28478435

- I removed use of the `logging` variable in the last commit so we no
  longer need the library import
- this fixes a linting issue
2021-12-06 08:17:07 +00:00
Daniel Lockyer
ec28478435
🐛 Fixed error when sending messages via bootstrap socket
refs https://github.com/TryGhost/Ghost/issues/13837

- a [refactor](9fa8800b9d) in `@tryghost/bootstrap-socket` changed the signature of the method it exprots, but the use of this
  library wasn't updated in Ghost
- therefore, the library was trying to send the `@tryghost/logging` library, which caused
  errors with Ghost-CLI down the line, as mentioned in the issue
- this commit updates the method signature to match what is expected
2021-12-06 08:04:26 +00:00
Peter Zimon
8515388ce6 Added Twitter styles to email template 2021-12-04 10:34:47 -04:00
Fabien egg O'Carroll
94cfbb19fc Added fallback for NFT title when name is missing
no-issue

Some NFT's are created without a title, for example the Bored Ape Yacht
Club collection does not name the tokens, instead just referring to them
by ID. This change falls back to the token_id, which is unqiue within
the collection to support these tokens.
2021-12-03 21:16:22 +02:00
Fabien egg O'Carroll
e5068a6557 Updated email content for paid signups
refs https://github.com/TryGhost/Team/issues/1067

Changes based on product feedback.
2021-12-03 21:15:55 +02:00
djordje vlaisavljevic
18be68a4bb Updated the spacing between toggle cards on frontend
refs https://github.com/TryGhost/Team/issues/1209
2021-12-03 17:55:26 +01:00
Daniel Lockyer
4716c76044 Updated Admin to v4.25.1 2021-12-03 16:00:37 +00:00
djordje vlaisavljevic
c229ada2b5 Updated toggle styles
refs https://github.com/TryGhost/Team/issues/1209
2021-12-03 16:41:50 +01:00
Sanne de Vries
c0d5711d6d Added link styling for callout card with brand color as background
Refs https://github.com/TryGhost/Team/issues/1206
2021-12-03 14:08:18 +00:00
Sanne de Vries
a07580b890 Updated callout card default styles
No ref

- Added default font sizes and line heights
- Switched from absolute to relative units to adapt to different themes
2021-12-03 13:28:19 +00:00
djordje vlaisavljevic
5c7e935b78 Removed the background from the arrow button
refs https://github.com/TryGhost/Team/issues/1209
2021-12-03 10:41:22 +01:00
Sanne de Vries
dae4cd7de6 Updated AMP styling for callout cards
Refs https://github.com/TryGhost/Team/issues/1206
2021-12-03 09:39:49 +00:00
djordje vlaisavljevic
07855bf8dc Updated toggle transition
refs https://github.com/TryGhost/Team/issues/1209
2021-12-02 19:42:38 +01:00
djordje vlaisavljevic
1a3b78bbff Fixed toggle transition
refs https://github.com/TryGhost/Team/issues/1209
2021-12-02 18:49:18 +01:00
James Morris
6f9fd79120 Add a basic style for alternative quote for AMP 2021-12-02 14:13:50 +00:00
James Morris
f13a49233c Add blockquote alternative card styling 2021-12-02 14:13:50 +00:00
James Morris
1731723624 Alternative quote for email template 2021-12-02 14:13:50 +00:00
Fabien egg O'Carroll
24e78dc60f Added alpha flag for Before/After card
refs https://github.com/TryGhost/Team/issues/1249

Until release this card will be behind a flag.
2021-12-02 12:29:11 +02:00
Thibaut Patel
77c0364efd 🐛 Fixed malformed URLs crashing the url helper
refs https://github.com/TryGhost/Team/issues/960

- Character like "%%" or "%80" would crash our current url escaping behavior. We consider they aren't valid URLs as the percentages haven't been properly escaped.
2021-12-02 10:34:24 +01:00
Hannah Wolfe
ecbdb2284e
Fixed MIME type for public/cards.min.js part deux
refs: 580ebfad39

- correct mime type is application/javascript
- mime types are weird
2021-12-02 09:03:06 +00:00
Marat Vyshegorodtsev
580ebfad39
Fixed MIME type for public/cards.min.js (#13808)
- This script does not load if `x-content-type-options: nosniff` is enforced due to wrong MIME type
2021-12-02 09:01:18 +00:00
Thibaut Patel
7d9721dd54 Added one error catching inside the oembed service
refs https://github.com/TryGhost/Team/issues/1200

- The error was fixed in a1421c2380
- The error catching prevents future 500 errors in the API
- The logging enable visibility on these errors to fix them if they happen
2021-12-01 17:46:23 +01:00
Daniel Lockyer
faef8f5f6d Updated Admin to v4.25.0 2021-12-01 15:49:29 +00:00
Thibaut Patel
a1421c2380 🐛 Fixes oembed bookmark with whitespaces
refs https://github.com/TryGhost/Team/issues/1200

- The leading/trailing whitespaces are trimmed by `new URL()` but are considered invalid in metascraper. Trimming solves this edge case.
2021-12-01 15:58:09 +01:00
Sanne de Vries
ea50944897 Updated callout card class for consistency
No ref

- Swapped "kg-card-callout" for "kg-callout-card"
2021-12-01 14:25:33 +00:00
Fabien egg O'Carroll
1096488446 Added NFT Card support to Ghost
refs https://github.com/TryGhost/Team/issues/1211

The NFT card allows embeding NFT's from OpenSea in posts and pages.
2021-12-01 16:02:52 +02:00
Peter Zimon
a727135800 Updateed Button styles to support alignment 2021-12-01 09:44:32 -04:00
Kevin Ansfield
e9df5b9310 Fixed linter error
refs f91fc2add5

- with the removal of the labs check the labs service require is no longer used
2021-12-01 12:32:10 +00:00
Kevin Ansfield
f91fc2add5 Finished gifsCard labs flag removal
refs 5aa08acd33

- removed the flag check in public config output
- fixes failing tests
2021-12-01 12:29:50 +00:00
Naz
3150c87935 Fixed hidden validation error during frontend reload
refs https://github.com/TryGhost/Toolbox/issues/151
refs cbec6aa49e

- Without the await the try/catch block does not catch a pottential validation error straight away, which leads to a 500 error instead of a validation error being returned. The regression was introduced during the refactor (part of referenced commit).
2021-12-01 16:24:09 +04:00
Kevin Ansfield
5aa08acd33 Removed gifsCard labs flag
refs cec3d91c57

- flag is no longer used by Admin
2021-12-01 12:21:40 +00:00
Kevin Ansfield
9790de1413 Removed buttonCard labs flags
refs e9472b3ee9

- flag is no longer used in Admin
2021-12-01 12:21:09 +00:00
Hannah Wolfe
004371be36
Revert "Removed overly-specific handling of handlebars errors"
This reverts commit 303ea87897.

- Although gscan catches these now, we have a number of sites that have slipped through the net
- Reverting until we get them all cleaned up
2021-12-01 12:04:36 +00:00
Hannah Wolfe
9f11140ec4
Split theme engine middleware into separate files
- one big file full of stuff is never good for clarity
- separating it out helps us see what requires what
- it also highlights the awful naming and opaque behaviour we have in themes - much to do, but this helps us start
2021-12-01 12:04:36 +00:00
Naz
e6503e5148 Fixed invalid filename error during settings restore
refs https://github.com/TryGhost/Toolbox/issues/151
refs cbec6aa49e

- The error was happening due to incorrect "this" context. Because the filename and extension are only used once in this class and only for the purposes of the error message have moved the whole thing into the error message itself. No need to keep additional variables around when there's no clear usecase.
2021-12-01 15:47:13 +04:00
Sam Lord
18b8eddd0d Added linting for use of @tryghost/errors
refs: https://github.com/TryGhost/Toolbox/issues/147
Errors in @tryghost/errors rely on being called with an object (with a `message` member) rather than with a string.
2021-12-01 11:22:21 +00:00
Fabien egg O'Carroll
579b34434f Added separate confirmation email for paid signups
refs https://github.com/TryGhost/Team/issues/1067

As part of the work of automatically logging members in after payment,
we want to revisit the emails. Currently after payment we send an email
asking a member to _confirm_ their subscription, and that they can
ignore the email to cancel the subscription. This is not the case
however, as the member has already been subscribed.
2021-12-01 12:42:11 +02:00
Sam Lord
2887e416da
Switch to @tryghost/errors from ignition errors package (#13807)
refs: TryGhost/Toolbox#147

* Replaces all references to isIgnitionError with isGhostError
* Switches use of GhostError to InternalServerError - as GhostError is no longer public
There are places where InternalServerError is not the valid error, and new errors should be added to the @tryghost/errors package to ensure that we can use semantically correct errors in those cases.
2021-12-01 10:22:01 +00:00
Fabien egg O'Carroll
c77263f35b Redirected to original image when resizing fails
refs https://github.com/TryGhost/Team/issues/1234

Sharp can occasionally fail resizing, this is usually due the the
underlying libvips library failing. We do not want this to cause an
error however, instead we should just show the original image - as
resizing is an optimisation, rather than a requirement.
2021-12-01 10:42:27 +02:00
Fabien egg O'Carroll
616cd107df Updated Tenor default config keys
refs https://github.com/TryGhost/Team/issues/1237

Including the scope & visibility of api keys as outlined in the issue.
2021-11-30 13:35:34 +02:00
Fabien egg O'Carroll
e6856f6ac6 Initial custom embed provider for Twitter
refs https://github.com/TryGhost/Team/issues/1001

We fall back to existing behaviour if no API key is present, or if there
is an error communicating with the Twitter API. We're also currently
requesting all the data, which will be thinned down once we understand
what we need.

This also includes a custom renderer for embeds of type "twitter" which
will be used to output the custom HTML for emails
2021-11-30 12:58:25 +02:00
Fabien egg O'Carroll
c4021b6eb4 Added OpenSea API key to config
refs https://github.com/TryGhost/Team/issues/1237

We want to use an API key for OpenSea where possible so that we do not
run into rate limit issues.
2021-11-30 12:58:25 +02:00