Commit Graph

3944 Commits

Author SHA1 Message Date
Kevin Ansfield
ec6a5637e8 Added data-cache service for managing limited-lifetime cached data
refs https://github.com/TryGhost/Team/issues/1277

- `data-cache` service has a `.set(key, data, lifetime)` method that will store the data under the key and sets a timeout that will remove the data when the lifetime expires
  - data can be retrieved with `.get(key)`
  - allows for components to cache data for use when re-rendering without having to worry about keeping track of their state and it's expiration manually somewhere else
- moved caching concern out of the `members-activity` service and into the latest-member-activity dashboard component which is the one that cares about it's data and cache lifetime
  - frees the `members-activity` service up to be more generic as it's no longer tied to the dashboard component's concerns
  - component switched to using a task rather than a promise so it is automatically cancelled if it's destroyed before data fetching is complete
2022-01-21 18:15:06 +00:00
Fabien "egg" O'Carroll
98030859a5 Removed archived Tiers from complimentary select
refs https://github.com/TryGhost/Team/issues/1252

Archived Tiers should not be able to be used to create new subscriptions.
2022-01-21 15:42:33 +02:00
Sanne de Vries
4404dc179f Revert "Updated Author & Contributor views"
This reverts commit 8bcb534feb.
2022-01-21 13:01:52 +00:00
Sanne de Vries
0ddca821d6 Revert "Updated profile page for Authors & Contributors"
This reverts commit c5940ab57b.
2022-01-21 12:46:27 +00:00
Sanne de Vries
c5940ab57b Updated profile page for Authors & Contributors
No ref

- Removed breadcrumbs when profile page is loading
- Redirected Authors and Contributors to profile page when accessing /staff
2022-01-21 11:35:02 +00:00
Rishabh
941d4de4af Fixed default currency for new tier creation
no refs
2022-01-21 12:34:39 +05:30
Kevin Ansfield
c24bd50f10 Refactored <GhMembersRecipientSelect> to auto-update on @filter change
no issue

- we want to re-use this component as display-only on the email newsletter settings screen but the previous component design meant that changes to the `@filter` argument did not update the display
- moved to using getters for the internal base/specific filter Set instances so they are auto-updated when the `args.filter` param changes
- updated the `toggleSpecificFilter` action to store the current specific filter as temporary internal state when toggled off so it can be re-filled when toggling back on
  - this interaction was why the component state had previously been disconnected from the `@filter` param
- moved filter string generation into an explicit `updateFilter` method that is called when any action occurs that should update the filter string. Changes to the filters are passed in as arguments so that we call the passed in action which will then update the `@filter` argument and the component state can react accordingly
2022-01-19 14:29:49 +00:00
Kevin Ansfield
92ece7b373 Refactored member activity list components
refs https://github.com/TryGhost/Team/issues/1277

- renamed `<GhActivityTimeline>` to `<GhMemberActivityEventParser>` and modified so that it yields parsed events rather than directly renders them
  - makes the component re-usable as it can be used to decorate raw events ready for use in context-specific templates
  - switches to using a getter to yield the parsed events so that they will update automatically when the `@events` argument changes
- updated `<Dashboard::LatestMemberActivity>` to use `<GhMemberActivityEventParser>` and keep the member activity box output local to itself
- added integration tests for `<Dashboard::LatestMemberActivity>`
  - added Mirage setup for member activity event models/serializers/route
2022-01-19 12:58:09 +00:00
Sanne de Vries
8bcb534feb Updated Author & Contributor views
No ref

- Switched sidebar post navigation to be always open
- Removed breadcrumbs from profile page
2022-01-19 11:24:07 +00:00
Rishabh
e142812a68 Refined free tier UI
refs https://github.com/TryGhost/Team/issues/1037

- added default currency to free tier card
- updated benefit placeholder for free tier
- updated description placeholder for free tier
2022-01-19 13:04:08 +05:30
Djordje Vlaisavljevic
19b232640e Updated the placeholders and headings for edit free membership modal
refs https://github.com/TryGhost/Team/issues/1029
2022-01-19 02:19:51 +01:00
Kevin Ansfield
0fd16d504d Fixed linter error
refs 4b3fc52cf0

- removed errant console.log
2022-01-18 15:26:16 +00:00
Kevin Ansfield
4b3fc52cf0 Extracted dashboard member activity into separate component
refs https://github.com/TryGhost/Team/issues/1277

