Commit Graph

1979 Commits

Author SHA1 Message Date
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
Sanne de Vries
691c1a8241 Fixed spacing issue in Firstpromoter settings 2021-04-23 15:29:26 +02:00
Kevin Ansfield
7c6bace12e Tweaked wording of members access options
refs https://github.com/TryGhost/Team/issues/579

"Only people I invite" did not marry with behaviour. When selected it matches the old "Allow free member signup = false" toggle setting which only disables free member signup rather than disabling all front-end signup
2021-04-23 10:00:10 +01:00
Thibaut Patel
8c874904d6 Added UI for setting OAuth settings
issue https://github.com/TryGhost/Team/issues/614
2021-04-22 19:41:41 +02:00
Rishabh Garg
a544005c1f Wired products data to Product settings screen (#1927)
refs https://github.com/TryGhost/Team/issues/627

Wires the real Products data from API to the mock Product settings screen including Product Prices list as well as opening of edit/new price modals. The new Product setting is still behind the developer experiment flag as is under active development, the changes in this commit only allows readonly data but not save/edit upstream.

Co-authored-by: Fabien O'Carroll <fabien@allou.is>
2021-04-22 22:17:19 +05:30
Sanne de Vries
494e8c5c20 Fixed spacing bug in AMP settings 2021-04-22 09:59:53 +02:00
Kevin Ansfield
58759b3069 Added option to disable member subscriptions (#1925)
refs https://github.com/TryGhost/Team/issues/579

- new Access settings screen that moves subscription access and default post visibility from the Payments settings screen
- expanded "Free signup" toggle into three signup access options
  - "anyone" - same as previous "allow free member signup" option set to `true`
  - "invite only" -  same as previous "allow free member signup" option set to `false`
  - "nobody" - completely disables member signup and login. Removes injected portal and stripe scripts on the front-end and hides member related sections on the admin dashboard

(this commit moves the above changes out from behind the developer experiments flag and cleans up now-unused code)
2021-04-21 12:09:40 +01:00
Sanne de Vries
dda67edd82 Fixed marketplace link in theme settings 2021-04-21 12:22:02 +02:00
Thibaut Patel
53d77d82df Added an upgrade modal to the custom theme activation failure scenario
no issue

- The modal only appears when the user hits a limitation trying to activate a custom theme not part of the allowlist (if the custom theme allowlist is configured)
- Changed the upgrade button to green to match the design
2021-04-20 19:15:33 +02:00
Kevin Ansfield
89b9f6cfc6 Added unsaved changes modal to members-payments screen
no issue

Unsaved changes handling hadn't been moved across fully to the payments screen when settings were re-jigged meaning changes on the payments screen would make settings dirty and show unsaved changes modal unexpectedly on other screens.

- refactored `members-payments` route to use native classes
- used same unsaved changes pattern as `members-access` route/controller
2021-04-20 17:41:21 +01:00
Kevin Ansfield
4febcdf7ae Refactored members-payments controller to native class style
no issue

- refactored to use more modern Ember style native classes, no functionality change
2021-04-20 17:25:30 +01:00
Kevin Ansfield
04760132e9 Moved payment settings access control to route
no issue

- having owner-only access control in the template meant the route was accessible but would show a blank page
- updated access control in the `members-payments` route to redirect admins to the settings index screen and non-admins to the default home screen
2021-04-20 17:08:54 +01:00
Kevin Ansfield
5337a96074 Removed unused code from <GhMembersPaymentSettings>
no issue

- code relating to "portal settings" and "leave settings" modals was unused, presumably left over from settings re-jig copy and paste
2021-04-20 16:55:31 +01:00
Sanne de Vries
a4b9c1f253 Styled access settings
Refs https://github.com/TryGhost/Team/issues/579
2021-04-20 11:31:22 +02:00
Kevin Ansfield
139ba9413a Hid members data in dashboard when signup access is "Nobody"
refs https://github.com/TryGhost/Team/issues/579

Members is essentially disabled when signup access is set to "Nobody" so it doesn't make sense to show members related charts and actions in the dashboard.

- adds `showMembersData` property to the dashboard controller that returns `false` when members is disabled
- wraps members related sections of the dashboard in conditionals
2021-04-20 09:08:15 +01:00
Kevin Ansfield
889f90f494 Added "Nobody" option to members signup access
refs https://github.com/TryGhost/Team/issues/579

- adds "Nobody" option that will set `members_signup_access` setting to `'none'`
- when selected also sets `default_content_visibility` setting to `'public'`, expands it if collapsed and disables other options (that setting doesn't make sense when members is disabled, individual post access can still be set manually if needed)
2021-04-19 16:37:00 +01:00
Kevin Ansfield
4e82ea38ea Updated setting model for new members_signup_access setting
requires https://github.com/TryGhost/Ghost/pull/12886

- renamed `membersAllowFreeSignup` to `membersSignupAccess` and changed type to match new setting
- added `membersAllowFreeSignup` computed property to map to the new setting to avoid having to migrate code elsewhere that will be removed once the new options are out of developer experiments
2021-04-19 16:37:00 +01:00
Peter Zimon
96faf27ba8 Added mock member details component
Prepring for custom products we'll change the overall layout of member forms. This commit has a component that's loaded when dev flag is on for the new layout with mocked product data.
2021-04-15 17:58:35 +02:00
Peter Zimon
01c2facccc Removed member count from product list mock page 2021-04-15 11:09:44 +02:00
Peter Zimon
5a5d6398fd Updated product details mock screen
Updated product details mock screen for the first version:
- removed icon and chart
- added status to price list
- changed icons to text links on price list
2021-04-15 11:08:43 +02:00
Kevin Ansfield
82d8261a56 Added subscription access settings to Access screen
refs https://github.com/TryGhost/Team/issues/579

- moved "Allow free member signup" toggle from Payments screen to Settings screen and switched to a radio selection that allows for better description and further selection of options
2021-04-14 23:43:10 +01:00
Sanne de Vries
4f10e611b0 Moved default post access from Payments to Access screen (#1879)
refs https://github.com/TryGhost/Team/issues/579

- updated access section on Payments screen to only show when not running developer experiments
- added default post access settings to Access screen

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2021-04-14 19:02:36 +01:00
Kevin Ansfield
ffe5416b77 Swapped staff role selector from <select> to new role selection modal
closes https://github.com/TryGhost/Team/issues/572

Role selection when inviting users was updated to show information about each staff role. This change updates the staff edit screen to use the same UI for changing the role of an existing user.

- added `select-user-role` modal which uses `<GhRoleSelection>` to allow role selection
- replaced the `<select>` input for changing a user's role with a button that triggers the role selection modal
  - role is not set unless the "Set role" button is clicked after making a selection, cancel or close will leave the original role selected
2021-04-12 11:35:50 +01:00
Peter Zimon
80357855aa Added mock product price modal
no refs.
- added static price modal to product detail page
2021-04-09 13:01:28 +02:00
Peter Zimon
f172fedb58 Updated settings icon colors 2021-04-08 17:25:32 +02:00
Peter Zimon
c6bb423a26 Updated product detail page mockup
- updated layout for static product detail page
2021-04-08 17:20:32 +02:00
Peter Zimon
6ee31e206b Added static components for custom products
- added link to Products in Settings main screen
- added product list page with static content
- added product detail page with static content
2021-04-08 14:40:13 +02:00
Kevin Ansfield
72590083f3 Added ability to bulk delete members by label or status (#1883)
refs https://github.com/TryGhost/Team/issues/585
requires https://github.com/TryGhost/Ghost/pull/12082

When a label or status filter is selected on the members screen show a "Delete selected" option in the actions dropdown. Bulk deleted members will _not_ have any subscription data modified in Stripe, if a member should be deleted and have their subscription cancelled it's necessary to do that on a per-member basis.

- updated bulk delete handling to match API
- added link to bulk delete confirmation modal in members actions dropdown (only shown when label, status, or search is used)
- updated testing framework for members
  - added label factory for easier test setup
  - updated `GET /members` and `DEL /members` endpoints to work with label filters
  - updated test selectors for easier reference in tests
2021-04-08 12:06:27 +01:00
Sanne de Vries
2e8109d05f Clarified staff user roles in Admin (#1874)
refs https://github.com/TryGhost/Team/issues/572

- Replaced dropdown in invite-user modal with radio buttons
- Added description for each user role
- Added icon to provide more info on hover for each role
- Got rid of unused box styling
2021-04-07 15:20:30 +01:00
Thibaut Patel
634d2daa13 Added configurable limit on custom themes
issue https://github.com/TryGhost/Team/issues/590
2021-04-07 15:51:22 +02:00
Sanne de Vries
c41a1f77f8 Reverted color updates 2021-03-29 16:21:54 +02:00
Sanne de Vries
7e92306a77 Updated icon/color access screen in settings 2021-03-29 16:09:58 +02:00
Kevin Ansfield
c1904d7d84 Added blank members access settings screen behind dev flag
refs https://github.com/TryGhost/Team/issues/579

- empty screen ready for signup access and default post access level settings to be moved to
- has unsaved settings changes modal ready
2021-03-29 12:49:09 +01:00
Kevin Ansfield
65e07109a9 Updated test selectors on settings screen
no issue

- navigation test selectors were duplicated and did not match the respective link destinations
2021-03-29 10:19:33 +01:00
Thibaut Patel
0944fb39ba Updated the staff access token to use the existing patterns
issue https://github.com/TryGhost/Team/issues/497
2021-03-25 15:08:29 +01:00
Peter Zimon
6cdd79e0b5 Updated settings button copy on Dashboard 2021-03-22 15:37:46 +01:00
Sanne de Vries
2937df8212 Fixed logo icons in Integrations/Zapier for dark mode 2021-03-22 10:33:28 +01:00
Sanne de Vries
12abd4c2c9 Changed dashboard button style in dark mode 2021-03-19 12:14:24 +01:00
Peter Zimon
105140ef3f New logo (#1868)
refs TryGhost/Team#547

- Updated Admin to use new Ghost logo
2021-03-18 17:26:35 +00:00
Kevin Ansfield
7286ae9fcf 🐛 Fixed link contrast in editor with very light/dark accent colors (#1870)
refs https://github.com/TryGhost/Team/issues/551
refs https://github.com/TryGhost/Ghost/issues/12767#issuecomment-800177254

- calculate contrast color of accent color against light/dark mode background color
- lighten (dark mode) or darken (light mode) the accent color used in the editor to ensure it has enough contrast to be legible
2021-03-18 16:46:38 +00:00
Peter Zimon
5d158aa7c5 Updated launch site banner on Dashboard 2021-03-10 22:18:44 +01:00
Peter Zimon
8210116c28 Added 'create content' card to Dashboard 2021-03-10 22:15:51 +01:00
Peter Zimon
73500dc712 Updated internal link cards on Dashboard 2021-03-10 21:49:55 +01:00
Peter Zimon
0eaf1abfe6 Added 'crunched' card to Dashboard 2021-03-10 21:39:06 +01:00
Peter Zimon
61334c0014 Added community card to Dashboard 2021-03-10 20:49:23 +01:00
Peter Zimon
9667293a42 Added blog post to Dashboard 2021-03-10 20:21:26 +01:00
Peter Zimon
f9f8c4019a Updated link cards on Dashboard 2021-03-10 20:16:24 +01:00
Peter Zimon
4c9297b04d Added blog post to Dashboard 2021-03-10 20:12:21 +01:00
Peter Zimon
0c1be1c132 Added TheBrowser card to Dashboard 2021-03-10 19:23:06 +01:00
Peter Zimon
f6fe6127ca Fixed test 2021-03-10 18:05:24 +01:00
Peter Zimon
6f2fe2d80e Fixed top members 'since' column on Dashboard
- removed from time from Top members list
2021-03-10 18:01:21 +01:00
Kevin Ansfield
cce71e5517 Fixed preview shortcut not working when billing app is enabled
no issue

- the billing modal is always rendered, it's contents being shown/hidden via CSS
- when the billing modal was rendered it was changing the `key` scope and binding the enter key, however because it's always rendered this was messing with the default key scope for all other areas of the app
- removed all keyboard handling from the billing modal because it wasn't actually doing anything (there is nothing to handle the "confirm" action when Enter is pressed) which fixes the unexpected key scope change
2021-03-10 16:15:19 +00:00
Peter Zimon
7f1eef014b Fixed Koenig link underlines
- replaced box shadow styling with native text-decoration for links in Koenig for better consistency with themes
2021-03-09 16:10:27 +01:00
Kevin Ansfield
644a2eef9f Fixed header content jump when navigating between custom views 2021-03-09 11:38:48 +00:00
Peter Zimon
67a541d33b Added thousands separator to member stats on Dashboard 2021-03-08 18:10:51 +01:00
Peter Zimon
e489b1765a Fixed MRR summary formatting on Dashboard
- added thousands separator to MRR summary data
- separated currency from amount for better readability
2021-03-08 18:08:53 +01:00
Rish
f7bc2f264b Fixed "member since" date on dashboard
no refs

Fixes the "member since" value on dashboard for Top members table, was incorrectly referencing the `member` variable so all dates were picked as of today.
2021-03-08 20:40:50 +05:30
Peter Zimon
c206506ccb Fixed menu positions in Settings main screen
- swapped Branding and Themes to follow a more logical setup flow
2021-03-08 15:07:29 +01:00
Peter Zimon
f8b2d739ce Minor icon/copy fix for site setup flow 2021-03-05 15:55:56 +01:00
Peter Zimon
b8b5703899 Fix: hiding owner-only setting links from admins
- hides "Email newsletter" and "Payments" setting links from administrators on settings main page, as they are owner-only
2021-03-05 15:23:23 +01:00
Peter Zimon
b053f1d284 Added percent class to newsletter open rate on Dashboard 2021-03-05 12:46:32 +01:00
Peter Zimon
2e9c9fcdfa Fixed tags loading screen UI bug 2021-03-05 10:19:37 +01:00
Peter Zimon
0da92d1cfe Fixed UI bug on staff user loading screen 2021-03-05 10:18:21 +01:00
Hannah Wolfe
6a1f71e92d Disabled zapier if custom integrations are disabled
refs: https://github.com/TryGhost/Team/issues/510

- Use the new limit config to disable the Zapier integration if custom integrations are disabled
2021-03-04 21:26:24 +00:00
Peter Zimon
ce43df193f Applied green color to publish button in preview 2021-03-04 11:53:31 +01:00
Sanne de Vries
3f5203fbaf Applied brand color to blockquotes in editor 2021-03-04 10:22:09 +01:00
Sanne de Vries
82f325c4bd Applied brand color to links in editor 2021-03-04 10:12:25 +01:00
Peter Zimon
6fb2a2fc3c Updated password reset button style 2021-03-03 17:16:44 +01:00
Peter Zimon
586c515f1a Updated sign in button label 2021-03-03 14:06:23 +01:00
Peter Zimon
4a79a94993 Added site icon to sign in screen 2021-03-03 13:36:44 +01:00
Peter Zimon
477b58e076 Using accent color on login button 2021-03-03 13:36:44 +01:00
Sanne de Vries
e9e169fdfc Improved theme directory
No ref

- Moved from 5-column to 4-column grid
- Moved Marketplace link out of the grid
- Improved hover animation
2021-03-02 18:22:41 +01:00
Peter Zimon
bfa5a3a449 Added title to sign in screen 2021-03-02 18:22:32 +01:00
Peter Zimon
27c8a3c524 Copy update 2021-03-02 17:41:24 +01:00
Peter Zimon
acc4254f3c Basic sign in UI update
- updated sign in UI to match better with the rest of Ghost.org
2021-03-02 17:40:35 +01:00
Kevin Ansfield
10b48b1d6d Removed remaining uses of tour item components
no issue

- tour items in general are being removed
- preparation for full removal of all tour-related code (to be done in following commit to allow future revert without merge errors through template divergence)
2021-03-02 14:19:52 +00:00
Sanne de Vries
2ec9383bdd Hid Facebook description when title exceeds single line in all social media previews 2021-03-02 13:25:00 +01:00
Fabien 'egg' O'Carroll
8403bf9b49 Added fallback for top members (#1856)
* Added fallback for top members

refs https://github.com/TryGhost/Team/issues/469

We do not have open rates for a member until we've sent at least 5
emails. In order to still display a top members section for sites which
have not sent that many newsletters, we fallback to paid members,
ordered by created_at. This effectively gives us our oldest members,
which are currently paid.
2021-03-02 13:08:07 +01:00
Sanne de Vries
94c73e234e Refined AMP integration page 2021-03-01 10:10:55 +01:00
Sanne de Vries
4f6710b1d3 Refined launch wizard UI
No ref

- Changed button copy
- Changed test mode switch color
2021-02-25 16:57:24 +01:00
Peter Zimon
e2e6de06ee Dashboard cleanup 2021-02-25 14:39:34 +01:00
Peter Zimon
65d53e2f85 Added dismiss to launch wizard banner 2021-02-25 10:58:35 +01:00
Peter Zimon
e253dfc0f0 Added loading and error handling for what's new in Dasboard 2021-02-25 09:57:10 +01:00
Rish
ceaf54b60e Cleaned up dashboard charts loading states
refs https://github.com/TryGhost/Team/issues/469

Updated loading and error state handling for all charts to show basic spinner and error message
2021-02-25 14:04:44 +05:30
Rish
ee1bb32113 Cleaned newsletter open rate stats
refs https://github.com/TryGhost/Team/issues/469

- Cleaned up newsletter open rate stats and summary data
- Fixed incorrect cached value for open rate charts
2021-02-25 13:34:34 +05:30
Peter Zimon
125243a3ed Updated Dashboard dark mode 2021-02-24 19:18:13 +01:00
Peter Zimon
371da0b9c1 Updated launch wizard banner 2021-02-24 19:09:19 +01:00
Peter Zimon
fbf121b7f2 Added 'What's new' to Dashboard 2021-02-24 16:59:05 +01:00
Kevin Ansfield
f0824225fd Updated marketplace themes (#1852)
refs https://github.com/TryGhost/Team/issues/480

- switched marketplace themes to a selection of Ghost's own free themes
- added install and preview buttons for all
- show theme screenshot in the install modal if it's a known theme
2021-02-24 15:42:03 +00:00
Peter Zimon
8565b2521b Added percentage growth styles 2021-02-24 10:32:10 +01:00
Peter Zimon
ffce5bc6c4 Dashboard copy update 2021-02-23 14:28:34 +01:00
Peter Zimon
b51cec8094 Fixed dynamic color for open rate chart 2021-02-23 14:27:25 +01:00
Peter Zimon
92dbc288ec Updated open rate chart
- changed to bar chart
- added handling of empty dataset
2021-02-23 13:54:23 +01:00
Peter Zimon
6fc1f786f4 Copy update 2021-02-23 10:47:49 +01:00
Peter Zimon
3ed9e02ef1 Integrations UI fixes 2021-02-22 22:51:02 +01:00
Peter Zimon
0023bf2749 Refined integration detail pages 2021-02-22 22:44:55 +01:00
Peter Zimon
d8e4bf841f Fixed code injection UI size bug 2021-02-22 21:44:48 +01:00
Peter Zimon
b398d57650 Fixed Admin API key regeneration UI bug 2021-02-22 21:17:53 +01:00
Peter Zimon
1f2aeec9d5 Udpated small chart sizes 2021-02-22 20:11:25 +01:00
Rish
08bb5f2d87 Updated growth stats on dashboard
refs https://github.com/TryGhost/Team/issues/469

- Added growth stats for member counts
- Cleaned up growth stats for mrr
2021-02-22 18:37:28 +05:30
Rish
624001b15e Cleaned up mrr and count stats
refs https://github.com/TryGhost/Team/issues/469

- Cleans up incorrect values for mrr and count stats
2021-02-22 14:01:08 +05:30
Rish
e554e26b02 Added newsletter open rate stats
refs https://github.com/TryGhost/Team/issues/469

- Adds new chart to track newsletter open rates on dashboard
2021-02-22 14:01:08 +05:30
Kukhyeon Heo
568cd65fb3 Added YAML file support for redirects (#1703)
refs https://github.com/TryGhost/Ghost/issues/11085
refs https://github.com/TryGhost/Ghost/pull/12187

- YAML file support has been added to Ghost's API through referenced above PR. YAML will become a default supported file in the next version of Ghost replacing JSON redirects
2021-02-22 13:27:00 +13:00
Fabien O'Carroll
d03e1ae0e2 Added links to member details page from dashboard
refs https://github.com/TryGhost/Team/issues/469

This also fixes the top members list displaying
2021-02-19 17:30:29 +00:00
Fabien O'Carroll
66764a8c01 Updated tracked state to be top level attributes
no-issue

Glimmer tracked values don't guaruntee that nested property updated will be tracked
2021-02-19 17:18:39 +00:00
Peter Zimon
8b5e2623ad Updated top members list screen 2021-02-19 17:33:10 +01:00
Peter Zimon
44df9d4dbe Dashboard chart refinements 2021-02-19 16:17:53 +01:00
Sanne de Vries
0d99ffbf29 Fixed visual bug regenerate Zapier key and success message text overlay 2021-02-19 15:04:06 +01:00
Peter Zimon
0a481f40bb Added responsive support to Dashboard 2021-02-19 14:19:22 +01:00
Rishabh Garg
8a0abf7d89 Updated mrr stats on dashboard (#1847)
refs https://github.com/TryGhost/Team/issues/469

- Adds basic percentage growth stat for mrr on dashboard
- Adds base data for mrr chart in case of no mrr stats
2021-02-19 18:20:41 +05:30
Fabien 'egg' O'Carroll
68da78111c Added top members by email open rate to dashboard (#1844)
refs https://github.com/TryGhost/Team/issues/469
2021-02-19 12:12:53 +00:00
Peter Zimon
b045a28ec3 Updated small charts on Dashboard 2021-02-19 13:09:01 +01:00
Peter Zimon
0fbb1adbdb Dashboard mini charts basic styles 2021-02-19 10:39:13 +01:00
Rishabh Garg
b7ae1233bf Updated MRR and count dashboard charts (#1846)
refs https://github.com/TryGhost/Team/issues/469

- Cleaned MRR stats data and label formatting
- Cleaned member counts stats - total and paid
2021-02-19 11:18:01 +05:30
Sanne de Vries
478084e274 Updated social media previews in general settings 2021-02-18 21:33:04 +01:00
Rish
d7cf0b4042 Fixed empty data handling for mrr chart
refs https://github.com/TryGhost/Team/issues/469
2021-02-19 00:49:59 +05:30
Kevin Ansfield
8525fd701a Updated launch wizard to use new design preview
refs e75720d390

- changed "Save and exit" to just "Exit" because it doesn't save anything
- updated design step of launch wizard to use new preview
  - added `replacePreviewContents` action to launch controller to overwrite preview iframe contents directly
  - replaced save-on-change behaviour with update-preview-on-change behaviour by POSTing to the front-end with preview header data and blatting the iframe contents with the result
  - changed "Next step" button to "Save and continue" with progress spinner whilst saving
2021-02-18 17:07:14 +00:00
Rish
05df2bbad4 Added initial charts for dashboard
refs https://github.com/TryGhost/Team/issues/469

- Added MRR chart for last 30 days
- Added initial chart for Total member count
2021-02-18 22:20:58 +05:30
Fabien 'egg' O'Carroll
c56ba0c71e Added initial event timeline to dashboard (#1840)
refs https://github.com/TryGhost/Team/issues/469

* Updated stats service to fetch event timeline
* Updated dashboard controller to load events
* Added currency utils
* Added GhEventTimeline component
* Updated dashboard to render GhEventTimeline
2021-02-18 14:17:10 +00:00
Peter Zimon
8b8bbc3941 Set default neutral dashboard charts 2021-02-18 13:09:25 +01:00
Peter Zimon
57a7bd5b48 Updated Dashboard launch banner 2021-02-18 12:44:39 +01:00
Peter Zimon
f464bfe085 Applied mobile styles to Dashboard 2021-02-18 12:27:29 +01:00
Naz
d84a70752d Removed more leftover unsplash code & fixed tests
refs refs 07abb5443a

- Found some more unnecessary code for previous unsplash setting structure and removed it.
- Refactored the tests to be more in line to how AMP tests are done
2021-02-18 15:03:53 +13:00
naz
07abb5443a Fixed EmberObject.create error on Admin start (#1841)
refs https://github.com/TryGhost/Ghost/pull/12632

- The `unsplash` setting has been migrated to a new format - plain boolean value. This is why it's no longer needed to do any serialization dances
2021-02-18 13:25:21 +13:00
Peter Zimon
cda3bdda62 Basic design for dashboard activity 2021-02-17 16:46:16 +01:00
Peter Zimon
c54e1dc2c5 Added a fake activity to Dashboard 2021-02-17 12:14:29 +01:00
Peter Zimon
1d42b76b99 Rearrange dashboard layout 2021-02-17 12:11:05 +01:00
Peter Zimon
b261857d20 Added mixed content to Dashboard 2021-02-17 12:11:05 +01:00
Peter Zimon
e9d80b2f29 Added top members list placeholders 2021-02-17 10:13:16 +01:00
Peter Zimon
377a2ffd54 Added dashboard UI skeleton 2021-02-16 18:12:24 +01:00
Sanne de Vries
0d1f288beb Fixed dark mode issues 2021-02-15 18:03:07 +01:00
Peter Zimon
b267b309d9 Updated integrations styles 2021-02-12 17:28:08 +01:00
Peter Zimon
43708f20fe Refined buttons on staff screens 2021-02-12 16:58:04 +01:00
Peter Zimon
4839da5047 Refined integrations UI 2021-02-12 14:58:56 +01:00
Peter Zimon
f7cb949a6e Responsive UI fixes 2021-02-12 14:29:49 +01:00
Aileen Nowak
7d616b0010 Move billing iFrame to render in main content area (#1838)
no issue

The billing iFrame needs to be rendered within the `main` content area rather than as fullscreen.

This needs most probably more tidying up, but is working for now without breaking the functionality.

* Move billing iFrame to render in main content area
* Fixed routing error when transistion url not defined
* Removed close modal button and esc key binding
2021-02-12 10:13:23 +00:00
Kevin Ansfield
5a8753fb8f Added ability to install free themes directly from GitHub (#1837)
refs https://github.com/TryGhost/Ghost/issues/12608
requires https://github.com/TryGhost/Ghost/pull/12635

- adds `/settings/themes/install` route with `source` and `ref` query params that match the API. Shows a confirmation modal when accessed asking to confirm installation and activation
  - does not allow Casper to be installed
  - warns if installing the theme will overwrite an existing one
  - follows similar process to zip uploads for error handling
- adds install/preview links for Massively in the free themes showcase

Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
2021-02-12 09:19:25 +00:00
Rish
6f1ea8b018 Fixed nightshift property not set on Member charts
no issue

Nightshift value was not correctly setup on <GhMembersChart> component, so it was always set to false.
2021-02-11 20:54:34 +05:30
Peter Zimon
b8a79467ae Updated icons 2021-02-11 11:45:14 +01:00
Peter Zimon
7c2bae6f29 CSS restructure for main sections 2021-02-10 18:48:27 +01:00
Peter Zimon
9093b32529 Refined editor main buttons 2021-02-10 16:35:25 +01:00
Peter Zimon
703d6df12b Updated Labs UI 2021-02-10 13:00:07 +01:00
Peter Zimon
c9c62007db Updated code injection styles 2021-02-10 11:54:27 +01:00
Sanne de Vries
48c9318089 Updated dark mode colors (#1827)
No issue

- Proposed color refresh for dark mode
- Improved overall styling for code injection in post settings and tag settings and added dark mode
2021-02-10 11:15:19 +01:00
Peter Zimon
ae9abe22c0 Update portal settings UI 2021-02-10 11:08:09 +01:00
Peter Zimon
ebb83d7fb8 Updated expandable UI 2021-02-09 17:23:03 +01:00
Kevin Ansfield
916c12546f Fixed liquid-wormhole error when directly accessing /launch
refs b4e750466d

- liquid-wormhole was throwing an error with the previous approach because it appeared to be trying to run it's destroy routines after the element had already been removed or hadn't been rendered yet
2021-02-09 12:07:44 +00:00
Kevin Ansfield
b4e750466d Hid tour throbbers when opening launch wizard
refs https://github.com/TryGhost/Team/issues/460

- add `showTour` property to `ui` service
- updated `<GhTourItem>` to not render anything if `ui.showTour` is `false`
- updated launch wizard template to hide tour when open and re-enable when closed
2021-02-09 11:43:44 +00:00
Kevin Ansfield
39a883a4dc Fixed tests
refs 8490ebc542

- updated editor test to use stable selector for the save button
- changed save button test attribute to match our standard naming scheme
2021-02-08 21:56:18 +00:00
Peter Zimon
605cb81865 Form heading UI update 2021-02-08 22:30:48 +01:00
Peter Zimon
8490ebc542 Updated general settings UI 2021-02-08 21:51:26 +01:00
Peter Zimon
a6a9b17baf Updated staff UI 2021-02-08 21:37:05 +01:00
Peter Zimon
6e1b6a2618 Updated custom integration UI 2021-02-08 21:16:41 +01:00
Peter Zimon
af6739af72 Updated built-in integrations 2021-02-08 19:54:20 +01:00
Peter Zimon
1b60ded48f Updated integrations and Zapier page 2021-02-08 19:20:26 +01:00
Peter Zimon
78d23a2544 Admin UI: added global section grid 2021-02-08 17:22:53 +01:00
Peter Zimon
0ef70cb568 Updated member details page 2021-02-08 15:35:08 +01:00
Sanne de Vries
44c935847e Fixed responsive issue for launch-site wizard
No ref

- Prevented preview from overlapping settings
- Avoided "Save and exit" button to left-align on smaller screens
2021-02-08 14:10:34 +01:00
Sanne de Vries
37556aa432 Updated preview modal trigger styling in editor 2021-02-08 12:50:50 +01:00
Sanne de Vries
47abad1837 Updated buttons and styles in editor, post-preview modal and launch-site wizard
No ref

- Updated all buttons in the editor header
- Updated buttons in publish menu
- Updated back-button in post-preview
- Updated icons for launch-site wizard
- Updated Stripe-info box in launch-site wizard
2021-02-08 10:13:26 +01:00
Peter Zimon
f57438159c Renamed design sandbox template 2021-02-05 14:00:51 +01:00
Peter Zimon
8f8a1a53db Added design components page 2021-02-05 13:48:38 +01:00
Peter Zimon
5fbd01a237 Updated colors 2021-02-05 12:04:42 +01:00
Kevin Ansfield
f470549e80 Hid launch-site link on dashboard once wizard is completed
refs https://github.com/TryGhost/Team/issues/460

- use the `user.accessibility` field via the `feature` service to add a `launchComplete` property
  - this is the best place we have currently for UI-specific concerns
- toggle the property to `true` when the "Launch!" button is clicked in the final wizard step
- hide the launch site wizard link on the dashboard if launch has been completed
2021-02-04 18:35:19 +00:00
Kevin Ansfield
6a14087ccc Made launch wizard only accessible to owners
refs https://github.com/TryGhost/Team/issues/460

- member payment settings are only changeable by owners which would leave the wizard being a single step
- wizard is designed to be used as one of the first things after initial site setup which will be completed as the owner user
2021-02-04 17:36:29 +00:00
Peter Zimon
879c7866e9 Members screen UI refinements 2021-02-04 16:52:19 +01:00
Sanne de Vries
80895f15e3 Improved launch wizard design
Refs https://github.com/TryGhost/Team/issues/460

- Made nav buttons sticky to bottom
- Introduced gh-btn-large for larger buttons
- Improved spacing
- Got rid of borders between settings
2021-02-04 15:02:57 +01:00
Peter Zimon
c757ddbef8 UI updates (#1835)
* Admin UI update basics

Added the basics for the Admin UI/style update. Very far from being done...

* Admin style updates

- exploring menu
- enabling full width content (integrations selection bg)
- updated main screens
2021-02-03 20:08:01 +01:00
Kevin Ansfield
97f606573c Fixed "back" in launch wizard not skipping skipped steps
refs https://github.com/TryGhost/Team/issues/460

- keep track of all skipped steps when advancing to next step
- when going back a step, skip over any skipped steps
2021-02-02 18:28:45 +00:00
Sanne de Vries
1ee2be76c3 Changed design for Set up subscriptions and Finalise steps in Launch wizard
Refs https://github.com/TryGhost/Team/issues/460
2021-02-02 16:08:08 +00:00
Kevin Ansfield
be01fa6920 Added publish menu to post preview modal
refs https://github.com/TryGhost/Team/issues/459

- pass required properties+actions through editor->post preview modal->publish menu
- replace publish button placeholder with `<GhPublishMenu>`
- close modal when saving if not a silent save
2021-02-02 16:08:08 +00:00
Sanne de Vries
f9779cf5e3 Changed design of first step Launch wizard to be consistent with branding modal in settings
refs https://github.com/TryGhost/Team/issues/460
2021-02-02 16:08:08 +00:00
Kevin Ansfield
35d9545c68 Hid preview post button unless post has been created and is a draft
refs https://github.com/TryGhost/Team/issues/459

- hid when post is published
    - we have no facility for previewing unsaved changes to a published post via the front-end which would mean the desktop/mobile preview tabs are not useful
    - email preview content is similarly generated from saved data meaning that tab wouldn't serve as a preview (plus emails can't currently be sent for an already published post)
- hid when post is "new" (unsaved)
    - similar to the reasoning for hiding when published, if the post is not saved then no content exists for the server-side previews to be generated
2021-02-02 16:08:08 +00:00
Peter Zimon
04d9caefed Updated navigation (#1832)
no issue

Updated settings navigation to a completely redesigned flow for Ghost 4.0 🎉

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
Co-authored-by: Fabien O'Carroll <fabien@allou.is>
Co-authored-by: Rish <zrishabhgarg@gmail.com>
2021-02-02 16:08:06 +00:00
Kevin Ansfield
214158bee8 Refactored launch wizard
refs https://github.com/TryGhost/Team/issues/450

- swapped individual step routes for single launch route and query params to allow for easier management of step content and preview via components
- defined all wizard steps inside of launch controller
- updated templates to use a fixed preview across all steps
2021-02-02 16:08:06 +00:00
Sanne de Vries
c45294717c Improved preview post modal design and added mobile view
refs https://github.com/TryGhost/Team/issues/451

- Added mobile view to the post preview modal
- Replaced tabs text with icons
- Moved back button and added publish button
- Changed copy-link design to be aligned with link preview in portal
- Changed layout for social previews
- Added images to the Twittr and Facebook previews
- Added labels to the social previews
- Changed styling for the "Preview post" button in editor
2021-02-02 16:08:05 +00:00
Sanne de Vries
76419917bf Changed design for first step of the launch wizard 2021-02-02 16:08:05 +00:00
Peter Zimon
202468c025 Move accent color to Design settings 2021-02-02 16:08:05 +00:00
Peter Zimon
0b4d789bbe Moved publication identity to Design settings 2021-02-02 16:08:04 +00:00
Peter Zimon
679dc3c0d6 Separate theme design (#1831)
* Separated theme and design settings
2021-02-02 16:08:04 +00:00
Kevin Ansfield
e932af26a7 Added first pass at new post preview
refs https://github.com/TryGhost/Team/issues/451

Start of new post preview prototype.

- adds preview button next to publish button
- opens new combined preview modal with desktop/email/social tabs
- desktop preview shows front-end preview url in iframe
- email preview fetches preview data as per the older email preview modal
- social preview to come later
2021-02-02 16:08:04 +00:00
Peter Zimon
fdca819169 Fixed Labs page
- removed link to Members settings from Labs screen
2021-02-02 16:08:04 +00:00
Peter Zimon
c610d3d072 Moved members settings out of labs 2021-02-02 16:08:04 +00:00
Peter Zimon
e903046813 Basic settings restructure
- created new central settings page and moved there all settings from the nav menu
2021-02-02 16:08:03 +00:00
Kevin Ansfield
4b5f3f64a4 Added launch wizard prototype
refs https://github.com/TryGhost/Team/issues/450

Initial prototype of new launch-site wizard, meant to speed up the setup of a members site with the following steps:

1. Customise design
2. Connect Stripe
3. Set subscription pricing

- added wizard link to dashboard screen
- added `/launch/*` screens representing the wizard steps
- duplicated and refactored relevant general and members setting code and templates into each step
2021-02-02 16:08:03 +00:00
Kevin Ansfield
a6b11b8c0c Added blank dashboard screen
no issue

- adds blank `/dashboard` route ready for future 4.0 related changes
- `/` now redirects to `/dashboard` instead of `/site`
- adds "Dashboard" link to main nav menu
2021-02-02 16:08:00 +00:00
Rish
a2105f53f6 Added FirstPromoter help link
no issue
related to 464e601c4d

Adds help article to find your FirstPromoter account ID for setting up FirstPromoter integration
2021-01-25 10:46:02 +05:30
Kevin Ansfield
a059ace335 Reverted dashboard route
no issue

- removing dashboard prototype from master ready to re-apply in 4.0 branch
2021-01-21 09:04:54 +00:00
Kevin Ansfield
72d8b4f14d Reverted launch wizard prototype
no issue

- removing launch wizard from master ready to re-apply in 4.0 branch
2021-01-21 09:02:19 +00:00
Kevin Ansfield
63c1f2060c Added stripe connection to launch site wizard
refs https://github.com/TryGhost/Team/issues/450

- duplicated and refactored/updated direct and connect settings UI from labs to the "connect stripe" step of the launch site wizard
- updated wizard buttons to be right-aligned
2021-01-19 22:31:59 +00:00
Aileen Nowak
abc38ab375 Updated links to ghost.org sites
no issue

Follow-up task of the updated Ghost Docs structure. Updated links reflecting the new structure to prevent unnecessary 404s and redirects.
2021-01-19 13:18:59 +13:00
Kevin Ansfield
2b41499b22 Added design customisation and preview to launch wizard
refs https://github.com/TryGhost/Team/issues/450

- moved next/finish buttons into wizard step components in case they need to save before triggering transition
- added icon, logo, and cover image upload+removal to "customise design" step alongside a preview that reloads each time an image is changed
2021-01-18 17:48:11 +00:00
Kevin Ansfield
d48abaa1f8 Added outline launch wizard framework
refs https://github.com/TryGhost/Team/issues/450

- adds `launch/*` routes corresponding to launch wizard steps
- sets up navigation between each wizard step
- adds components for each `launch/*` step to contain step-related functionality and facilitate later refactoring to a generalised wizard component
- adds link to the launch wizard from the dashboard screen
2021-01-18 13:48:23 +00:00
Kevin Ansfield
5463e95d8e Added blank dashboard screen
no issue

- preparatory work for upcoming features
- default homepage when developer experiments is enabled
2021-01-18 09:02:44 +00:00
Rishabh Garg
464e601c4d Added new FirstPromoter integration (#1825)
no issue

Adds new FirstPromoter integration on the integrations page. FirstPromoter enables sites to launch their own members referral program, and integration allows Site admins to directly add their FirstPromoter tracking ID in the settings to enable FirstPromoter script on their site.
2021-01-15 20:01:40 +05:30
John O'Nolan
eea1ddab71 Updated integrations showcase: Plausible, Ulysses, GitHub 2021-01-14 19:29:21 +07:00
Sanne de Vries
27cc99c907 Fixed issues for member details mobile view (#1807)
* Fixed issues for member details mobile view

No-ref

- Changed order to display feed at the bottom
- Displayed heading and value vertically between 1400px and 1160px
- Displayed "Complementary plan" copy and switch vertically between 1400px and 1160px
- Added margin below "Continue subscription" button
- Prevented date in feed to wrap

* fixed tests

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-12-16 10:04:33 +01:00
Sanne de Vries
2453f6afbd Added activity feed to member details screen (#1796)
closes https://github.com/TryGhost/Ghost/issues/12461

Design changes:
- added activity feed to member details page
- rearranged Stripe info to display on the right
- added toggle buttons for Stripe subscription and customer info
- added box to display activity feed for received and opened emails

Functionality changes:
- added `queryRecord()` to member adapter so `queryRecord('member', {id: x})` will hit `/members/:id/?query` instead of `/members/?id=x&query`
- updated member route to query member with `?include=email_recipients`
- added `EmailRecipient` model for access to event timestamps and email relationship setup
- added `<GhMemberActivityFeed>` component that accepts an `EmailRecipient` array and converts that into an activity list
- added support for `@model=emailInstance` to the email preview modal
- fixed a timing issue with email preview that could result in it showing blank content until the mobile/desktop toggle is used
- fixed sometimes blank member location

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-12-10 11:38:38 +00:00
Rishabh Garg
f068e40723 Added new members CSV importer (#1797)
no refs
depends on https://github.com/TryGhost/Ghost/pull/12472

The members CSV importer gets an overhaul and works with new importer module in members service, performing the import in a background job when the import will take too long to complete in a reasonable time and send an email with data on completion. Also includes updated CSV mapping UI and error handling to allow easier import from different type of exports.

Co-authored-by: Fabien O'Carroll <fabien@allou.is>
Co-authored-by: Peter Zimon <zimo@ghost.org>
2020-12-10 01:02:31 +05:30
Sanne de Vries
ecfb77b980 Added email stats overview to member details page (#1795)
refs https://github.com/TryGhost/Ghost/issues/12461

- Added "Emails received", "Emails opened", and "Avg. open rate" to member details
- Adjusted visual display of avatar, name and email. Made email a mailto link
- Rearranged Name and Email fields to reduce height
- Changed height of the notes textarea

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-12-09 13:26:00 +00:00
Sanne de Vries
ffe0f84700 Added open-rate column and ordering to the members list (#1790)
closes https://github.com/TryGhost/Ghost/issues/12421

- added `emailOpenRate` property to member model
- added open-rate column to the members list
  - hidden when email analytics is disabled
- added `{{feature "flag"}}` helper so feature flags can be checked in templates without injecting the feature service into the backing class
- added `order` query param to the members controller/route and wired it into the data fetching routine
- added order dropdown to the filter bar with "Newest" (default) and "Open rate" as the two options
  - whole dropdown is hidden if email analytics is disabled

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-12-08 19:23:57 +00:00
Kevin Ansfield
ca97f84cad Added emailAnalytics feature flag
no issue

- email analytics feature has a potential to be resource-intensive so it may be switched off via config, when this is the case we don't want to show stats in the admin that are out of date or won't be added/updated
- fixed page link titles saying "Edit this post" instead of "Edit this page"
2020-12-02 11:47:34 +00:00
Sanne de Vries
a2a98b575f Added email open rate to posts list in admin (#1772)
no issue

- added "Sends" and "Opens" columns to the posts list to see newsletter performance at a glance
- "Sends" will show the type of members sent to (free, paid, all) as a tooltip
- "Opens" shows open rate by default and total opens on hover
2020-11-26 17:19:05 +00:00
Peter Zimon
f476c268b5 Zapier templates update (#1783)
- updated Zapier templates page to show the most relevant Zaps instead of the latest
- fixed design regression in Slack, Amp and Unsplash integration pages
2020-11-25 11:31:15 +01:00
Thibaut Patel
b16b4bcdc7 Added staff personal tokens
refs TryGhost/Ghost#12373
2020-11-20 10:23:19 +01:00
Kevin Ansfield
7f537f8ba4 Fixed error when closing delete snippet confirmation dialog 2020-10-27 18:33:31 +00:00
Kevin Ansfield
c6753a0efd Hid snippet management UI from staff users without permissions
no issue

- snippets can only be created and deleted by owners/admins/editors
- added a property in the editor controller to determine if the logged in user has sufficient permissions, then only pass the appropriate save/delete snippet actions to the editor component if the check is passed
- updates koenig menus and toolbars to skip rendering of buttons if the associated action function is not available
2020-10-27 14:42:59 +00:00
Kevin Ansfield
1bd4b5cda7 Added delete button with confirmation to snippets in card menus
no issue

- show a delete icon when a snippet is hovered in plus/slash menus
- show a confirmation dialog when the delete icon is clicked
- keep menus open whilst displaying the delete confirmation dialog
2020-10-26 17:09:39 +00:00
Peter Zimon
6ecba355eb Moved members settings to new page (#1736)
no refs

Moves members related settings in Labs to its own page to improve the overall UX and make it more consistent with the rest of the Admin.
2020-10-22 16:09:00 +05:30
Kevin Ansfield
b590ce1b95 Implemented first iteration of content snippets
closes https://github.com/TryGhost/Team/issues/411

- adds "Create snippet" icon to the editor toolbar
- uses the same link input component design for specifying snippet titles
- snippets are loaded in the background when the editor is accessed
- snippets are listed at the bottom of the card menus of the + and / menus
- clicking a snippet inserts the snippet's contents in place of the current blank section
2020-10-15 18:03:35 +01:00
Kevin Ansfield
a3d3632e97 Added developer experiments indication to about page
no issue

- without this there's no indication the config flag is set when you have no access to the config file or you don't know which features are currently behind the flag
2020-10-09 11:38:47 +01:00
Fabien 'egg' O'Carroll
6ecb38eaa5 Added support for filtering the exported Members CSV (#1716)
no-issue

Co-authored-by: Peter Zimon <zimo@ghost.org>
2020-09-23 14:29:47 +01:00
Sanne de Vries
710d6178c1 Added message box on Staff user page that indicates user is locked, and improved boxes naming and styling 2020-09-16 15:37:33 +02:00
Rish
eefbb55d84 Added new support and reply-to address for members
no issue

- Adds 2 new email address fields for members in email settings section - support address and reply-to address
- Support address - Is used for member auth emails as well as in themes and Portal for allowing members to contact support.
- Reply-to address - Is used to set `reply-to` address for newsletter emails that allows configuring where member's reply to emails will go
- Disabled from address update for empty value
- Updated success toast message and copy for from/support address update
- Changed section title + description for email addresses
- Added "public" to support email description
2020-08-31 18:10:26 +05:30
Rishabh Garg
6d4bcb205e Allowed Admin users to impersonate members (#1679)
closes TryGhost/Ghost#12126
depends on https://github.com/TryGhost/Ghost/pull/12132#pullrequestreview-469092171

- Previously, only Owner user was shown option to impersonate a member
- Grants Administrator user ability to impersonate a member
2020-08-18 14:19:12 +05:30
Kevin Ansfield
fd91b593a5 Added number formatting to all pluralized counts
closes https://github.com/TryGhost/Ghost/issues/12110

- adds `{{gh-pluralize}}` helper that wraps the `{{pluralize}}` helper from `ember-inflector` but formats the number using our `{{format-number}}` helper
- updates all uses of `{{pluralize}}` to `{{gh-pluralize}}`
2020-08-10 11:16:03 +01:00
Rish
a0cd857da1 Removed accent color from general settings
no issue

- Accent color setting was behind dev flag on General settings screen
- Its now moved inside Portal settings where its primarily being used
- This change removes it from general settings screen so its only on Portal settings
2020-07-24 16:46:32 +05:30
Kevin Ansfield
3b78973a21 Removed bulk member edit dev experiment
no issue

- we're moving forward with a simplified bulk delete and the UI would conflict if both approaches are behind the dev experiments flag
2020-07-23 15:03:18 +01:00
Fabien 'egg' O'Carroll
97feab1002 🐛 Fixed email newsletter settings (#1641)
closes https://github.com/TryGhost/Ghost/issues/12052

* Added breaking test for mailgun settings

* 🐛 Fixed mailgun settings to always set a baseUrl

This matches the functionality seen before the bulk_email_settings were
split, where the baseUrl was set when any of the mailgun settings were.
2020-07-16 11:13:36 +02:00
Fabien 'egg' O'Carroll
1f9854a6f8 Added UI for AMP GA Tracking ID (#1638)
refs https://github.com/TryGhost/Ghost/pull/12039

Adds the initial UI for setting the `amp_gtag_id` setting
2020-07-15 13:45:31 +02:00
Peter Zimon
a819837bd4 Refined members import modal dropdown
no refs.
- updated style of members import modal field dropdown
2020-07-07 13:07:21 +02:00
Peter Zimon
8ac4e5ab47 Rearranged accent color in settings
no refs.

- moved accent color setting to section top in Settings/General according to its importance
2020-07-06 16:07:22 +02:00
Fabien 'egg' O'Carroll
1f7fbdfc8f Updated labs to use new mailgun_* settings (#1628)
refs https://github.com/TryGhost/Ghost/issues/10318

This removes references to the old bulk_email_settings
2020-07-03 11:48:54 +02:00
Fabien 'egg' O'Carroll
5d22b788c8 Refactored to use updated members and stripe settings (#1621)
refs #10318

* Updated settings model with new settings

* Removed parseSubscriptionSettings from settings service

* Updated members-utils to use new settings

* Updated labs controller to use new settings

* Fixed dependency for member-settings-form

* Updated members-lab-setting component to use new settings

* Updated disconnect modal to use new settings

* Updated members portal modal to use new settings

* Removed Direct from settings

* Renamed members_allow_signup -> members_allow_free_signup

* Allowed for null fromAddress
2020-06-29 19:37:11 +02:00
Kevin Ansfield
fcb9b87884 Renamed activeTimezone setting to timezone
refs https://github.com/TryGhost/Ghost/issues/10318

- API has been updated to still work with `active_timezone` for backwards compatibility but it makes sense for the client to match the underlying settings keys
2020-06-24 15:34:59 +01:00
Kevin Ansfield
99dbcdb3b0 Renamed defaultLocale setting to lang
refs https://github.com/TryGhost/Ghost/issues/10318

- API has been updated to still work with `default_locale` for backwards compatibility but it makes sense for the client to match the underlying settings keys
2020-06-24 15:27:17 +01:00
Kevin Ansfield
f2b28cfa26 Fixed settings not saving due to settings.brand
refs https://github.com/TryGhost/Ghost/issues/10318

- moves `settings.brand` as a JSON object to `settings.accentColor` as a string
2020-06-23 20:49:29 +01:00
Kevin Ansfield
eee84ab5f7 Added first pass bulk members delete confirmation and results display
no issue

- display a confirmation modal when bulk deleting members
- hit the `DELETE /members/?all=true` endpoint when confirming
- show counts of members deleted/skipped
- fix selection reset when leaving edit mode
2020-06-19 18:14:41 +01:00
Kevin Ansfield
d8270a110c Moved members bulk delete confirmation into a modal 2020-06-19 14:14:39 +01:00
Rish
a7c0899782 🐛 Fixed incorrect save warning on design settings
closes https://github.com/TryGhost/Ghost/issues/11590

- Dirty attribute flag was set incorrectly on focus out from label/url fields as no check with existing was used
- Checks against existing nav item value before setting dirty attribute on focus out
2020-06-18 17:46:18 +05:30
Kevin Ansfield
34c28dcc0e Added rough "edit mode" for members table behind dev flag
no issue

- initial UI for bulk-selection, focusing for now on first stage which is limited to select-all and delete actions
- adds "Edit" button to the members table that shows the "selection" toolbar in place of the table header and shows a checkbox next to each member
2020-06-18 11:08:53 +01:00
Kevin Ansfield
16f4b1c9af Added all/free/paid filter to members admin screen (#1600)
requires https://github.com/TryGhost/Ghost/pull/11892

- adds `?paid` query parameter to members route that is tied to the `?paid` query param in the API request
- added all/free/paid members dropdown to members filter component
2020-06-12 12:12:27 +01:00
Kevin Ansfield
8f5ccfe401 Fixed missing rename of <GhMembersFilter> in members.hbs 2020-06-09 23:22:43 +01:00
Kevin Ansfield
758f5285fb Added access level filter to posts and pages lists in admin
no issue

- adds `visibility` query param to posts and pages controllers/routes that is tied to the `filter` query param used in API requests
- adds dropdown for selecting post/page visibility to `<GhContentFilter>`
2020-06-09 12:19:40 +01:00
Kevin Ansfield
cc4e02c938 Fixed delete-tag modal showing unexpectedly
no issue

- there was a race condition when deleting tags...
    - the delete tag modal's `close` action toggles the `showDeleteTagModal` property to `false`
    - the `deleteTag` action triggered when clicking the delete button was transitioning to the tags screen
    - if the transition occurs before the close action is triggered, the modal component is destroyed and it's close action is never triggered leaving the `showDeleteTagModal` property on the controller set to `true`
    - the next time the tag screen is accessed the delete tag modal is displayed because the `showDeleteTagModal` property is `true`
- adds an explicit reset of `showDeleteTagModal` after a tag is successfully destroyed
- makes open/close of the delete tag modal explicit actions so there's no ambiguity when toggling
2020-06-09 10:15:28 +01:00
Rish
958bb65308 Added site domain for default from address
refs https://github.com/TryGhost/Ghost/issues/11414

- Appends blog domain as default for from address members setting
- Disabled update button when current from address is same as in field
2020-06-09 11:14:53 +05:30
Rish
a40706ed28 Updated fix for staff user edit button using task button property
refs TryGhost/Ghost#11789

- Reverted 28fbc341af as we want to handle the state with css props instead of relying on specificity
- Updates fix for change password button on staff user edit screen to use task button props - 28fbc341af
2020-06-08 19:54:48 +05:30
Kevin Ansfield
7ac7e73a05 🐛 Fixed members list not refreshing after adding yourself
no issue

- passed in the `refreshData` action to the `<GhMembersNoMembers>` component and called it after creating the member
- converted `<GhMembersNoMembers>` to a glimmer component
2020-06-05 08:50:20 +01:00
Kevin Ansfield
142f322338 Switched per-user custom views to shared custom views
requires fdeb7daf40

- swapped to using settings model for storing custom views instead of user accessibility field
- added conditional that checks current user is an admin/owner when displaying the manage custom views button in the content filter (only admins/owners can edit settings model)
  - passed `session.user` into the `<GhContentFilter>` component as an argument so that the conditional getter doesn't need to handle async user access
- fixed no-shadow linting error in settings service
2020-06-04 21:30:06 +01:00
Rish
68854e5358 Removed redundant auto reset for amp
no issue

- Auto reset is on by default, this got missed in last commit
2020-06-04 19:25:42 +05:30
Rish
85d1775608 Removed redundant reset value for task buttons
no issue

- Since task buttons by default have reset on now, we don't need to explicitly add it to individual buttons
2020-06-04 19:23:59 +05:30
Fabien 'egg' O'Carroll
c4135d0b10 Added Stripe Connect UI (#1586)
no-issue

- Rendering is conditional on `stripeDirect` config being false.
- CSS downloaded from https://stripe.com/newsroom/brand-assets
- `stripe_connect_integration_token` is the setting to _set_ the
  stripe_connect_integration setting
2020-06-02 13:58:43 +02:00
Kevin Ansfield
147943f3a3 Fixed members list/chart not updating after members import
no issue

- move members loading code into `members` controller so that it's more accessible to other areas of the app
- add `refreshData()` to the `members` controller which forces members list and stats to be re-fetched
- call `members.refreshData()` after successful upload of members import file
- store range/days in `membersStats` service so that it's remembered across refreshes and component renders
2020-06-01 15:48:46 +01:00
Kevin Ansfield
9942fb337e Improved performance of members admin screens
no issue

- removes the "old" members screens
- swaps route names and links to point at the new members screens that were behind the experiments flag

Why are the new screens faster?

- only loads 50 members at once rather than every member in the database
- loads pages of members in as-needed whilst scrolling
- fetches member stats from the API rather than calculating locally
- caches members list and stats data for 60 seconds to avoid re-fetching when navigating to/from the members list
- moves search and filtering duties to the API rather than calculating locally
2020-05-28 13:35:53 +01:00
Kevin Ansfield
a76465b5ee Fixed columns resizing whilst scrolling members list
no issue

- the members list uses occluded rendering to keep scrolling performance high but this will cause constant reflows of the table contents whilst scrolling because contents are swapped in and out causing the browser to adjust the column widths to match longest/shortest content in the currently rendered set of rows
- applying `table-layout: fixed` to the table means that columns will always match the sizes defined by the first row of the table (in this case the header) ensuring that there is no dynamic resizing whilst scrolling
2020-05-28 12:59:34 +01:00
Kevin Ansfield
ff33eb978b Added server-side search to new members screen (#1582)
requires https://github.com/TryGhost/Ghost/pull/11854

- ties the search input on the members screen to a `?search` query param, debounced at 250ms to avoid unnecessary API requests and UI churn
- updated the members route's `model` hook to pass through the search param in the API request query parameters
2020-05-28 10:15:17 +01:00
Kevin Ansfield
16d34725af 🐛 Fixed members import not showing upload modal
no issue

- template was not renamed correctly in a758d99dc7
2020-05-26 15:49:48 +01:00
Kevin Ansfield
8c19ea9cf9 Updated <GhMembersChart> to fetch stats from the API
no issue

- added mocked API for `/admin/members/stats/` that generates random data for the chart
- re-architected `<GhMembersChart>` to fetch data from the API rather than calculating stats from all members loaded in memory
- enabled mirage in development so that the chart can be tested before the live API is ready
2020-05-22 17:58:45 +01:00
Kevin Ansfield
3a6550b7c4 Linked label dropdown in members screen to paginated list loading
no issue

- moved model loading back into the route
- updated model loading to refresh correctly when `label` query param changes
- fixed infinite loading/"no members" display in members list by using the `members.loading` property that `ella-sparse` gives us (previously we'd never leave the loading display because `this.members.length` would be 0)
- changed the members nav link to reset query params only if it's clicked whilst on the members screen - matches posts/pages behaviour and lets you navigate without having to re-enter your filter/search
2020-05-22 17:58:45 +01:00
Kevin Ansfield
7e7bca7ff0 Added loading state for member list rows
no issue

- with the sparsely loaded list you can scroll to an area which is being loaded in the background
- if a list row is being loaded, display a "loading" version of the row so it doesn't look like you're stuck on a blank screen
2020-05-22 09:31:17 +01:00
Nazar Gargol
5d59670ac3 Fixed browser URL syncronization with embeded iframe state
no issue

- Opted in to use explicit `hisotry.replaceState` and setting iframe's `src` using assignment instead of tracking it through computed property. This allows for tighter control over when iframe's history is updated which was causing problems when `src` was bound to computed property
- Added billing page metadata. This way browser history records appear with nicer signature
- Removed "update button" iframe and rewrote "global iframe" to not use modals. This allows to have single iframe on a page, which simplifies `postMessage` communication and preserve history inside iframe to be able to navigate it after closure
- Added route change handler responding to BMA app route changes. Allows to sync browser URL visible to the user with active route in BMA iframe. The sync is based on `hisory.replaceState` method that makes sure singular history records are kept in the browser history
- Added nested wildcard billing route. This is meant to catch all the nested routes inside of BMA iframe
2020-05-22 14:44:37 +12:00
Kevin Ansfield
5a1b3d90fb Updated members list to use paginated loading
no issue

- disabled members search/filter/chart as they won't work without all members loaded into memory (they will be added back later)
- added `ember-ella-sparse` to handle a sparse array of members
- updated `fetchMembersTask` to return a sparse array instance
- updated components that work on a `member` instance to use `.get` because all items in a sparse array are proxy objects
- changed list loading behaviour to not refresh the list from the API unless the client-side list is more than a minute old - allows for much snappier nav between list and details screens
2020-05-20 16:39:32 +01:00
Kevin Ansfield
3cc10bfa83 Updated members routes/controllers with Octane idioms
no issue

- ran [`ember-native-class-codemod`](https://github.com/ember-codemods/ember-native-class-codemod) on members-related files
- updated files to remove need for `@classic` decorator where possible
    - switched to tracked properties
    - removed usage of `this.get/set/toggleProperty` etc
- swapped usage of `{{action 'foo'}}` for `{{this.foo}}`
2020-05-20 16:39:31 +01:00
Kevin Ansfield
a758d99dc7 Swapped duplicated members files from -dev to -old
no issue

- allows continued development on the "original/non duplicated" files to better preserve git history once the `-old.*` files are deleted
2020-05-20 16:39:31 +01:00
Peter Zimon
4f2ed1bcec Removed test email function from Labs
no refs.
- removes leftover test email section from Labs to resolve a lot of confusion around it
2020-05-20 11:34:56 +02:00
Kevin Ansfield
598a327d6e Duplicated members screens for development experiments
no issue

- members screens will be undergoing heavy development to change how underlying data loading works
- duplicated all related screens and components so that development can occur behind the `enableDeveloperExperiments` flag without breaking the existing screens
- added "Members (dev)" link to the duplicate screens in nav bar when `enableDeveloperExperiments` is on
2020-05-19 16:18:30 +01:00
Kevin Ansfield
09435ecf76 Co-located component template files
no issue

Keeps component JS backing files and template files in the same directory which avoids hunting across directories when working with components. Also lets you see all components when looking at one directory, whereas previously template-only or js-only components may not have been obvious without looking at both directories.

- ran [codemod](https://github.com/ember-codemods/ember-component-template-colocation-migrator/) for app-level components
- manually moved in-repo-addon component templates in `lib/koenig-editor`
- removed all explicit `layout` imports as JS/template associations are now made at build-time removing the need for them
- updated `.embercli` to default to new flat component structure
2020-05-18 13:14:08 +01:00
renovate[bot]
fe96ce7915 Update dependency ember-infinity to v2.1.2 (#1573)
* Update dependency ember-infinity to v2.1.2
* updated gh-infinity-loader template to match ember-infinity default template

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-05-18 09:06:04 +01:00
renovate[bot]
654d373655 Update dependency ember-power-select to v4 (#1528)
* Update dependency ember-power-select to v4
* Fixed trigger component override collision when building

- move the "override" into our own namespace
- update all `<PowerSelect>` usage to explicitly reference our customised trigger component

* Bumped ember-power-datepicker

- bumps `ember-basic-dropdown` sub-dependency
- resolves "Error: Could not find module `ember-compatibility-helpers` imported from `@glimmer/component/index`"
- https://github.com/cibernox/ember-basic-dropdown/issues/551

* Updated trigger to use class syntax

- it's not possible to use `.extend()` on an imported class

* Updated <GhBasicDropdown>

- match updated ember-basic-dropdown code

* Added `autofocus` modifier

- added `ember-modifier` dependency so that we can create our own render modifiers

* Updated <GhSearchInputTrigger> to a glimmer component

* Updated gh-token-input components

* Fixed tests

- wrap `<PowerSelect>` with `<div>` to maintain test selectors
- fixed `<GhBasicDropdown>` not rendering anything due to not having a local template

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2020-05-17 22:35:53 +01:00
renovate[bot]
29a388ad27 Update dependency ember-infinity to v2.1.1 (#1484)
no issue

- fixed template reference
- updated template to match upstream's use of render-modifiers
- removed silencing of `isVisible` deprecation

Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-12 09:05:17 +01:00
Kevin Ansfield
07f24e69f6 Reduced unnecessary waiting in tests
no issue

- fixed `<GhTaskButton>` not resetting after an externally triggered task run such as when pressing Cmd+S
- cleaned up manual timeouts/resets where button reset is now fully handled by `<GhTaskButton>` (these were causing 2.5s waits each time a save occurred in acceptance tests)
- where manual timeouts were required, reduce testing time from >2.5s to 50ms
2020-05-11 11:37:35 +01:00
Liam Williams
06531daf85 🐛 Fixed unselectable routes files in macOS Safari (#1472)
closes TryGhost/Ghost#11472

- adds an explicit `.yaml` to the `accepts` attribute of the routes file uploader to work around Safari only allowing `.yml` to be selected when given the yaml mime type
2020-05-08 12:05:55 +01:00
Kevin Ansfield
a30f0b2851 💄 Adjusted email previews to better represent email behaviour of embed cards (#1554)
no issue

- added `sandbox` attribute which blocks scripts from running inside the iframe
- results in better representation of how embeds will render in emails where scripts are not allowed
2020-05-08 11:54:18 +01:00
Kevin Ansfield
b5e5469410 🐛 Fixed autofocus on password reset screen
no issue

- autofocus was running on both inputs so the "confirm" input was winning out
- updated copy
2020-05-07 10:33:27 +01:00
Rish
141be13315 Fixed typo in regenerate modal
no issue
2020-05-06 12:48:20 +05:30
Rish
6b90aafd20 Added regenerate copy tweak for internal Zapier integration
no issue

- Updates dialog copy for confirmation of regenerating internal Zapier integration admin key
2020-05-06 12:36:43 +05:30
Peter Zimon
ae1afac049 Added tooltips for regenerate buttons
no issues.
- added tooltip for icon-only regenerate button in custom integrations and Zapier details screen so that users understand what the button does
2020-05-06 09:02:39 +02:00
Rishabh Garg
2b961df4cb Added regenerate button to integration api keys (#1562)
no issue

- Adds new regenerate button for refreshing custom integration's admin and content api keys
- Adds new regenerate button for refreshing internal Zapier integration's admin key
- Regenerates content or admin API key after confirmation and shows user new key
2020-05-05 23:44:45 +05:30
Peter Zimon
b6aa2ff41f Fixed copy for password reset instructions
no issues.
2020-05-05 15:58:56 +02:00
Peter Zimon
39addff34f Added special view for "locked" users when they fail signin (#1561)
refs https://github.com/TryGhost/Ghost/pull/11790

- After user fails to signin due to "locked" being locked a new view with automatic email message and more instructions will be shown to make the password reset process easier.
- Refined instructions screen
- Added icon + animation
- Refined copy

Co-authored-by: Nazar Gargol <nazargargol@gmail.com>
2020-05-05 23:27:19 +12:00
Kevin Ansfield
76cbdbaee7 🐛 Improved scrolling of members screen in Firefox
refs https://github.com/TryGhost/Ghost/issues/11755

- adjusted estimated height to match actual rendered size and enabled `staticHeight` to switch to a simpler algorithm inside vertical-collection
- prevents some jank seen when scrolling where rows jump
2020-05-01 18:17:47 +01:00
Peter Zimon
21f7013c38 Set auto reset for impersonate copy link button
no issue.
- updated copy link button in member impersonate modal to auto reset after clicked so that people understand they can click the button again plus it's consistent with all other task buttons
2020-04-27 16:49:15 +02:00
Rish
08458f74a9 💄 Added reset behavior for test email newsletter button
no issue

This change adds auto-reset behavior to test email newsletter button by resetting it to default state - "Send test email" - after sending an email newsletter. Previously the button stayed in "Email sent" state after sending email which can be misleading when trying to send another test mail.
2020-04-27 11:39:18 +05:30
Kevin Ansfield
9074181461 Fixed publish menu button state not reverting
closes https://github.com/TryGhost/Ghost/issues/11757

- add `autoReset=true` option to task button so that success buttons after switching publish menu state will reset after a few seconds
2020-04-23 19:51:19 +01:00
Naz
d691b15f82 Added handling for /billing route with query param passing to BMA (#1551)
no issue

- This change allows to open BMA popup using external link and pass in information using query parameters. Main use case being redirects from external sites
2020-04-22 15:35:56 +12:00
Rish
cd832a15bb Fixed members loading spinner alignment
refs https://github.com/TryGhost/Ghost/issues/11755

Loading spinner on members screen was not vertically centered, this updates the spinner position.
2020-04-21 13:42:34 +05:30
Nazar Gargol
4d23d0f0ca Added billing "update" CTA button
no issue

- Added billing update button to navigation menu. Ghost-Admin communicates with billing iframe and displays this button based on the plan data that iframe returns
- Ghost-Admin communicates with an iframe using same mechanism as with token exchange - throu `window.postMessage` API
2020-04-21 18:54:29 +12:00
Peter Zimon
e6998afb40 Icon fixes on integrations night shift
refs. https://github.com/TryGhost/Ghost/issues/11342

- replaced Zapier and Amp logos for SVGs with transparent background so that there's no white background in night shift
- inverted Unsplash icon in night shift (similarly to Mailchimp, Typeform etc.)
- replaced ellipsis icon for SVG and handled night shift color change
- removed unnecessary icon container drop shadow in integration detail pages for night shift
2020-04-20 17:51:56 +02:00
Nazar Gargol
11e59e1f7e Moved billing page to a popup
no issue

- To simplify styling and give a better separation feeling from UI perspective
2020-04-09 17:26:11 +12:00
Rishabh Garg
c3883d4c6f 💄Updated save buttons to reset state (#1522)
* Updated save buttons to reset state

no issue

Currently the save buttons across Admin don't auto-reset to idle state after success/failure on run which can give false impression once user changes any value. This PR auto-resets the button to idle state after a fixed timeout if no subsequent action is performed as a short term UX improvement.

* Fixed success check for auto reset

* Updated timeout value

* Added explicit save button reset for pages

* Updated save buttons to reset via shortcut

Auto-reset for save buttons wasn't working if not done through manual click on task button previously, this handles by splitting the original save task in controller to handle shortcut saves.

* Updated reset check for only successful tasks

* Added save reset to code-injection and design settings

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2020-04-06 16:17:28 +05:30
Peter Zimon
7678c410f5 Updated suspended badge for staff list
Displaying the role of suspended staff users is misleading, giving the false impression that those users still have access to the publication.

no refs.
- updated label to "Suspended" for all suspended staff user
2020-03-05 12:12:09 +01:00
Peter Zimon
0b5b93376e Fixed arrow position bug on tags list
no refs.
- fixed size issue for arrow cell on tags list screen in Firefox
2020-03-05 11:36:35 +01:00
Nazar Gargol
1c9a4399e0 Added support for setting custom currency on member's plans
refs c0512e30bb

- Adds a dropdown allowing to select and set custom currency.
- At the moment we don't have a specific way to interface with the members configuration API so all values are set directly on existing "config JSON". Ideally we should add more validations and be more precise what values can be set for the `stripeProcessor.config.*` values.
- Saves selected currency in `stripeProcessor.config.currency` variable.
2020-03-04 13:31:39 +08:00
Fabien O'Carroll
ee4c1fc927 Added billing route and iframe behind config
no-issue

* Updated the iframe src

* Moved billing behind config

* Transition to home route for missing billing config

* Replaced jquery element selection with native
2020-03-02 10:36:54 +05:30
Peter Zimon
95fed28028 Refined members list mobile styles
no refs.
- fixed mobile styles for members list to comply with locaiton info
2020-02-27 16:32:32 +01:00
André Borud
377084a60d 🐛 Fixed redirect to posts list when deleting a page (#1486)
no issue

- success routine when deleting a post/page was not taking into consideration the type of record being deleted
  - deleting a post should keep previous behaviour of redirecting to posts list
  - deleting a page should redirect to the pages list
2020-02-27 15:19:31 +00:00
Peter Zimon
74b5327dbe Member geolocation design refinements
no refs.
- refined copy and styles for member list
- added geolocation data for member detail screen
2020-02-27 15:14:26 +01:00
Kevin Ansfield
de70ef1e25 Fixed template error 2020-02-27 13:00:57 +00:00
Kevin Ansfield
13a9a2802b Added member's geographic location to admin
no issue

- added `geolocation` attribute to member model with json-string transform
- prevent geolocation from being sent back to the API in member serializer
- add "Location" column to members list
  - if country is "US" then display "{State}, US" otherwise show full country name such as "United Kingdom"
  - displays "-" if no geolocation data has been collected for the member
2020-02-27 12:56:26 +00:00
Kevin Ansfield
b5d560750f Refactored <GhMemberAvatar> to glimmer component
no issue

- cleaned up property access in template to differentiate between passed-in args and component-defined properties
- tidied up logic in `backgroundStyle` and `initials` getters
2020-02-27 12:33:33 +00:00
Kevin Ansfield
ab8334dae2 Refactored <GhMembersListItem>
no issue

- switched to using a glimmer component
  - cleaned up property access in the template
  - used helpers for basic display logic in the template
- removed unused computed properties, aliases, and injected services
2020-02-27 12:17:48 +00:00
Peter Zimon
4b5f538552 Updated notifications design (#1498)
no issue

- updating toaster design for better discoverability
2020-02-27 09:19:29 +00:00
Naz
ff4fd2fc9a Added member impersonation (#1497)
refs b0ff1e7cac

- Adds "impersonate" button which would be triggering a popup window with "login url" that allows to log in as a member
2020-02-27 11:50:15 +08:00
Nazar Gargol
ed14ffed02 Hidden subscriptions section on member profile when no connected Stripe
no issue

- There is no way to turn on "Complimentary" subscription when Stripe is not connected
- There is no constructiove information that can be shown about subscriptions
2020-02-24 17:08:47 +08:00
Rishabh Garg
fa577adcdb Updated send email messaging for Editors (#1505)
no issue

Fixes incorrect member count for Editors when trying to publish/schedule post with send email.

Note: This is a short-term fix till we fix fetching member data for Editors for proper count.
2020-02-24 13:22:39 +05:30
Rishabh Garg
491c5abdc9 Allowed editors to send email on publish (#1504)
no issue

So far, only owners or Admins were allowed to control the send email setting while publishing/scheduling a post. This change allows Editors to see the setting as well and toggle as needed.

No changes on the API side were needed.
2020-02-24 12:20:29 +08:00
Peter Zimon
b0b01acd03 Updated style definition for staff dropdowns
no refs.
- updated style for staff dropdown to make it generic for reuse
2020-02-21 10:20:08 +01:00
Nazar Gargol
13d9611b4c Enabled editing email field on member profile page
refs b9db9fa15e

- Now that Admin API allows to edit email, there is no reason to keep this field disabled
2020-02-21 16:12:35 +08:00
Peter Zimon
64e4ea16e4 🐛 Fixed visual bug for members label dropdowns
no refs.
- fixed spacing issue for member label dropdown edit icon
- added max width to member label dropdown
2020-02-14 12:39:36 +01:00
Rishabh Garg
d115204d9f Added labels for Members (#1477)
no issue

refs TryGhost/Ghost#11538

* Added members label handling v1

* Added members label dropdown in list screen

* Updated selected labels and member list UI refactor

* Added v1 label add/delete modal

* Added add label modal v1

* Fixed disabled check for new label save

* First stab at member filters layout

* Updated member detail screen design

* Member detail refinements

* Added basic editing for member labels

* Fixed label deletion from members list

* Updated filtered list header

* Refinements for dropdown and empty filter state

* Refined label modal

* Updated member labels fetch logic

* Added custom dropdown component for labels

* Refined style for dropdown

* Refined dropdown button

* Restructure and refine members dropdown styles

* Added selected indication to dropdown

* Fixed dropdown footer style

* Removed member label placeholder

* Removed add label from member list actions

* New label refinements

* Added confirmation modal for label delete

* Added duplicate validation check for labels

* Updated validation check with slug

* Updated copy

* Updated actions dropdown copy

* Fixed visual glitch of dropdown on FF

* Hide scrollbar for labels dropdown

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2020-02-14 15:04:01 +05:30
Peter Zimon
a376219453 🐛 Fixed visual bugs on integration details screen
no refs.
- fixed misalignment of icon container and icon
- fixed icon color for "Copied" link status indication
2020-02-12 09:33:27 +01:00
Peter Zimon
441146d316 🐛 Style fix for custom views
no refs.
- fixed misalignment of expand button for site custom views
2020-02-10 16:05:57 +01:00
Peter Zimon
4ce559a169 Updated staff delete modal copy 2020-02-10 12:41:35 +00:00
Peter Zimon
fc46a97b18 Updated copy 2020-02-10 12:41:35 +00:00
Peter Zimon
0382ea7336 Added note about site backup to delete popup 2020-02-10 12:41:35 +00:00
Nazar Gargol
f42f2a29a3 Rewrote delete into generator function
- Wasn't necessary, but thought this might fix the problem when there's no 'meta' in the reponse object
2020-02-10 12:41:35 +00:00
Nazar Gargol
21aaf7a46a Renamed members subscribed flag label
no issue

- This change comes to keep the name consistent to the naming used in the CSV import file - `subscribed_to_emails`
2020-02-04 13:27:51 +08:00
Kevin Ansfield
a3c71b8ba8 Fixed query params not resetting when deleting a custom view
no issue

- added a `transitionTo` after deleting a custom view that transitions to the `posts` route with default query params
- refactored `reset-posts-query` helper to a more generic `reset-query-params` helper
  - moved default query params definitions to this helper and expose them so we have a single source of truth
  - exposed `resetQueryParams()` function from the helper for use outside of templates
  - adjust the function and helper behaviour to accept the route name as the first param so that `router.currentRouteName` can be used as a generic reset
2020-02-03 16:38:14 +00:00
Peter Zimon
2c137f0b38 Refined sidebar view icons
no refs.
- replaced icons for custom views for circles so it's more scannable
2020-02-03 14:45:18 +01:00
Kevin Ansfield
2226861e17 🐛 Fixed deletion of custom integrations
no issue

- the named arguments for the `<GhTaskButton>` in the integration deletion modal were missing the `@` prefix
2020-01-30 16:48:37 +00:00
Kevin Ansfield
2a77c0fe51 Added default and custom post views (filters) to the admin sidebar (#1474)
no issue

- list custom post views in collapsable sidebar navigation
  - default views: Draft, Scheduled, Published (except for contributors)
  - record expanded/collapsed state of the navigation menus in user settings via new `navigation` service
- adds `customViews` service that manages custom views
  - provides list of default views
  - gives access to "active" custom view based on current route and query params
  - manages loading/saving of custom views to user settings
- show "Add view" button in the content filter when the posts list has been filtered
- show "Edit view" button in the content filter when the posts list filter matches a saved view

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2020-01-30 15:35:36 +00:00
Naz Gargol
76c1341666 Added "Complimentary" plan toggle (#1476)
refs TryGhost/Ghost#11537

- Adds support for "Complimentary" plan toggle only when editing an existing member. The same functionality for adding a new member was left out intentionally for simplicity sake. 

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2020-01-28 11:27:19 +07:00
Kevin Ansfield
1e77a4c915 Removed <GhDownloadCount>
no issue

- the count.ghost.org service is being shut down
- replaced the fetch+poll component with a hardcoded figure
2020-01-27 09:51:45 +00:00
Rish
32cceb8a54 Fixed members chart dropdown style
no issue

We switched to angle bracket syntax and some PowerSelect properties were not properly auto configured here which enabled search box on members chart range dropdown
2020-01-23 13:46:37 +05:30
Peter Zimon
d2ac367371 🐛 Fixed button style for staff creation
no refs.
- Fixed Create button being visually detached and incorrect size on the Create (staff) account screen
2020-01-21 12:14:35 +01:00
Kevin Ansfield
d873f929e1 Changed content filters to show "unknown" if a deleted tag/author is selected
refs https://github.com/TryGhost/Ghost-Admin/pull/1474

- show some indicitive text rather than a blank dropdown button when type/author/tag/order query param is present but doesn't match something in our data sets (eg, if a tag/author has been deleted or a query param has been incorrectly typed)
2020-01-20 15:40:32 +00:00
Kevin Ansfield
2231dd84c2 Migrated to <AngleBracketSyntax /> (#1460)
no issue

Ember is migrating to `<AngleBracketSyntax />` for component invocation, see https://github.com/emberjs/rfcs/blob/master/text/0311-angle-bracket-invocation.md

We were in a half-way situation where some templates used angle bracket syntax in some places, this PR updates templates to use the syntax everywhere.

This simplifies the rules for what template code is referring to...

`<Component>` = a component
`{{helper}}` = a helper (or locally assigned handlebars variable)
`{{this.foo}}` = data on the template backing context (a component/controller)
`{{@foo}}` = a named argument passed into the component that the component backing class has not modified (note: this commit does not introduce any named arguments)

- ran codemod https://github.com/ember-codemods/ember-angle-brackets-codemod on the following directories:
  - `app/templates`
  - `lib/koenig-editor/addon/templates`
- removed positional params from components as angle bracket syntax does not support them
  - `gh-feature-flag`
  - `gh-tour-item`
  - `gh-cm-editor`
  - `gh-fullscreen-modal`
  - `gh-task-button`
- updates some code that was missed in 3c851293c1 to use explicit this
2020-01-16 15:14:03 +00:00
Kevin Ansfield
0f8610a6e9 Extracted duplicated posts/pages filter into a component
no issue

- posts and pages (and their corresponding `-loading` counterparts) templates were all duplicating a lengthy section of handlebars
- extracted the duplicated handlebars into a template for easier design changes or upgrading of `ember-power-select`
- moved generation of the "selected" CSS classes into the template to clean up code in the controller
2020-01-15 15:15:20 +00:00
Kevin Ansfield
7c7c4962f9 Upgraded ember-power-* addons (#1459)
no issue

- bump deps
- adjust usage for breaking changes... 
  - https://github.com/cibernox/ember-power-select/blob/master/CHANGELOG.md#300-beta1
  - https://github.com/cibernox/ember-basic-dropdown/blob/master/CHANGELOG.md#200-beta3
  - https://github.com/cibernox/ember-power-datepicker/blob/master/CHANGELOG.md#070
- update overridden component and template files to match latest addon code
  - switch to class syntax w/decorators
  - adjust for angle bracket syntax
2020-01-15 13:53:51 +00:00
Kevin Ansfield
f271415626 Enabled manual typing of post publish dates (#1431)
*  Enabled manual typing of post publish dates

closes https://github.com/TryGhost/Ghost/issues/9256

- stores the typed date internally to the component until
  - Enter is pressed whilst focused
  - Ctrl/Cmd+S is pressed whilst focused
  - the input loses focus
- shows an error message if the typed date is not in the correct format or is invalid
- stops Ctrl/Cmd+S propagating if the typed date is not in the correct format or is invalid
- as long as the date is valid it calls the `setDate` action when the input loses focus, Ctrl/Cmd+S or Enter is pressed
- prevents publish being triggered in the publish menu if an invalid date is entered
- resets any invalid state in the PSM when it's closed
- manages focus when using <kbd>Tab</kbd>
2020-01-10 14:25:59 +00:00
Kevin Ansfield
704cbcfb4d Cleaned up unused code in <GhTagSettingsForm>
no issue

- the tag screen is now separate from the index so the code needed for handling switches between main/meta panes and scroll resets is not used and no longer needed
- tidies up indentation in the template
2020-01-10 14:14:55 +00:00
Kevin Ansfield
a862cb6b6a Unsilenced deprecations that are no longer triggered
no issue

- cleaned up the `deprecation-workflow.js` file by removing deprecations that are no longer being triggered by our test suite or general app usage (if they are still triggered in untested areas it will be useful to see the logs)
- updated usages of `{{gh-text-field}}` to use it's `shouldFocus` attribute rather than directly overriding it's `autofocus` computed property
2020-01-09 17:20:13 +00:00
Kevin Ansfield
3c30e73701 Fixed typo in email confirmation modal 2020-01-08 16:44:43 +00:00
Kevin Ansfield
837fdd2609 Fixed incorrect "explicit this" for did-insert and will-destroy element modifiers
no issue

- the "explicit this" codemod incorrectly added `this.` in front of the `{{did-insert}}` and `{{will-destroy}}` element modifiers
2019-12-19 21:19:20 +00:00
Rishabh Garg
d1cf671cbb Added upgrade modal for host member limits (#1428)
no issue

Uses 160ef2976a to add new upgrade popup for host limit errors while publishing/scheduling post with emails.
2019-12-17 19:27:42 +05:30
Rishabh Garg
5a25f83685 Added new brand color publication setting (#1409)
no issue

Reads new brand primary color setting and adds UI to modify/update it behind the dev flag
2019-12-17 16:37:34 +05:30
Rishabh Garg
6a1edceded Added members growth chart (#1424)
no issue

Adds new members growth chart in members list screen to highlight growth of members over different date ranges
2019-12-17 15:59:26 +05:30
Kevin Ansfield
2d507c47b1 Converted <GhErrorMessage> to glimmer component
no issue

- fixes `isVisible` deprecation warning that was showing up for every component invocation since the Ember 3.14 upgrade
2019-12-13 16:12:04 +00:00
Kevin Ansfield
3c851293c1 Ran "no implicit this in templates" codemod
no issue

We were in a part-way state where some touched files had been (sometimes partially) migrated to explicit `this`. The codemod that was available has now fixed the formatting issues it had so it was a good time to run it.

https://github.com/ember-codemods/ember-no-implicit-this-codemod

- part of the migration path for https://github.com/emberjs/rfcs/pull/308
- starts to make template resolution rules more explicit
  - `<MyComponent />` - always a component
  - `{{my-component}}` - component or helper (components _must_ have a `-`. This style of component will go away once fully migrated to angle bracket components)
  - `{{value}}` - a helper or local template variable
  - `{{this.value}}` - reference to a property on the backing context (either a controller or a component JS file)
2019-12-13 14:20:29 +00:00
Kevin Ansfield
7d997d5c2d Fixed member count after deleting a member
no issue

- the member count is automatically calculated via the length of the live members array so there's no need to manually decrement it - if we do manually decrement then the count is off by one because the auto calculation runs to get the new value before the manual decrement
2019-12-13 11:38:37 +00:00
Kevin Ansfield
866d6eae9a 🐛 Fixed unsaved changes modal when using Cmd+S on tag/member screens
no issue

- keep a scratch model on the tag/member controllers rather than inside of the form components
  - allows the controller's `save` task to transfer scratch values to real values before saving
  - means that pressing Cmd+S whilst a field is still focused will save the expected value rather than the old value avoiding unsaved changes modals when trying to leave the screen when you think you've already saved
- fixed route and url not changing after saving a new member
- fixed error when clicking delete tag button
- cleaned up unused `showDeleteTagModal` actions
2019-12-13 11:37:01 +00:00
Kevin Ansfield
56ce6aa824 Tidied up <GhMemberSettingsForm>
no issue

- removed unused `isViewingSubview` property
- replaced `hasMultipleSubscriptions` CP with the `gt` CP macro
- fixed indentation in the template
2019-12-12 18:22:31 +00:00
Kevin Ansfield
5585a781b9 Unified tag and member screen code
no issue

The tag and member screens share the same underlying UI/UX patterns but were using different code patterns. This brings both in line so that we have consistent code patterns that can be re-used for other screens.

- fixed cleanup of new tags by adding the `deactivate` hook to the `tag` route
- updated `member` and `member.new` route/controller setup to match tag route/controller setup
  - added `save` action to member controller so that Ctrl/Cmd+S works on member screen
  - updated tag route/controller to utilise the same instant display w/background refresh when accessing the tag details screen
- completed transition of non-component tag/members templates over to angle bracket component syntax
2019-12-12 13:59:46 +00:00
Naz Gargol
51ded01ed3 Added members cancel subscription fields on members page (#1423)
refs https://github.com/TryGhost/Members/pull/107

- Added 'cancel at period end' logic to members subscription details
- Added stripe subscription link in subscriptions details
2019-12-12 20:00:57 +07:00
Kevin Ansfield
c53e4f9cd7 Fixed tag deletion
no issue

- don't show "Delete tag" button when we're displaying a new/unsaved tag
- refactor the `_deleteTag()` method to be more explicit and remove handling that is no longer required since the tag screen is not nested in the tags screen
- revised the condition in `showUnsavedChangesModal()` method so that it's body doesn't fire twice when leaving the `tag` or `tag.new` route
- revised the `showUnsavedChangesModal()` method body to look at the number of changed properties on the tag rather than relying on `tag.hasChangedAttributes` which is always `true` for new models
2019-12-10 12:18:20 +00:00
Kevin Ansfield
5c0cfca479 Cleaned up and re-organised tag and new tag routes/controllers
no issue

- removed unused `<GhTagsManagementContainer>` component and related `isMobile` CPs
- un-nested `tag` and `tag.new` routes
  - nested routes in Ember are used for nested UI but these are both separate screens
  - removes usage of `selectedTag` property in favour of using Ember's built-in model handling
  - removed unnecessary `tags/new` controller
  - sets up `tag.new` route which extends the `tag` route to avoid duplicate code
2019-12-09 17:44:16 +00:00
Peter Zimon
d0a0e70caf 🎨 Refined new member avatar style
no issue.
- removed outline from manually created member avatar on member detail screen
2019-12-04 11:42:58 +01:00
Hannah Wolfe
00ce91ce3a Added Secondary Navigation (#1410)
refs: https://github.com/TryGhost/Ghost/pull/11409

- Added a new UI for a second set of navigation links
- This should support most concepts of nav, e.g. left and right, or header and footer
- This PR mostly updates the design and nav components to cope with a second set of nav
2019-12-04 11:14:45 +07:00
Naz Gargol
1df0e2b917 🎨 Added gravatars for member avatars (#1417)
no issue

- When an email has a valid gravatar handle it displays an image instead of initials for the member
- Introduces new {{gravatar}} helper which accepts an email as parameter and size/d as named parameters. The output is a URL to gravatar image
- Refactored usage of "splattribute" to explicit property. There was a need to duplicate class property usage in the component and doing that through splatttibute feature is unsafe as pointed ou here - https://github.com/TryGhost/Ghost-Admin/pull/1417#discussion_r351837584
2019-12-03 18:10:47 +07:00
Peter Zimon
137f8eae7c Refined mobile email preview
no refs.
Issue was that the ratio of email mobile preview UI was completely off on higher screen resolutions.

- set the email mobile preview UI to fixed size
2019-12-03 11:18:02 +01:00
Naz Gargol
4bd4825902 Improved adding first members on no-members screen (#1416)
no issue

- There was a need to make the experience of adding a first member(s) as frictionless as possible, which lead to adding some actionable controls to the "no-members" screen.
- Adds the ability to make yourself a member
- Adds the ability to import CSV member
- Link to add a member manually
2019-12-03 12:04:04 +07:00
Naz Gargol
c41c184762 Added member "add" screen (#1411)
no issue

- We have a need to create a member manually, this changeset solves this problem.
- Added new member button to the member's screen
- Needed to be able to perform add member action
- Fixed inconsistent `createAt` naming. All models use consistent `createdAtUTC`, fixed it up so that members model follows the same pattern. If we want to change this pattern should probably happen for all models at once
- Fixed member avatar when creating a new member. If the values are completely empty the screen ends up being filled with empty space. Added some dummy initials which are recalculated once the member enters the name or an email
- Refactored DS naming for consistency. Nowhere else in the codebase 'DS' name is ever used, made this consistent
- Added missing validations in members form
- Simplified if conditions in the member list template. When using the if/esle statements unnecessary new-line symbols were inserted which made it hard to test. Also by using computed property view is much cleaner
- Updated member's model default value for `subscribed` to "true". It is turned on by default in the model layer  on the backend (ref: https://github.com/TryGhost/Ghost/blob/3.1.0/core/server/data/schema/schema.js#L330), this behavior is intended and should be the same on the frontend
2019-11-28 18:30:21 +07:00
Peter Zimon
5674323d2a Removed link to settings for admins in email error copy 2019-11-26 13:38:43 +01:00
Peter Zimon
e866808193 Updated email role restrictions
no issue.
Only admins and owners should have access to sending emails. Updated relevant templates
to restrict access to emails for non-admins/owners
2019-11-26 13:20:49 +01:00
Peter Zimon
727a38d5d1 Updated email copy 2019-11-26 12:10:51 +01:00
Peter Zimon
b06484553f Updated PSM/Email wording 2019-11-25 17:44:50 +01:00
Peter Zimon
8350098e45 Updated post list design for scheduled posts 2019-11-25 17:44:18 +01:00
Peter Zimon
1d78b9a903 Updated email error design in PSM 2019-11-25 17:03:54 +01:00
Kevin Ansfield
a3c17c2757 Added failed state with retry button to PSM email pane
no issue

- follow similar retry-then-poll behaviour as the confirm email modal
2019-11-25 13:20:16 +00:00
Peter Zimon
82ffc5a967 Updated email failure modal with dynamic error 2019-11-22 17:17:29 +01:00
Peter Zimon
5bedffdc00 Removing error box in email failure modal 2019-11-22 16:37:39 +01:00
Peter Zimon
8bf287d81e Refined email status on post list 2019-11-22 16:25:11 +01:00
Kevin Ansfield
c1039f929c Added ability to retry failed emails from the confirm modal (#1412)
no issue

- adds a `.retry()` method to the email model+adapter
- adds a retry email task to the publishmenu that follows the same retry-then-poll behaviour as the regular email confirmation
- show a retry button in the confirm email modal if the original send failed
- increases max "immediate failure" poll timeout to 15sec (an 8sec retry-to-failure time has been seen locally)
2019-11-22 15:09:48 +00:00
Peter Zimon
8be0c78c8e Refined email error modal 2019-11-22 14:31:03 +01:00
Kevin Ansfield
535f50ad9f Show "email failed" state in posts list 2019-11-20 23:37:37 +00:00
Kevin Ansfield
30b23f2a7c Added polling when confirming email to show immediate error
no issue

- when confirming email send, after initial save in, poll every second for a maximum of 10 seconds and check the status of the email
  - if it's `'success'` close the modal immediately
  - if it's `'failure'` switch the confirm modal to an error state
  - if the save fails for some other reason (validation, server error) close the modal immediately and let the normal editor error handling do it's thing
- fixed confirm modal not appearing when retrying a save after a post validation failed
- show email status in post status area
    - `"and sending to x members"` when email is pending or submitting
    - `"and sent to x members"` once email is fully submitted
2019-11-20 23:27:09 +00:00
Peter Zimon
3a8b6f897b Fixed subject for email preview 2019-11-16 13:07:51 +01:00
Peter Zimon
ee4a61b021 Refined mailgun settings in Labs 2019-11-15 14:38:59 +01:00
Kevin Ansfield
a95f8182f8 Swapped baseUrl input for region selection for bulk email settings
no issue

- Mailgun makes it really difficult to find your baseUrl from their UI if you've previously sent emails on a domain
- use a dropdown with flag and region name instead to better match what you can see in their UI
2019-11-15 13:10:45 +00:00
Kevin Ansfield
6fe159c8d9 Updated handling of send_email_when_published
refs 5fd2b7fed1

- sends `?send_email_when_published=true` query param when scheduling/publishing a post with the toggle turned on
  - adds support to the posts adapter for handling the `adapterOptions` option
  - updates the editor `save` task to pass through the required adapter option when a post is being published or scheduled with the toggle checked
- moves state for the email toggle into the publish menu so that we don't try to toggle the model attribute which should only be fetched from the API
- prevent `post.send_email_when_published` being sent to the API via the serializer as it's now a read-only attribute
2019-11-14 17:33:35 +00:00
Kevin Ansfield
f49268c5fa Hid email toggle on scheduled state of publish menu if email already sent 2019-11-14 17:20:53 +00:00
Peter Zimon
8dcf5f8428 Updated copy on email confirmation popup 2019-11-14 18:05:45 +01:00
Peter Zimon
f977d32146 Reorder mailgun settings in labs 2019-11-14 16:05:37 +01:00
Peter Zimon
d5a9465ca5 Design for minimal email stats 2019-11-14 14:30:49 +01:00
Peter Zimon
61f9f6e380 Updated post list 2019-11-14 13:53:43 +01:00
Rish
6a972d8b9e Wired admin bulk email settings UI to read/write setting
no issue
2019-11-13 22:38:16 +05:30
Kevin Ansfield
3d1962622b Added "View email" button to view already-sent email
no issue

- refactored `renderEmailPreview` into separate fetch and render functions
- grab email info from an existing email resource if it exists on the post rather than fetching a preview
- added "View email" button the the email-sent state of the newsletter settings PSM section
2019-11-13 16:38:32 +00:00
Kevin Ansfield
11dc0f553b Fixed tests 2019-11-13 16:10:29 +00:00
Peter Zimon
dc9ad61bc7 Updated scheduled publishmenu to display email setting 2019-11-13 15:36:54 +01:00
Peter Zimon
e56b10a728 Remove GhScheduledPostCountdown component 2019-11-13 15:33:57 +01:00
Peter Zimon
f5dd75e2e5 Updated post status in editor 2019-11-13 15:31:42 +01:00
Kevin Ansfield
7351a962b7 Fixed email subject field not being disabled if mailgun is not configured
no issue

- changed `disabled=deliveredAction` to `disabled=mailgunError` so that it's switching on the correct property
- removed all references to the unused `deliveredAction` property
2019-11-13 11:17:36 +00:00
Kevin Ansfield
74cbcad362 Use logged-in-user's email as the default test email address
no issue

- removed unnecessary scratch value handling for a non-model property
- use [`oneWay`](https://api.emberjs.com/ember/release/functions/@ember%2Fobject%2Fcomputed/oneWay) to bind the logged in user's email address to the `testEmailAddress` property on the component - this allows for the default value to always be the logged in users email but changing the property value only changes the value on the component, not upstream on the user model
- use default two-way binding of the `<Input>` helper to avoid unnecessary boilerplate
- removed unnecessary usage of the `truncate` helper for the placeholder
2019-11-13 10:52:09 +00:00
Kevin Ansfield
3daf46dcf8 Display "all paid members" instead of incorrect count in email confirm modal 2019-11-13 10:17:00 +00:00
Kevin Ansfield
875e495728 Fixed email icon not showing for scheduled posts in posts list 2019-11-11 10:37:44 +00:00
Peter Zimon
829702db84 Refined email icon on post list 2019-11-08 17:17:37 +07:00
Kevin Ansfield
682c5e4190 Display basic info in PSM once an email has been sent 2019-11-08 17:07:47 +07:00
Peter Zimon
43feb624b7 Updated tag for email icon in post list 2019-11-08 16:50:07 +07:00
Peter Zimon
8532c13a12 Updated copy for scheduled posts 2019-11-08 16:46:10 +07:00
Peter Zimon
8c55d57593 Added link to mailgun domain 2019-11-08 16:46:10 +07:00
Kevin Ansfield
35b13abb98 Show email icon in posts list 2019-11-08 16:44:56 +07:00
Kevin Ansfield
1d79a1f191 Fix missed wording change from merge conflict 2019-11-08 16:17:36 +07:00
Kevin Ansfield
2777856a29 Extracted PSM email settings into separate component 2019-11-08 15:56:56 +07:00
Peter Zimon
d6ad183948 Refined post status and email warning copy 2019-11-08 15:38:25 +07:00
Peter Zimon
9127c72df4 Refined member detail copy 2019-11-08 13:37:28 +07:00
Peter Zimon
aabbbdc858 Updated PSM copy 2019-11-08 13:19:19 +07:00
Peter Zimon
bd214fbf1d Refined publish menu 2019-11-08 11:46:45 +07:00
Rish
f74060b08b Removed subdirectory from blog host in email setting field
no issue
2019-11-07 17:47:34 +07:00
Peter Zimon
25237a2d6d Refined mailgun warning 2019-11-07 17:14:08 +07:00
Kevin Ansfield
f23703c8b0 Fixed scrolling and hid scrollbars in email preview 2019-11-07 17:11:53 +07:00
Kevin Ansfield
0c0da3813e Added confirmation modal and use email model in place of action 2019-11-07 15:56:41 +07:00
Peter Zimon
71ded80e8c Refined disabled states more 2019-11-07 15:49:49 +07:00
Peter Zimon
48449ee222 Refined disabled states and copy 2019-11-07 15:32:29 +07:00
Peter Zimon
e5271b534d Styled disabled email checkbox 2019-11-07 13:21:23 +07:00
Rish
2aa781eef1 Added error for incorrect mailgun config in publish and settings menu 2019-11-07 12:44:37 +07:00
Peter Zimon
04d1efac5f Refined members email settings 2019-11-07 11:47:29 +07:00
Rish
ae39e79ce7 Revert "Added preview modal toggle in publish menu"
This reverts commit 80d58f99cb.
2019-11-07 11:47:16 +07:00
Rish
ea302d66b6 Added mailgun domain to admin settings 2019-11-07 11:32:38 +07:00
Peter Zimon
3838686aa8 Refined email preview in publish menu 2019-11-07 11:32:10 +07:00
Peter Zimon
6dbcf96ab0 Refined styles for test email 2019-11-07 11:20:21 +07:00
Peter Zimon
44819d1fbf Refined email preview 2019-11-07 11:09:55 +07:00
Rish
cec378f6b1 Fixed valid test email check 2019-11-07 10:55:55 +07:00
Rish
80d58f99cb Added preview modal toggle in publish menu 2019-11-07 10:54:26 +07:00
Rish
f98920aa12 Added test email validation in settings 2019-11-07 10:54:04 +07:00
Rish
089174d72b Fixed publish menu input toggle not disabled for 0 members 2019-11-07 10:19:46 +07:00
Rish
18a882e6b0 Added send test email button loading states 2019-11-07 09:58:25 +07:00
Peter Zimon
a436521e4c Minor design refinements 2019-11-06 18:22:57 +07:00
Rish
904114d844 Added email subject to preview modal header 2019-11-06 18:18:37 +07:00
Peter Zimon
df8968f13d Updated member details screen 2019-11-06 18:00:03 +07:00
Kevin Ansfield
03547df97e Fixed send email checkbox label clickiness 2019-11-06 16:06:42 +07:00
Peter Zimon
c32c3ce444 Email preview refinements 2019-11-06 15:58:10 +07:00
Rish
6d0f8984af Disabled email toggle in publish menu if no members 2019-11-06 15:28:40 +07:00
Rish
6b4c430985 Disabled email subject based on delivered action 2019-11-06 15:28:40 +07:00
Peter Zimon
15366dd8b2 Removing sent indicator from publishmenu 2019-11-06 15:08:47 +07:00
Peter Zimon
96cdab64d4 Refined mobile email preview 2019-11-06 12:36:39 +07:00
Peter Zimon
2ef9ade0ae Refined browser preview 2019-11-06 12:07:52 +07:00
Peter Zimon
edef8eb9b0 Updated email settings design in PSM 2019-11-06 11:23:20 +07:00
Peter Zimon
63ed2a27df Updated publishmenu design 2019-11-06 11:01:42 +07:00
Kevin Ansfield
22fa89fea8 Hid email settings in PSM when editing a post 2019-11-05 18:34:10 +07:00
Rish
7faff0993e Hide members mail config setting in admin
no issue
2019-11-05 18:23:27 +07:00
Nazar Gargol
6aa64e77d1 Added subscribed toggle to member profile page 2019-11-05 18:00:07 +07:00
Rish
f6660d9116 Added mail provider API key setting
no issue
2019-11-05 17:26:25 +07:00
Rish
caff822706 Added test preview email to post email settings
no issue
2019-11-05 16:10:24 +07:00
Rish
b23288a41b Added email preview modal flow 2019-11-05 13:10:49 +07:00
Kevin Ansfield
049b2a4949 Fixed unwanted "unsaved changes" modal if changing email toggle without publishing 2019-11-04 17:25:24 +07:00
Kevin Ansfield
e9eb5ab8c6 Display email sent info on published state of publish menu 2019-11-04 16:59:46 +07:00
Kevin Ansfield
d77b059716 Display real member count in publish menu 2019-11-04 16:44:18 +07:00
Kevin Ansfield
56cfbf2cd2 Display "sent" info in publish menu 2019-11-04 16:13:18 +07:00
Kevin Ansfield
6419222f31 Put email post toggle behind members feature flag 2019-11-04 13:38:48 +07:00
Rishabh Garg
7866546fab Added email settings to post settings menu (#1398)
no issue
2019-11-04 13:15:13 +07:00
Kevin Ansfield
ff5f46ae1b Added "email when published" toggle to publish menu 2019-11-04 12:41:38 +07:00
Kevin Ansfield
2b4a3b75d9 Removed "Public API" toggle in Labs screen
no issue

- the v0.1 "Public API" was removed in Ghost 3.0 so the toggle was non-functional
2019-10-29 09:46:59 +00:00
John O'Nolan
af9c4de315 Correct Stripe dashboard URL for members detail 2019-10-24 17:31:55 +07:00
Kevin Ansfield
c7e51059bf Fixed enter in tag screen inputs triggering save (#1381)
no issue

- `{{gh-task-button}}` was used inside a form but didn't have a `type="button"` property which meant the browser was treating it as a submit button and triggering the save action and related animation before the field's focus-out was called resulting in a save request before the scratch value is transferred to the model
- removed the submit action from the `<form>` element to prevent any other accidental triggers before scratch values have been transferred into real model values
2019-10-21 21:03:27 +05:30
Kevin Ansfield
dd94a10890 Prevented enter key submitting misleading member details save request (#1380)
no issue

- `{{gh-task-button}}` was used inside a form but didn't have a `type="button"` property which meant the browser was treating it as a submit button and triggering the save action and related animation before the field's focus-out was called resulting in a save request before the scratch value is transferred to the model
- removed the submit action from the `<form>` element to prevent any other accidental triggers before scratch values have been transferred into real model values
2019-10-21 16:24:57 +01:00
Peter Zimon
5bfe1c2095 V3 css fixes (#1377)
* Fixed Firefox bug for input groups
* Moved from `rem` based responsive styles to `px` based
* Fixed invisible clickable menus for member/user list
* Added responsive CSS for meembers list header
* Updated member list responsive styles
* Fix list header responsive style
2019-10-21 13:09:56 +02:00
John O'Nolan
38482311da Refined copy for members settings 2019-10-21 15:24:50 +07:00
John O'Nolan
3c7e990e59 Corrected members yearly pricing label (#1372)
no issue
2019-10-20 14:14:17 +05:30
Peter Zimon
549fb7193a Dark mode related fixes
no issue

- fixed double border for tags tabs
- refined view action button border
- fixed border for staff avatar
- fixed member avatar label color
2019-10-20 10:41:03 +02:00
John O'Nolan
92df04ac03 Amended Stripe signup link (#1371)
no issue
2019-10-19 18:37:54 +05:30
Rishabh Garg
9926ea8173 🐛 Fixed members count on list page (#1369)
no issue

Members calculation was breaking when viewed on admin without refresh after adding/deleting new members, updated to more robust calculation logic.
2019-10-19 18:06:38 +05:30
Peter Zimon
b8da3ab22f Responsive fixes on tags list screen
no issue
- fixed filter responsive CSS
- fixed list behavior
2019-10-18 14:08:46 +02:00
Peter Zimon
aee7430263 Fixed Stripe info box responsive behavior
no issue
2019-10-18 11:44:45 +02:00
Peter Zimon
e8b423b48d Added input groups with append value
no issue
- members price and email settings share the same pattern now: the uneditable parts of the input value is inside the input
2019-10-16 21:35:06 +02:00
Peter Zimon
dce6e70b59 Added Stripe info to members labs settings
no issue
2019-10-16 19:54:49 +02:00
John O'Nolan
d1a5608755 Refined copy for members settings (#1366)
no-issue
2019-10-16 15:27:46 +07:00
Rish
6b7aef9628 Updated to password input for member settings keys
no issue
2019-10-16 11:45:14 +05:30
Peter Zimon
22c2ce0cf6 Refined member details
no issue
- updated copy for member since date
- added note to note field
- added subscription value to plan data
2019-10-15 16:24:20 +02:00
Peter Zimon
b7f83fad2c Refined member list
no issue
- added list headings
- added active state to search field when it has value
- set position of actions dropdown
- refined avatar typography
2019-10-15 16:11:43 +02:00
Peter Zimon
3cc22b5528 Moved Member settings section to top in labs
no issue
2019-10-15 14:43:22 +02:00
Rish
6b1cd8dc23 Enabled members by default
no-issue

This removes the need for `enableDeveloperExperiments` flag for members
2019-10-14 08:42:04 +05:30
Kevin Ansfield
5502dce4f5 Merge branch 'master' into v3 2019-10-11 13:35:01 +01:00
Rish
2ce07e922b Fixed member section visibility for owner
no issue

Previously we were just hiding the toggle for member section in case of user not being owner. This updates to hide full section in case of non-owner user which is expected behavior
2019-10-11 15:27:24 +05:30
Kevin Ansfield
df4bdf1cf2 Merge branch 'master' into v3 2019-10-11 10:43:38 +01:00
Rish
e90b80822d Renamed member require payment setting
no issue

Renames member setting `requirePaymentForsSignup` -> `allowSelfSignup` to match existing usage in members API
2019-10-11 14:10:37 +05:30
Peter Zimon
079f40611b Updated members Labs settings UI
no issue
- new settings have been introduced for members, switched to expand/collapse UI pattern for members settings
2019-10-11 10:25:52 +02:00
Rish
33de815292 Added members feature toggle for owner only
no issue
2019-10-11 11:34:31 +05:30
Peter Zimon
e5c968c51f Updated member email font weight
no issue
2019-10-10 16:01:38 +02:00
Peter Zimon
1960c3d649 Updated member avatar initial fontsize
no issue
2019-10-10 15:59:21 +02:00
Rish
cb1c851f21 Added unsaved changes check to member details page
no issue

- Adds unsaved changes check to member detail page for write operations
2019-10-10 18:06:33 +05:30
Rish
5a609a785f Enabled write operation for member name and note
no issue

- Allows editing member's name and note in admin
2019-10-10 17:29:35 +05:30
Kevin Ansfield
26c48a52c2 Merge branch 'master' into v3 2019-10-10 10:17:44 +01:00
Rish
641dd35779 Updated subscription data in member details
no issue
2019-10-10 13:54:19 +05:30
Kevin Ansfield
ce7f0bf1ec Merge branch 'master' into v3 2019-10-09 15:06:37 +01:00
Rish
2e01455413 Updated members lab settings design
no issue

- Extracts members lab settings from `Beta Features` section to its own section
- Adds new `fromAddress` field to members settings
2019-10-09 15:33:08 +05:30
Naz Gargol
3aa260f92e Hidden post visibility select from PSM for non editors (#1357)
no issue

- Limited visiblity to only those users who have the rights to edit post's visibility
2019-10-09 10:23:36 +02:00
Kevin Ansfield
3a1bd8f374 Remove duplicated members config from Labs screen 2019-10-08 14:13:19 +01:00
Kevin Ansfield
159e810d5c Merge branch 'master' into v3 2019-10-08 14:04:38 +01:00
Rish
341b23469d Updated members requirePayment flag naming
no issue

Renamed `requirePaymentBeforeSignup` flag to `requirePaymentForSignup`
2019-10-08 16:40:28 +05:30
Rish
b42dcb6da8 Updated members labs section
no issue

- Extracted members feature out of `Beta Features` section to its own
- Added new `requirePaymentBeforeSignup` flag to members settings
2019-10-08 16:25:01 +05:30
Rish
58e11f7b33 Added loading state for member subscription details
no issue
2019-10-07 17:56:32 +05:30
Peter Zimon
285a7ab851 Added empty Stripe info state for member details
no issue
2019-10-05 13:01:43 +02:00
Peter Zimon
8ac7500084 Refined member details screen
no issue
2019-10-05 12:41:47 +02:00
Rish
3974dd5615 Updated member info to show multiple subscriptions
no issue

Displays details of multiple subscriptions of a member
2019-10-04 20:01:56 +05:30
Peter Zimon
b49683127c Refined members import/export design
no issue
2019-10-04 13:55:52 +02:00
Peter Zimon
e542fcbca3 Updated member list and detail wording
no issue
2019-10-04 13:40:10 +02:00
Peter Zimon
9c21f1b60c Refined members import/export button design
no issue
2019-10-04 13:28:10 +02:00
Peter Zimon
523b8e856f Renamed post visiblity dropdown values for posts
no issue
2019-10-04 12:57:58 +02:00
Peter Zimon
d81b39e355 Updated members labs settings layout
no issue
2019-10-04 12:53:32 +02:00
Rish
c3a496fe9f Added csv import/export for members
no issue

- Adds action view with import/export csv options
2019-10-04 15:14:20 +05:30
Rish
a561b6e66e Updated members detail design
no issue

- Fixed bug with incorrect member count
- Added basic stripe info section
2019-10-03 23:17:52 +05:30
Peter Zimon
c3e129c5da Updated member list title copy 2019-10-03 13:59:19 +02:00
Peter Zimon
ce50606529 Updated member details screen design
no issue
2019-10-03 13:46:36 +02:00
Peter Zimon
495663c3c4 Udpated members list design
no issue.
2019-10-03 12:56:31 +02:00
Peter Zimon
a29e687da6 Updated design for Labs/Members configuration
no issue
2019-10-02 14:52:41 +02:00
Rish
4a3fd90017 Updated members list/detail screens base structure
no issue
2019-10-02 17:05:57 +05:30
Naz Gargol
98da7e1f26 Content visibility configuration in labs (#1346)
no issue

- Changed members description to less verbose
- Added content visibility radio options to members configuration screen
- Moved setting of default visibility to server-side
- Default visibility setting when PSM is opened before making the first request to the server
2019-10-02 11:13:59 +02:00
Rish
e49a12cfa0 Updated member detail screen design 2019-10-02 09:30:21 +05:30
Rish
204e10c114 Updated members list screen design 2019-10-02 09:30:21 +05:30
Naz Gargol
cdb87e5112 Added PSM visibility input (#1344)
refs 80f7e0b19e

- Added visibility input in PSM to control content access level for members
- Added default post visibility in editor. To be changed (moved to server-side) once `defaultContentVisibility` is available in settings service
- Added `visibility` property to post model & mirage
2019-10-01 15:00:53 +02:00
Naz Gargol
7e3412ce8e 🔥 Removed all subscriber feature related code (#1337)
refs https://github.com/TryGhost/Ghost/pull/11153

- Removed all subscriber feature related code
- The feature is being substituted by members
2019-09-26 15:58:01 +02:00
Naz Gargol
461adc6244 🔥 Removed publicAPI feature flag related code (#1323)
no issue

- Changes are related to API v0.1 being completely gone and this flag won't be returned from API anywhere anymore
2019-09-13 16:11:37 +02:00
Peter Zimon
4bc9f91392 Added missing class to pages table heading 2019-08-28 11:57:55 +02:00
Rishabh Garg
99a4c1c4c2 🎨 Updated tags screen design and usability (#1283)
no issue

Updates design and usability for tags list and details screen
2019-08-27 19:21:31 +05:30
Kevin Ansfield
9eb9e9f00e Removed unused "active" handling in <GhPostListItem>
no issue

- "active" post list items no longer exist so we can remove the code related to handling the scroll-into-view and style changes
2019-08-27 10:42:27 +01:00
Kevin Ansfield
5225a3d30a Added "What's new" indicator and modal to highlight recent updates (#1292)
no issue

- adds `whats-new` service that fetches the changelog from ghost.org and exposes the latest changelog entries
- trigger a background fetch of the changelog from ghost.org when first loading the admin when logged in, or after signing in
- adds a "What's new" menu item next to the user popup menu
- adds an indicator to the user menu button and what's new menu item if there are unseen changelog entries
- closing the changelog modal will update the "last seen date", clearing both indicators
2019-08-23 10:01:27 +01:00
Kevin Ansfield
32e6567e5b Added global meta data and Twitter/Facebook card settings (#1287)
closes https://github.com/TryGhost/Ghost/issues/10921

- added new fields to settings model
- added "Site meta settings" section to general settings
2019-08-21 16:16:59 +01:00
Kevin Ansfield
457a8e2955 🎨 Added auto-login to private site when viewing site preview in admin (#1286)
closes https://github.com/TryGhost/Ghost/issues/10995

- when first loading the site preview, if private mode is enabled submit the login form in the background to get the cookie before loading the iframe
- refactors post-authentication preloading to ensure it occurs before post-authentication route hooks are called
- adds `showSuccess` attribute to `<GhTaskButton>` so that when set to `false` it can stay in the running state after "success" to avoid state change flashes whilst waiting for a transition
2019-08-12 09:11:10 +01:00
Aileen Nowak
dbb3368921 🔗 Updated docs api links to be version-less 2019-07-25 15:15:31 +08:00
Aileen Nowak
8e1f08f801 Updated links to docs (#1276)
no issue
2019-07-22 16:53:24 +08:00
Peter Zimon
31a3fe7c48 Updated word break for name and email in navbar
no refs.
- fixed the issue that long name and email in left sidebar were breaking into multiple lines
- added title attribute to name and email
2019-07-17 12:33:27 +02:00
Kevin Ansfield
7b3f5deb11 Updated Twitter username in nav menu 2019-07-02 13:13:01 +01:00
Paul Perkins
209c37f6bb Updated links to editor FAQ page (#1245)
closes https://github.com/TryGhost/Ghost/issues/10803

- updated links to editor usage FAQ to point to new location to avoid a redirect
2019-06-24 11:30:49 +01:00
Fabien O'Carroll
9e53fff840 Renamed "Preview site" to "View site" (#1235)
no-issue

Preview implies something which is not-yet-live, but this feature only shows the live site.
2019-06-24 09:07:02 +01:00
Paul Perkins
a4e18e9bfe 🎨 Changed post/page date picker format to 'YYYY-MM-DD' (#1213)
refs https://github.com/TryGhost/Ghost/issues/10767

The use of the date format 'MM/DD/YYYY' is confusing to those not in American English locations. In the absence of being able to dynamically determine full locale data, using 'YYYY-MM-DD' seems to the least ambiguous date format which would be intuitive to most users.
2019-06-24 09:06:39 +01:00
Peter Zimon
208eae6c07 Admin style refinements (#1234)
refs. c51bce7358

* Refine form inputs and button styles
* Refined Forget link and buttons
* Remove green icon success indicator from login screen
2019-06-21 13:52:39 +02:00
Peter Zimon
c51bce7358 🎨 Updated admin area design and usability (#1232)
refs. https://github.com/TryGhost/Team/issues/205

Major update to Ghost Admin UI including:
- improved general consistency (typography, colors and contrast, UI components, icons)
- new design for post and pages lists, improved discoverability of filters 
- search moved to modal
- account menu is decoupled from ghost logo
- further usability fixes
2019-06-18 11:47:20 +01:00
Kevin Ansfield
9116e5cc24 Hid "feature this post" toggle when logged in as an Author or Contributor
no issue
- hides the "Featured this post" toggle in the post settings menu when the currently logged in user is an Author or Contributor
- https://forum.ghost.org/t/remove-the-permission-to-set-posts-to-featured/7441/5?u=kevin
2019-05-28 09:39:22 +01:00
Kevin Ansfield
c578ca48ec Upgraded our Zapier integration to use API Keys and allow post creation
no issue
- move the Zapier API Key details out of developer experiments because our Zapier 2.0.0 version is now public and requires an API Key when connecting
2019-05-27 10:53:18 +01:00
Kevin Ansfield
c722c83a6e 🐛 Fixed editor crashing when leaving a markdown card's edit mode
no issue
- a change in Ember 3.10's rendering has resulting in the component's element being removed before the `{{gh-markdown-editor}}`'s cleanup action is run which meant that we were trying to run `.querySelector` on `undefined`
- removes the code which moved toolbar elements around because it hasn't been used since we moved to Koenig, this meant that the cleanup action could also be removed
2019-05-23 13:43:01 +01:00
Aileen Nowak
af5aeaf444 Updated link to Marketplace (#1203)
no issue

- Marketplace moved to https://ghost.org/marketplace
2019-05-22 16:55:03 +08:00
Kevin Ansfield
da92eadecd Added ability to set <main> class using route metadata
no issue
- modified `ui` service's `routeDidChange` handler to update it's `mainClass` property based on the new route's metadata
- used in the future for switching screen background colours

To use the feature, modify or add a `buildRouteInfoMetadata` hook in the route which you'd like to change, eg:

```js
export default AuthenticatedRoute.extend({
    ...

    buildRouteInfoMetadata() {
        return {
            bodyClasses: ['my-body-class'],
            mainClasses: ['grey-bg'] // <--------
        };
    }
});

```

The route hierarchy is taken into consideration with classes being added for all currently shown routes. For example if you wanted to add an `editor` class to all editor routes you could use the hook in `routes/editor.js` then if you added an `editor-new` class in `routes/editor/new.js` the resulting HTML output on the "New story" screen would be:

```html
<main class="gh-main editor editor-new">
```
2019-05-20 15:33:12 +01:00
Kevin Ansfield
1520122483 Refactored deprecated usage of setupTest* methods
no issue

- https://github.com/emberjs/ember-mocha/blob/master/docs/migration.md#upgrading-to-the-new-testing-apis
- deleted tests files which had no specific tests
- migrated unskipped component unit tests to integration tests
2019-05-13 15:31:32 +01:00
Peter Zimon
ccbc26d6bc Sidebar refinements and view site in new tab button (#1192)
no refs.

- added view site in new tab button to sidebar
- show secondary actions on sidebar only on mouseover
- replaced labs icon
- refined spacing for view site
- unified colors of secondary icons
2019-05-07 15:29:59 +02:00
Kevin Ansfield
a7f4610381 Removed usage of ember-light-table in subscribers screen (#1191)
no issue

`ember-light-table` is falling behind Ember.js and other addon development and is increasingly causing issues with Ember deprecations and addon incompatibility.

- swaps `ember-light-table` usage for a straightforward table using `vertical-collection` for occlusion
- uses the same loading mechanism as the members screen with a slight optimisation where the initial load will fetch subscribers in batches of 200 until they are all loaded
- removes now-unused pagination mixin
- fixes duplicate subscriber validation handling
2019-05-07 12:39:56 +01:00
Kevin Ansfield
1dad18a06c Added language selection to code cards (#1180)
no issue

- Added a language indicator when in rendered mode and a language input when in edit mode
- Allow code card language to be set with <code>```lang</code>+<kbd>Space/Enter</kbd> expansion 
    - previously <code>\`\`\`</code> would immediately create a code card, the <kbd>Space/Enter</kbd> is now necessary for the insertion to occur
    - lang is optional <code>\`\`\`</code>+<kbd>Space/Enter</kbd> will insert a code card with no language selected
    - requires <kbd>Enter</kbd> to be pressed to finalise the expansion and insert the card
    - added hook for text expansions to skip newline creation for when they are triggered with <kbd>Enter</kbd>
- Set the code card editor's language mode based on selected language
    - set the CodeMirror mode based on the code card payload language
        - add a basic map of language short codes to their respective CodeMirror modes
    - observe `mode` property in `{{gh-cm-editor}}` so that the mode is properly set when it's changed after initial render
2019-04-30 16:46:29 +02:00
Zimo
9ea62c8e13 Updated member labs settings API key URL 2019-04-17 16:37:13 +02:00
Peter Zimon
7f8dd9e4bb Members refinements (#1163)
* Updated loading state for member detail plan data

* Code refinement for loading member plan data
2019-04-17 16:18:21 +02:00
Peter Zimon
46d9d82e19 Members refinements (#1161)
* Added hover to member cells in member list

* Fixed members labs settings for nightshift
2019-04-16 17:02:52 +02:00
Rishabh Garg
c72e7b6040 Updated member management data (#1150)
no issue

- Updated hard-coded data in member management to use real values from API
2019-04-16 20:32:43 +05:30
Zimo
a029e92266 Fixed members labs settings for nightshift 2019-04-16 14:27:55 +02:00
Zimo
d3b50275e0 Added hover to member cells in member list 2019-04-16 14:27:55 +02:00
Kevin Ansfield
151b7a2844 🐛 Fixed missing errors and confusing button text in theme upload modal
no issue
- fixed "Active with errors" button successful theme upload with no warnings/errors
- fixed fatal errors not showing due to change in API error response
- fixed "Retry" button not showing when there were fatal errors
- fixed "Upload successful!" message after clicking "Retry" on a failed upload
2019-04-15 22:43:29 +01:00
John O'Nolan
defbf0f40c Updated to new Twitter username placeholder 2019-04-11 14:33:15 +02:00
Kevin Ansfield
67afe653cd 🐛 Fixed missing error details when activating a theme with fatal errors
no issue
- the API response for theme activation when a fatal validation error occurred has changed but the client wasn't updated resulting in a modal containing an "Activation failed" header but no details
- updates the error details extraction path and adjusts the tests to match the real API response
2019-04-11 11:00:40 +01:00
Vikas Potluri
c19332f093 Fixed post/page labels in feature image and save components (#1143)
closes https://github.com/TryGhost/Ghost/issues/10658

- update publish menu states to use `{{post.displayName}}` instead of hard coded `post`
- update settings menu image uploader to generate CTA using `post.displayName`
2019-04-06 09:01:49 +01:00
Peter Zimon
bd90585956 Improved theme upload/activate flow and error styles (#1142)
no issue 

* Update error and warning styles
* Refined upload dialog
* Theme upload and activation style refinements
2019-04-05 17:27:14 +01:00
Zimo
f75d07ab87 Zapier settings screen UI refinements
no refs.
- refined Zapier template header for integrations screen
2019-04-04 14:07:20 +02:00
Kevin Ansfield
b51bc4751d Added integration details to Zapier integration screen behind dev flag
no issue
- the new version of our Zapier App uses API Key auth so we need to expose the details on the Zapier integration screen
- extracted `copyTextToClipboard` into a util function
- added `integrationModelHook` method to `settings.integrations` controller to remove duplication in the `settings.integration` and `settings.integration.zapier` routes
- fixed missing "Zapier" title token
2019-04-04 12:25:16 +01:00
Vikas Potluri
747bf6ea9f 🐛 Fixed confusing messaging around .yml extension being allowed for routes.yaml uploads (#1140)
no issue

The server never supported uploading .yml files

* updated uploader `invalid extension` error message to be more abstract
* fixed routes uploader validation allowing .yml files
2019-04-03 19:54:05 +01:00
Zimo
5b9e68401a Added placeholder illustration for posts and pages
no refs.
2019-03-25 16:43:38 +01:00
Kevin Ansfield
162cbae3f0 Improved theme activation warnings modal content
closes https://github.com/TryGhost/Ghost/issues/10627
- removed confusing/unnecessary message when activation was successful with warnings
- do not display "Warnings" sub-heading if there are no other errors to reduce duplication with the modal title
- changed "Close" button text to "Ok" so it feels more like a confirmation
- refactored modal template to have explicit `this` rather than implicit property lookup ([RFC](e724c7087e/text/0308-deprecate-property-lookup-fallback.md))
2019-03-25 12:20:14 +00:00
Zimo
cdd3f40422 Fixed button and title cases for Tags screen
no refs.
Set "New tag" button and "Tag settings" to sentence case to be consistent with the rest of the UI. (Previously they were title case.)
2019-03-25 09:37:44 +01:00
Kevin Ansfield
700d3587c3 Fixed "view site" link not getting active class immediately after login 2019-03-21 18:08:57 +00:00
Kevin Ansfield
e7b740ba5f Added reset-to-homepage behaviour when clicking "view site" link
no issue
- return a basic "guid" from the site's `model` hook so that we have some data which changes on each refresh
- add an action to the wrapper element of the "view site" link which will cause the route to refresh when clicked if we're already on the route
- move the site iframe into a component so that it can watch an @uuid property and force a reset of the iframe's `src` when it detects a change
2019-03-21 17:55:58 +00:00
John O'Nolan
181de6f5ea View site inside Ghost Admin
no refs.
- added "View site" as the first and default menu item in navigation bar to be able to browse the site without leaving the Admin
- rearranged left sidebar items according to new structure (moved Labs down to bottom)
- removed "View site" from publication main menu because it's become redundant
- added Night shift toggle in line with Labs menu to be able quickly access it
2019-03-21 10:33:14 +01:00
Kevin Ansfield
68c09fce2d Fixed random failures in uploader component tests
refs https://github.com/TryGhost/Ghost/issues/10308
- removed reliance on `run.later` (`setTimeout`) in tests, instead favouring explicit ember-test-helper methods which wait for DOM changes
2019-03-18 19:14:24 +00:00
Kevin Ansfield
63b8127cfa Fixed "Send invitation" button needing to be clicked twice
refs https://github.com/TryGhost/Ghost/issues/7131
- adds `disableMouseDown` flag to `{{gh-task-button}}`
- uses flag for the send invite button so that the focus-out validation on the e-mail input is not triggered before the click event is triggered
2019-03-18 17:56:32 +00:00
Kevin Ansfield
98ab4d1d20 Fixed missing margin on subscribers action buttons 2019-03-15 16:27:52 +00:00
Kevin Ansfield
855fd7ae80 🐛 Fixed difficult to cancel webhook modal
closes https://github.com/TryGhost/Ghost/issues/10135
- `focusOut` events are fired before the `click` event is fired when clicking buttons whilst an input has focus, this has the effect of triggering our on-blur validations that can cause UI to jump which then results in the `mouseUp` being outside of the button which means no `click` event is fired
- stops `mouseDown` event from bubbling from modal cancel/close buttons so that `focusOut` validations aren't triggered
2019-03-15 14:38:54 +00:00
Kevin Ansfield
9104b73aff Fixed ember resolver warning for ambiguous authorNames access
no issue
- we've added an `{{author-names}}` helper, this generated a warning from `{{gh-posts-list-item}}` which contained `{{authorNames}}` referencing a CP on the component context
- changing the CP access to be explicit using `{{this.authorNames}}` resolves the warning
- updated other references in the template to be explicit in order to differentiate between local context and helpers (this will be enforced in later Ember versions)
2019-03-13 16:16:08 +00:00
Kevin Ansfield
59d7651ef0 🐛 Fixed author names not appearing in Facebook open-graph preview
no issue
- added an `{{author-names}}` helper that takes an array of author-like objects and returns their names separated by a comma
2019-03-12 12:15:02 +00:00
Kevin Ansfield
8ba1c8fb79 Added ability to override the canonical URL of posts/pages
closes https://github.com/TryGhost/Ghost/issues/10593
- adds a "Canonical URL" field to the Meta Data section of the Post Settings Menu
- adds validation for canonical url being a valid absolute or relative URL
2019-03-12 10:40:07 +00:00
Zimo
d120440c96 Updated animation of copy buttons in integration
no refs.
"Copy" buttons in the integration detail screen are shown only on hover. Removed animation to make it snappeir.
2019-03-08 09:47:59 +01:00
Kevin Ansfield
047f5695b4 🐛 Fixed vague upload error messages on General and Labs setting screens
no issue
- API now returns the "useful" error message in `error.context` rather than `error.message`
- updated `{{gh-uploader}}` to expose `context` on errors
- updated error display to try using `context` with a fallback to `message`
2019-03-07 13:40:38 +00:00
John O'Nolan
01559cf447 Blog => Site 2019-03-07 15:31:15 +02:00
Vikas Potluri
170973eb67 Fixed post/page wording in Page PSM and delete modal (#1109)
closes https://github.com/TryGhost/Ghost/issues/10577
2019-03-07 09:13:31 +00:00
Kevin Ansfield
6b32cb4b80 Added error context to API error alert messages 2019-03-06 11:45:47 +00:00
Kevin Ansfield
58afbc209d Renamed ghostHead/Foot settings to codeinjectionHead/Foot (#1107)
closes https://github.com/TryGhost/Ghost/issues/10560
- match changes in the API
2019-03-05 10:40:19 +00:00
John O'Nolan
dbbee07288 Blogs => Sites 2019-03-05 10:36:34 +02:00
Rish
ffb4ca27ad Updated members menu to work with labs feature
no issue
2019-03-05 11:45:15 +05:30
John O'Nolan
3ad9fb16d4 Fixed broken link to Google Analytics integration 2019-03-04 15:53:47 +02:00
Katharina Irrgang
14916ef1d1 🐛Fixed theme upload
closes #10545

- the server side has changed the field name in Admin API v2
- ref: a1023f0b11
2019-02-27 10:02:52 +01:00
Kevin Ansfield
e6df64ed52 Switched About screen to use config service 2019-02-26 16:12:34 +07:00
Rish
57f9663b6e Added members feature to labs
no issue

- Added new members settings/toggle to labs
2019-02-26 15:33:38 +07:00
Kevin Ansfield
fb7db69ffe Added post, page, and tag related webhook trigger events
refs https://github.com/TryGhost/Ghost/issues/10461
- added new webhook events to the event selection dropdown with grouping
2019-02-26 13:23:37 +07:00
Kevin Ansfield
8617dba252 Added v2 Admin API with token authentication
closes https://github.com/TryGhost/Ghost/issues/9865
- moved Admin API Key display out of developer experiments
- docs: https://docs.ghost.org/api/
2019-02-26 12:49:02 +07:00
Kevin Ansfield
a4c4fa7335 Updated gh-image-uploader to work with new /images/upload/ endpoint 2019-02-26 09:39:04 +07:00
Kevin Ansfield
feddec99a8 Fixed general settings acceptance test 2019-02-26 09:15:19 +07:00
Kevin Ansfield
72d9732958 Updated gh-uploader to work with new /images/upload/ endpoint 2019-02-25 23:01:49 +07:00
Zimo
39b16fb3d4 Updated member list search design 2019-02-23 18:57:15 +07:00
Kevin Ansfield
9e3974a93d Fixed integration acceptance test 2019-02-23 17:57:17 +07:00
Kevin Ansfield
49942f5604 Added basic search to members list 2019-02-23 17:14:22 +07:00
Zimo
bb2c5426bc Refined integrations API table design 2019-02-23 17:06:34 +07:00
Kevin Ansfield
2398d73e24 Added copyable API Url to custom integration screen 2019-02-23 16:48:39 +07:00
Zimo
46124ed6ee Refined members list and detail design 2019-02-23 16:31:18 +07:00
Kevin Ansfield
6ac2569f24 Implemented first pass of member details screen 2019-02-22 18:32:09 +07:00
Nazar Gargol
44ce2f5359 Renamed /uploads* endpoints to /images*
refs #10438
2019-02-22 18:16:25 +07:00
Kevin Ansfield
f71b92c544 Fixed links to pages on pages list screen 2019-02-22 16:48:33 +07:00
Peter Zimon
605b89a0d2 Left navigation menu update (#1102)
refs. [d6c22df](d6c22df6d7)

- added icons for members and pages
- improved view site link visibility
- added view site to logo dropdown
- updated all navigation and logo menu icons
- rename 'team' to 'staff'
- lots of design refinement and update (colors, shadows)
2019-02-22 16:43:35 +07:00
Kevin Ansfield
68e684453d 🐛 Fixed Code Injection inputs not being clickable
no issue
- attempt to fix the "Cannot set property 'modeOption' of undefined" error by telling CM to replace the textarea element rather than appending to the wrapper and having Ember replace the textarea
2019-02-22 10:52:32 +07:00
Kevin Ansfield
d6c22df6d7 🎨 Separated post and page list screens (#1101)
no issue
- added `page` model
- removed `page` param from Post model
- added pages screen with associated links
- added `:type` param to editor screens to work with the right models
- removed post<->page toggle and associated tour item
2019-02-22 10:17:33 +07:00
Kevin Ansfield
6fdf4be0ce Fixed signup acceptance tests 2019-02-11 12:35:47 +00:00
Kevin Ansfield
7f1c71c831 🐛 Fixed Chrome remembering wrong username when signing up from invitation
closes https://github.com/TryGhost/Ghost/issues/9868
- place email field directly above password field
- enable email field and do not set an initial value requiring user to type-in/auto-fill the email for Chrome to recognise it
2019-02-11 11:35:43 +00:00
John O'Nolan
e09ba348e2 Blog => Site 2019-02-07 11:16:04 +07:00
Kevin Ansfield
82fbbe9442 Show loading spinner on first load of members screen 2019-01-31 16:47:31 +00:00
Zimo
ea2b89ab1c Visual tweaks on Members list
- tune list style
- tweak generated avatar background-colors
- type and color refinements
2019-01-31 17:41:55 +01:00
Kevin Ansfield
e57bb177b7 Load all members on members screen, use occlusion scrolling for perf 2019-01-31 12:58:15 +00:00
Kevin Ansfield
b3716505fa 🐛 Fixed incorrect username being saved by Safari when signing up via invitation
refs https://github.com/TryGhost/Ghost/issues/9868
- ensure signup task is always initiated via form submit
  - adds `defaultClick` option to `<GhTaskButton>` that allows the click event to bubble
- adds `autocomplete` values to signup form fields that match up to the spec
  - "name/display-name": `name`
  - "email": `username email`
  - "password": `new-password` / `current-password` depending on context
- 🔥 no-longer-relevant hacks for Chrome autocomplete
  - this still doesn't fix Chrome remembering the incorrect username unfortunately. Chrome will always select the input previous to the password that has had actual user input as the "username"
- 🔥 unused `authenticate` task in signup controller
2019-01-31 10:27:40 +00:00
Peter Zimon
c4a8a1cbaa Updated integrations UI (#1086)
no issue

Updated custom integrations section for a more balanced and consistent design:
- removed green "New custom integration" button and added a fixed bottom row in the custom integrations list
- added "Custom integrations" heading to the list
- synced webhooks design with this pattern
2019-01-28 12:53:48 +00:00
Kevin Ansfield
a7e9796101 Renamed <MemberAvatar/> to <GhMemberAvatar/> for naming consistency 2019-01-25 13:51:18 +00:00
Kevin Ansfield
7ec48b36e0 First pass at members list
no issue
- don't nest details route as it's not nested UI
- implement styled list of members
- add `<MemberAvatar>` component that generates random background colour and initials based on member name
- fixed generation of fake member details in mirage
2019-01-24 19:34:32 +00:00
John O'Nolan
1885d0a193 Update Unsplash logo 2019-01-23 15:05:28 +07:00
Kevin Ansfield
bea2d8c871 Added empty member management routes 2019-01-22 16:23:26 +00:00
Kevin Ansfield
8d7be6bdb2 Removed "defaults to" text from Slack integration's username description 2019-01-21 12:35:19 +00:00
Greg Hart
b235f68052 Added ability to configure Slack integration's username (#1084)
closes https://github.com/TryGhost/Ghost/issues/9735
- add "Username" form to Slack integration
2019-01-21 12:26:21 +00:00
Hannah Wolfe
f10f7dce22 Updated docs links to best equivalents (#1097)
- Our documentation has been overhauled, this updates the all the old links sprinkled through Ghost-Admin
2019-01-16 16:03:33 +00:00
Fabien O'Carroll
22a41f5663 💡Removed Public API checkbox by default (#1096)
refs #10364

When the publicAPI flag is undefined, it means it has never been set in
Ghost Admin before - so we can safely remove the option from labs.
2019-01-15 11:23:49 +01:00
Kevin Ansfield
434e8ba2f7 🐛 Fixed infinite scroll on the team screen (#1095)
closes https://github.com/TryGhost/Ghost/issues/10307
- removed infinite scroll from the team screen
- adjusted team screen behaviour to pull from the local cache and update in the background to speed up navigation to the screen
- use `{{vertical-collection}}` to render the users list for faster initial render with many users
2019-01-14 14:50:30 +00:00
Kevin Ansfield
5e3de1c333 🎨 Removed auto hide/show navigation toggle (#1094)
no issue
- the autonav behaviour has outlasted it's usefulness - it was mostly useful for editing but the editor screen is now always fullscreen and the number of low-resolution screens has dropped significantly
- dropped the components and all supporting code associated with autonav behaviour
2019-01-10 15:00:07 +00:00
Kevin Ansfield
73daa80b7f Migrate to latest ember, ember-mocha and modern ember testing (#1044)
no issue
- upgrade to latest `ember-source` and related dependencies including `ember-cli`
- upgrade to latest `ember-mocha` and modern ember testing setup
    - https://github.com/emberjs/rfcs/blob/master/text/0268-acceptance-testing-refactor.md
    - switch from using global acceptance test helpers and `native-dom-helpers` to using the new `ember-test-helpers` methods
    - use [`chai-dom`](https://github.com/nathanboktae/chai-dom) assertions where in some places (still a lot of places in the tests that could use these)
- pin `ember-in-viewport` to 3.0.x to work around incompatibilities between different versions used in `ember-light-table`, `ember-infinity`, and `ember-sticky-element`
    - incompatibilities manifested as "Invalid value used as weak map key" errors thrown when using `ember-light-table` (subscribers screen)
- pin `ember-power-datepicker` to unreleased version that contains a move from global acceptance test helpers to modern test helpers
2019-01-02 09:58:55 +00:00
Kevin Ansfield
895d55f4a4 Changed 'blog' to 'site' in setup flow 2018-12-14 17:05:45 +00:00
Kevin Ansfield
1946c7f3fa 🐛 Fixed ability to submit invite form with a missing role (#1080)
refs https://github.com/TryGhost/Ghost/issues/10071
- moved roles fetch request into an ember-concurrency task
- use the task's derived state to disable the submit button whilst fetching
- added role presence check to the invite user validator and updated template to display the error
2018-12-10 14:26:05 +00:00
John O'Nolan
6fbe4f42d6 More specific docs link
No issue

Nothing wrong with the docs link but in this context makes more sense to deep link to the info specifically about Ghost Handlebars themes
2018-12-06 15:44:21 +07:00
John O'Nolan
314ac7c5ac Fix broken docs link
Refs https://github.com/TryGhost/Ghost-Admin/pull/1078
2018-12-05 14:01:25 +07:00
John O'Nolan
4ab05b5403 I was never here 2018-12-04 21:04:33 +07:00
John O'Nolan
5fde7ea168 SVG fix 2018-12-04 21:02:58 +07:00
John O'Nolan
e36f8ca0c1 Added new theme directory links to Ghost Admin (#1078)
* Add new theme directory links to Ghost Admin

* Dark mode fixes
2018-12-04 18:04:52 +07:00
Sumedh Nimkarde
83aeea7892 🐛 Fixed the link for Markdown guide documentation. (#1076) 2018-12-03 17:40:07 +07:00
John O'Nolan
59ce575e69 Highlight new integrations directory (#1070)
no issue
- we have a new integrations directory in our docs so we’ve highlighted the most common directly on the integrations screen
2018-11-13 09:18:31 +00:00
Kevin Ansfield
c33edbac08 Fixed webhook modal title showing "New webhook" when editing a webhook
refs https://github.com/TryGhost/Ghost/issues/10137
- adjust modal title depending on `webhook.isNew` state
- add acceptance tests for modal creation
- add missing mirage webhook factory
- mock integrations/api-keys/webhooks in test env rather than development
2018-11-12 16:31:47 +00:00
Rishabh Garg
032fba8f7b Added active navigation state for all integrations related routes (#1069)
closes https://github.com/TryGhost/Ghost/issues/10136
- use a CP and `{{#link-to current-when}}` to add the `.active` class any time the current route name starts with `settings.integration` which covers built-in and custom integration screens
2018-11-12 13:10:33 +00:00
Kevin Ansfield
d88e7efd04 🎨 Changed tags list, filter dropdown, and select input to sort alphabetically (#1066)
no issue
- switch tags sorting from ID based to alphabetical
- pre-requisite to nested tags sorting
2018-11-07 15:06:28 +00:00
Kevin Ansfield
ac17053863 Added custom integrations - Content API Keys and "Site rebuild" webhooks (#1063)
closes TryGhost/Ghost#9942
- move custom integrations UI out from behind the developer experiments flag
- put Admin API key and web hook secret fields behind the developer experiments flag
- do not show "unsaved changes" modal when adding/editing a webhook
- fixed all webhooks showing for each custom integration
2018-11-06 10:59:47 +00:00
Peter Zimon
3f7a036905 Integration UI refinements (#1059)
no issue
* Integration detail page design refinements
* Fixing error message layout on integration detail screen
* Heading details
* Margin refinements
* Refine webhooks modal
* Lines and font sizes
* Replace integrations icon
2018-10-24 14:04:17 +01:00
Kevin Ansfield
e7a8be81ef Cleaned up class and :contains based test selectors
no issue
- nav menu had many unused CSS classes that were sometimes used for test selectors
- `:contains` is not a native CSS selector so will cause issues when we switch to native test helpers
2018-10-23 18:11:48 +01:00
Kevin Ansfield
fce4aa9176 Added ability to upload integration icons (#1058)
no issue
- add `{{aspect-ratio-box}}` to make it easier to adjust box sizes at a fixed ratio based on container height which isn't possible with CSS directly
- used `{{gh-uploader}}` to add upload facility to the icon shown on the integration screen
2018-10-23 10:29:49 +01:00
Fabien O'Carroll
0d38df0f74 Added ability to delete integrations (#1057)
no issue
- adds delete integration modal, and delete button on the integration page to trigger it
2018-10-19 17:37:27 +01:00
Kevin Ansfield
296e35493d Added edit webhook modal (#1056)
requires https://github.com/TryGhost/Ghost/pull/10033
- added `settings.integration.webhooks.edit` route
  - `/integrations/:integration_id/webhooks/:webhook_id`
- added error handling to the webhook form modal that copes with the actual errors we get back from the server
- added `event-name` helper to display humanised event names in the webhooks list
- added delete button to the webhooks list and associated confirmation modal
2018-10-19 17:34:53 +01:00
Kevin Ansfield
832968d4a5 Improved api key clipboard copy behaviour
no issue
- display "last seen" time if available for API keys
- use CSS to for hover behaviour instead of JS toggle
- add background to "copy" button so it's visible when on top of key data
- use ember-concurrency tasks instead of actions and used the derived state to show a temporary "copied to clipboard" message in place of the "last seen at" time
2018-10-19 00:09:05 +01:00
Kevin Ansfield
9684e5e347 Changed "new-webhook" modal to generic "webhook-form" modal
no issue
- the webhook form needs to be re-usable for the "edit webhook" modal
- renamed modal
- added logic to adjust the confirm button's text depending on the state of the passed in webhook model
2018-10-18 18:43:34 +01:00
Kevin Ansfield
5047b9f3d7 Added initial custom integrations UI (#1051)
refs https://github.com/TryGhost/Ghost/issues/9865, https://github.com/TryGhost/Ghost/issues/9942

- `integration`, `api-key`, and `webhook` models and respective mirage mocks
- moves integration routes around to match ember's concept of nested routes (nested routes reflect nested UI not nested URLs)
- adds custom integrations list to integrations screen
- adds custom integration screen
  - allow editing of integration details
  - show list of webhooks
  - webhook creation modal

NB: the `enableDeveloperExperiments` flag needs to be enabled in the `config.development.json` file for the custom integrations UI to be displayed until it's out of development.
2018-10-18 00:18:29 +01:00
Kevin Ansfield
e04f3b6312 Adjust post URL handling for API v2's absolute URLs (#1055)
no issue
- API v2 outputs absolute URLs so we no longer need to construct full URLs ourselves
2018-10-16 16:54:15 +01:00
Kevin Ansfield
656a20272a Fixed non-admin redirects on integration routes
no issue
- after un-nesting the built-in integration routes they no longer had the automatic redirect for non-admins
- added our non-admin redirect behaviour to all of the integration routes
- added our non-admin redirect behaviour to the Zapier route which didn't even have an authenticated redirect previously
- added acceptance test for Zapier route so verify the new behaviour
- wrapped the Zapier widget `<script>` tag in an "is testing" conditional so that the external script doesn't get loaded during tests
2018-10-04 12:16:41 +01:00
Kevin Ansfield
a23bbf2368 Clean up integrations routes loading states
no issue
- integrations index screen no longer needs to reload the settings cache
- individual built-in integration routes should handle their own reloading if necessary (eg, zapier doesn't need any settings so doesn't need a delay or loading template)
- built-in integration routes are no longer nested and so need their own loading templates
2018-10-04 11:41:11 +01:00
Kevin Ansfield
01ef03a430 Fixed cherry-pick mixup
no issue
- 🙈
2018-10-04 11:14:38 +01:00
Kevin Ansfield
b167f0afd5 Re-jigged integrations routes to support nested modal route
no issue
- moves integration routes around to match ember's concept of nested routes (nested routes reflect nested UI not nested URLs)
- sets us up for having a `settings.integrations.new` modal route that sits on top of the index screen
2018-10-04 11:10:17 +01:00
Kevin Ansfield
6dfafdc801 Renamed Apps to Integrations (#1050)
refs https://github.com/TryGhost/Ghost/issues/9865, https://github.com/TryGhost/Ghost/issues/9942
- Apps are becoming Integrations that cover the existing built-in integrations as well as new custom integrations
- custom Integrations will comprise of API keys for the Admin and Content APIs and custom-registered webhooks
2018-10-04 11:02:36 +01:00
Kevin Ansfield
14633d085c Removed unnecessary save button from Zapier screen
no issue
- save button is not needed and wasn't hooked up to any functionality (it errored if clicked)
2018-10-03 23:25:38 +01:00
Kevin Ansfield
53cbb092ab Removed outdated static html files
no issue
- old static html design files no longer work because they haven't kept up with changes in app and css structure and no longer represent directions that Ghost is moving towards
- removed in a single commit so that it's still possible to retrieve later if needed
2018-10-03 18:25:24 +01:00
Rish
49c5afb2e3 🎨 Forced uploaded profile image to be square
Refs https://github.com/TryGhost/Ghost/issues/8576

- updated profile image upload url to `/uploads/profile-image`, allows only square images to be uploaded
2018-09-25 15:22:01 +07:00
Kevin Ansfield
525fb2a720 Fixed submit-on-enter and password manager issues on signup
closes https://github.com/TryGhost/Ghost/issues/9868
- moved submit action to the `<form>` which allowed removal of the per-input enter key handlers
- changed submit button to trigger the form submit
- improved markup for password managers
  - linked labels with inputs
  - changed button to a "submit" type and linked it with the form
  - added hidden email input at the bottom of the form in case password managers do not take disabled inputs into account
2018-09-17 16:03:58 +01:00
Peter Zimon
7fa0ff805f Update error page design (#1045)
no issue
* Adding basic 404 animation
* Adding bounce to tumbleweeds on error screen
* Bump Spirit dependency to 0.0.42
2018-09-11 16:29:23 +01:00
Zimo
179cf5c47c Fixing background for unavailable user image file 2018-08-23 15:46:20 +02:00
Katharina Irrgang
d0eb4eb992 Updated links to use v2 docs (#1036)
no issue

- found some more v1 links
2018-08-15 23:35:17 +02:00
Zimo
067fbd4c34 Fixing vertical alignment for error and spinner in Unsplash browser 2018-08-15 16:36:24 +02:00
Kevin Ansfield
3d0091c9f5 Made Koenig the default editor, removed Koenig labs flag 2018-08-14 17:49:50 +01:00
Kevin Ansfield
7ee7c3a9f8 Removed dated permalinks setting
no issue
- permalink config is now handled through `routes.yaml`
2018-08-14 17:49:50 +01:00
Kevin Ansfield
e4f7a0dbb2 Added routes.yaml upload to Labs screen
refs https://github.com/TryGhost/Ghost/issues/9744
- adds `routes.yaml` upload using the same UI as the `redirects.json` upload
  - upload: `POST /settings/routes/yaml/`
  - download: `GET /settings/routes/yaml/`
2018-08-14 17:49:50 +01:00
Kevin Ansfield
4463f975e3 Koenig - Unsplash integration
refs https://github.com/TryGhost/Ghost/issues/9724
- standardised `{{gh-unsplash}}` actions and action arguments to better represent a generic "image source"
- added `{{gh-unsplash searchTerm="ghosts"}}` parameter
- added `payload` param to `card` definitions used for plus/slash menus so that default payload params can be passed to cards
- added a concept of "image selectors" to image card
  - if a `payload.imageSelector` param is received by the card it will look it up in it's list of known selectors and display the appropriate image selection component
  - if the card was created with an image selector param and the image selector is closed without selecting an image then the card will be removed
- delete image cards during cleanup if they were created via selector but have no src
2018-08-10 18:11:35 +01:00
Kevin Ansfield
9a81a80706 Redesigned Unsplash modal
no issue
- Koenig is now full-screen so the Unsplash modal needed some design tweaks so that it doesn't look like Unsplash.com
2018-08-10 18:11:35 +01:00
Peter Zimon
b6d0ce0789 Koenig - Added help link (#1033)
refs https://github.com/TryGhost/Ghost/issues/9724
- basic link to editor help docs
2018-08-10 12:11:15 +01:00
Peter Zimon
b4ea1a59e2 Koenig - Design refinements (#1032)
refs https://github.com/TryGhost/Ghost/issues/9724
- made floating header and footer elements in Koenig opaque
- switched to filled toolbar icons + icon cleanup
- fixed Koenig placeholder image size in Firefox
- increased "wide" image width on smaller screens
- refined divider card margins
- fixed long links not wrapping
2018-08-08 13:14:02 +01:00
Kevin Ansfield
a97f100c87 Koenig - Fixed full-width images not respecting fullscreen mode
refs https://github.com/TryGhost/Ghost-Admin/pull/1030
- fixed typo
2018-07-26 13:28:02 +01:00
Kevin Ansfield
dbed1b5a86 🎨 Koenig - Hide sidebar when editing (#1030)
refs https://github.com/TryGhost/Ghost/issues/9724
- when Koenig is active, toggle `ui.isFullscreen` when entering/leaving the editor route
- add `ui.isFullscreen` to the `showNavMenu` CP in the application controller
- when in fullscreen mode, display a "< Stories" link in the editor header
- refine editor header style
2018-07-26 12:53:23 +01:00
Zimo
f2c0ab2560 Koenig - Design refinements for word count
refs https://github.com/TryGhost/Ghost/issues/9724
- word count is displayed in the bottom right of the screen regardless of screen size
- for smaller screen sizes the word count display is adjusted
- minor visual tweaks and refinements
2018-07-24 14:11:17 +02:00
Kevin Ansfield
c3bf756285 Koenig - Remove reading time display
refs https://github.com/TryGhost/Ghost/issues/9724
- removed reading time from word count display, it will be added back later as part of a more comprehensive stats interface
- added background to the bottom right word count so it's still visible when above a full-width image
2018-07-24 10:47:21 +01:00
Kevin Ansfield
2ea3de4b49 Koenig - Avoid word count overlap with content
refs https://github.com/TryGhost/Ghost/issues/9724
- display word count/reading time in the top-left when the opaque top bar is present otherwise use the bottom-right
2018-07-23 12:19:45 +01:00
Kevin Ansfield
cc2e20a486 Koenig - Added reading time and word count display
refs https://github.com/TryGhost/Ghost/issues/9724
- add `registerComponent` hook to cards so that `{{koenig-editor}}` can fetch properties from card components directly
- add word count and reading time utilities
- add throttled word count update routine to `{{koenig-editor}}` that walks all sections and counts text words or fetches word/image counts from card components
- add `wordCountDidChange` hook to `{{koenig-editor}}` so that word count + reading time can be exposed
- modify editor controller to update it's own word count property when koenig triggers it's action
- modified the editor template to show reading time + word count next to the post status
2018-07-20 15:53:21 +01:00
Kevin Ansfield
984654e19e 🐛 Koenig - Fixed deselect if mouse released at end of doc when drag-selecting
refs https://github.com/TryGhost/Ghost/issues/9623
- track the `mousedown` position and switch the `click` handler to a `mouseup` handler
- only trigger the editor focus event if both the `mousedown` and `mouseup` events occur below the editor canvas
2018-06-20 13:11:12 +01:00
Kevin Ansfield
1eaf85e5aa 🎨 Koenig - Keep posts free of blank cards
refs https://github.com/TryGhost/Ghost/issues/9623
- add new `deleteIfEmpty` option when defining cards
- add `.cleanup()` method to `{{koenig-editor}}` that will remove any blank cards
- pass `{{koenig-editor}}` instance up to the editor controller when it is initialised
- call `.cleanup()` in the editor controller when performing full saves, when leaving the editor with a draft, and when opening the editor with a draft
2018-06-14 16:55:02 +01:00
ean
334d4494a8 Fixed tab not focusing role select in Invite User modal (#1020)
closes #7132
- removed `tabindex` from role selection on invite user field
- removing the tabindex defaults the tabindex to "-1"
2018-06-04 17:51:09 +01:00
Kevin Ansfield
bc2e216cb0 Fixed autofocus not working on modal inputs
refs https://github.com/TryGhost/Ghost/issues/7132
- apply generic `autofocus` support to anything rendered through `liquid-wormhole`
    - overrides `liquid-wormhole`'s default `wormhole` transition, adding a check for a `<input autofocus>` element and calling focus on it once the default transition and liquid-wormhole element swap has completed
- autofocus search input in Unsplash modal
2018-06-04 17:48:57 +01:00
Kevin Ansfield
7b6dece504 Bump dependencies (#1022)
no issue
- bump deps with non-breaking changes
- swap manual styles for Spirit's `pointer-events` classes in Koenig
2018-06-04 14:35:36 +01:00
Kevin Ansfield
dc2e85a6e0 Koenig - Drag & drop image card creation + upload
refs https://github.com/TryGhost/Ghost/issues/9623
- add `dropTargetSelector` property so that `{{koenig-editor}}` can attach drag/drop events to a larger area
- add drag/drop event handlers to `{{koenig-editor}}`
    - ignore drops that occur on cards in edit mode (cards should handle drop events themselves if required)
    - extract image files from the drop event and use them to create image cards
- extract image card creation from image files into a helper function
2018-05-30 17:14:39 +01:00
Kevin Ansfield
7438eb05e9 Koenig - Fixed non-clickable area at top of editor
refs https://github.com/TryGhost/Ghost/issues/9623
2018-05-24 13:33:26 +01:00
Kevin Ansfield
e68ec9d1df Koenig - Keep cursor on screen when typing or moving via keyboard (#1012)
refs https://github.com/TryGhost/Ghost/issues/9505
- when cursor changes through the normal `cursorDidChange` or through certain programmatic changes we trigger a check to see if the cursor is out of the viewport and scroll it into view if necessary
- disable our scroll-into-view routine if the mouse button or shift key is down so that we don't interfere with default browser behaviour which works well in that situation
- for scroll-into-view at the bottom there are two slightly different methods
    - if the cursor is near the bottom of the document we scroll so that the bottom padding of the editor is visible
    - if the cursor is mid-document then we scroll just enough to bring the cursor into the viewport
2018-05-24 13:30:50 +01:00
Zimo
19ca4ca0b7 Koenig Editor Beta Release
refs https://github.com/TryGhost/Ghost/issues/9505
- see https://forum.ghost.org/t/koenig-beta-release/1284 for full details
- moved Koenig editor checkbox from experimental to Beta
- added info message support in editor screen
- removed alert when opening markdown-incompatible post with Koenig disabled
2018-05-17 12:01:00 +01:00
Kevin Ansfield
b8eed0eb2f Koenig - Remove dev experiments flag requirement in admin
refs https://github.com/TryGhost/Ghost/issues/9505
- Koenig is entering beta so we no longer want to hide the checkbox behind a developer experiments flag
2018-05-15 12:40:21 +01:00
Kevin Ansfield
5b43350112 Add {{background-image-style}} helper
no issue
- cleans up multiple CPs that were only outputting a background image style
- moves URL decoding/encoding and `htmlSafe` output into one place
2018-05-14 13:04:53 +01:00
Kevin Ansfield
5ce5dd04ab 🐛 Fixed low-resolution gravatar images on Team/User screens
closes https://github.com/TryGhost/Ghost/issues/9563
- fixes incorrect gravatar URLs by removing incorrect HTML encoding of the URL and enforcing URL encoding
- centralise image URL generation in the User model so that default image logic isn't spread across the app
- remove unnecessary proxy mixin from `ghost-paths` service (allows property access without `.get()`)
2018-05-14 12:15:08 +01:00
Zimo
4c05d618bd Koenig - Replace custom CSS classes with Spirit
no issue
- Koenig container styles for Spirit
- Applying Spirit styles to card menu
- Applying Spirit styles to generic cards
- Replacing icon styles with Spirit
- Fix slash menu selected state
- Cleanup of unused files + fix empty HTML
2018-05-02 15:54:22 +01:00
Kevin Ansfield
26e70e86ea Koenig - Sticky card icons (#1013)
refs https://github.com/TryGhost/Ghost/issues/9505
- use `ember-sticky-element` to stick card icons in top left when scrolling
- pass an `headerOffset` down from the `{{gh-editor}}` component through Koenig and the card components so that it can be used for adjustments where necessary
    - calculate `headerHeight` in `{{gh-editor}}` any time we change the header class
2018-05-01 15:55:51 +01:00
Kevin Ansfield
b21e46aa39 Koenig - Keep MD card formatting toolbar visible when possible
refs https://github.com/TryGhost/Ghost/issues/9505
- use `{{gh-scroll-trigger}}` components at top and bottom of the markdown card when in edit mode so that styles can be applied to the `.editor-toolbar` element to keep the toolbar fixed at the bottom of the screen whilst scrolling
2018-04-24 13:10:20 +01:00
Kevin Ansfield
5de0ae5cea 🐛 Fixed tag/author removal in post settings removing multiple tags/authors
closes https://github.com/TryGhost/Ghost/issues/9575
- in 6a3cfc2ca8 an `onmouseover` event handler was added for the close button in token input options which resulted in double firing in some circumstances where our code fired then the ember-power-select removal event handler also fired
2018-04-23 14:25:59 +01:00
Kevin Ansfield
21007d0630 Koenig - Use our full markdown editor in markdown card
no issue
- remove jQuery usage in `{{gh-markdown-editor}}` (general cleanup)
- switch `koenig-card-markdown` to use `{{gh-markdown-editor}}`
- update markdown editor styles to fit within the card interface
- add `{{gh-editor}}` for handling image uploads and drag/drop
2018-04-20 15:43:44 +01:00