Commit Graph

2288 Commits

Author SHA1 Message Date
Simon Backx
eee3a9aa90 🔥 Removed multipleProducts, tierWelcomePages, and tierName flags
refs https://github.com/TryGhost/Team/issues/1616
2022-05-16 17:25:03 +02:00
Sanne de Vries
5a6066d064 Fixed publishing flow responsive issues
No ref
2022-05-16 16:13:24 +02:00
Kevin Ansfield
3b088cbd77 Removed usage of old publish menu for contributors
no issue

- updated `<PublishManagement>` and sub-components to handle contributors by replacing publish button with save button in main view and in preview
- removed feature flag gating and usage of `<GhPublishmenu>` in editor template
- updated tests that indirectly used the old publish menu so they work with the new design/behaviour
- skipped editor tests that used the old publish menu
2022-05-16 14:18:04 +01:00
Sanne de Vries
025fe3e6ae Fixed editor dark-mode issues
No ref
2022-05-16 13:50:58 +02:00
Kevin Ansfield
5415fb6e01 Updated post email preview to render with the selected newsletter (#2382)
refs https://github.com/TryGhost/Team/issues/1621
reqs https://github.com/TryGhost/Ghost/pull/14820

We want to allow previewing emails based on the newsletter selected in the publish flow.

- passed the selected newsletter from `<PublishManagement>` through to the preview modal then through to the email preview component
- removed tracked `newsletter` property and fetching of the default newsletter in the email preview component that was in place to allow `senderName` and `senderEmail` to be used in the component
- added `newsletter` getter that uses the `post.newsletter` or the passed in selected newsletter
- updated the email preview fetching to pass `?newsletter=slug` so the email is rendered with the correct newlsetter
2022-05-16 12:16:12 +01:00
Kevin Ansfield
de2d3977ed Fixed Cmd+P shortcut not toggling preview in new publish flow
no issue

- removed "cmd+p" shortcut from the main editor element
- added "cmd+p" shortcut to `<PublishManagement>`
  - toggles the preview modal on/off
  - closes the publish modal if it's open when switching to the preview modal so we don't end up with both modals open simultaneously
- fixed "Preview" button not showing up for contributors
  - this still uses the old preview modal for now
  - contributor preview/save should be handled inside the new publish flow later on
2022-05-16 09:39:33 +01:00
Simon Backx
3a11faf0b6 Updated publishing with renamed newsletter and email_segment options (#2380)
refs https://github.com/TryGhost/Team/issues/1596

This commit updates admin to align with the changes in the backend in https://github.com/TryGhost/Ghost/pull/14798

- `post.email_recipient_filter` option and property is renamed to `email_segment`
- `newsletter_id` option is renamed to `newsletter` (and now uses slug instead of id)
- Sending a post via email, means you need to set the `newsletter` option. The `email_segment` option is optional now and defaults to `all`. Not setting `newsletter` means not sending an email, setting `email_segment` is ignored if `newsletter` is missing.
- We can no longer use `email_recipient_filter` (now renamed to `email_segment`) to know whether a post is published/scheduled to be sent as an email. We need to rely on the newsletter relation now. The `email_segment` `none` value has been dropped and will be `all` even if no email will be sent (newsletter will be null). 
- `sendEmailWhenPublished` option is no longer supported in the backend.
2022-05-16 10:18:46 +02:00
Sanne de Vries
3e8c5403b6 Updated error message for published post with failed email sending
Refs https://github.com/TryGhost/Team/issues/1587
2022-05-16 10:09:42 +02:00
Kevin Ansfield
150f4fda2d Remember post preview tab when switching between preview/publish
refs https://github.com/TryGhost/Team/issues/1621

- added `currentTab` and `changeTab()` data arguments to preview modal allowing for the current tab to be remembered across opens in the `<PublishManagement>` component that controls open/close of the preview modal
2022-05-13 17:43:34 +01:00
Sanne de Vries
d3e188fb3a Updated email and social post previews
Refs https://github.com/TryGhost/Team/issues/1621
2022-05-13 15:36:56 +01:00
James Morris
201fbdfc9b Removed some unnecessary checks for Paid Mix
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-13 15:17:31 +01:00
Sanne de Vries
52cfae0522 Updated browser and mobile post previews
Refs https://github.com/TryGhost/Team/issues/1621
2022-05-13 14:19:22 +01:00
Peter Zimon
0e9ac4b97d Paid mix chart alignment fix 2022-05-13 12:26:17 +02:00
Sanne de Vries
fef8e59050 Formatted post and member counts in newsletter settings and publishing flow
No ref
2022-05-13 10:27:01 +01:00
Peter Zimon
3ba3e34ab4 Minor dashboard UI refinements 2022-05-13 11:05:02 +02:00
James Morris
dcd6eba15b Fixing linter error 2022-05-12 18:12:14 +01:00
James Morris
d2f356e2a4 Attempting to fix the Paid Mix empty state for Tiers
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-12 18:05:20 +01:00
Sanne de Vries
f4df91aee7 Updated publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 16:03:40 +01:00
Rishabh
704310ba20 Updated tier price to use boolean for active 2022-05-12 20:21:46 +05:30
Kevin Ansfield
dd3d84a8a5 Added separate "published but email failed" state to publish flow
refs https://github.com/TryGhost/Team/issues/1587

- if post creation succeeds but the email fails to send we want to show a separate state of the publish flow rather than adding an error to the confirm step
  - confirm _has_ completed so showing the error there doesn't make sense and causes confusing copy
- added check for email failure to the `<PublishFlow>` save task (which is called by the confirm step) to intercept any email failure errors and switch state
2022-05-12 15:28:35 +01:00
Sanne de Vries
4795343cdb Updated newsletter count in newsletter selection dropdown
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 15:03:17 +01:00
James Morris
f564943aa9 Fixed up the full width bar and other bugs with Paid Mix for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-12 14:58:02 +01:00
Hannah Wolfe
47d6c17135 Settings cleanup (#2377)
refs: https://github.com/TryGhost/Toolbox/issues/327
requires: TryGhost/Ghost#14791

- lang / locale has had a lot of churn, but we decided this setting should always be locale
- Removed test relating to unused editor_is_launch_complete setting 

Co-authored-by: Rishabh <zrishabhgarg@gmail.com>
2022-05-12 14:53:18 +01:00
Sanne de Vries
8932ba9b1a Added dropdown label for specific recipient selection in publish settings
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 14:49:07 +01:00
Sanne de Vries
07628be22b Fixed alignment of preview modes in editor
Refs https://github.com/TryGhost/Team/issues/1621
2022-05-12 14:43:21 +01:00
James Morris
a6b4dbc353 Added in min and max values to the Paid Mix chart to maintain width
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-12 14:36:04 +01:00
Sanne de Vries
6f498035ea Updated post preview navigation
Refs https://github.com/TryGhost/Team/issues/1621
2022-05-12 14:27:06 +01:00
Kevin Ansfield
f137aaea5c Added auto-reset of time input if invalid time was entered
no issue

- it was possible to enter invalid times when scheduling in the publish flow, in which case the underlying schedule date was not updated but the input still showed the invalid time
- added passthrough of the blur event in `<GhDateTimePicker>` to the `setTime` action so we have access to the input field, then updated the `setTime` action to set the time input value back to the currently set schedule time when an invalid time is entered so the UI matches the actually set value
2022-05-12 14:23:56 +01:00
James Morris
34a45d99a2 Added in better empty states for Paid Mix for Candence and Tiers
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-12 14:10:22 +01:00
Sanne de Vries
288ba328d7 Updated navigation between editor, publish, preview and update states
Refs https://github.com/TryGhost/Team/issues/1621
2022-05-12 14:03:21 +01:00
Peter Zimon
4b596e47c5 Improved neutral trend indicator on Dashboard metrics 2022-05-12 14:40:54 +02:00
Peter Zimon
9a384857fd Updated bar thickness of Paid mix chart 2022-05-12 14:33:28 +02:00
Sanne de Vries
eafd2f901e Updated publishing flow email recipient filters
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 13:30:14 +01:00
Kevin Ansfield
2e6b219030 Fixed recipient select becoming disabled when all filters are turned off
no issue

- `publishOptions.willEmail` doesn't work for the conditional because it will be false when no email will be sent, which is the case when a recipient filter is the equivalent of "none"
- switched to being conditional on the publish type and added a separate "Not sent to any members" conditional for `recipientFilter` being blank so we're not showing an incorrect count of members
2022-05-12 13:21:57 +01:00
Peter Zimon
f3e35bb164 Fixed chart re-rendering bug 2022-05-12 14:04:29 +02:00
Sanne de Vries
f6b06ef9bf Updated email recipient filter design
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 12:56:43 +01:00
Peter Zimon
527b07b490 Fixed Paid mix padding 2022-05-12 13:33:05 +02:00
Peter Zimon
8a3a5dd217 Minichart refinements 2022-05-12 13:20:48 +02:00
Kevin Ansfield
dd551acf91 Fixed schedule time changing after setting if local and site tz don't match
closes https://github.com/TryGhost/Team/issues/1622

- we were setting selected hour/minute on a supposedly site-timezone date before converting to UTC but we were using a local timezone date instead meaning the conversion to UTC didn't match resulting in the time being altered incorrectly after the time input loses focus
2022-05-12 12:13:06 +01:00
Sanne de Vries
513c8655e4 Updated error and info boxes in publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 11:47:49 +01:00
Kevin Ansfield
cc8dd9dedf Added newsletter name to publish update flow copy
no issue

- show the newsletter a post was/will be sent to if there's more than just the default newsletter or the newsletter that was emailed is now archived
2022-05-12 11:44:10 +01:00
Djordje Vlaisavljevic
1349a03164 Updated modal title
refs https://github.com/TryGhost/Team/issues/1583
2022-05-12 12:16:12 +02:00
Sanne de Vries
af55c71a9e Updated publishing flow copy
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-12 11:14:45 +01:00
Kevin Ansfield
cf8b372fed Added fullscreen preview with toggle to publish flow
refs https://github.com/TryGhost/Team/issues/1621

- copied existing preview modal over to `editor-labs/modals` directory
  - old modal will be deleted in cleanup
- moved "Preview" button from editor template to the `<PublishManagement>` component
  - allows for preview modal to be controlled alongside the publish flow modal
- added `togglePreviewPublish()` action to `<PublishManagement>`
  - opens whichever of preview/publish is not currently open, this opens the new modal on top of the old modal
  - waits for the modal animation duration to pass then closes the modal that's now underneath, this prevents the flashing that occurs when modals are both opening and closing at the same time because that results in a 50% opacity of both modals during the middle of the animation
- updated preview modal and publish-flow modals to have "Publish" and "Preview" buttons respectively that call the `togglePreviewPublish` action
- updated preview modal to be fullscreen to better match the publish modal
2022-05-11 23:46:01 +01:00
Kevin Ansfield
b285205c53 Removed old publish menu from preview modal
refs https://github.com/TryGhost/Team/issues/1621

- the old publish menu will be fully deleted soon
- removing it from the preview modal is the minimal "fix" for interoperability with the new publish flow
- pre-cursor to tighter preview/publish modal integration
2022-05-11 21:14:22 +01:00
Kevin Ansfield
6c079daafa Improved handling of missing member counts in publish flow
no issue

Only Admins/Owners can browse members to get member counts but Editors/Authors are allowed to send email. This means we need to account for the count figures being missing.

- added guard to the total member count fetch in `PublishOptions`
  - guard needed because the failed API request would abort setup
  - when the current user isn't an admin, set the total member count to 1 to avoid email options being disabled
- added guard in the `{{members-count-fetcher}}` resource so we're not triggering API errors and the count is kept as `null` so it's handled automatically if passed to `{{gh-pluralize}}`
- updated `<GhMembersRecipientSelect>` to not show counts (or the surrounding `()`) when the count is `null`
2022-05-11 18:56:29 +01:00
Peter Zimon
02ccf5fe1a Added rounded corners to Paid mix 2022-05-11 19:52:32 +02:00
Peter Zimon
260d516ad5 Paid breakdown chart cleanup 2022-05-11 19:52:32 +02:00
Hannah Wolfe
affe6743e5 Renamed products to tiers (#2372)
refs: https://github.com/TryGhost/Team/issues/1145

- this should allow us to remove the /products endpoint in v5

It avoids:

- `kg-product-card`, that really is meant to say product
- `product-cadence` on offers

Co-authored-by: Rishabh <zrishabhgarg@gmail.com>
2022-05-11 22:41:54 +05:30
Kevin Ansfield
e852c29699 Extracted PublishOptions class into separate file
no issue

- `PublishOptions` was exported from the `<EditorLabs::PublishManagement>` component as a convenience when development started but both have now grown in size and are easier to read as separate files
2022-05-11 17:51:53 +01:00
Kevin Ansfield
bea1ffe665 Updated copy for recipients option when post has already been emailed
refs https://github.com/TryGhost/Team/issues/1605

- added number and type of members/subscribers the post has been sent to
2022-05-11 17:45:22 +01:00
Sanne de Vries
221d520d11 Updated copy for published and scheduled posts
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-11 17:09:22 +01:00
Kevin Ansfield
1c2ae5348d Fixed forced-error for email limit
refs f559170a39

- hangover from testing
2022-05-11 17:02:23 +01:00
Kevin Ansfield
f559170a39 Added email limit checks and email disabled messaging to publish flow
closes https://github.com/TryGhost/Team/issues/1584
refs https://github.com/TryGhost/Team/issues/1605

- added email limit check to PublishOptions setup
- moved email disabled messaging from the email recipients option to the publish type option
  - it was confusing to have the email publish type options disabled without any indication of why, with the message hidden within the closed email recipients option
2022-05-11 17:00:30 +01:00
Peter Zimon
bb2b8fae27 Fixed gridlines density on dashboard 2022-05-11 17:57:39 +02:00
James Morris
dc8a431e45 Fixed up the empty list states if something fails for What's New or Staff Picks
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 16:51:11 +01:00
Peter Zimon
a926b8fb39 Added rounded corner to Paid breakdown chart 2022-05-11 17:49:48 +02:00
James Morris
54e9c63a7f Adjusting the dropdown so it fits flush against the top header better
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 16:08:18 +01:00
James Morris
cd9ec81006 Trying out moving the date dropdown
no issue

- seeing if this feels better up above than it is when inside the anchor
2022-05-11 16:08:18 +01:00
Sanne de Vries
dc14b9943f Updated publishing flow copy
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-11 16:04:42 +01:00
James Morris
7e7c1e4bf5 Removed the unnecessary component code for the Community module in new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 15:48:55 +01:00
Simon Backx
f6259f1f63 Moved dashboard control panel to developer experiments 2022-05-11 16:29:58 +02:00
James Morris
07b3f26e08 Fixed z-indexing that messed with some dropdowns and fixed the extra long widths on others
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 14:32:55 +01:00
Kevin Ansfield
37aec66e83 Fixed linter error 2022-05-11 12:56:19 +01:00
Kevin Ansfield
627b6f259a Added error handling to publish flow confirm step
closes https://github.com/TryGhost/Team/issues/1555
closes https://github.com/TryGhost/Team/issues/1588

- added task to the confirm component's backing class so it can be wrapped in step-specific error handling
- added display of general/email error message above the confirm button
- fixed error state of the confirm button showing as green and having incorrect spacing due to the icon being hidden in CSS rather than not displayed
2022-05-11 12:48:31 +01:00
Peter Zimon
1fa86d8c0f Removed unused JS variable 2022-05-11 12:58:59 +02:00
Peter Zimon
d24ec03177 Updated Paid breakdown tooltip positioning 2022-05-11 12:50:05 +02:00
Peter Zimon
032e86c12e Fixed Paid breakdown chart bar thickness 2022-05-11 12:20:20 +02:00
Peter Zimon
c2b49028f1 Updated dashboard totals chart ticks
- set 30 days to show every other gridline
- set 90 days to show every 3rd gridline

Note that this required to add an extra day to the displayed number of days.
2022-05-11 12:16:31 +02:00
Simon Backx
2d4bbad094 Implemented newsletter limits
refs https://github.com/TryGhost/Team/issues/1583

- When adding a newsletter, check the limits (both via button and route)
- When unarchiving a newsletter, check the limits
- Bumped `@tryghost/limit-service` package, required to make limit checking work for newsletter
- Added the `getNewslettersCount` query to the `limit` service
2022-05-11 12:10:26 +02:00
James Morris
97553181ce Removed All Time from the graphs in the new Dashboard
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-11 11:06:07 +01:00
Kevin Ansfield
e87e564462 Fixed published posts count in publish flow
no issue

- the count fetch was including all posts rather than just published ones so it never matched the expected count
2022-05-11 10:37:32 +01:00
Kevin Ansfield
ebcf4c7c16 Added member count to publish flow newsletter dropdown
no issue

- it's useful to see an indication of how many overall members are subscribed to each newsletter when selecting which newsletter to send to
- added `?include=count.members` to the newsletter fetch query so the counts are available to show in the dropdown
2022-05-11 10:24:55 +01:00
Peter Zimon
6e3267315a Improved dashboard tooltip positioning 2022-05-11 10:51:46 +02:00
Kevin Ansfield
28919eb057 Fixed "Already sent" showing in publish options when email disabled in settings
refs 46f01c2d8f

- if you had previously had emails enabled and you had sent a post as an email, when disabling members/emails all email related UI was hidden except for the "Already sent as email" message when publishing which was confusing as there is no other indication anywhere about emails and no way to view it
- added `emailDisabledInSettings` getter to PublishOptions
  - used in `emailUnavailable` getter in place of a duplicate read of the settings
  - used in the `<PublishFlow::Options>` component to conditionally hide the "Already sent" message
2022-05-11 09:43:55 +01:00
Kevin Ansfield
46f01c2d8f Removed email publish options when email is disabled, added message if already emailed
no issue

- when email is unavailable (members/email disabled, already emailed, publishing a page) don't show any email options in the publish flow so there's no confusion and a cleaner options list
- if a post has already been emailed indicate that with a "Already sent as email" when only one newsletter exists or "Already sent to {newlsetter name}" when multiple exist
2022-05-11 09:33:32 +01:00
Kevin Ansfield
8652f16005 Fixed publish confirmation button text
no issue

- the button text would still say "Publish & send" when no members were selected
- changed from comparing `publishOptions.publishType` directly to using the `willPublish` and `willEmail` convenience getters so the button text better matches the action being taken
2022-05-11 09:33:32 +01:00
Peter Zimon
ce81b9c342 Fixed total charts tooltip offset 2022-05-11 10:30:15 +02:00
Peter Zimon
1310a092d1 Updated totals chart tooltip 2022-05-11 09:26:57 +02:00
Peter Zimon
fe3e8ee64d Updated Paid mix tooltips 2022-05-11 09:03:56 +02:00
Peter Zimon
6e7eeba94e Updated MRR chart tooltip 2022-05-11 08:29:44 +02:00
Peter Zimon
da3053b3ae Updated Paid breakdown tooltip 2022-05-11 07:54:36 +02:00
Sanne de Vries
e134e5b365 Updated publishing flow header
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-10 21:10:17 +01:00
Kevin Ansfield
cf3f872fa6 Added client-side validation check for post before opening publish/update flows
refs https://github.com/orgs/TryGhost/projects/59/views/20

- before the publish/update flow modals are opened, perform a `post.validate()` call, if it fails show the red error bar and don't open the modal
- shows validation errors early rather than being hidden until a save occurs at the end of the publish flow
2022-05-10 19:24:54 +01:00
James Morris
236f6589c2 Removed a ton of unnecessary files and refactored the MRR component to be consistent
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 18:54:41 +01:00
James Morris
c488ca4dc5 Fixed up a linting issue for the empty state for Paid Mix
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 18:43:08 +01:00
James Morris
8bf30b3a68 Basic improvements to the Paid Mix empty state
refs: https://github.com/TryGhost/Team/issues/1531

- still not ideal, but better than it was and now not showing as broken
2022-05-10 18:40:27 +01:00
Sanne de Vries
d364116948 Updated publishing flow
Refs https://github.com/TryGhost/Team/issues/1544
2022-05-10 17:57:48 +01:00
James Morris
cf3650ddcc Better styling for the new empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
9c98e2e094 Removed unneeded variables and functions based on pull request review
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
c0fd3e288b Added in a better responsive design to the new empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
53235a2c33 Added in the new copy for the empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
d6e98eca68 Fixed up linting errors for new empty state for new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594
2022-05-10 17:39:36 +01:00
James Morris
f9231afa2a Further refinements to the new empty state for 0 members in new Dashboard
refs: https://github.com/TryGhost/Team/issues/1594

- this much more matches the style of the design
- it now covers the anchor and engagement charts
- has better fake data for all charts under the notice
- tweaked things for this in dark mode
2022-05-10 17:39:36 +01:00
James Morris
8af605babe Basic working empty state for the anchor chart when there are 0 members
refs: https://github.com/TryGhost/Team/issues/1594

- has new loading checks to see if there are 0 members
- has a blurred overlay box that works over the top of the anchor chart
- styles are still not perfect but work well enough for the mo
2022-05-10 17:39:36 +01:00
James Morris
917f17b7e6 Removed tick lines for All Time on totals chart and adjusted bar thickness depending on days selected for Paid Subscribers
refs: https://github.com/TryGhost/Team/issues/1531
2022-05-10 16:42:12 +01:00
Simon Backx
2b4e80b3dd Rounded MRR in dashboard
refs https://github.com/TryGhost/Team/issues/1602

- Added `cents` option to ghPriceAmount helper.
- Removed cents from MRR in dashboard.
2022-05-10 17:35:51 +02:00
Simon Backx
d11cf9e1c7 Added newsletter name in post scheduled tooltip
refs https://github.com/TryGhost/Team/issues/1576

This change was required to avoid showing 'all members' or 'all paid members', when it was in fact 'all paid subscribers of newsletter X'. The newsletter name is only shown when multiple newsletters are activated on a site.
2022-05-10 15:00:30 +02:00
Kevin Ansfield
59e7b720a2 Added <GhPostBookmark> and displayed on publish flow complete step
refs https://github.com/TryGhost/Team/issues/1598

- added `<GhPostBookmark>` card for displaying a bookmark card style representation of a post
  - updated designsandbox route to include it for easier styling without needing to constantly go through the publish flow to see changes whilst styling
- updated publish flow complete step to render a bookmark card if a post/page was published
- added `{{post-author-names}}` helper so the author name concatenation logic can be re-used across the posts list and bookmark component
2022-05-10 13:26:13 +01:00
Simon Backx
bf098cc730 Updated member counts for post newsletter
refs https://github.com/TryGhost/Team/issues/1576

- Recipient counts in scheduled post status at top of editor fixed for selected newsletter
- Added `fullRecipientFilter` getter on post model which includes the newsletter's recipientFilter
- Updated scheduled notification (used in old publishing flow or via preview)
2022-05-10 14:13:39 +02:00