- first step of further refactoring to make member activity display more generic
- separates component data loading from overall controller logic and allows it to be tested in integration tests as well as acceptance tests
2022-01-18 15:16:22 +00:00
Kevin Ansfield
93b4262db5 Extracted member activity fetching into new service
refs https://github.com/TryGhost/Team/issues/1277

- pulled timeline fetching from `members-stats` service to `members-activity` service ready for further refactoring to make fetching/processing more generic
2022-01-18 13:55:42 +00:00
Peter Zimon
6579d8de5c Removed extra mobile class from Members list header 2022-01-18 12:55:57 +01:00
Peter Zimon
7f384b8516 Fixed members list header Safari bug 2022-01-18 12:55:57 +01:00
Sanne de Vries
23da2a57fe 🐛 Fixed modal to invite staff users not scrolling in Safari & Chrome
Closes https://github.com/TryGhost/Ghost/issues/13975
2022-01-18 11:28:51 +00:00
Daniel Lockyer
0f2faed20c Updated database warning wording
refs https://github.com/TryGhost/Toolbox/issues/175

- both cases now show the same message so I've reverted back to
  returning a boolean indicating whether it should be shown
- also pulls out the check for Pro so the if-statements are easier to
  read
2022-01-18 11:10:25 +00:00
Rishabh
209d3662d4 Fixed incorrect price amount formatting
no refs

- price amount formatting was incorrectly calling `toFixed` method on a string, which is not needed as we already round off the amount before formatting
2022-01-18 15:16:09 +05:30
Daniel Lockyer
4994e27838 Refined database warning message to reflect specific versions
refs https://github.com/TryGhost/Toolbox/issues/175
refs c4083967df

- the referenced commit added a warning message to the What's New page
  to notify the user that we're going to be requiring MySQL 8 in
  production as of v5
- this would also show if the user was already using MySQL 8, which
  isn't ideal
- I've added a library to Ghost which will return the specific version
  of MySQL used, so we can now detect that
- eb68e8d339 has updated the config endpoint to return `mysql5`, `mysql8` etc,
  so we can now change the logic here to reflect that
- this commit also adds another warning if we're in development mode and
  using mysql5, as this will not be supported as of v5
2022-01-18 09:41:04 +00:00
Rishabh
f47fee86e2 Refined free tier card usage
refs https://github.com/TryGhost/Team/issues/1037

