Commit Graph

1634 Commits

Author SHA1 Message Date
Rishabh
eddeb07a52 Added error handling and validation for offer
closes https://github.com/TryGhost/Team/issues/1159

- validates offer fields before save client-side
2021-10-19 13:05:18 +05:30
Rishabh
b94bb836f5 Added redemption count for offers in list screen
closes https://github.com/TryGhost/Team/issues/1136
2021-10-18 23:46:45 +05:30
Sanne de Vries
e0842183c0 Updated design settings and theme directory
Refs https://github.com/TryGhost/Team/issues/1149
2021-10-18 17:43:06 +02:00
Peter Zimon
737db37175 Added Integrations as a subpage of Settings
- Restructured Admin so that Integrations becomes a subpage of Settings.
2021-10-18 14:47:59 +02:00
Kevin Ansfield
db0fc23dee Animated "advanced" table open/close on change themes screen
refs https://github.com/TryGhost/Team/issues/1149

- switched to using `{{liquid-if}}` to get our standard open/close animation when the `showAdvanced` property is changed
2021-10-18 13:05:18 +01:00
Kevin Ansfield
9a0a98e64a Added "active" indicator and list themes in "active, default, ...rest" order
refs https://github.com/TryGhost/Team/issues/1149

- built a secondary list of themes that's decorated and sorted for display purposes
2021-10-18 13:02:35 +01:00
Peter Zimon
a78afb5749 Added Staff as subpages of Settings
- The Admin is being restructured with Offers. This commit moves Staff under Settings.
2021-10-18 13:27:42 +02:00
Rishabh
bb575dbb87 Added portal preview to offer screen
refs https://github.com/TryGhost/Team/issues/1137

- adds new portal preview using portal offer url on offer screen
- adds new utility to calculate portal offer preview url from data
- fixed tiny bug with discount type currency not shown correctly
2021-10-18 14:31:29 +05:30
Sanne de Vries
9120f0d820 Updated design settings navigation 2021-10-15 17:59:52 +02:00
Peter Zimon
be5ef010a5 Offers archive/active refinements
- added empty archive screen
- added indication of archive offer on detail page
- set default dropdown style to non-selected
- removed archive button for new offers
2021-10-15 12:49:42 +02:00
Sanne de Vries
aeafe91ea1 Updated design settings page 2021-10-14 18:01:12 +02:00
Peter Zimon
7a26051439 Moved offers active/archive filter to view actions bar 2021-10-14 17:14:27 +02:00
Peter Zimon
2234b04a56 Fix form group bottom margins 2021-10-14 17:11:29 +02:00
Kevin Ansfield
94ca66cde5 Fixed design settings browser preview missing site title and icon
no issue

- when copying the template parts out of `<GhSitePreview>` the template was left pointing to passed in arguments rather than pulling the data from the settings service
2021-10-14 15:58:29 +01:00
Sanne de Vries
e4c10cbe6c Updated theme directory and theme preview 2021-10-14 12:39:54 +02:00
Rishabh
2645bb895c Updated copy for archive/reactivate offers
refs https://github.com/TryGhost/Team/issues/1148
2021-10-14 00:53:31 +05:30
Rishabh
88049f1692 Updated offers list to filter on archived offers
refs https://github.com/TryGhost/Team/issues/1136

- adds dropdown for active/archived offers selection
- wires active/archived offers on list screen to API
- filters offers list on archived/active based on selection
2021-10-13 21:23:30 +05:30
Rishabh
667a4b6e78 Added (un)archive button to offer detail screen
refs https://github.com/TryGhost/Team/issues/1136

- adds option to archive/unarchive an offer
- adds new modals for confirmation of archive or unarchive of offer
- wired (un)archiving of offers to API
2021-10-13 21:23:30 +05:30
Kevin Ansfield
24507ac5cc Added preview page selector to design settings screen
closes https://github.com/TryGhost/Team/issues/1103

Custom post settings can be grouped by homepage or post, when set to `'post'` it makes sense to be able to preview a post page rather than the homepage.

- added preview type selection to `themeManagement` service
  - `.availablePreviewTypes` is useful for populating selects or other page selection elements
  - `.previewType` is set to the currently selected preview type name
  - `.setPreviewType()` is for setting the preview type and re-generating the preview html if necessary
- updated `themeManagement.updatePreviewHtmlTask` to fetch the latest published post if we don't already have a published post reference in the store, that post's `url` is then used when fetching the preview html if the preview type is set to `'post'`
- added a select element to the design index header that uses the themeManagement properties/actions to list types and update the preview on change
- updated the design nav menu to switch preview types when different sections are opened so the preview automatically switches to the post preview when making changes to the "post" custom theme settings group
2021-10-13 16:07:01 +01:00
Sanne de Vries
ede7ef12fa Added footer link to Marketplace in theme directory 2021-10-13 16:40:46 +02:00
Kevin Ansfield
7c2ba1c242 Wired up desktop/mobile toggle on design settings screen
no issue

- ensured that we're only swapping classes on existing elements or inserting/removing elements around the iframe to avoid re-rendering and the associated loading+layout flash
2021-10-13 13:22:49 +01:00
Sanne de Vries
34e4add038 Updated advanced section on new themes page 2021-10-13 12:59:49 +02:00
Kevin Ansfield
3477be5974 Removed hardcoded style from design settings index
no issue

- by using flex display on the outer container we can get rid of the hardcoded height calc style and let the browser handle the layout more naturally
2021-10-12 15:23:55 +01:00
Kevin Ansfield
8ec5b83097 Fixed save button on design settings screen
refs https://github.com/TryGhost/Team/issues/1130

- when moving the design settings screen from a modal to normal routes the save process was misplaced and the template not updated
- moved all the design settings behaviour over to the index controller where it belongs and updated the template to use `this.saveTask` rather than `@data.saveTask` as was used in the modal
2021-10-12 15:19:27 +01:00
Kevin Ansfield
265a19f550 Added initial view-theme modal for installing from themes list
refs https://github.com/TryGhost/Team/issues/1130

- added new route for viewing themes so back/forward buttons can be used
  - takes theme name as a parameter
  - opens a fullscreen modal with an iframe containing the theme demo
- changed installable themes list to link to new route
- swapped `previewUrl` in theme data to point at the real demo rather than the ghost.org demo page
2021-10-12 14:28:05 +01:00
Sanne de Vries
87c3a0a359 Fixed upload theme button style 2021-10-12 15:01:20 +02:00
Kevin Ansfield
924da56c94 Moved theme table to change-theme screen and dropped advanced screen
refs https://github.com/TryGhost/Team/issues/1130

- match latest design where the theme table is under an "advanced" toggle on the change-theme screen rather than a completely separate screen
2021-10-12 10:18:55 +01:00
Kevin Ansfield
13f9cb85fa Refactored theme upload process and linked from design screens
refs https://github.com/TryGhost/Team/issues/1130

- copied theme upload modal to new modals system and refactored for Octane syntax
  -  updated to use `themeManagement` service rather than passed in actions so the modal-based process can be opened from any screen
  - added default `beforeClose()` for the modal to the modals service so it won't close if an upload is in-progress (defaults were moved directly into the class so it had access to services)
- added `themeManagement.upload` action for triggering the upload modal and providing a central place for limit checks
- added upload-triggering buttons to change-theme and advanced design screens
2021-10-11 19:30:58 +01:00
Kevin Ansfield
42e493bb81 Initial pass at new change theme screen
refs https://github.com/TryGhost/Team/issues/1130

- added link to design sidebar
- dropped change-theme modal and associated route behaviour
- copied basic themes marketplace list into the change-theme controller/template
2021-10-11 17:14:18 +01:00
Kevin Ansfield
595018098d Switched design screen from modals to standard routes
refs https://github.com/TryGhost/Team/issues/1130

- added `ui.contextualNavMenu` property that when set will switch the main nav menu between components, if it's not set then it will show the default "main" menu component
- added `design` menu sub-component of `gh-nav-menu` ready for use via `contextualNavMenu`
  - moved sidebar contents from the design modal into this component
- updated design route to set/reset `ui.contextualNavMenu` to `design` on entering/leaving the route
  - all other design routes are sub-routes so this works across all other design screens
- moved base design modal preview into the `settings/design/index` controller/template
  - using index means that it's the default screen for `/settings/design` but will be automatically replaced by any other `design.x` routes
- moved `design/advanced` modal content into the `settings.design.advanced` controller/template and removed the modal handling from the route
2021-10-11 15:24:46 +01:00
Rishabh
7ef2b08883 Fixed offer percentage amount not getting set
no refs
2021-10-08 19:15:56 +05:30
Rishabh
4bbbea29ed Refined fixed discount type amount UI
refs https://github.com/TryGhost/Team/issues/1084
refs https://github.com/TryGhost/Team/issues/1085

