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
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
no refs.
- added indicator icon to appropriately show which card is a newsletter email one
- fixed bug of card menu staying the same height when triggered via "/" menu
* 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>
no issue
- adds "Email" card to the card menus when developer experiments is turned on
- adds `<KoenigTextReplacementHtmlInput>` implementing most of Koenig except:
- uses html as it's input/output format
- replaces backtick "code" formatting with `{replacement}`
- no headings
- no cards at all
- minimal toolbar but all formatting is still available using markdown text expansions or keyboard shortcuts
refs https://github.com/TryGhost/Ghost/issues/11649
- The bug was changing all complimentary plan prices to the value of yearly.
- This is another point to putting in place validation of plan setting object on the server side so we don't accidentally allow values like this to slip through
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
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.
no-issue
* Updated the iframe src
* Moved billing behind config
* Transition to home route for missing billing config
* Replaced jquery element selection with native
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
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
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
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
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
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.
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.
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>
- use model._meta to access the meta object in the delete response
- removed unused `_deleteUser` method
- move the success/failure method bodies into the main `deleteUser` task to improve readability
- added a timeout after calling `_exportDb()` so that the iframe is not removed from the DOM immediately after it's `src` value is set due to a transition away from the member screen
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
no issue
- removed an old guard that was exiting early when `user.accessibility` was null which meant that the default views were never being inserted into the custom views list
no issue
- the `custom-views` and `navigation` services would trigger their observers immediately when `this.session.user` changed but that would occur before authentication had fully finished which was resulting in the `this.session.user` access triggering a request with no cookie/an old cookie set and causing a 403 error that interrupted the setup and authentication flows