- adds free tier card behind multiple tiers flag
2022-01-18 00:26:56 +05:30
Rishabh Garg
86b55b0f81 Added new free tier card with custom description/benefits (#2203)
refs https://github.com/TryGhost/Team/issues/1037

Adds new free tier card with option to add custom description and benefits for free tier, behind the tiers beta flag. Also:

- updates formatting of tier prices
- changes "Free" section to "Default"
- updates price formatting of membership tiers in admin
- updates currency code handling for product card
- updates default paid product handling

Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
2022-01-18 00:23:43 +05:30
Kevin Ansfield
eb2109499a Added initial setup of members activity feed
refs https://github.com/TryGhost/Team/issues/1277

- added `/members-activity` route with associated controller, template, and components behind labs flag
  - table component currently renders some dummy rows
- added navigation item to main menu
  - will use the currently set `?filter` query param unless clicked whilst already on the `/members-activity` screen in which case it will reset the query
- added link to dashboard members activity panel
- added link to member details activity panel
  - sets the filter param to `?filter=member:{member.id}` in preparation for the feed to be filtered to the member's activity
- updated the labs-flag test helper file to export both `enableLabsFlag()` and the new `disableLabsFlag()` so it's easier to test for flag-disabled functionality
2022-01-17 18:06:12 +00:00
James Morris
d1dba088ba Fixed audio card in What's New at narrow widths and header pop ups
- adjusted min and max widths of various elements in audio card in What's New only to stop it from visually breaking when at specific viewport widths
- quick fixes for z-index of certain elements across cards in What's New only so they didn't appear above the page header
2022-01-17 17:37:09 +00:00
Kevin Ansfield
daedbae155 Added membersActivityFeed alpha labs flag
refs https://github.com/TryGhost/Team/issues/1277

- used for prototyping a separate activity feed screen that can show all members activity, combining the events shown in the dashboard with the email events shown on the member screen
2022-01-17 12:24:40 +00:00
Kevin Ansfield
75abe76346 Migrated route objects to native class syntax
no issue

- ran the `ember-native-class-codemod` codemod to convert just the route classes to native class syntax and performed some minor manual cleanup
  - modern Ember uses native classes rather than EmberObject-based objects, this brings us closer to normalizing our code style across the codebase
- skipped the Application route as that requires deeper testing with a replacement for the `ShortcutsRoute` mixin
2022-01-17 10:06:57 +00:00
Kevin Ansfield
d09db70f43 Refactored use of ShortcutsRoute mixin on editor screen
no issue

- mixins are deprecated in Ember so we want to remove their usage
  - pre-requisite for easier automation for switching to native class syntax
- removed ShortcutsRoute mixin in favor of using the `{{on-key}}` modifier and standard controller action
2022-01-17 10:06:57 +00:00
Kevin Ansfield
c868dd6224 Refactored use of ShortcutsRoute mixin on tags screen
no issue

- mixins are deprecated in Ember so we want to remove their usage
  - pre-requisite for easier automation for switching to native class syntax
- removed ShortcutsRoute mixin in favor of using the `{{on-key}}` modifier and standard controller action
2022-01-17 10:06:57 +00:00
Kevin Ansfield
683a8584ce Refactored away CurrentUserSettings mixin (#2200)
no issue

Mixins are deprecated in Ember so we want to remove their usage. The `CurrentUserSettings` mixin was used in Route files to provide `transitionAuthor()` (that also transitions contributors) and `transitionEditor()` methods so the the consuming route could use them to prevent access to authors/editors. In practice the only reason this was used was to prevent access to admin-only routes.

- added an `AdminRoute` class that inherits from our `AuthenticatedRoute` class
  - when any route inherits from this class it will only allow access to admins and owners, any other user will be redirected to the home screen (dashboard or site depending on permissions)
- updated all of our admin-only routes to use the new `AdminRoute`
  - allowed for removal of `CurrentUserSettings` mixin usage
  - allowed for `beforeModel()` hooks to be removed from consuming routes in many cases
  - some admin-only routes were extending/inheriting directly from Ember's `Route` based on the assumption that the router hierarchy would have a parent route perform the redirect. Those have also been switched to `AdminRoute` for consistency and to prevent accidentally making them available if the router hierarchy changes
  - `/#/settings` does not use the `AdminRoute` so that it can redirect to the current user's setting page for non-admin users
- removed `CurrentUserSettings` mixin file
- cleaned up unnecessary computed property and function used for redirect-when-disabled in the Zapier route
2022-01-17 10:05:27 +00:00
Kevin Ansfield
f1e74516ac Cleaned up unused theme routes
no issue

- the controllers and templates for the old theme setting screens have been removed already but the route files had been missed in the cleanup
2022-01-14 19:09:58 +00:00
Kevin Ansfield
c4083967df 💡 Added database upgrade warning for required MySQL 8 in Ghost 5.0
no issue

- Ghost 5.0 will require MySQL 8 when running in production so we've added a warning to the whats new/about screen to give some visibility for self-hosters to prepare
- updated `whatsnew` controller to native class syntax
2022-01-14 13:27:32 +00:00
Kevin Ansfield
4e9a78c36d Cleaned up unused branding modal
no issue

- the branding modal was a hangover from before the design settings screen that hadn't been fully removed after the newer settings screen was released
2022-01-13 13:31:32 +00:00
Kevin Ansfield
d0f6dd7fef Refactored custom integration creation and limits modals
refs https://github.com/TryGhost/Team/issues/559

- switched to new ember-promise-modals pattern
- removed controller and template in favor of opening modals directly from the route
- removed unused `mousedown` event handlers - they are only necessary when an input blur would trigger validation errors
- fixed Enter key not triggering create action by adding an `{{on-key "Enter"}}` event handler to the name input
- fixed scroll not resetting to top of integrations screens when navigating between them by adding `{{scroll-top}}` element modifier to the main content sections
2022-01-13 13:16:13 +00:00
Kevin Ansfield
6a43cb27c3 Refactored leave-editor confirmation modal
refs https://github.com/TryGhost/Team/issues/559

- switched to new ember-promise-modals pattern
- simplified `willTransition` handling because we can now wait on the promise returned from opening the modal
  - the modal content was changed to use `{{on "click" (fn @close true)}}` on the "leave" button so we can check for that return value for leave confirmation
2022-01-12 10:18:25 +00:00
Kevin Ansfield
d3cebeec50 Refactored search modal
refs https://github.com/TryGhost/Team/issues/559

- changed modal to use new modal pattern
- fixes padding jump when opening due to improved animation behaviour not using duplicated elements
2022-01-11 17:59:48 +00:00
Kevin Ansfield
e8cb144317 Renamed offer modals
no issue

- offer-related modals were split across the top-level `modals` directory and the `modals/offers` directory
- normalized to the `modals/offers` directory
2022-01-11 17:45:10 +00:00
Kevin Ansfield
06aaf09336 Refactored <GhSearchInput>
no issue

- converted component to glimmer component and native class syntax
- reduced duplication by adding a description of each searchable model that is then used for data loading and searching
- removed convoluted use of computed properties as they weren't needed - the result of the search function is used by `<PowerSelect>` directly so we don't need any tracking/automated re-rendering
2022-01-11 17:35:32 +00:00
James Morris
adcd957eca Added a gradient for post list tables that works in dark mode
- in dark mode, the nice gradient to the left didn't show but this fixes that so matches light mode
2022-01-11 11:56:23 +00:00
Djordje Vlaisavljevic
54ca2a53d2 Changed Apple touch icon to the new Ghost logo
There's been some changes since iOS 7, so this commit also changes the <link> tag to reflect that.
2022-01-11 12:47:50 +01:00
James Morris
158bf6393e Fixed gradient showing for every column in Safari
- hovering over post lists showed a gradient for every column in Safari
- targetted the gradient differently which seems to fix issue for all browsers
2022-01-11 11:42:23 +00:00
James Morris
c8ee93c2e2 Fixed up icons in bottom nav for mobile when in dark mode
- fixes the colour of buttons when active in dark mode
- fixes the more icon when in dark mode
- uses css variables rather than fixed values
2022-01-10 09:11:35 +00:00
Daniel Kreiseder
fb45c57932 Fix kbd Tag color in dark mode (#2176)
refs: TryGhost#13616
From danimajo "fix the text color of the kdb tag in dark mode to dark text"
2022-01-07 18:12:27 +00:00
Rishabh
c3bb7163cf 🐛 Fixed broken Zapier links in Admin integration page
refs https://github.com/TryGhost/Team/issues/1270

- Zapier template links for example pre-built templates were broken due to a bug with Zapier
- updates links to use new zap creation template link which works
2022-01-07 17:12:39 +05:30
James Morris
3429ac6934 Fixed various tiny tweaks for members scrollable table
- double scrollbars showing at certain widths
- strange resizing of search members text box
- borders showing through when scrolling
- tidying table horizontal scrolling when viewport is narrower
2022-01-07 10:59:15 +00:00
Kevin Ansfield
73a6354135 Fixed "calling .set on destroyed object" error in gh-image-uploader tests
refs https://github.com/TryGhost/Admin/pull/2041

- the pretender upgrade highlighted an issue with the component's progress event handler where it could fire and attempt to set the progress property after the component has been destroyed
2022-01-06 10:20:06 +00:00
Kevin Ansfield
cdbba8530f Fixed ?search= empty param after members bulk delete
no issue

- the members query reset was using `""` rather than `null` due to a bug in an old version of search/filtering but that meant we could end up with an empty param
- switched to `null` as it no longer appears necessary to use a blank string, this matches behaviour of other params
2022-01-05 12:52:12 +00:00
Kevin Ansfield
7b41a0c2cc Fixed incorrect filter param being used after members import
no issue

- after importing members a filter is applied to the members list only shows imported members
- the query param used for this was still using an old format which correctly updated the list but meant that the filter selection UI was left in a bad state that didn't correctly show the selected label or allow easy clearing of the bad filter
2022-01-05 12:52:12 +00:00
Kevin Ansfield
f1bcb073a3 🐛 Fixed incorrect automatic CSV download when bulk-deleting members
closes https://github.com/TryGhost/Team/issues/1265

- we were generating the correct query params for the export endpoint but those query params weren't applied to the export URL before fetching it meaning the default GET behaviour of listing first 15 members was always being used when generating the backup CSV
2022-01-05 12:21:52 +00:00
Kevin Ansfield
6a673ce8e1 🐛 Fixed confusing wording change whilst saving in publish confirmation modal
no issue

- after clicking the "Publish and send" button in the publish confirmation modal the post is saved and an email is created which caused the wording to change to automatically switch to the "publish only" state because posts with existing emails can't be sent again
- changed the wording-choice data to be set statically based on data available when the modal is triggered rather than auto-updated based on overall system state
2022-01-04 18:05:34 +00:00
Kevin Ansfield
f56b52b8a1 Cleaned up headerCard labs flag
refs https://github.com/TryGhost/Team/issues/1258

- removed labs flag and conditionals as feature is GA
2022-01-04 14:58:19 +00:00