- uses price helper to show Stripe amount instead of manual calculation
2021-10-08 18:50:18 +05:30
Peter Zimon
7ac85a3c02 Formatting fixes on offers list 2021-10-08 12:55:25 +02:00
Peter Zimon
600edc0d60 Updated percentage/amount selector for offers 2021-10-08 12:48:41 +02:00
Rishabh
267889993f Updated shareable offer link UI on list screen
refs https://github.com/TryGhost/Team/issues/1084

- updates shareable offer link UI to to open directly instead of route
- calculates offer url from code and updates in link modal
- wires copy button on link modal
- removes route based link code for modal
2021-10-08 09:28:17 +05:30
Rishabh
bbaad743a3 Refined offer detail screen
refs https://github.com/TryGhost/Team/issues/1085

- adds unsaved changes modal for navigating away
- adds link url for offer redemption
- updated amount calculation for fixed amount offers (1000 for 10 USD)
- disabled discount info section for existing offers
2021-10-08 01:43:59 +05:30
Rishabh
43f5d7c621 Refined offers list screen
refs https://github.com/TryGhost/Team/issues/1084

- updates offer list to show fixed amount discounts
- cleans up offer list usage
2021-10-08 01:39:42 +05:30
Peter Zimon
fd5e009d29 Fixed Tags empty screen button bug 2021-10-07 12:25:37 +02:00
Peter Zimon
1861c8b4eb Copy update for offer details 2021-10-07 12:17:50 +02:00
Peter Zimon
b5d30ba92e Temporarily removed Archive option for offers 2021-10-07 12:16:30 +02:00
Naz
4f3e340c03 Promoted email-only feature to general availability
refs https://github.com/TryGhost/Team/issues/1125

-- Email-only is not considered a general availability feature and can be used without special flags.
- It allows to publish a new post type "email only" that only goes out as an email newletter and is available through an undescoverable URL (does not appear anywhere publicly similarly to preview posts) on the site.
- The new "send" option in the post publishing menu allows to send this new type of post.
2021-10-07 12:07:48 +02:00
Peter Zimon
e244304538 Offer list and detail improvements
- added icon to offer value
- added link popup to list
- renamed "Delete offer" to "Archive offer"
2021-10-07 11:21:53 +02:00
Peter Zimon
b942029cc9 Added dynamic currency to offers form 2021-10-06 17:49:45 +02:00
Rishabh
31e4b77525 Added initial wiring for offer screens
refs https://github.com/TryGhost/Team/issues/1084
refs https://github.com/TryGhost/Team/issues/1085

- adds model/validator/config and router for offers
- updates template for offer list and detail with dynamic values
- updated route handling for offer list and creation
- wires offer data from API to list and detail pages
2021-10-06 20:01:25 +05:30
Peter Zimon
611fbf5926 Added static URL to offers detail screen 2021-10-05 15:03:39 +02:00
Peter Zimon
24d28f3d79 Added static duration to Offers edit 2021-10-05 14:34:19 +02:00
Kevin Ansfield
2ca57e7624 Removed unused confirm-leave handling from theme settings screen
no issue

- appears to be left-over from copy/paste of an earlier screen re-structure
- cleaning up for easier extraction of functionality to new screens / modals
2021-10-05 11:37:17 +01:00
Kevin Ansfield
63b1e1d385 Dropped intermediate design screen and moved to full-overlay modal
refs https://github.com/TryGhost/Team/issues/1111
refs https://github.com/TryGhost/Team/issues/1103

- moved customize modal from a link on the design screen to the main design screen
- changed modal design to be a full-screen overlay with side bar that emulates standard Admin design
- added toggled groups of settings in sidebar
  - added `{{set-has}}` helper for use in conditionals matching when a Set contains an object
  - added grouping of theme settings
- dropped unfinished advanced/change theme modals
2021-10-04 16:34:28 +01:00
Peter Zimon
54447eae4b Added price to offers list 2021-10-04 17:07:13 +02:00
Peter Zimon
84c9123bfd Added mock content for offers list help 2021-10-04 16:17:32 +02:00
Peter Zimon
713fa7725a Added static offer help links 2021-10-04 15:42:05 +02:00
Peter Zimon
5343b9f6b5 Added unit to offer value 2021-10-04 15:21:28 +02:00
Peter Zimon
96ec92a47b Update offer details structure
- Added static UI to offer details page
- Deleted offer modal
2021-10-04 15:00:41 +02:00
Peter Zimon
6e6c89ba00 Updated offers list heading 2021-10-04 13:58:58 +02:00
Peter Zimon
3013263498 Added static UI for offers list
- Added list and basic empty screen for offers list
- Removed offers list from Membership settings
2021-10-04 13:55:17 +02:00
Peter Zimon
390b2b136f Added base files for Offers structure
- Moving Offers outside settings to main menu
- Moving Integrations and Staff to settings
2021-10-04 13:01:12 +02:00
Fabien O'Carroll
592e3df794 Added Members Filtering feature
no-issue

This adds the ability to apply complex filters to members, as well as to
perform bulk actions on the filtered set, including unsubscribing,
adding & removing labels.
2021-10-01 14:16:28 +02:00
Kevin Ansfield
7430c28001 Fixed error when opening design settings screen
no issue

- `{{did-insert}}` was left over from copy/paste but the referenced function wasn't copied so was erroring
2021-09-23 22:53:09 +01:00
Peter Zimon
dce39c8a91 Minor style change in Offers 2021-09-23 12:33:19 +02:00
Sanne de Vries
182f5c91b6 Updated design settings page
Refs https://github.com/TryGhost/Team/issues/1045
2021-09-23 10:16:28 +02:00
Peter Zimon
6ee2e48c92 Added static list of offers 2021-09-22 17:23:26 +02:00
Peter Zimon
d8c42876a3 Added base files for Offer modal 2021-09-22 16:10:38 +02:00
Peter Zimon
01524cb735 Added offers Alpha flag 2021-09-22 13:20:15 +02:00
Peter Zimon
4dcc594193 Added static offers CTA to membership settings 2021-09-22 13:10:59 +02:00
Sanne de Vries
3e9a44d31f Added select component to custom theme settings
Refs https://github.com/TryGhost/Team/issues/1070
2021-09-21 16:58:08 +02:00
Sanne de Vries
0013ff0980 Fixed editor header display on mobile 2021-09-20 17:36:43 +02:00
Kevin Ansfield
ff636de268 Added blank change-theme and advanced theme options modals
refs https://github.com/TryGhost/Team/issues/1045

- preparation for static design
2021-09-20 11:05:16 +01:00
Matt Hanley
e44bd2376a Updated OAuth signin link to relative for subdirectory support 2021-09-17 16:34:12 +01:00
Rishabh
3bd4336bc4 Added membersActivity labs feature
refs https://github.com/TryGhost/Team/issues/1060

- adds `feature` service flag and toggle to labs section for new `membersActivity` feature
2021-09-16 11:50:25 +05:30
Kevin Ansfield
6f4e7c3872 Added blank "Customize" modal to new Design screen
refs https://github.com/TryGhost/Team/issues/1045

- added new `settings.design.customize` route
- used the route's `activate` and `deactivate` hooks to trigger and close the customize modal
- added `modals/design/customize` component that uses the existing branding modal design without it's contents as a base
  - has `{{will-destroy}}` hook that transitions back to the settings screen so the route will update when the modal gets closed
2021-09-14 19:32:07 +01:00
Kevin Ansfield
667506b166 Set up Design settings screen
refs https://github.com/TryGhost/Team/issues/1045

- added blank `/settings/design` route and associated screen
  - redirects to settings index if associated labs flag is not enabled
- when custom theme settings labs flag is enabled, replaced Branding and Theme links with single Design link
2021-09-14 18:48:26 +01:00
Kevin Ansfield
e795692e6b Added customThemeSettings labs feature
refs https://github.com/TryGhost/Team/issues/1045

- added `feature` service flag and toggle to labs page
2021-09-14 18:35:52 +01:00
Kevin Ansfield
b540d9f066 Removed labs dashboard and feature flag
no issue

The updated dashboard is shelved for now whilst the underlying analytics architecture is improved.
2021-09-14 10:12:16 +01:00
Peter Zimon
df56a25d6d Updated Tiers help links 2021-09-13 14:26:00 +02:00
Kevin Ansfield
b2bbaf153d Converted post-preview modal to EPM based modal
refs https://github.com/TryGhost/Team/issues/559

- moved the modal component class, template, and sub-components into a `components/modals/` directory to keep the top-level dir cleaner
- migrated component class to full glimmer syntax
2021-09-13 13:01:12 +01:00
Kevin Ansfield
a122711043 Converted delete-post modal to EPM based modal
refs https://github.com/TryGhost/Team/issues/559

