Commit Graph

11757 Commits

Author SHA1 Message Date
Ghost CI
ca91b847f3 Merged v5.61.2 into main 2023-09-05 17:55:54 +00:00
Ghost CI
50341d164f v5.61.2 2023-09-05 17:55:51 +00:00
Kevin Ansfield
0b37e835af
🐛 Fixed incorrect rendering of links following line breaks in beta editor
closes https://github.com/TryGhost/Product/issues/3827

- links following a line break in the editor were being rendered before the line break when previewing/publishing
- bumps Koenig packages which includes relevant fix in `@tryghost/kg-lexical-html-renderer`
2023-09-05 18:28:39 +01:00
Kevin Ansfield
92d07a97ab
Revert "Added drop of intermediate post saves between current running and latest triggered" (#17978)
reverts TryGhost/Ghost#17912

- unfortunately dropping save tasks when one is already running has side-effects for code that is initiating the save tasks
- e.g. the slug or title update actions call `saveTask.perform()` and if that related save request fails they expect to get a standard request error so they can show a message and perform a model rollback. However with `keepLatest` the save task can be dropped and "fail" immediately with a `TaskCancelation` error which has unintended side-effects:
  1. error handling is no longer tied to the specific request meaning we could have slug-related failures being handled by non-slug-save code which is unexpected
  2. the internal `TaskCancelation` error is handled as if it was general error and we end up showing a useless error in the red error bar that makes it look like something failed when it didn't
  3. we initiate a model rollback when we do not have a failure situation that requires it meaning we can lose changes
2023-09-05 18:28:31 +01:00
Kevin Ansfield
d00f437cf2
Revert "Added drop of intermediate post saves between current running and latest triggered" (#17978)
reverts TryGhost/Ghost#17912

- unfortunately dropping save tasks when one is already running has side-effects for code that is initiating the save tasks
- e.g. the slug or title update actions call `saveTask.perform()` and if that related save request fails they expect to get a standard request error so they can show a message and perform a model rollback. However with `keepLatest` the save task can be dropped and "fail" immediately with a `TaskCancelation` error which has unintended side-effects:
  1. error handling is no longer tied to the specific request meaning we could have slug-related failures being handled by non-slug-save code which is unexpected
  2. the internal `TaskCancelation` error is handled as if it was general error and we end up showing a useless error in the red error bar that makes it look like something failed when it didn't
  3. we initiate a model rollback when we do not have a failure situation that requires it meaning we can lose changes
2023-09-05 13:38:59 +00:00
renovate[bot]
cfdc53e062 Update dependency tracked-built-ins to v3.2.0 2023-09-05 08:26:59 +02:00
renovate[bot]
eac96067bc Update dependency jose to v4.14.6 2023-09-04 16:03:49 +00:00
renovate[bot]
8ba5470c5e Update dependency ember-svg-jar to v2.4.5 2023-09-04 16:58:56 +02:00
Sag
d7504bdbf5
Added recommendation modal trigger on signup (#17925)
refs https://github.com/TryGhost/Product/issues/3771

- if recommendations are enabled, render the recommendation modal on
sign up, in Portal
- for free signups, the recommendations modal is rendered after clicking
on the magic link
- for paid signups, the recommendations modal is rendered after Stripe
Checkout
- the recommendations modal is not rendered on a free to paid upgrade
2023-09-04 14:35:56 +00:00
Ghost CI
d7c0b2392b Merged v5.61.1 into main 2023-09-04 08:11:31 +00:00
Ghost CI
be3905b822 v5.61.1 2023-09-04 08:11:30 +00:00
renovate[bot]
196945c1e7 Update dependency jose to v4.14.5 2023-09-04 06:09:56 +00:00
Ghost CI
31d9165296 v5.61.0 2023-09-01 15:04:56 +00:00
Kevin Ansfield
127cbfa62d
Improved save-waiting when leaving beta editor (#17929)
no issue

- adds explicit waits for the two save tasks when leaving the editor before any other checks or saves are triggered
- cleans up some errors around task cancellation that could be triggered when leaving the editor with an existing save running
2023-09-01 14:51:18 +00:00
Daniel Lockyer
c6cb35074a Updated linting and testing packages 2023-09-01 15:51:17 +02:00
Kevin Ansfield
d67a7bdc58
Fixed console error when leaving new post screen with beta editor (#17928)
no issue

- when a post is new it has no revisions but in the `willTransition` hook we were using `lastRevision.get` even though `lastRevision` was null
- adjusted the `hasChangedSinceLastRevision` conditional to always be `false` for new posts
2023-09-01 13:35:59 +00:00
Kevin Ansfield
a4f6a33fee
Fixed "new post" button showing 500 error when editor beta is enabled (#17926)
refs https://github.com/TryGhost/Ghost/pull/17876

- the redirect added for the beta editor was always redirecting to `lexical-editor.edit` even when accessing `editor.new` which resulted in an incorrect route params error and a 500 screen
- switched to redirecting to the correct new/edit route based on the route we're trying to access
2023-09-01 13:31:40 +00:00
Sanne de Vries
5ca082cd7c
Added CSS variable to adjust card width when sidebar is open (#17919)
Refs https://github.com/TryGhost/Product/issues/3713
2023-09-01 09:18:31 +00:00
renovate[bot]
a2d16ab7de Update dependency ember-cli-babel to v8 2023-08-31 17:46:50 +02:00
Kevin Ansfield
ca6e7dfb88
Added drop of intermediate post saves between current running and latest triggered (#17912)
no issue

- every triggered save was being added to a queue resulting in an unnecessary number of requests in some circumstances because it means every triggered save would be run sequentially even though the intermediate saves could be safely thrown away if we're still waiting on a response to a previous one
- switched from a standard queue to ember-concurrency's `keepLatest` behaviour
  - drops intermediate saves if multiple saves are triggered whilst still waiting on a previous save
  - http://ember-concurrency.com/docs/task-concurrency#keepLatest
2023-08-31 15:18:02 +00:00
Kevin Ansfield
b15d4b0c2b
Bumped Koenig packages (#17891)
no issue

- includes fix for posts showing as edited and requiring save after automatic mobiledoc->lexical conversion (https://github.com/TryGhost/Koenig/pull/898)
2023-08-31 11:38:13 +00:00
Kevin Ansfield
5f5ad4d5dd
Added automatic conversion of old content when opening in beta editor (#17876)
no issue

Previously the beta editor only worked for newly created posts/pages, any older content would open with the original editor. This change enables automatic conversion of old content to the new content format when a post/page is opened in the admin interface allowing new features like signup and advanced header cards to be used on existing content.

- removed `convertToLexical` feature flag
  - where necessary switched to using just the `lexicalEditor` feature flag in its place
- moved the "L"/"M" indicators on the posts list to a new `lexicalIndicators` feature flag to make debugging/development easier
- added a redirect to the original editor route so that any route to opening the editor (such as the `/edit` front-end shortcut, or other areas of Admin) will open in the beta editor
  - avoids confusing/inconsistent behavior
2023-08-30 16:54:03 +01:00
Sanne de Vries
c3a7e43286
Updated old Spirit class to stop overriding of Tailwind in editor (#17874)
No ref
2023-08-30 14:41:49 +00:00
renovate[bot]
d418a431be Update sentry-javascript monorepo to v7.66.0 2023-08-30 14:00:40 +02:00
Michael Barrett
492c26c6ac
🐛 Fixed member newsletter filter when multiple filters applied (#17857)
closes https://github.com/TryGhost/Product/issues/3735

The member newsletter filter was not working correctly when multiple
filters were applied due to the regex incorrectly extracting the
contents of a grouped filter. This commit splits the regex into two to
make it easier to reason about and fixes the underlying issue
2023-08-29 14:20:55 +01:00
Djordje Vlaisavljevic
8416278ea7
Added Recommendations settings placeholder under feature flag (#17855)
refs https://github.com/TryGhost/Product/issues/3787

- Added Recommendations feature flag
- Added an empty placeholder settings section for Recommendations under the feature flag
2023-08-29 12:36:50 +01:00
renovate[bot]
228b497076 Update dependency @babel/eslint-parser to v7.22.11 2023-08-29 08:25:12 +01:00
renovate[bot]
1a44d8106b Update sentry-javascript monorepo to v7.65.0 2023-08-28 19:06:53 +01:00
Ghost CI
b545f234b2 v5.60.0 2023-08-25 15:03:14 +00:00
Steve Larson
e15b9eb891
Bumped Koenig packages (#17826)
no refs
- contains various fixes and improvements to the beta editor
2023-08-24 22:12:38 +00:00
Chris Raible
08d6425a53
Bumped Koenig packages (#17809)
no issue
    
    - @tryghost/kg-converters@0.0.9 > 0.0.12
    - @tryghost/kg-default-nodes@0.1.20 > 0.1.23
    - @tryghost/kg-lexical-html-renderer@0.3.16 > 0.3.19
2023-08-23 14:20:52 -07:00
Djordje Vlaisavljevic
76adef7d9e
Fixed issue with list borders (#17792)
no refs

- Removed unnecessary `border-bottom` on list header and `border-top:
none` that was added to avoid double borders
2023-08-23 11:36:45 +01:00
Ghost CI
cebe8d7db6 Merged v5.59.4 into main 2023-08-22 11:46:13 +00:00
Ghost CI
5f2b5d9d11 v5.59.4 2023-08-22 11:46:11 +00:00
Ghost CI
a0efe7a864 Merged v5.59.3 into main 2023-08-21 21:27:36 +00:00
Ghost CI
808ea02e45 v5.59.3 2023-08-21 21:27:34 +00:00
Steve Larson
37508a1b77 🐛 Fixed markdown card toolbar styles in mobiledoc editor
no refs
-toolbar styles were broken by upgrading kg-simplemde
-reverted kg-simplemde to v1 as v2+ is intended for lexical editor
2023-08-21 10:17:33 -05:00
Steve Larson
66da501125
🐛 Fixed markdown card toolbar styles in mobiledoc editor
no refs
-toolbar styles were broken by upgrading kg-simplemde
-reverted kg-simplemde to v1 as v2+ is intended for lexical editor
2023-08-21 14:53:50 +00:00
Michael Barrett
0ea5f9228d
Added custom theme setting visibility (#17763)
refs https://github.com/TryGhost/Product/issues/3716
2023-08-21 11:26:51 +01:00
Ghost CI
d0c95a37e1 v5.59.2 2023-08-18 15:03:06 +00:00
renovate[bot]
bddde8ff3d Update dependency ember-keyboard to v8.2.1 2023-08-17 09:10:44 +02:00
Jono M
f1266c6b9f
Wired up Zapier integration in AdminX (#17737)
refs https://github.com/TryGhost/Product/issues/3729
2023-08-16 18:59:31 +01:00
Steve Larson
fecd326510
📦 Updated koenig dependencies (#17728)
no refs
-contains multiple bug fixes and improvements
2023-08-15 11:38:41 -05:00
Simon Backx
13b732f905
Added Playwright tests for donations (#17699)
fixes https://github.com/TryGhost/Product/issues/3723

This also fixes usage of localhost instead of 127.0.0.1 as a test URL
for playwright. This caused issues for cookies because the member
impersonation navigated to 127.0.0.1 instead of localhost, meaning that
the next page.goto call would go to localhost and lose the cookies.
2023-08-15 15:20:18 +02:00
Ronald Langeveld
a7530720b4
🐛 Fixed Unsplash integration toggle in Koenig editor (#17725)
no issue

- since Unsplash can be toggled on / off in integrations, we need to
pass that to the Koenig-Lexical editor as well.
2023-08-15 14:59:26 +02:00
Daniel Lockyer
6a721d4dab
Merged v5.59.1 into main 2023-08-15 13:31:54 +02:00
Ghost CI
e8836652cc v5.59.1 2023-08-15 11:22:18 +00:00
renovate[bot]
bed89b7bec Update sentry-javascript monorepo to v7.64.0 2023-08-15 12:17:01 +02:00
Ronald Langeveld
09bcc1f31a
Updated comment (#17718)
no issue

- added some more info to the comment
- found the actual issue that needed the admin p0 fix last night.
Updated the comment info block with a link to that issue.


<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at bcec294</samp>

Updated a comment in `members.js` to link to a possible NQL issue. This
helps explain the temporary fix for filtering members by labels with
parentheses.
2023-08-15 08:45:09 +00:00
Ronald Langeveld
6694456685
🐛 Fixed newsletter filters not working in bulk operations (#17714)
refs https://ghost.slack.com/archives/CTH5NDJMS/p1692021848890629

- Addresses an NQL / API edge case where standalone filters with
parentheses doesn't get handled correctly within bulk operations such as
member labelling, member unsubscribe and member deletion.
- This is currently only affected by newsletter related filters.
- This adds a regex functions that checks when those filters are used
and removes the parentheses when required.
- Ideally we fix the NQL / API issue in the near future and remove this
regex hack altogether, but taking all things into consideration, this
should mitigate the risk of potential data-loss for Ghost users.
2023-08-15 08:19:02 +02:00
Ronald Langeveld
e0ab167b94
🐛 Fixed newsletter filters not working in bulk operations (#17714)
refs https://ghost.slack.com/archives/CTH5NDJMS/p1692021848890629

- Addresses an NQL / API edge case where standalone filters with
parentheses doesn't get handled correctly within bulk operations such as
member labelling, member unsubscribe and member deletion.
- This is currently only affected by newsletter related filters.
- This adds a regex functions that checks when those filters are used
and removes the parentheses when required.
- Ideally we fix the NQL / API issue in the near future and remove this
regex hack altogether, but taking all things into consideration, this
should mitigate the risk of potential data-loss for Ghost users.
2023-08-15 06:35:51 +02:00
Sag
a045e7e50b
Added a preview link in Admin for Tips & Donations (#17711)
closes https://github.com/TryGhost/Product/issues/3724
2023-08-14 13:33:38 +00:00
Peter Zimon
9bfbd5b3b9
History log in AdminX (#17666)
refs. https://github.com/TryGhost/Product/issues/3710

---------

Co-authored-by: Jono Mingard <reason.koan@gmail.com>
2023-08-14 12:11:53 +00:00
renovate[bot]
8dc4923041 Update babel monorepo to v7.22.10 2023-08-14 12:06:20 +02:00
Sodbileg Gansukh
1b046426ae Adjusted scaling of the browser preview 2023-08-14 17:00:04 +08:00
Ghost CI
f26158b26b v5.59.0 2023-08-11 15:14:28 +00:00
Kevin Ansfield
ff3b936a0a
Added Sentry reporting for slow editor saves (#17698)
closes https://github.com/TryGhost/Product/issues/3719

- adds Sentry reporting for slow saves in the editor to help investigate reports of a similar nature
  - uses different messages for lexical vs mobiledoc and successful vs failed saves so we can compare frequency of each in the Sentry UI
  - includes `save_time` tag so we can see a breakdown of timings and adjust the threshold if necessary
  - includes `post_type` tag which will be useful as we introduce further differences between the features and rendering cycle of posts and pages
  - includes `newsletter` and `email_segment` tags to help indicate if slow saves are due to email sending
  - includes `save_revision` tag to help indicate if forced revision saves cause slow saves
  - includes `convert_to_lexical` tag to help indicate if mobiledoc/lexical conversion is causing slow saves
2023-08-11 15:00:26 +00:00
Djordje Vlaisavljevic
99761242da
Improved how Stripe connect buttons are shown (#17697)
refs https://github.com/TryGhost/Product/issues/3666

- Improves the way Connect with Stripe buttons are shown in Membership settings
2023-08-11 15:56:23 +01:00
Sag
37bf804cf5
Updated copy of error messages for Tips & Donations suggested amount (#17696)
refs https://github.com/TryGhost/Product/issues/3695
2023-08-11 14:11:04 +00:00
Sag
6c481b74a9
Added an upper limit to Tips & Donations suggested amount (#17695)
refs https://github.com/TryGhost/Product/issues/3695

- also updated the "minimumAmountPerCurrency" helper to return a
standard price (not in cents), to keep the code more readable
2023-08-11 13:09:42 +00:00
Aileen Nowak
c23480030f Convert getIframeUrl to a getter and inject as source into iframe component 2023-08-11 10:47:47 +01:00
Aileen Nowak
00db25e314 Revert back to use did-insert hook 2023-08-11 10:47:47 +01:00
Aileen Nowak
d2ab69aeb6 Fixed linting issues 2023-08-11 10:47:47 +01:00
Aileen Nowak
ec14f78ba3 Removed usage of did-insert hook and simplified openExploreWindow method
- We don't actually utilise the history handling for Explore, as it's not a full screen modal and therefore don't need passing in previous routes before opening the iframe
- Removed usage of `did-insert` livecycle hook and reverted to usage of `contructor` and `willDestroy` instead to add and remove message event listener
2023-08-11 10:47:47 +01:00
Aileen Nowak
a72dfdddb7 Prevented Explore iframe to be loading before needed
no issue

- We were loading the Explore iframe together with all assets in Admin
- This change will avoid that and only start loading and rendering Explore, once it's clicked
2023-08-11 10:47:47 +01:00
renovate[bot]
9f2fac34ad Update sentry-javascript monorepo to v7.63.0 2023-08-11 09:27:14 +02:00
renovate[bot]
db68531a22 Update dependency ember-css-transitions to v4.4.0 2023-08-11 09:25:49 +02:00
Djordje Vlaisavljevic
aeff42811c
Updated tips & donations settings and email notification design (#17679)
refs https://github.com/TryGhost/Product/issues/3693, https://github.com/TryGhost/Product/issues/3666

- Updated Tips&Donations email notification design to put focus onto the
amount
- Removed unnecessary gap between Free and Premium tiers in Membership
settings
- Improved the copy to better explain the feature
2023-08-10 18:35:42 +01:00
Michael Barrett
733135d3ff
🐛 Fixed incorrect newsletter subscriber count on dashboard (#17683)
fixes https://github.com/TryGhost/Product/issues/3714

The dashboard was showing the total number of subscribers, but not
taking into account members who have disabled emails. This commit fixes
that.
2023-08-10 18:18:12 +01:00
Kevin Ansfield
f983e93090
🐛 Fixed overly small file drop area in beta editor (#17682)
closes https://github.com/TryGhost/Product/issues/3449

- added drop handler to the whole editor pane area (to match previous editor) that uses the external API plugin to pass files through to the editor when dropped
- allows images/files to be dropped outside of the main editor canvas which is especially helpful when creating images in a new post
2023-08-10 16:36:06 +00:00
Steve Larson
8273671425
Updated bookmark card renderer (#17662)
refs https://github.com/TryGhost/Product/issues/3609
-reverted css changes
-reverted mobiledoc renderer
-made lexical renderer consistent with mobiledoc
-css classes were inverted for theme backwards compatibility
2023-08-10 13:41:59 +00:00
Sag
02f4f11e7c
Reverted Offer links to absolute URLs (#17675)
refs https://github.com/TryGhost/Product/issues/3687

- We're not sure that relative URLs for Offers will work in production,
even though they seem to work locally. Reverting for now.
2023-08-10 12:14:11 +00:00
Michael Barrett
8d0eed2dcd
🐛 Fixed member filter by single newsletter subscription (#17668)
fixes https://github.com/TryGhost/Product/issues/3708

When filtering members by the `Newsletter subscription` parameter, If
the site has a single newsletter, members with disabled emails were
being erroneously returned. This fixes that 👍
2023-08-10 12:59:14 +01:00
Sag
731773602c
Added relative URLs for Portal links in Button, Header, Email CTA url suggestions (#17669)
refs https://github.com/TryGhost/Product/issues/3687

- Today, in Button, Header, Email CTA cards, Portal links are used as
absolute URLs to the root, e.g. https://mysite.com/#/portal/signin. When
clicking on a Portal link, the reader is redirect to the homepage first,
loosing context of the post.
- With this change, the UX becomes smoother: clicking on a Portal link
keeps the reader in context, and open the Portal link on the same post
e.g., https://mysite.com/POST_URL/#/portal/signin
- Technically, this works by using relative URLs for Portal links.
Relative URLs work out of the box for web, but required changes on the
email side, cf. https://github.com/TryGhost/Ghost/pull/17630
2023-08-10 09:23:31 +00:00
Ronald Langeveld
04ce1154a1
Added new enhanced Header Card (#17654)
no issue

- Keep an eye on Ghost's changelog (https://ghost.org/changelog/) for
the full feature announcement. 🎉

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 8367091</samp>

This pull request removes the `headerUpgrade` feature flag and enables
the new header card by default in the editor. It also hides the old
header card from the editor menu unless the `labs.headerV1` setting is
enabled.
2023-08-10 10:40:10 +02:00
Simon Backx
3833c24034
Updated copy for email notification when receiving new tips (#17667)
no issue
2023-08-10 07:25:46 +00:00
Simon Backx
874552bdbe
Added donation events to activity feeds (#17632)
fixes TryGhost/Product#3698
fixes TryGhost/Product#3699
2023-08-10 09:16:47 +02:00
Steve Larson
a2cb55f0b8
Added origin to beta editor feedback (#17664)
no refs
-added origin to beta editor feedback to more easily associate errors
2023-08-09 20:53:37 +00:00
Sag
ea75ca6188
Updated minimum price validation in Tiers, to support more currencies (#17661)
no issue

- Stripe imposes different minimum charges based on the currency used,
see
https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts
- Our validation uses double that limit, to take into account
conversions to the main currency in use in the Stripe account
2023-08-09 15:44:01 +00:00
renovate[bot]
335faf4955 Update dependency ember-cli-htmlbars to v6.3.0 2023-08-09 17:30:31 +02:00
Sag
99a9dea988
Added a validation for a minimum suggested amount for Tips & Donations (#17653)
closes https://github.com/TryGhost/Product/issues/3695

- Stripe has minimum charge amounts per currency, see
https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts
- We double these limits in our validation, to take into account
currency conversions to the main currency used on the Stripe account. If
the publishers enters a suggested amount below the limit, they will see
an error in Admin
- 0 is permitted as default value and corresponds to "no suggested
amount"
2023-08-09 16:36:29 +02:00
Ronald Langeveld
d24b41f99f
Removed leftover signup flag in Koenig config (#17656)
no issue

- Removed a leftover signup property from the Koenig lexical config.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 0e10cc3</samp>

Removed `signupCard` property from `koenig-lexical-editor` component.
2023-08-09 16:00:42 +02:00
Aileen Booker
cd013356f9 Added update to Explore iframe on nightShift change
no issue

- This change listens to updated values of the night shift toggle and sends a message to the Explore iframe - if mounted - to ensure the themes are in sync
2023-08-09 13:03:13 +01:00
renovate[bot]
9485b1c841 Update dependency @embroider/macros to v1.13.1 2023-08-09 11:14:41 +02:00
Simon Backx
9e2a1b7d57
Wired up Connect with Stripe button for tips and donations (#17644)
fixes https://github.com/TryGhost/Product/issues/3702
2023-08-09 08:27:28 +00:00
renovate[bot]
76256e3199 Update dependency ember-svg-jar to v2.4.4 2023-08-09 10:00:36 +02:00
Chris Raible
9ea4fbd7a7
Added feature to convert and open mobiledoc posts in the lexical editor (#17453)
refs TryGhost/Product#3638

- Added `convert_to_lexical` flag to the posts/pages edit endpoint
- Added 'convertToLexical' feature flag so we can enable/disable this
feature independently from the main lexical beta flag
- Modified admin posts/pages list to point to the lexical editor for
_all_ posts, regardless of mobiledoc vs lexical (if the flag is on)
- Added call to edit endpoint with `convert_to_lexical` in the lexical
editor admin route if the page/post is currently in mobiledoc and the
flag is enabled
2023-08-08 15:44:54 -07:00
Djordje Vlaisavljevic
df231b2459
Tips & donations feedback tweaks (#17633)
refs https://github.com/TryGhost/Product/issues/3666,
https://github.com/TryGhost/Product/issues/3667

- Updated copy in various places
- Added logic for displaying "Connect Stripe" button instead of "Expand"
if not already connected
2023-08-08 14:49:58 +01:00
Sag
9aef028c4c
Renamed Tips & Donations suggestion links (#17618)
refs https://github.com/TryGhost/Product/issues/3665
2023-08-07 17:04:26 +00:00
Sag
3254b8e149
Added Tips & Donations link to Button, Header and Email CTA cards suggestions (#17614)
closes https://github.com/TryGhost/Product/issues/3665

- added link suggestion feature to the Header card in Mobiledoc (missing
feature)
- Tips & Donations link is behind a feature flag atm, to be cleaned up
once the feature is ready to be released
2023-08-07 15:16:29 +00:00
Simon Backx
97580a3cd8 Added toggle for donation email notifications
refs https://github.com/TryGhost/Product/issues/3692
2023-08-07 16:32:35 +02:00
Sag
81c3555106
Added logic for currency and suggested amount for Tips & Donations (#17599)
closes https://github.com/TryGhost/Product/issues/3666

- added computed setting "donations_enabled"
- added logic to persist "donations_suggested_amount" and "donations_currency"
- used  "donations_suggested_amount" and "donations_currency" when initiating a new Stripe Checkout for donations
- added copy functionality to "your link" in Tips & Donations settings
2023-08-04 18:17:35 +00:00
Ghost CI
299cdb4387 v5.58.0 2023-08-04 15:02:54 +00:00
Djordje Vlaisavljevic
dce2e68c9a
Added Tips&Donations link to portal links (#17580)
refs https://github.com/TryGhost/Product/issues/3677

- Added Tips&Donations link to Portal links in Membership settings for
easy access
- Updated other links to pass `no-action` lint rule

---------

Co-authored-by: Sag <guptazy@gmail.com>
2023-08-04 15:15:57 +01:00
Djordje Vlaisavljevic
be7a2d0aec
Updated Tips & donations settings design (#17591)
refs https://github.com/TryGhost/Product/issues/3667

- Moved Tips&Donations out of `SignupFormEmbed` component and into its
own component
- Removed the enable/disable toggle for Tips&Donations and added
Expand/Close button instead
2023-08-03 22:37:25 +01:00
John O'Nolan
265e62229f
2023 2023-08-03 20:40:44 +01:00
Steve Larson
af7ce52708
Added source to beta editor feedback (#17586)
no refs
- will return post, page, or settings
2023-08-03 10:10:31 -05:00
Djordje Vlaisavljevic
f26203f8cb
Updated Tips & donations settings (#17585)
refs https://github.com/TryGhost/Product/issues/3667

- Updated Tips & Donations settings with improved copy and more compact
layout
2023-08-03 15:28:11 +01:00
Michael Barrett
262c6be70f
🐛 Fixed member filtering on newsletter subscription status (#17583)
fixes https://github.com/TryGhost/Product/issues/3684

The `nql` used for filtering newsletter members needed tweaking to make
sure the provided query was parsed as a single `AND` query. This commit
also fixes an issue where on page reload the filters were not being
applied correctly
2023-08-03 13:26:19 +01:00
Ghost CI
81ef2ade39 Merged v5.57.3 into main 2023-08-03 10:25:36 +00:00
Ghost CI
34b6f1917f v5.57.3 2023-08-03 10:25:34 +00:00
Djordje Vlaisavljevic
423607872c
Updated Tips & donations membership settings design (#17579)
refs https://github.com/TryGhost/Product/issues/3667

- Added static design for Tips & Donations settings with feature toggle,
default amount, currency and link
2023-08-02 22:44:52 +01:00
Steve Larson
c539417e89
🐛 Fixed bookmark card metadata styles (#17577)
refs TryGhost/Product#3609
- author and publisher styles were mixed up in mobiledoc
- made consistent for author coming after publisher for md and lexical
- updated renderer packages
2023-08-02 14:13:25 -05:00
Ghost CI
e2a6d8b987 Merged v5.57.2 into main 2023-08-02 15:12:37 +00:00
Ghost CI
afce648fd7 v5.57.2 2023-08-02 15:12:35 +00:00
Steve Larson
6936007052
🐛 Updated gscan error handling for page errors (#17575)
refs https://github.com/TryGhost/Product/issues/3676

- add filter for sidebar display of theme errors (angry red box)
- filter specific to each page feature, will need to add each one by this approach
2023-08-02 09:56:40 -05:00
Jono M
64d52d736a
Updated AdminX settings to link from the usual footer button (#17567)
refs https://github.com/TryGhost/Product/issues/3349

Now that we're a bit further, we can open AdminX settings from the usual
gearwheel button when the Labs flag is enabled instead of having a
separate navigation item
2023-08-02 11:43:06 +02:00
Ghost CI
f839c2289c Merged v5.57.1 into main 2023-08-01 19:57:00 +00:00
Ghost CI
c81baebdbb v5.57.1 2023-08-01 19:56:59 +00:00
Fabien 'egg' O'Carroll
ada5b838a5
🐛 Fixed custom routing with collections (#17561)
When we updated the way we handled NQL filter expansion, we broke custom
routing collections. This reverts the change and fixes custom routing.
2023-08-01 19:54:41 +01:00
Naz
346eeef2e3 Removed flatUrls labs flag
refs 4372a7e1a8

- We ended up developing a proper customizable routing on the `arch` branch. This flag is obsolete.
2023-08-01 15:13:15 +08:00
Ghost CI
b6e8208950 v5.57.0 2023-07-31 20:42:08 +00:00
Ghost CI
650487f8ee Merged v5.56.1 into main 2023-07-31 19:38:23 +00:00
Ghost CI
09d967a197 v5.56.1 2023-07-31 19:38:21 +00:00
Steve Larson
5fe72462bc
Enabled page features (#17544)
no refs
-moved hide page title and feature image to GA
-updated gscan
2023-07-31 14:22:19 -05:00
Ronald Langeveld
42a1630740
🐛 Fixed email only to post rescheduling. (#17538)
refs https://github.com/TryGhost/Product/issues/3657

- When reverting a post to a draft, the meta, `email_only` remained
true.
- This fix switches `email_only` back to false when the `revertToDraftTask` is executed.
2023-07-31 13:32:58 +02:00
Ghost CI
e97140fabb v5.56.0 2023-07-28 15:03:19 +00:00
Daniel Lockyer
c97cc08455 Updated ESLint config for React+Typescript packages
refs https://github.com/TryGhost/DevOps/issues/50

- `react-app` comes from `eslint-config-react-app`, which is a CRA package
- we're moving away from that so this commit switches the linting over
  to a more recently updated plugin
- once that was removed, we started using a newer version of
  `@typescript-eslint/eslint-plugin`, so there were plenty of
  updates/exemptions to make
2023-07-27 11:40:31 +02:00
Ghost CI
145d0b84f5 Merged v5.55.2 into main 2023-07-27 07:38:59 +00:00
Ghost CI
5273b56e88 v5.55.2 2023-07-27 07:38:58 +00:00
renovate[bot]
c05976645c Update sentry-javascript monorepo to v7.60.1 2023-07-27 09:24:27 +02:00
Daniel Lockyer
55d5a8d892 Fixed loading assets from CDN URL
refs https://ghost.slack.com/archives/C027S85FS/p1690202522054729

- this is another set of places where we load assets slightly
  differently
- this should fix user profile images when using assets from a CDN
2023-07-27 09:22:11 +02:00
renovate[bot]
0b661e8eee Update dependency ember-cli-test-loader to v3.1.0 2023-07-27 08:53:13 +02:00
Steve Larson
005e80b466
Updated gscan (#17507)
no refs
2023-07-26 13:06:23 +00:00
Michael Barrett
2fe392c312
Added import tier to members import modal (#17492)
refs https://github.com/TryGhost/Product/issues/3629
2023-07-26 09:19:09 +01:00
Djordje Vlaisavljevic
ae314679fa
Add Tips and donations section to Membership settings (#17497)
refs https://github.com/TryGhost/Product/issues/3561

- Added a static section to Membership settings with a button to copy
the Tips & donations Stripe link
- Added a `tipsAndDonations` feature flag
2023-07-25 22:46:34 +01:00
Naz
8fa36916d7 Migrated admin and core modules to use nql-filter-expansions
refs https://github.com/TryGhost/Arch/issues/46

- Reused posts expansions from nql-filter-expansions module
2023-07-25 19:01:56 +08:00
Michael Barrett
8095843939
Added feature flag for import tier functionality (#17480)
refs https://github.com/TryGhost/Product/issues/3629
2023-07-25 10:52:52 +01:00
Ghost CI
fc50d1e92c Merged v5.55.1 into main 2023-07-25 02:46:04 +00:00
Ghost CI
95d343a786 v5.55.1 2023-07-25 02:46:02 +00:00
Daniel Lockyer
d0f9c8cf0c Deduplicated eslint and eslint-plugin-ghost to top-level package.json
refs https://github.com/TryGhost/DevOps/issues/50

- this deduplicates where we define the version of `eslint` and
  `eslint-plugin-ghost` so it's easier to maintain
2023-07-24 16:21:47 +02:00
Daniel Lockyer
532a7cf6e3 Fixed loading assets from CDN URL
refs https://ghost.slack.com/archives/C027S85FS/p1690202522054729

- this is another set of places where we load assets slightly
  differently
- this should fix user profile images when using assets from a CDN
2023-07-24 16:12:29 +02:00
renovate[bot]
e2bb39b025 Update dependency webpack to v5.88.2 2023-07-24 11:03:33 +00:00
Michael Barrett
184c6ae951
Retain newsletter subscriptions on suppression (#17373)
refs https://github.com/TryGhost/Product/issues/2610
2023-07-24 10:47:57 +01:00
Naz
baf0f4b692 Added /collections/slug/:slug Admin API endpoint
closes https://github.com/TryGhost/Arch/issues/45

- This endpoint is here to keep the convention of being able to fetch the resource by it's slug through a `GET /{resource_name}/slug/:slug`. It has identical output as the `GET /collections/:id` endpoint
- The alternative would be having an alias and try fetching by :id and then by slug if the result for id was null, but that would be a completely new pattern we have not used anywhere else yet.
2023-07-24 14:27:17 +08:00
renovate[bot]
ef3b6ea7e8 Update dependency @embroider/macros to v1.13.0 2023-07-24 08:13:49 +02:00
Kevin Ansfield
0b6c2e3421
Fixed logic for checking theme compatibility with @page properties (#17451)
no issue

- logic was incorrect in two places that meant we were showing the incompatibility warning for compatible themes
- `codedErrors` was looking at the Ember Data `errors` object instead of the renamed `gscanErrors` object
2023-07-21 16:39:13 +00:00
Sanne de Vries
d7cf11751c
Added theme hide title+image incompatibility warning (#17416)
Refs https://github.com/TryGhost/Product/issues/3567
2023-07-21 16:03:38 +00:00
Ghost CI
1b884a49ac v5.55.0 2023-07-21 15:03:14 +00:00
renovate[bot]
3a751e6f84 Update sentry-javascript monorepo to v7.60.0 2023-07-21 12:36:13 +02:00
Steve Larson
22441fe730
Made lexical rendering async (#17438)
-moved lexical rendering to async
-includes rendering for front end and email
-necessary to pull dynamic data into render method, e.g. collections
2023-07-20 17:48:48 -05:00
Sanne de Vries
56beb0b14a
Switched around the feature and title toggles in the post settings menu (#17431)
No ref
2023-07-20 10:55:38 +00:00
renovate[bot]
dd328f39f7 Update sentry-javascript monorepo to v7.59.3 2023-07-20 07:27:24 +02:00
Ghost CI
a17b2f024e Merged v5.54.4 into main 2023-07-19 13:18:09 +00:00
Ghost CI
a715b8f3ed v5.54.4 2023-07-19 13:18:06 +00:00
renovate[bot]
b82cbeec04 Update sentry-javascript monorepo to v7.59.2 2023-07-19 07:53:05 +02:00
Ronald Langeveld
6dc000e247
🐛 Fixed success state on change password button. (#17410)
closes https://github.com/TryGhost/Product/issues/3604

- The change password button in the user settings wasn't updating correctly.
- the saveNewPasswordTask() wasn't returning anything, causing `
this.get('task.last.value')` to return undefined in the `isSuccess`
method.
- This fix ensures that there is a value attached to the
`task.last.value` so that the condition for a successful save checks
out.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at a6a76eb</samp>

Improved error handling and feedback for changing user passwords in the
settings UI. Modified `saveNewPasswordTask` function in
`ghost/admin/app/controllers/settings/staff/user.js` to catch and
display errors and return user object.
2023-07-18 17:58:06 +02:00
Naz
f4301b16e8 Added collection filter input to the Admin UI
refs https://github.com/TryGhost/Arch/issues/41

- Having a filter input for an automatic collection make it way easier to test things without messing with the database.
2023-07-18 18:36:49 +08:00
Aileen Booker
c281935a35 Added ref query param to Explore link 2023-07-17 16:31:57 +01:00
Ghost CI
367ff21ed6 Merged v5.54.3 into main 2023-07-17 14:18:35 +00:00
Ghost CI
b74e29aa70 v5.54.3 2023-07-17 14:18:33 +00:00
Daniel Lockyer
999425ccf6
Fixed loading CDN assets via lazy loading
refs https://github.com/TryGhost/DevOps/issues/47

- in the event we supply a CDN URL, don't prefix the URL with anything
  as this will get auto-prefixed
- if not, add the Ghost Admin root because the assets sit under there
2023-07-17 15:40:46 +02:00
Daniel Lockyer
dc2c8330af
Configured Admin to use CDN URLs for lazy-loaded assets
refs https://github.com/TryGhost/DevOps/issues/47

- this allows Ghost to use a different URL for lazy-loaded assets, so it
  can be loaded from a CDN
2023-07-17 15:40:42 +02:00
Daniel Lockyer
46422d7bae Reverted "Enabled Sentry Replay within Admin"
refs https://ghost.slack.com/archives/C02G9E68C/p1689599266267649

- this reverts commit bb6deda10e
- we're seeing some weird errors when Admin boots otherwise
2023-07-17 15:31:25 +02:00
Daniel Lockyer
27d8441098
Reverted "Enabled Sentry Replay within Admin"
refs https://ghost.slack.com/archives/C02G9E68C/p1689599266267649

- this reverts commit bb6deda10e
- we're seeing some weird errors when Admin boots otherwise
2023-07-17 15:23:59 +02:00
Kevin Ansfield
53096e214c
🐛 Fixed poor performance when rendering beta editor posts (#17388)
no issue

- bumps `@tryghost/kg-lexical-html-renderer` which includes a change to drastically reduce the number of `jsdom` instantiations made when rendering text content
2023-07-17 14:21:37 +01:00
Kevin Ansfield
135f5fa287
🐛 Fixed poor performance when rendering beta editor posts (#17388)
no issue

- bumps `@tryghost/kg-lexical-html-renderer` which includes a change to drastically reduce the number of `jsdom` instantiations made when rendering text content
2023-07-17 13:42:55 +01:00
Daniel Lockyer
67a8244811 Fixed loading CDN assets via lazy loading
refs https://github.com/TryGhost/DevOps/issues/47

- in the event we supply a CDN URL, don't prefix the URL with anything
  as this will get auto-prefixed
- if not, add the Ghost Admin root because the assets sit under there
2023-07-17 14:03:20 +02:00
Ronald Langeveld
0c719f33f7 🐛 Fixed memberlinks returning undefined in autocomplete. (#17385)
refs https://github.com/TryGhost/Ghost/pull/17327

- Added an additional condition to avoid the new memberLinks function
from returning undefined, which may lead to nothing being returned at
all in the autocomplete.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->

Improved `memberLinks` function in `koenig-lexical-editor.js` to support
optional links and fix a bug.
2023-07-17 13:38:31 +02:00
Ronald Langeveld
d1e1dc3e79
Fixed memberlinks returning undefined in autocomplete. (#17385)
refs https://github.com/TryGhost/Ghost/pull/17327

- Added an additional condition to avoid the new memberLinks function
from returning undefined, which may lead to nothing being returned at
all in the autocomplete.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 59d45a1</samp>

Improved `memberLinks` function in `koenig-lexical-editor.js` to support
optional links and fix a bug.
2023-07-17 10:45:16 +00:00
Daniel Lockyer
e87c994bba Configured Admin to use CDN URLs for lazy-loaded assets
refs https://github.com/TryGhost/DevOps/issues/47

- this allows Ghost to use a different URL for lazy-loaded assets, so it
  can be loaded from a CDN
2023-07-17 10:57:42 +02:00
Sag
f746704ba1
Fixed detection of the stripe_customer_id field in Members Import (#17375)
no issue
2023-07-14 15:43:38 +00:00
Ghost CI
fad31e0bca v5.54.2 2023-07-14 15:34:52 +00:00
Ghost CI
a7292cbf1f v5.54.1 2023-07-14 15:03:30 +00:00
Daniel Lockyer
95682f6f94 Configured auto-imported assets to load from supplied URL
refs https://github.com/TryGhost/DevOps/issues/47

- this allows us to optionally configure a URL to set as the CDN URL in
  Admin
2023-07-14 16:29:59 +02:00
Daniel Lockyer
0616222d2e Added support for prepending CDN URLs to Admin assets
refs https://github.com/TryGhost/DevOps/issues/47

- this allows us to produce builds that use URLs from a CDN if the env
  var is provided
2023-07-14 12:27:37 +02:00
Daniel Lockyer
06a9e03f20 Added woff2 and mp4 file fingerprinting to Admin
refs https://ghost.slack.com/archives/C027S85FS/p1688984189646059?thread_ts=1688979558.123869&cid=C027S85FS

- this enables those file extensions to get fingerprinted so the
  filenames contain hashes
2023-07-14 10:50:18 +02:00
Daniel Lockyer
9a68187b8e Reformatted list of fingerprint-enabled file extensions
- this makes it easier to read the diff when you're adding extensions
2023-07-14 10:50:18 +02:00
renovate[bot]
873f3f4ae3 Update sentry-javascript monorepo to v7.58.1 2023-07-13 14:07:33 +02:00
renovate[bot]
d1ac5260e3 Update dependency @babel/eslint-parser to v7.22.9 2023-07-13 08:28:35 +02:00
renovate[bot]
9bb9c3c6ed Update dependency @embroider/macros to v1.12.3 2023-07-13 08:27:49 +02:00
renovate[bot]
672a19f78e Update sentry-javascript monorepo to v7.58.0 2023-07-13 06:03:29 +02:00
Jono M
9dd2489000
Fixed bugs with AdminX navigation settings (#17340)
refs https://github.com/TryGhost/Product/issues/3433

- Removed Ember dirty state from AdminX to prevent extra popups
- Fixed incorrect navigation popup new item errors
2023-07-13 01:12:31 +00:00
Ronald Langeveld
3960847ab6
🐛 Fixed member links not added to autocomplete (#17327)
refs https://ghost.slack.com/archives/C056H5Z4HEK/p1689168376165479

- Added missing paid member links to the autocomplete function within
the Koenig-Lexical editor.
- This bring it in line with the mobiledoc editor.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at f49f6a5</samp>

This change adds a new feature to the editor component that allows users
to insert links related to members and subscriptions. It depends on the
`membersUtils` service and the `koenig-lexical-editor` component.
2023-07-12 16:43:12 +02:00
Steve Larson
ec04d93de8
Added collections data to editor (#17320)
refs TryGhost/Product#3555
2023-07-12 12:11:07 +00:00
renovate[bot]
c329aa772f Update dependency ember-svg-jar to v2.4.3 2023-07-12 09:51:22 +02:00
renovate[bot]
b1b4e7cfb6 Update dependency ember-simple-auth to v5 2023-07-11 17:33:12 +02:00
renovate[bot]
2edde38575 Update dependency webpack to v5.88.1 2023-07-11 13:27:05 +00:00
renovate[bot]
7dce046786 Update Test & linting packages 2023-07-11 15:26:07 +02:00
renovate[bot]
918a819ef9 Update dependency jose to v4.14.4 2023-07-11 12:06:42 +00:00
renovate[bot]
40e616eea8 Update sentry-javascript monorepo to v7.57.0 2023-07-11 12:54:56 +02:00
Daniel Lockyer
bb6deda10e Enabled Sentry Replay within Admin
fixes https://github.com/TryGhost/DevOps/issues/44

- this enables Sentry Replay within Admin, so we're able to debug errors
  and bugs easier
2023-07-11 10:32:08 +02:00
Daniel Lockyer
aa303414cb ℹ️ Bumped minimum Node 16 version to 16.14.0
fixes https://github.com/TryGhost/DevOps/issues/42

- several of our dependencies require this so making the minor bump to
  increase the version helps keep them updated
2023-07-10 16:41:34 +02:00
renovate[bot]
108180cd12 Update dependency @embroider/macros to v1.12.2 2023-07-10 16:36:34 +02:00
renovate[bot]
d204a4257c Update dependency @embroider/macros to v1.12.0 2023-07-10 16:22:17 +02:00
renovate[bot]
cb96ad36bc Update babel monorepo to v7.22.7 2023-07-10 16:06:41 +02:00
renovate[bot]
e3098c5e1e Update dependency @babel/plugin-proposal-decorators to v7.22.6 2023-07-10 15:44:40 +02:00
Steve Larson
5d39e4c612
Added alpha flag for collections card (#17246)
no refs
-alpha flag for collections card for pages
2023-07-10 13:43:24 +00:00
Sanne de Vries
4773ac31f0
Removed page title indicator when feature image is present (#17268)
Refs https://github.com/TryGhost/Product/issues/3559
2023-07-10 15:18:02 +02:00
Ronald Langeveld
4a07e857e2
Added Header Card V2 feature flags (#17263)
refs https://github.com/TryGhost/Product/issues/3508

- added a feature flag for Header Cards that's being upgraded.

---

<!-- Leave the line below if you'd like GitHub Copilot to generate a
summary from your commit -->
<!--
copilot:summary
-->
### <samp>🤖 Generated by Copilot at 10ac1e4</samp>

This pull request adds a new feature flag `headerUpgrade` to the server
and the admin settings, which allows the user to opt-in to a new header
design. The feature flag is only available if the labs toggle is
enabled.
2023-07-10 13:53:42 +02:00
renovate[bot]
ae8be7c937 Update dependency semver to v7.5.4 2023-07-10 10:15:37 +02:00
Sanne de Vries
cc8b3ab9ad
Updated hiding page title and image interaction (#17256)
Refs https://github.com/TryGhost/Product/issues/3558
2023-07-10 10:02:56 +02:00
Ghost CI
7dfbaefa3e v5.54.0 2023-07-07 16:05:47 +00:00
Kevin Ansfield
d8d0bc8bd9
Moved posts_meta.hide_title_and_feature_image to posts.show_title_and_feature_image (#17239)
no issue

`show_title_and_feature_image` leads to more intuitive logic in themes and we can use `posts` rather than `posts_meta` as there are no longer row-length issues with MySQL 8.

- removed original add-column migration that was never in a release
- added new add-column migration that puts
`show_title_and_feature_image` column with a default of `true` on the `posts` table
- renamed property and default value everywhere
- bumped `@tryghost/admin-api-schema` to allow the new property through at the API level
2023-07-07 16:40:22 +01:00
Kevin Ansfield
22a7d1c374
Added animated icon for "hide title + feature image" toggle (#17220)
closes https://github.com/TryGhost/Product/issues/3577

- adds icon as a handlebars file to avoid SVGO breaking the styles needed for the toggle to work
2023-07-06 11:38:36 +00:00
Kevin Ansfield
a1d4b4cc9d
Wired up toggle for hiding page title and feature image (#17214)
closes https://github.com/TryGhost/Product/issues/3558
closes https://github.com/TryGhost/Product/issues/3559

- added property to post model
- updated post serializer to not send property when saving a post rather than a page
- added property toggle to post settings menu
- updated indicators next to title and feature image to show real property state
2023-07-06 08:51:19 +00:00
Naz
4372a7e1a8 Added feature flag for flatUrls
refs https://github.com/TryGhost/Arch/issues/24

- Enables generating Post and Page URLs in a flat `{slug}-{id}` format
2023-07-05 17:41:28 +08:00
Rishabh
79a7f8c408 Added basic routing for adminX settings
refs https://github.com/TryGhost/Product/issues/3349

- adds basic routing in adminX settings based on hash url path
- adds new routing provider that manages hash routing across adminX
- updates sidebar navigation to update route directly
- updates theme/design settings to update route for opening edit modals
2023-07-04 20:56:55 +05:30
Ghost CI
d9480f9569 Merged v5.53.4 into main 2023-07-04 14:25:45 +00:00
Ghost CI
9305dca60e v5.53.4 2023-07-04 14:25:42 +00:00