- moved the modal component class and template into a `components/modals/` directory to keep the top-level dir cleaner
- migrated component class to glimmer syntax
- moved route transition behaviour directly into the class to avoid weird route-action indirection
2021-09-13 13:01:12 +01:00
Kevin Ansfield
5ce67c7892 Initial ember-promise-modals implementation
refs https://github.com/TryGhost/Team/issues/559

We want to get rid of our existing modals implementation because it doesn't play well with Glimmer compoments and the animation library it uses is now unmaintained and blocking our Ember.js upgrades.

- installed addon using customised fork
  - fork allows passthrough of `allowOutsideClick` to `focus-trap` so we can allow clicks on dropdowns and other wormholed content inside of a modal
- extended the `modals` service locally so we can customise click-outside-to-close behaviour and tie in with our `dropdowns` service
- set up styles in `modals-new.css`, mostly copied from `modals.css` with a few specific overrides
  - once all modals are converted we can drop the old `modals.css` and rename `modals-new.css`
2021-09-13 13:01:12 +01:00
Rishabh
ca6de51cc5 Cleaned duplicate member settings form component
closes https://github.com/TryGhost/Team/issues/1039

- we had duplicate components for members setting form, `gh-members-settings-form` and `gh-members-settings-form-cp`, with the `-cp` version added as part of original tiers changes
- since are only using the "-cp" version now, the old form is now removed and cp version renamed to the original naming
2021-09-13 16:40:45 +05:30
Sanne de Vries
c67b8f6d76 Added bold line of text on membership settings page
Refs https://github.com/TryGhost/Team/issues/1036
2021-09-11 09:43:32 +02:00
Peter Zimon
6c35bd3d59 Unified admin and owner rights 2021-09-10 12:23:23 +02:00
Kevin Ansfield
8b5c18d6e5 Hid email specific cards from card menus when editing pages
no issue

Pages can not be sent by email so by hiding email-specific cards when editing pages we can reduce confusion and clutter.

- added a `@postType` argument to editor components that can be passed through to sub components
- set `@postType` to `post.displayName` which is either `post` or `page`
- updated `{{card-is-available}}` helper to compare a `postType` property on card menu items to the passed in `postType`
2021-09-10 09:24:38 +01:00
Rishabh
f5bdc6c407 Removed tiers from alpha features section
closes https://github.com/TryGhost/Team/issues/1026

Tiers are now moved up to beta features in the labs section on Admin via early-access opt-in flow, so there is no need for it anymore in alpha section.
2021-09-09 22:18:22 +05:30
Rishabh
c9f1a6bc48 Added new Tiers feature to Beta features section
refs https://github.com/TryGhost/Team/issues/1026

Tiers is being released as a beta feature with an early-access opt-in flow. Site owners can now opt-in for early access to Tiers feature in Ghost by enabling it from the Beta features section, but note it's a one way door and its not possible to switch it off once enabled. This is to ensure that sites don't break in any unexpected ways once the tiers feature is enabled by switching it off.
2021-09-09 17:08:33 +05:30
Peter Zimon
24022e3932 Re-enabled Stripe disconnect for Administrators
Refs.
7394df6137
e52bdf88f9

We have temporarily disabled Stripe disconnect for Administrators to avoid hitting an API endpoint.
Now that the API is updated, disconnect is re-enabled for Owner and Admins.
2021-09-09 13:01:07 +02:00
Rishabh
6e3d2bef3a Updated filter UI to show existing filters on page refresh
refs https://github.com/TryGhost/Team/issues/972

If a filter is applied in the new members list then the URL gets updated and the filter dropdown contains the filters that have been created. When refreshing the page while a filter is applied, the URL remains the same, the filter is still applied but the UI in the filter dropdown resets and doesn't show the appropriate filter fields and values.

This change parses the nql filter from URL using `nql-lang` library and rebuilds the filter UI blocks based on current filter in URL. It also ignores any invalid or unexpected filters in the UI.
2021-09-09 15:13:58 +05:30
Sanne de Vries
c5e5ada1ee Fixed Zapier details responsive issues 2021-09-09 10:56:56 +02:00
Rishabh
03379544bd Added new label input dropdown on member detail behind filtering flag
closes https://github.com/TryGhost/Team/issues/977

A new label input dropdown was added behind filtering labs flag along with new filtering UI on members list screen, which includes member editing directly via the dropdown. This adds the same editing function to the members detail screen too behind the flag
2021-09-08 22:59:58 +05:30
Sanne de Vries
7a56ded8d0 Updated About/What's new? page (#1872)
Merged About and What's new? page.
2021-09-08 14:00:24 +02:00
Peter Zimon
cdedf7b0a8 Updated copy for Tiers early-access flow 2021-09-08 10:40:52 +02:00
Peter Zimon
eb1d3c370f Added early-access modal for Tiers 2021-09-07 13:36:23 +02:00
Rishabh
e70e0e273d Fixed member list not loading on scroll with filtering
closes https://github.com/TryGhost/Team/issues/971
reverts abe5c6d681

We use vertical-collection to allow infinite loading + scrolling for members list instead of loading and rendering all members at once. The behavior was not working correctly with updated list for filtering feature, as we dynamically update columns. This change fixes the scroll behavior and members loading together by updating the containerSelector for vertical collection.
2021-09-07 16:50:43 +05:30
Peter Zimon
5516968936 Added empty result states to new members filtering 2021-09-03 12:18:15 +02:00
Peter Zimon
0f0c44295e Added show-all button to empty members filter list 2021-09-03 11:37:26 +02:00
Kevin Ansfield
922c304e3b Added "Email call to action" card for an email-only CTA targeting free or paid members (#2080)
refs https://github.com/TryGhost/Team/issues/993

The new editor card allows you to add styled content along with an optional button that will only be visible to free or paid members when the post is emailed. Useful for encouraging free members to sign up to a paid account for example.

- removed labs flag and conditionals to make the feature is available by default
- cleaned up CSS that re-used the `.email-card` class or was referencing `labs`
2021-09-02 13:11:15 +01:00
Peter Zimon
805873d64e Made Portal preview scrollable
- Updated Portal preview in Membership settings and Portal settings so that the preview is scrollable in all browsers.

Note: Only when Tiers is turned on.
2021-09-01 17:58:35 +02:00
Peter Zimon
c462bbba3b Copy refinements
- Fixed incorrect casing on staff page
- Removed unnecessary placeholders on staff page
- Removed '...' from search site
- Added webhook URL placeholder
2021-09-01 13:02:00 +02:00
Kevin Ansfield
4e30da6c70 Added ability to update snippet contents (#2073)
refs https://github.com/TryGhost/Team/issues/1008

To update a snippet, select the content in the editor that you want as your snippet text and click the snippet icon as per creating a snippet. Once the snippet name input shows, start typing the name of an existing snippet to be able to select it for update.

- replaced main snippet input component with the labs component
- removed the feature flag and associated labs screen toggle
- removed original/labs snippet input conditional in the editor
2021-09-01 09:09:40 +01:00
Kevin Ansfield
06e63d371c 🎨 Added ability to upload a feature image by drag and dropping an image file
refs https://github.com/TryGhost/Team/issues/884

Drop-to-upload functionality was lost in the first version of the new feature image uploader inside the main editor area, this adds it back in.

- fixed dropzone flickering issue by switching the event listeners to the capture rather than bubble phase so we can indicate a drag is occurring on the body without each individual drag/drop handler needing to know about it
- moved the event handler init/cleanup to the `ui` service
- moved the event handler init call to the application service as it no longer requires auth to have occurred for access to the labs flag setting
- removed the `featureImgDragDrop` labs flag
2021-08-31 14:21:25 +01:00
Kevin Ansfield
e7501ece33 🎨 Added a "saved" indicator for autosaved draft posts
refs https://github.com/TryGhost/Team/issues/779

For draft posts the editor autosaves after each change but if you didn't see the "Saving..." indicator it wasn't clear what the save status of the post was. The editor will now always show "Saved" when there are no unsaved changes.

- removed indicator from published and scheduled posts because there's no autosave there
- removed the labs flag
2021-08-31 09:57:04 +01:00
Kevin Ansfield
ddf6360ae2 Passed post as a card option through to editor cards
refs https://github.com/TryGhost/Team/issues/992

- within cards we sometimes want access to the `post` record so that UI or copy can be changed based on what is currently being edited
- added ability to pass `@cardOptions` through to the editor components
- fixed KoenigEditor not correctly assigning the `cardOptions` object to the `options` object that gets passed to every card when they are rendered
2021-08-23 18:42:14 +01:00
Kevin Ansfield
4184543307 Added confirmation modal when updating an existing snippet
refs https://github.com/TryGhost/Team/issues/973

- show confirmation modal instead of immediately replacing content of the existing snippet
2021-08-23 17:12:26 +01:00
Kevin Ansfield
daa7f2e781 Added ability to update snippet contents
refs https://github.com/TryGhost/Team/issues/973

- added `@showCreate` option to `<GhInputWithSelect>` that enables the create option without having to pass a function in `@showCreateWhen`
- fixed autofocus not focusing input element in `<GhInputWithSelect>` when `autofocus="true"` isn't enough by itself
- updated `selectOrCreate` in `<GhInputWithSelect>` to trigger `onChange` if it's passed in rather than `onInput`
- swapped input in labs snippet input to `<GhInputWithSelect>`
- added actions for updating a snippet when an existing snippet is selected
- added action to editor control for saving an updated snippet
2021-08-23 16:00:01 +01:00
Sanne de Vries
60e14a3dfa Added toolbar to email CTA card
Refs https://github.com/TryGhost/Team/issues/1007
2021-08-23 14:10:33 +02:00
Naz
99328ab145 Moved email list check to GA
refs https://github.com/TryGhost/Team/issues/906

- The feature has moved to GA from behind alpha flag. It's skipping the beta phase as it's not needed in this specific situation
2021-08-20 18:09:19 +04:00
Fabien 'egg' O'Carroll
95900b777d Updated creator revenue information
no-issue

Just keeping things up to date as requested by @prschulz
2021-08-20 00:00:12 +01:00
Daniel Lockyer
f5fc64f74f Merged v4.12.0 into main
v4.12.0
2021-08-17 11:14:12 +01:00
Rishabh
e52bdf88f9 🐛 Fixed Admin hitting dead API response on Stripe connect
refs https://github.com/TryGhost/Team/issues/994

Non-owner admin users have visibility of the "Connect with Stripe" UI in Admin, but lack permissions to setup the Stripe session in order to actually connect Stripe. This leads to a dead-end with a raw JSON api response, which should never be the case. This change patches the UI by removing Stripe Connect paths for non-owner admins.
2021-08-17 15:24:12 +05:30
Kevin Ansfield
53c83ffea4 Added snippetReplacements alpha labs feature
refs https://github.com/TryGhost/Team/issues/973

- adds feature flag and labs screen toggle for alpha feature that allows for replacing a snippet's contents without manually deleting and recreating
2021-08-16 10:44:13 +01:00
Rishabh
5594ba7219 Added live filter update to members list
refs https://github.com/TryGhost/Team/issues/963

- adds live update to member list based on applied filters
- cleans up filter behaviour for different scenarios
2021-08-13 23:22:59 +05:30
Rishabh
520252f5aa Added filter count to filter builder UI
no refs
2021-08-13 18:37:19 +05:30
Rishabh
084380d155 Wired reset filters filter button in filter builder
closes https://github.com/TryGhost/Team/issues/964

Wires the "Reset" button in filter builder to clear all filters easily and see the original full list of members.
2021-08-13 18:00:28 +05:30
Peter Zimon
0c3848c23a Refined members action dropdown 2021-08-13 13:55:08 +02:00
Rishabh
38a3962368 Added bulk operations UI for filtered members
refs https://github.com/TryGhost/Team/issues/969

A lot of power of filtering members comes from ability to perform actions on the filtered member list. This change adds bulk operation actions on the the UI to apply on filtered members, but has not wired them up to the API yet.

- adds unsubscribe bulk operation UI
- adds label addition bulk operation UI
- adds label removal bulk operation UI
- adds new single label selection UI for add/remove label to members UI
2021-08-13 17:11:34 +05:30
Peter Zimon
c71e5f19bf Fixed fullwidth bug for members screen
- Added condition to make the members screen full width when filters Alpha feature is applied
2021-08-12 17:53:49 +02:00
Rishabh
a895bafb53 Added label editing feature in filtering dropdown
refs https://github.com/TryGhost/Team/issues/966

With introduction of members filtering, the current way of editing member labels needed an upgrade. This change updates the member label input component to include editing option which allows triggering label edit modal directly from the filtering menu when working with labels. The long term idea is to make this a consistent global pattern with labels dropdown, extending to member details screen as well.
2021-08-12 17:51:18 +05:30
Rishabh
247f24394d Added dynamic columns to member list from filter UI
refs https://github.com/TryGhost/Team/issues/943

- adds new columns to member list table based on selected filters in UI
- handles dynamic columns in members list with formatted output like for labels
- works behind the filtering feature flag
2021-08-10 17:41:59 +05:30
Kevin Ansfield
5173d556f9 Added free members chart to labs dashboard
no issue

- added free members to dashboard controller's count stats data
- moved email open rate chart into it's own dashboard box
- added free members count chart under paid members chart (where email open rate used to be)
2021-08-07 08:57:15 +01:00
Rishabh
30756f8882 Separated alpha members filtering feature into own component
refs https://github.com/TryGhost/Team/issues/943

- separates the new alpha members filtering to its own `-labs` component
- fixes behaviour for existing filtering feature on members list which was overwritten with last change
- updates up action handling to modern glimmer syntax
2021-08-07 09:48:47 +05:30
Kevin Ansfield
5e9b096257 Added latest 5 newsletters list to labs dashboard
no issue

- basic functionality added, prep for dashboard re-organisation
2021-08-07 01:41:00 +01:00
Matt Hanley
161e37c21b Updated docs URL for OAuth alpha feature (#2059)
refs https://github.com/TryGhost/Team/issues/613
2021-08-06 14:26:49 +01:00
Rishabh
7a43c53ddb Added basic members list filtering via UI
refs https://github.com/TryGhost/Team/issues/943

- updates the static filtering ui to dynamic (behind alpha flag)
- generates basic nql filter queries for selected filters - `is` , `is not`
- filters members list on applied filters
2021-08-05 19:22:58 +05:30
Rishabh
9ee66f8b85 Added filtering on members list via URL param
refs https://github.com/TryGhost/Team/issues/942

- adds `?filter` param to members list page which allows directly filtering list via NQL filter syntax
2021-08-04 15:53:06 +05:30
Kevin Ansfield
cf6ef942a5 Added dashboardTwo labs flag
no issue

- added `dashboardTwo` feature flag and labs screen toggle
- added `dashboard-labs` route with duplicated dashboard controller/template
- added redirect to `dashboard` route so it transitions to `dashboard-labs` when the feature is enabled
2021-08-04 11:22:19 +01:00
Naz
55785d0958 Added toggle for the emailOnlyPosts flag
closes https://github.com/TryGhost/Team/issues/902

- Toggle will control the `emailOnlyPosts` labs flag enabling "email-only posts" feature
2021-08-02 13:32:03 +04:00
Kevin Ansfield
503845ce59 Fixed incorrect darkening of email-cta button on hover with some colours
refs https://github.com/TryGhost/Team/issues/928

- the background color of the button was incorrectly applied to the original accent colour rather than the adjusted accent color
- added adjustment of text color on hover too in case it went outside of a visible range
2021-07-29 15:11:17 +01:00
Kevin Ansfield
35ac6abd6a Added CTA button display when not in edit mode
refs https://github.com/TryGhost/Team/issues/927

- button should be visible when not editing if both text and url are set
- added container for the content section so other links aren't clickable
- added tooltip to button so button url can be checked without having to go into edit mode
2021-07-26 21:17:10 +01:00
Kevin Ansfield
4e0473a93e Added CTA button and URL input to email-cta card
refs https://github.com/TryGhost/Team/issues/927

- added CTA `button and url inputs to email-cta card
- added `textColorForBackgroundColor` color util and used it to add a white/black text color variable that can be used when the accent color is used as a background color
- added `{{hex-adjust}}` helper for modifying lightness and saturation of a hex color
- adjusted inline power-select dropdown styling
2021-07-26 17:03:17 +01:00
Kevin Ansfield
9cfb024a5f Moved adjusted accent color properties to ui service
refs https://github.com/TryGhost/Team/issues/927

- we'll soon need access to adjusted accent colours outside of the application controller so they're now available on the `ui` service
2021-07-26 17:03:17 +01:00
Naz
75f0589fab Added toggle for the email check flag
refs https://github.com/TryGhost/Team/issues/912

- The toggle is needed to experiment with email verification
2021-07-23 20:00:27 +04:00
Peter Zimon
5255489779 Added static members filtering
- added filter builder dropdown (alpha)
- refactored related CSS
2021-07-23 16:05:22 +02:00
John O'Nolan
039803b29d Updated dashboard content and news 2021-07-22 16:17:17 -04:00
Peter Zimon
d356f5451a Added static result table for members filtering
- Added horizontal scrolling, fullscreen table component.
- Mocked multiple columns in the members result list.

Alpha feature.
2021-07-22 15:47:01 +02:00
Rishabh
ad3126b632 Added alpha feature flag for members filtering feature
refs https://github.com/TryGhost/Team/issues/925
2021-07-21 21:21:50 +05:30
Thibaut Patel
a7f47b30b7 Added a feature flag to the oauth login feature
issue https://github.com/TryGhost/Team/issues/614

- Makes the feature confiration more similar to other feature flags
2021-07-20 23:18:45 +02:00
Kevin Ansfield
d6a01147cc Updated labs description of emailCardSegments feature
refs https://github.com/TryGhost/Team/issues/910

- segmented email content will be used for a new "Email-only CTA" card
- updated labs checkbox text to reflect what's actually being turned on/off
2021-07-20 10:09:50 +01:00
Peter Zimon
a6ba245bcd Updated copy for tiers
- Updated copy of multiple products to "Tiers"
2021-07-19 12:39:59 +02:00
Kevin Ansfield
876c2b6cdd Added first pass at feature image drag+drop uploading
refs https://github.com/TryGhost/Team/issues/884

- add `[data-user-is-dragging]` to `body` element when any drag is occurring so that we can make drop zones active
- added dropzone and drop handling to feature image component
2021-07-16 15:01:00 +01:00
Thibaut Patel
dc9c812d9c Renamed isAdmin/isOwner/isAdminOrOwner to reduce confusion
issue https://github.com/TryGhost/Team/issues/857

- The goal is to avoid testing for the owner role only is cases where we should be testing for the owner or admin role
- `isOwner` => `isOwnerOnly`
- `isAdmin` => `isAdminOnly`
- `isOwnerOrAdmin` => `isAdmin` (concerns now both Owner and Admins)
2021-07-12 14:55:56 +02:00
Kevin Ansfield
7ab0db9be7 Fixed ember-test-selectors bound attributes deprecations
no issue

- converted publish menu and `gh-tags-list-item` components to glimmer syntax so data attributes can be passed in via `...attributes`
- added explicit `data-test-button` bound attribute to `gh-task-button` component
- moved `modal-theme-warnings` auto-bound data attribute from JS file to explicit html attribute in template
2021-07-08 22:44:52 +01:00
Peter Zimon
cc25b2348a Fixed 404 code alignment 2021-07-08 15:42:46 +02:00
Peter Zimon
0ff760ff96 Fixed missing dropdown arrow UI bug
- Fixed missing dropdown arrow for Timezone setting, caused by a wrongly scoped CSS style definition.
2021-07-08 13:28:43 +02:00
Kevin Ansfield
1cfa0ae58e Added saved post status indicator behind labs flag
refs https://github.com/TryGhost/Team/issues/779

- add "- Saved" to status text in editor when a post has no unsaved changes
- uses `savedIndicator` labs flag so we can test and tweak behaviour before go-live
2021-07-07 11:37:52 +01:00
Sanne de Vries
72b2679505 Updated webhook button color 2021-07-05 12:28:29 +01:00
Sanne de Vries
6b4baee152 Fixed copy issues in settings 2021-07-05 11:45:10 +01:00
Sanne de Vries
e07d1b9705 Fixed header and footer button alignment in editor 2021-07-05 11:17:35 +01:00
Kevin Ansfield
456bfd3dff Fixed editor tests
refs 3d16b95e0f

- fixed linting errors
- fixed automatic clearing of invalid publish date when PSM is closed
  - previously the PSM was always rendered so it had a `showSettingsMenu` argument that told it whether it was being shown
  - automatic error clearing was tied to `showSettingsMenu` so it was switched to `willDestroyElement` because now the menu is re-rendered each time it's shown
- fixed tests
  - tests assumed the menu was always rendered so they were manipulating inputs even though they weren't visible on screen
2021-07-02 19:57:58 +01:00
Kevin Ansfield
3d16b95e0f 🎨 Adjusted post settings menu design so it can stay open whilst editing
refs https://github.com/TryGhost/Team/issues/840

We wanted to switch to a settings menu that stays open to the right of the editor rather than a popover that blocks all other interaction with the post to solve two use-cases:

1.  when editing it's fairly common to select some text from the post contents when setting excerpt and meta data text, with the previous design not letting you scroll or select whilst the menu got in the way of that
2. having the menu open with meta data visible before publishing can help you see everything is set as you want and help you feel confident when publishing/sending content

---

- removed `psmRedesign` labs flag
- swapped labs component/css for main component and deleted labs component
- cleaned up now-unused `ui.showSettingsMenu` property and related actions/classes
2021-07-02 19:04:57 +01:00
Thibaut Patel
a07b40440d Moved the gated email card feature behing an alpha flag
issue https://github.com/TryGhost/Team/issues/842
2021-07-02 12:14:55 +02:00
Thibaut Patel
e50146a83d Released the "reset all passwords" feature (alpha => GA)
issue https://github.com/TryGhost/Admin/pull/1995
2021-07-01 23:09:06 +02:00
Kevin Ansfield
f752e24f7a Added post feature image alt and caption support to editor (#2026)
refs https://github.com/TryGhost/Team/issues/839

The feature image uploader in the post settings menu did not lend itself well to having additional fields so we've moved it into the main editor canvas. This allowed us to use the familiar caption/alt fields from image cards and to let the feature image feel more connected to the post's contents and part of the editing workflow.

---

- removed `featureImageMeta` labs flag
2021-07-01 17:56:39 +01:00
Sanne de Vries
335a78555e Fixed responsive issues with new post settings menu 2021-07-01 13:04:59 +02:00
Daniel Lockyer
1bfee18cbe Merged v4.8.4 into main
v4.8.4
2021-06-29 18:07:38 +01:00
Kevin Ansfield
84d3643e9f 🐛 Fixed error when removing Facebook/Twitter social images on general settings screen
refs https://github.com/TryGhost/Team/issues/836
refs ceb16b5e9f

Problem:
- `<GhImageUploaderWithPreview>` was updated to swap deprecated `{{action}}` usage to `{{on "click"}}` but that came with a missed behaviour change because the click event will now be passed as the argument to `@remove`
- the `<GhImageUploaderWithPreview>` usage on the general settings screen for social images had a syntax error in it's usage of the `mut` helper that meant the supplied argument was being used as the value rather than a forced `""` value. Result was that we were replacing the image urls with a text representation of the click event when attempting to remove images, leaving a broken image in place and no way to upload a new image

Fix:
- fixed incorrect `mut` usage to correctly force `""` as the value when removing social icons
- updated `<GhImageUploaderWithPreview>` to force `""` as the argument passed to `@remove` to avoid any other issues due to the behaviour change
2021-06-29 17:54:09 +01:00
Thibaut Patel
da9990db27 Added the "reset all passwords" user interface
issue https://github.com/TryGhost/Team/issues/750
pr https://github.com/TryGhost/Ghost/pull/13005
2021-06-28 11:54:45 +02:00
Sanne de Vries
d676473bb1 Updated post settings menu icon 2021-06-24 14:51:10 +02:00
Peter Zimon
516825e41f Fixed Multiple products alpha feature name case style 2021-06-23 11:58:59 +02:00
Sanne de Vries
f15bce5c2d Updated design for new fixed post settings menu 2021-06-22 20:51:31 +02:00
Kevin Ansfield
37a6197f81 Renamed editor tasks to use xTask naming
no issue

- helps indicate that you're dealing with an ember-concurrency task object rather than a function/action so you know to use `perform` and that you have access to derived state
2021-06-21 15:05:41 +01:00
Kevin Ansfield
e322709f95 Updated newsletter design settings modal for new settings (#2013)
refs https://github.com/TryGhost/Team/issues/793
requires https://github.com/TryGhost/Ghost/pull/13074

- replaced main email design settings modal component with labs component and removed conditional
- removed `labs-newsletter-settings` class and cleaned up CSS
2021-06-21 13:40:54 +01:00
Rishabh Garg
274044e253 Added UI for portal products (#2010)
refs https://github.com/TryGhost/Team/issues/768

- adds portal products selection UI behind flag on portal settings screen
2021-06-21 14:21:48 +05:30
Kevin Ansfield
fc21cd836a 🎨 Opened member email settings up to Administrator staff users
no issue

- previously only Owner staff users could access the email settings screens despite Administrators having server-side permissions to change the related settings
2021-06-18 18:43:38 +01:00
Kevin Ansfield
a41cb42a87 First pass at fixed rather than popover post settings sidebar
refs https://github.com/TryGhost/Team/issues/786

Enabled through labs `psmRedesign` flag, rough implementation to help design direction.

- fixed rather than popover when opened by putting editor and sidebar inside a flex container
- settings toggle fixed in top right rather than separate close button
2021-06-17 19:00:59 +01:00
Kevin Ansfield
4482aa5395 Added alpha labs flag for PSM redesign
refs https://github.com/TryGhost/Team/issues/786

- adds flag checkbox to labs page
- duplicates psm component ready for changes
2021-06-17 14:10:32 +01:00
Kevin Ansfield
18c9da0bf0 Fixed capitalisation inconsistency for Post Title
no issue

- out title standard is to only capitalise the first word rather than every word
2021-06-17 12:12:31 +01:00
Kevin Ansfield
0d30077325 Switched to new component for labs feature image redesign
refs https://github.com/TryGhost/Team/issues/771

- added `<GhEditorFeatureImage>` for more flexibility than offered by `<GhImageUploaderWithPreview>`
  - updated to more closely match intended designs
- removed alt/caption support from `<GhImageUploaderWithPreview>` as it's no longer used
- fixed upload/delete/upload not working due to file input references getting out of sync
2021-06-16 17:56:25 +01:00
Kevin Ansfield
ba47b710cb 🎨 Moved default focus in editor from body to title for new posts
refs https://github.com/TryGhost/Team/issues/707

Placing focus in the title aligns better with typical editorial process.

- switched `autofocus` attribute from body to title for new posts
- added a default value to the `mobiledoc` attr on the Post model, without it the autosave when moving from title to editor creates a forced re-render and clears the focus whilst you're typing
2021-06-14 15:35:59 +01:00
Kevin Ansfield
ceb16b5e9f Added first version of feature image with caption inside editor (#1999)
refs https://github.com/TryGhost/Team/issues/771

- updated `<GhImageUploaderWithPreview>` to take an `@includeMetadata` argument that shows a basic html supporting caption field underneath (ready for toggle between caption/alt but not fully implemented)
- added feature image alt/caption properties to post model
- updated UI behind "featureImageMeta" labs flag
  - added the feature image uploader to the top of `<GhKoenigEditor>` for display above the editor title
  - removed feature image uploader from post settings menu
- added labs flag checkbox
2021-06-10 20:42:32 +01:00
Hannah Wolfe
75e573568c Swapped to American English spellings
- Traditionally all of Ghost's public-facing text was written in British English
- We're changing that to US English because that's more common
- This PR mostly just fixes up the words customise/customisation and favourite
2021-06-09 16:32:14 +01:00
Rishabh
afa06a08b0 Updated multiple products UI behind feature flag
refs https://github.com/TryGhost/Team/issues/763

- Added dev experiments requirement for multiple product feature as its alpha
- Puts new multiple products UI in membership settings behind the feature flag
- Puts add comp sub popup prototype behind the feature flag
2021-06-09 16:14:48 +05:30
Rishabh
ab069c5b81 Added UI for multiple products labs flag
refs https://github.com/TryGhost/Team/issues/763

- Ensure the feature flag is available in the feature service so that it knows where to pull the setting from (labs)
- Added a toggle UI to the alpha features list in labs for switching multiple products
2021-06-09 15:45:37 +05:30
Hannah Wolfe
f5f37e822f Added UI for match helper labs flag
- Ensure the feature flag is available in the feature service so that it knows where to pull the setting from (labs)
- Added a toggle UI to the alpha features list in labs as this is a new feature and is therefore alpha
- Changed the old gh-feature-flag helper to use the switch class instead of checkbox as that's a new pattern since we used this helper
2021-06-07 20:49:32 +01:00
Hannah Wolfe
b3ed4b81f9 Adding new alpha feature labs section with oauth
- Adding a new section to the labs page for alpha features
- Alpha features require both the dev experiments config var AND a labs flag
- Moving oauth into this section as it's dev experiments + it's own setting atm
2021-06-07 19:56:47 +01:00
Kevin Ansfield
b2b66490b7 Added settings for newsletter header, title style, and feature image (#1993)
refs https://github.com/TryGhost/Team/issues/755
reqs https://github.com/TryGhost/Ghost/pull/13006

- updated settings model to match new server-side settings
- updated email customisation modal behind the dev experiments flag
  - adjusted layout to move to a fixed top bar and scrollable sidebar
  - added image upload, toggles and selections for new settings
  - updated preview to match selected settings

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2021-06-07 16:36:21 +01:00
Rishabh
6165441c30 Added UI for handling multiple tiers in membership settings
refs https://github.com/TryGhost/Team/issues/715

Adds new modal and component to handle managing a list of products(tiers) in Admin behind the developer experiments flag. Also adds a new helper for stripe prices to convert amount from decimal value.
2021-06-04 13:30:11 +05:30
Kevin Ansfield
c10f8d014a Added query param for email design settings modal
no issue

- allows for easier development because modal stays open when refreshing as UI state is stored in the URL
2021-06-03 17:22:59 +01:00
Sanne de Vries
098f5b9d06 Added icon to staff user role dropdown field 2021-06-01 09:29:37 +02:00
Kevin Ansfield
3d43964bcd 🐛 Fixed portal preview resize when using split front-end/admin URLs (#1980)
no issue

- switched to listening to Portal's `message` events that now include a height
- removes need to reach into Portal preview iframe contents which is blocked by browser security when working cross-origin
2021-05-27 13:20:37 +01:00
ceecko
0b31be4c90 🎨 Added error message from limit service to theme upload
no issue

- Addresses 634d2daa13 (r49241896)
- Uses limit service to display the configured error message
2021-05-26 19:05:19 +02:00
Kevin Ansfield
2a4dc849d0 Disabled "Customise portal" button when signup access is disabled
no issue

- when signup access is set to "none" the portal preview will be blank and the settings not available so it doesn't make sense to make the customise portal modal available
2021-05-25 10:09:13 +01:00
Kevin Ansfield
2f39953917 Fixed preview background flash when switching from none -> all/invite
no issue

- flash was occurring because as soon as the setting was changed we switched to showing the portal preview but at that time the preview URL is still set to an old url value. The url doesn't get changed until the settings save completes which gives enough time for a non-portal page to load before being replaced
- added a `switchFromNoneTask` that is triggered when switching away from a saved none value and updated the template to stay on the "disabled" view until the save has completed so we don't trigger multiple page loads
2021-05-25 09:40:17 +01:00
Kevin Ansfield
2bd118eef9 Attempted fix of portal background flash going from nobody->anybody/invite
no issue

- dropped use of `@guid` tracked param in favour of adding query param to URL in `updatePortalPreview()` and making sure we only update it when necessary
2021-05-24 19:29:18 +01:00
Kevin Ansfield
28de12c7eb Added scrolling="no" back in correct position
no issue

- property is specific to the membership portal preview rather than all site iframes
- fixes page-height scrollbar appearing on portal preview height animation
2021-05-24 19:14:47 +01:00
Kevin Ansfield
b8e6107c6a Fixed portal previews flashing background (#1975)
refs https://github.com/TryGhost/Team/issues/701
requires Portal@1.4.2 or later

- changed `<GhSiteIframe @invisibleUntilLoaded>` to accept a string in place of a `true/false` value
    - if a string is passed then we'll set up a message event listener than listens for a `postMessage` from the iframe with data that matches the supplied string
- updated `<GhSiteIframe>` usage for portal previews to use `@invisibleUntilLoaded="portal-ready"` so they listen for a message event rather than displaying as soon as we get a load event
2021-05-24 14:03:08 +01:00
Kevin Ansfield
29dc178261 Removed unused members-payments route
no issue

- stripe connect/disconnect functionality has moved to a modal as part of the new membership screen
- removed `settings/members-payments` route and related route/controller/template files
- updated link to stripe connect in product screen to show an alert as a reminder to update to use the new modal (products screens are not usable for now, they'll be worked on again later)
2021-05-21 08:57:28 +01:00
Kevin Ansfield
3ab0a52f62 Fixed stripe connect modal not adjusting correctly to connected state
no issue

- updated `<GhFullscreenModal>` to pass `@modifier` and `@updateModifier` through to child modal components so they can adjust their own classes
- added an `updateSuccessModifier()` action to `<ModalStripeConnect>` to set the modal size when first opening and on `@onConnected/Disconnected` actions passed to the `<GhMembersPaymentsSetting>` component
- updated `<GhMembersPaymentsSetting>` to call passed in `onConnected/Disconnected` actions when connection or disconnection is finalised
2021-05-20 17:20:49 +01:00
Kevin Ansfield
dee5129edf Fixed portal preview not updating when changing from a saved "Nobody" access
no issue

When members signup access is saved as "none" the front-end won't inject the portal script when rendering meaning changing to "all" or "invite" in Admin will show the preview but there's no portal script injected for the portal to show up.

- detect when we're switching from a saved "none" state and force a save and full refresh of the iframe
2021-05-20 14:43:04 +01:00
Kevin Ansfield
03844d5b97 Fixed portal preview not updating when connecting/disconnecting Stripe
no issue

- store current stripe connection status when opening the stripe connect modal and if it's different when the modal is closed force a save and refresh of the portal preview
2021-05-20 14:31:51 +01:00
Peter Zimon
5ca0ad0ef6 Replaced membership settings icon 2021-05-20 11:10:15 +02:00
Kevin Ansfield
6339770a67 Fixed "connect to stripe" button in portal settings modal
no issue

- passed correct action for opening stripe connect modal through to portal settings modal
- updated `<GhTaskButton>` to accept a `@unlinkedTask=true/false` property
  - ember-concurrency will throw warnings about unsafe task cancellation if the initiator of a task is destroyed due to the actions of a task. Eg. the stripe connect button being replaced with the plan checkboxes because stripe connect details are added to settings
  - to avoid warnings ember-concurrency expects the task initiation to be marked as "unlinked" so that the task is allowed to continue even though the initiator is destroyed
- updated `<GhSiteIframe>` to force a refresh when the `@guid` property changes
  - we want the portal preview to fully reload so that it can fetch server data and see that stripe is connected
- updated portal settings modal to initiate a refresh when switching from "connect to stripe" to the plans checkboxes that happens automatically after a successful stripe connection
2021-05-19 20:24:18 +01:00
Rishabh
d3023e8b52 Added loading for assigning comped subscription to member
no refs

Adds loading indicator when member is being saved with new complimentary price
2021-05-19 23:18:20 +05:30
Kevin Ansfield
32c9ee003f Removed unused portal-settings modal code from settings screen
no issue

- portal settings modal is now initiated from the membership screen so the code for showing/closing it in the settings controller is not needed
2021-05-19 18:32:37 +01:00
Rishabh
942ad319e8 Updated complimentary subscription assignment to member
no refs

With custom products, we added a new modal to add a complimentary price to a member. Since we want to handle the comp prices implicitly with new changes, this change updates the comp subscription assignment to a member directly without opening a modal, by using the old `comped` flag in API. The `comped` flag takes care of creating the right complimentary subscription for member.

In case a member already has a comped subscription, we hide the option to add another subscription.
2021-05-19 22:36:02 +05:30
Peter Zimon
a2e3e0c570 Updated disabled Portal view in Membership settings 2021-05-19 18:58:06 +02:00
Peter Zimon
84efeef8d1 Refined copy 2021-05-19 18:07:25 +02:00
Kevin Ansfield
471a3b8c0d Fixed portal settings modal sometimes having stale data
no issue

On the membership screen we save settings before opening the portal settings modal but we weren't waiting for the save to finish which meant that the portal settings modal could load using stale data.

- passed the save settings task in via the portal settings modal's model
- added a `finishPreloading` action that contains all of the dynamic setup tasks that were previously in the component's `init` method
    - if a preload task was passed in and it's currently running (as it would be if the modal is opened via the membership screen button) then it will wait for the task to finish before running the setup tasks
- trigger the `finishPreloading` action when the modal is rendered
- show a loading spinner in place of the modal contents whilst pre-loading
2021-05-19 15:37:06 +01:00
Rishabh Garg
69367de59e Added SSL precondition for Stripe Connect UI (#1967)
refs https://github.com/TryGhost/Team/issues/598

Stripe Webhooks require SSL in production, and so we should not be
allowing connecting to Stripe in production mode unless the site is
running with SSL. This change -

- Updates Setup wizard to skip Stripe Connect steps if site is not on SSL in production
- Adds warning on set subscriptions page

Co-authored-by: Peter Zimon <zimo@ghost.org>
2021-05-19 19:56:45 +05:30
Kevin Ansfield
db09b317eb Added auto height adjustment to membership portal preview
no issue

- added `@onDestroyed` argument to `<GhSiteIframe>` so consumers can clean up any references
- used `@onLoaded` and `@onDestroyed` to handle a reference to the preview iframe
- updated portal preview load handler and update method to trigger a resize task
  - add a 100ms delay to allow for portal to re-render itself
  - reach through the two iframes to get the portal container element and use it's height to set the style attribute on the portal preview container element
2021-05-18 18:26:07 +01:00
Rishabh
f9672e7095 Updated portal plans on monthly/yearly price change
no refs

Portal plans setting contains list of prices that are allowed by site owner to use in Portal UI. Since we now switch monthly/yearly prices dynamically, we need to update portal plans on price change to still reflect updated monthly/yearly prices in Portal UI.
2021-05-18 21:50:38 +05:30
Kevin Ansfield
602549097a Fixed flash of site when portal preview is loading
no issue

- added `@invisibleUntilLoaded` boolean argument to `<GhSiteIframe>`
  - when set to true add `.invisible` class until iframe's `load` event is triggered
- removed manual iframe hiding with 1.2sec delay from portal settings modal
- added `@onLoad` argument to `<GhSiteIframe>` for consumers to hook in if needed
2021-05-18 16:36:18 +01:00
Kevin Ansfield
b4a6eb594d Converted <GhSiteIframe> to a glimmer component
no issue

- updated to class syntax and glimmer component behaviour
- tidied up and standardised usage of the component
2021-05-18 16:08:13 +01:00
Rishabh
d746265a52 Fixed active prices not read from settings
no refs

Previously, we were fetching product and prices in the constructor of the controller which did not guarantee settings were updated when picking active prices from the price list. This updates the setup to use `did-insert` modifier to correctly fetch and populate product/price data.
2021-05-18 19:17:25 +05:30
Kevin Ansfield
8a1ae88192 Added portal preview to memberships screen
no issue

- fixed styling issues
    - fixed portal preview taking over the screen by adding `position: relative` to the container
    - fixed portal preview being interactive by disabling pointer events
- added portal preview URL generation to memberships controller
    - moved much of the preview params knowledge/calculations from the `<ModalPortalSettings>` component into the `members-utils` service so that a portal preview URL can be generated from anywhere using current settings values rather than the method consumer needing to have knowledge of all params and how to generate them
    - updated actions in controller that modify settings to also update the preview url
    - added `onChange` event to the `<Settings/MembersSubscriptionAccess>` component so the controller can react and update preview
- used `<GhSiteIframe>` with generated portal preview URL for live display of portal changes on memberships screen
2021-05-18 13:59:57 +01:00
Peter Zimon
97866adb37 Minor spacing refinements on Membership settings 2021-05-18 11:09:42 +02:00
Sanne de Vries
a237dc73d9 Refined membership access settings 2021-05-17 19:36:36 +02:00
Peter Zimon
87e2a3db37 Refined currency dropdown 2021-05-17 18:12:49 +02:00
Peter Zimon
fa95868c36 Moved Stripe connect settings to modal 2021-05-17 17:28:39 +02:00
Rishabh
35612db851 Wired membership tiers UI in new members setting
no refs

- Wired Premium membership UI to existing monthly/yearly prices in the default product
- Wired free membership UI to redirect URI setting
- Updated save to validate settings/errors
2021-05-17 20:06:03 +05:30
Kevin Ansfield
686dadbeda Fixed errors when closing portal settings modal
no issue

- added actions for handling close/confirm/cancel of portal settings rather than re-using the route-level leave modal because the portal settings modal does not need any knowledge of the route
- added controller reset that is called when the route is exited to ensure no modals are shown when navigating back to the membership screen
- fixed "cannot set on destroyed" error when portal settings are opened and closed quickly
- removed usage of old `{{action}}` helper - this has been replaced with `{{on}}` and `{{fn}}`
2021-05-17 12:41:21 +01:00
Peter Zimon
c3748e4d18 Membership settings UI refinements
- added Portal mock container and background
- updated header behavior
2021-05-17 13:35:31 +02:00
Peter Zimon
bf3349ca0f Applied basic layout for membership settings
- created main blocks
- added tier forms
- added button for Stripe connect modal
2021-05-17 13:01:54 +02:00
Rishabh
4c736d1c80 Added basic portal settings in new membership area
no refs

Members related settings are being consolidated into a single screen.

- Adds basic portal settings UI
2021-05-17 13:28:15 +05:30
Kevin Ansfield
42ef8df7ca Switched signup and default post access settings to dropdowns
no issue

- provides clearer indication of current setting without having to expand anything
- has more minimal UI which helps when settings screen has multiple areas
2021-05-14 15:44:10 +01:00
Kevin Ansfield
cb3b01c020 Extracted individual members setting blocks into components
no issue

- the membership setting screen will be covering a lot of areas, having individual settings as discrete components allows for easier re-organisation and cleaner parent templates and controllers
2021-05-14 15:01:50 +01:00
Kevin Ansfield
bdcbfcb92c Renamed access settings route to membership
no issue

Members related settings are being consolidated into a single screen.

- renamed access to membership as the starting point for redesign and consolidation of other settings screens
2021-05-14 14:33:18 +01:00
Peter Zimon
8af115aeee Custom product copy refinements 2021-05-11 11:55:24 +02:00
Rishabh
67d0c94c40 Removed dev experiment flag for custom products
closes https://github.com/TryGhost/Team/issues/672

Custom products and prices were behind dev experiment flag as it was under active development over last couple of releases. Now that its coming out of development, this removes the dev flag for custom products changes.
2021-05-10 23:38:47 +05:30
Rishabh
42463e4fdd Added error handling for product details page
refs https://github.com/TryGhost/Team/issues/678

Product name is a mandatory field for a custom product, this change adds error handling on save and custom error message if product is attempted to save without name.
2021-05-10 19:18:30 +05:30
Rishabh
f3766091bd Disabled price actions on product save
no refs

Disables Edit/Archive actions on a price while an active save is ongoing for Product to avoid unwanted states due to multiple saves being called.
2021-05-09 23:28:44 +05:30
Rishabh Garg
5d598d5e50 Wired free membership settings to API (#1949)
refs https://github.com/TryGhost/Team/issues/637

With custom products it's possible to change the name and description of any price. This assumes that people would want to change the same properties of a Free membership, and wires up the values for free membership price settings to API


Co-authored-by: Peter Zimon <zimo@ghost.org>
2021-05-07 22:46:35 +05:30
Peter Zimon
8eee71f2d6 Refined archive/unarchive prices 2021-05-07 17:45:59 +02:00
Peter Zimon
a94f27bbc0 Removed 'Add price' button when not connected to Stripe 2021-05-07 17:10:28 +02:00
Rishabh
c53e0fce77 Added handling for active prices
refs https://github.com/TryGhost/Team/issues/665

- Allows (un)archiving of prices
- Filters Portal settings on active prices only
2021-05-07 19:14:22 +05:30
Kevin Ansfield
0caa539330 Added label and product options for email recipients (#1947)
refs https://github.com/TryGhost/Team/issues/581
requires https://github.com/TryGhost/Ghost/pull/12932

- added segment option and select to default newsletter recipients setting
- updated segment selector to fetch labels/products and show as options
- updated segment selector and count component to call an action when count changes so we can use it in the email confirmation modal
- removed usage and mapping of older `'none'`, `'all'`, `'free'`, and `'paid'` email recipient filter values
2021-05-07 11:58:05 +01:00
Rishabh
e066fb5345 Reverted "Added home redirect for pricing wizard"
This reverts commit 0cf2fc9c24.

Hiding the launch wizard when there are existing prices causes an annoying flicker on the dashboard everytime we reload the page or navigate away. Instead of handling this client side, we'll push up the logic to hide the wizard on server.
2021-05-07 16:15:29 +05:30
Rishabh
0cf2fc9c24 Added home redirect for pricing wizard
refs https://github.com/TryGhost/Team/issues/644

In case the prices are already set for the default product, its confusing to have the launch wizard show the price setup again. We remove the wizard completely if the prices are already created for the default product.
2021-05-07 14:34:59 +05:30
Kevin Ansfield
da49dc4922 Added default newsletter recipients setting (#1946)
refs https://github.com/TryGhost/Team/issues/496
reqs https://github.com/TryGhost/Ghost/pull/12925

The publish menu was meant to default to matching post visibility but that wasn't working consistently and didn't make sense for sites which don't email every post to their members.

A "Default newsletter recipients" option has been added to the "Email newsletter" settings screen and the publish menu updated to reflect the option. The free/paid toggles in the publish menu have also been swapped out for a multi-select style component that will cater to more complex member segmentation.
2021-05-07 10:02:19 +01:00
Peter Zimon
09b50995ec Removed subscription count from pricelist 2021-05-07 10:56:10 +02:00
Peter Zimon
764aa9a132 Updated product description on Product list screen 2021-05-07 10:26:58 +02:00
Rishabh
6bdc1c85e0 Wired welcome page UI to settings API
refs https://github.com/TryGhost/Team/issues/611

The UI for welcome page for paid signups is moved from Portal settings to Product page, this change wires up the new UI to the settings API as in Portal settings to function correctly
2021-05-06 22:28:34 +05:30
Peter Zimon
ccf2dff413 Added welcome page UI to product details 2021-05-06 17:40:29 +02:00
Kevin Ansfield
7b340929ef Refactored members email settings screen
no issue

- simplified query params as they are only used to display a notification
  - removed all controller knowledge and associated reset behaviour for query params
  - moved notification display from `setupController` to `beforeModel` so the raw query params can be pulled off of the transition object
- removed unused service injections from `<GhMembersEmailSetting>`
- removed unused service injections and properties from members-email controller that were left over from a copy/paste
- converted members-email controller to a native class
- fixed "leave settings" confirmation modal behaviour that wasn't moved across in the the settings screen re-org
2021-05-05 16:59:26 +01:00
Sanne de Vries
d47352fd29 Updated metadata description preview cutoff point across admin 2021-05-05 17:33:59 +02:00
Peter Zimon
6cf86f431b Product price cleanup
- removed bottom block (welcome page and stripe checkout link) from price modal
2021-05-05 15:09:01 +02:00
Peter Zimon
1d660218ae Custom product cleanups
- removed "New product" button
- removed "Delete product" button
2021-05-05 15:03:17 +02:00
Rishabh
da58ef638b Wired product and price description to API
refs https://github.com/TryGhost/Team/issues/586

The `products` and `prices` UI were not hooked to description
data which will be used by Portal to display information about the
products and prices, this change wires it to the API for edit/read.
2021-05-05 14:21:14 +05:30
Rishabh
22de604ede Added free membership settings modal
refs https://github.com/TryGhost/Team/issues/648

All sites will include a default Free "Product" which is used for free memberships. This change adds UI for handling free membership settings. Also -

- Updates product icons in list and responsive sizes
- Copy updates
2021-05-04 21:42:48 +05:30
Rishabh
2a6d7226d2 Updated launch wizard to create custom price
refs https://github.com/TryGhost/Team/issues/644

Updates site setup to create custom Monthly/Yearly prices in default product as part of launch wizard. Also updates available portal plans based on user selection.
2021-05-04 21:42:48 +05:30
Sanne de Vries
b8cdb26e70 Styled Google OAuth login button
Refs https://github.com/TryGhost/Team/issues/612
2021-04-29 15:01:42 +02:00
Naz
abfbaa8d9b Added upgrade moal when unsuspending staff user
refs https://github.com/TryGhost/Team/issues/587

- Previous behavior wa showing a generic API error in the top banner which wasn't ideal UX
- With these changes user is informed about the limitation before performing any action with clear call to upgrade through the billing page
2021-04-28 18:07:18 +04:00
Thibaut Patel
06c7db78b2 Added the oauth login button
issue https://github.com/TryGhost/Team/issues/614

Shown conditionally only when oauth is setup on the server side.
2021-04-28 12:05:32 +02:00
Naz
3435ffcf21 Fixed upgrade modal cta when publishing a post
refs https://github.com/TryGhost/Team/issues/589

- Previous upgrade button behavior was opening up a new browser window leading to now retired billing site. Tha behavior change looks like an oversight we missed to cleanup when introducing an in-admin billing pabe "/pro"
- The change follows similar pattern used in other limit check mesages where tha "upgrade" button takes the user to the billing page
2021-04-28 12:13:24 +04:00
naz
3b7cbaef05 Added limit check before adding new integration (#1934)
refs https://github.com/TryGhost/Team/issues/599

- Previously user received genetic limit error after putting in integration name and clicking "create" button. This created a little frustrating experience.
- The updated flow does the check before loading the integration modal, so the user receives communication about needed upgrade before doing any work
2021-04-28 19:29:25 +12:00
Kevin Ansfield
6a039be595 Disabled portal subscription options when signup is disabled
refs https://github.com/TryGhost/Team/issues/579

- subscription access set to 'invite' or 'none' disables signup so it doesn't make sense to allow those options to be changed when the portal preview won't reflect the settings
- fixed "expand"/"close" button not changing on the access screen signup access block
2021-04-27 15:36:45 +01:00
Sanne de Vries
68c07bde4c Fixed modal shadows being cut off bug 2021-04-27 12:24:45 +02:00
Sanne de Vries
ac74fe6224 Updated Google SSO settings copy and styling 2021-04-26 22:15:22 +02:00
Sanne de Vries
63db462fbc Updated SSO configuration settings styles in Labs 2021-04-26 21:27:35 +02:00
Peter Zimon
c105dff604 Updated new product header 2021-04-26 21:09:37 +02:00
Peter Zimon
ece37d3475 Updated custom products styles
- updated mocked data for product and price list
- updated disabled button style on "Add product to member" modal
2021-04-26 20:55:25 +02:00
Rishabh Garg
2555b70456 Wired new Products settings UI to API data (#1930)
refs TryGhost/Team#627

This updates the new Products settings screens to use real data from API for existing Custom Products and Prices to populate them on UI and allow site owners to edit them.

- List all Products of site and allow editing Product name
- List all Prices for a product and allow editing individual Price names
- Add new Prices on a Product
2021-04-26 23:52:04 +05:30
Kevin Ansfield
9c1eef178c Revert "Tweaked wording of members access options"
This reverts commit 7c6bace12e.

- the previous wording was correct and the behaviour needs to be changed to match rather than following the "allow free member signup" toggle behaviour
2021-04-26 08:20:51 +01:00