Commit Graph

8572 Commits

Author SHA1 Message Date
James Morris
097aa5c228 Fixed the spacing with email links in activity without flag
refs: https://github.com/TryGhost/Team/issues/1298

- Removed the title class as it's not necessary when flag is off
2022-02-01 14:28:37 +00:00
James Morris
418d5ae11c Bug fix for member activity mini view when flag is off
refs: https://github.com/TryGhost/Team/issues/1298

- careful consideration for styles when feature flag is on and off
- removed an unnecessary class name that helped fix
2022-02-01 12:57:11 +00:00
Rishabh
66f1e57d81 Fixed action dropdown not showing for free tier card
refs https://github.com/TryGhost/Team/issues/1252

- we only want to hide the archive option for free tier, as that's only relevant for paid tiers.
2022-02-01 17:26:18 +05:30
Kevin Ansfield
b47667d8af Fixed <GhDropdown> not opening
refs https://github.com/TryGhost/Admin/pull/2227

- in the switch to native class syntax the `super()` calls for click handlers in the `<GhDropdown>` and `<GhDropdownButton>` components were lost, meaning the event propagation was not cancelled by the DropdownMixin's `click()` handler resulting in the click-to-open being immediately undone by the body click-to-close
2022-02-01 11:42:42 +00:00
Fabien "egg" O'Carroll
a70be14bd5 Merge tag 'v4.34.1'
v4.34.1
2022-02-01 12:43:29 +02:00
renovate[bot]
7ef12f9d4e Update dependency @tryghost/color-utils to v0.1.7 (#2229)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-01 10:23:48 +00:00
Kevin Ansfield
25b2fd4aed Fixed forced-scrollbar on members and members-activity tables
no issue

- some browser/OS setting combinations will always show a fixed scrollbar when `overflow: scroll` is used instead of `overflow: auto`
2022-02-01 09:53:55 +00:00
Kevin Ansfield
be432dc4ca Added email fallback for selected member details on activity screen
no issue

- if a member has no name when they are selected on the member activity screen we weren't showing anything in the header breadcrumbs or member filter
- switched to showing name or email
2022-02-01 09:50:40 +00:00
renovate[bot]
60db015478 Update dependency @tryghost/members-csv to v1.2.3 (#2216)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-01 09:35:20 +00:00
renovate[bot]
c820c5b010 Update dependency @tryghost/timezone-data to v0.2.55 (#2215)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-01 09:35:06 +00:00
renovate[bot]
7233d171bb Update dependency @tryghost/helpers to v1.1.56 (#2213)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-01 09:34:53 +00:00
Gabriel Csapo
8d01fb5556 Switched majority of files from EmberObject to native class syntax using @classic decorator (#2227)
no issue

- ran [ember-native-class-codemod](https://github.com/ember-codemods/ember-native-class-codemod) to convert the majority of remaining EmberObject based controllers and components to native class syntax using the `@classic` decorator
- skipped older style modal components (`components/modal-*.js`) due to observed incompatibilities in some cases
2022-02-01 09:34:03 +00:00
Daniel Lockyer
4e5fe7b2ee v4.34.1 2022-02-01 08:50:37 +00:00
Rishabh Garg
7c5b14d050 Updated specific tier visibility handling for posts/pages (#2233)
refs TryGhost/Team#1071

Specific tier visibility for a post was previously stored in `visibility` column directly, which had a limitation of 50 charts. Going forward, for the specific tiers visibility of post/page, we use `tiers` array in API that contains list of tiers with access for post. This change -

- replaces `filter` type to `tiers` for visibility
- adds new visibility filter segment component in post settings menu which stores array of tiers instead of nql string for visibility
- updates serializer and model for post/page
- updates tests
2022-02-01 12:24:06 +05:30
Rishabh Garg
baf6ec07a8 Wired UI for archiving tiers (#2231)
refs https://github.com/TryGhost/Team/issues/1252

- allows site owners to (un)archive existing tiers via Admin UI
- adds option to switch between archived or active tiers view

Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
2022-01-31 23:56:12 +05:30
Djordje Vlaisavljevic
0f718c5a99 Moved the welcome page URL field to the first section
refs https://github.com/TryGhost/Team/issues/1168
2022-01-31 15:53:25 +01:00
Kevin Ansfield
c9aa43e5a5 Added infobox to matches list for callout card
no issue

- extra term for matching the callout card so you can start typing `/infobox` and get the card you were looking for
2022-01-31 13:46:07 +00:00
Kevin Ansfield
fa4f8221d5 🎨 Made /-menu card searching case-insensitive
no issue

- allows typing "Button" to match the "button" card
- useful on mobile where words can be auto-capitalized
2022-01-31 13:37:25 +00:00
Kevin Ansfield
988390f528 🐛 Fixed editor cards not being usable by contributors
no issue

- a recent Ember upgrade has slightly changed behaviour for template conditionals meaning helpers used in the right-hand side of a conditional can be called when the conditional evaluates to falsy
- this caused an error to be thrown by the editor when creating cards as a contributor because the `{{fn}}` helper is called with a null/undefined `saveCardAsSnippetIfPossible` function which will throw an error
- wrapped the function in the `{{optional}}` helper (https://github.com/DockYard/ember-composable-helpers#optional) which will return a "noop" function allowing the template to evaluate without errors
2022-01-31 13:29:24 +00:00
Kevin Ansfield
e0fa64a56b 🐛 Fixed editor cards not being usable by contributors
no issue

- a recent Ember upgrade has slightly changed behaviour for template conditionals meaning helpers used in the right-hand side of a conditional can be called when the conditional evaluates to falsy
- this caused an error to be thrown by the editor when creating cards as a contributor because the `{{fn}}` helper is called with a null/undefined `saveCardAsSnippetIfPossible` function which will throw an error
- wrapped the function in the `{{optional}}` helper (https://github.com/DockYard/ember-composable-helpers#optional) which will return a "noop" function allowing the template to evaluate without errors
2022-01-31 13:28:26 +00:00
Kevin Ansfield
8f1cca9f9d Added per-user dismissibility of getting-started widget
refs https://github.com/TryGhost/Team/issues/1294

- added `dashboardHideGettingStarted` feature flag that uses the `user.accessibility` JSON blob
- added `{{toggle-feature}}` helper which returns a function that can be used with the `{{on}}` helper to toggle a feature flag on or off from templates
- hooked up the dismiss behaviour for the dashboard widget using the `toggle-feature` helper
- hid the dashboard when `dashboardHideGettingStarted` feature is enabled
2022-01-31 13:05:20 +00:00
Peter Zimon
3a3b2f7fb4 Remove alpha flag for Editor settings panel (#2230) 2022-01-31 13:33:59 +01:00
Kevin Ansfield
d8aaa77f37 Replaced dashboard launch wizard widget with getting-started widget
refs https://github.com/TryGhost/Team/issues/1294

- added new widget behind `improvedOnboarding` labs flag
- hid launch wizard widget when labs flag is enabled
2022-01-31 12:28:22 +00:00
Fabien "egg" O'Carroll
898af1b449 Put Tier welcome page urls behind feature flag
refs https://github.com/TryGhost/Team/issues/1168
2022-01-31 13:36:40 +02:00
Kevin Ansfield
fbf55bb29d Added improvedOnboarding labs toggle
refs https://github.com/TryGhost/Team/issues/1294

- feature flag and associated toggle for onboarding-related setup flow and dashboard tweaks
2022-01-31 11:31:58 +00:00
Kevin Ansfield
ed48cd6e3a Refactored custom-view-form modal
refs https://github.com/TryGhost/Team/issues/559
refs https://github.com/TryGhost/Admin/pull/2227

- updated modal component to use newer ember-promise-modals modals implementation
  - removed use of "delayedColor" properties as the workaround for liquid-fire based animation is no longer required
  - added `validate` action to remove need for `{{action}}` - we can't call the `validate()` method directly from the template because it's not bound correctly with `@action` and binding it breaks other code that expects `_super()` for the validate method to work via the mixin (eg, staff invite modal)
- removed `customViews.toggleFormModal()`` and changed `customViews.editView()` to open the modal directly
  - updated templates to use `{{on "click" this.customViews.editView}}` in place of toggling the "showFormModal" property
2022-01-31 10:41:57 +00:00
Fabien "egg" O'Carroll
8fbb5eb04d Removed shared redirect inputs when Tiers enabled
refs https://github.com/TryGhost/Team/issues/1168

These are being replaced by Tier specific redirect which are set in the
Tier modal when Tiers feature is enabled.
2022-01-31 12:07:19 +02:00
Fabien "egg" O'Carroll
41c138640a Wired up welcome_page_url to Tier modal
refs https://github.com/TryGhost/Team/issues/1168

This allows users to set the welcome page url on a tier by tier basis
rather than globally for all paid tiers or all free tiers.
2022-01-31 12:07:19 +02:00
Daniel Lockyer
dc8b5542d4 v4.34.0 2022-01-28 16:00:27 +00:00
Sanne de Vries
7a7b473f89 Updated Email newsletter settings
No issue

- When disabling email newsletters, the "Subscribed to email" toggle in the member profile is hidden
- Copy changes to the Default newsletter recipients setting
- Moved tiers to the top of the segment selection in Default newsletter recipients
2022-01-27 21:40:30 +00:00
Kevin Ansfield
d3447315ee Excluded all email related events from feeds when newsletter is disabled
refs https://github.com/TryGhost/Team/issues/1290

- added `{{members-event-filter}}` helper that can be used to build an event filter string that will always exclude email events when the newsletter is disabled
  - useful when used in conjunction with `{{members-event-fetcher}}` because the filter is automatically adjusted for you without needing additional logic or JS backing files for components
- updated dashboard and member screen activity widgets to use `{{members-event-filter}}`
- updated members-activity screen
  - updated to use `{{members-activity-filter}}` helper in the template which allowed for removal of filter generation in the controller
  - changed `@hideMemberOnlyEvents` to `@hiddenEvents` on `<MembersActivity::EventTypeFilter>` so that we can control which events are available in the filter based on newsletter enable/disable and presence of a filtered member
2022-01-27 19:19:15 +00:00
Kevin Ansfield
5dda8832f2 Added showSearchMessage option to gh-input-with-select/trigger component
refs https://github.com/TryGhost/Team/issues/1290

- when set to `false` prevents the dropdown opening when it would only contain the "Type to search" message
- uses the `@extra` hash param. Would be preferable to be able to use `@searchMessage=""` but ember power select doesn't pass the searchMessage argument through to the trigger
2022-01-27 18:56:13 +00:00
James Morris
af6332cb6e Make the Activity header always clickable to reset any filters anytime
refs https://github.com/TryGhost/Team/issues/1277
2022-01-27 17:45:13 +00:00
James Morris
1bcc396442 Styled up the filters dropdown for activity with a few other tweaks
refs https://github.com/TryGhost/Team/issues/1277

- added new selected style to filters for activity
- added new subscription icon for filters for activity
- added in the GhMembersAvatar to events row
- fixed the green link for activity mini-view
2022-01-27 17:14:06 +00:00
Kevin Ansfield
073cdc7078 Replaced dashboard "Top members" widget with longer activity feed
refs https://github.com/TryGhost/Team/issues/1290

- when the activity feed labs flag is enabled
  - hide top members widget
  - increase number of events in activity widget from 5 to 10
2022-01-27 16:53:39 +00:00
Kevin Ansfield
f2594e26f6 Reverted accidental removal of dashboard "Top members" widget
no issue

- we want to remove it eventually but as part of the members activity feed changeset
2022-01-27 16:48:51 +00:00
Kevin Ansfield
5696762984 Switched to top-level input field for members activity member search
refs https://github.com/TryGhost/Team/issues/1290

- switched to using our `gh-input-with-select/trigger` power select trigger to get a search input with select
  - kept the replacement with a button once a selection is made for easier clearing of the selection
2022-01-27 16:41:44 +00:00
James Morris
fa224988e5 Updated styles for Activity to address latest feedback
refs https://github.com/TryGhost/Team/issues/1277

- changed breadcrumb for activity
- added back in three columns for activity when not filtered
- made adjustments to visual look and feel
2022-01-27 15:27:26 +00:00
Kevin Ansfield
266064fc8f Fixed <GhMemberAvatar> expecting an EmberObject object
no issue

- it should be possible to pass a POJO rather than an EmberObject object so the component is usable with raw data like we have with member events
- switched to using `get()` rather than assuming the passed in object has it's own `.get()` method
2022-01-27 15:09:08 +00:00
Kevin Ansfield
98eb75ef06 Added member search/filter UI to the members-activity screen
refs https://github.com/TryGhost/Team/issues/1290

- renamed `@updateExcludedEvents` to `@onChange` and updated associated action name so we have consistent naming for our select-like components
- added `<MembersActivity::MemberFilter>` component
  - utilises `<PowerSelect>` with a custom trigger component and  and a debounced search via the member's API
  - does not use `<PowerSelect>`'s default "selected" behaviour in favor of replacing the select with a button to provide a clearer "reset filter" UX that's easier to build/style outside of the power-select components
  - added `.ember-power-select-trigger-reset` class to reset margins, paddings, borders, and heights so that it's easier for a custom trigger's contents to control the display
2022-01-27 15:00:40 +00:00
Sanne de Vries
21b4b15a1c Improved Email newsletter settings page (#2207)
Updated email newsletter settings

- Added toggle to disable email newsletters
- Hides email related UI when email is completely turned off
- Rearranged email newsletter settings
- Added publish-menu preview in 
- Changed default-recipients setting
- Updated publish-menu to show Publish as default action
- Removed the confirmation modal during publishing when no emails are intended to be sent
2022-01-27 12:40:11 +01:00
Daniel Lockyer
6c9169e919 Merged v4.33.2 into main
v4.33.2
2022-01-27 10:28:15 +00:00
Daniel Lockyer
1ed4529790 v4.33.2 2022-01-27 10:20:51 +00:00
James Morris
2f935163d5 Added basic activity filter styling with first round icons
refs https://github.com/TryGhost/Team/issues/1277
2022-01-26 17:54:26 +00:00
Renovate Bot
83f1b13e93 Update dependency chai to v4.3.6 2022-01-26 15:58:33 +00:00
Sanne de Vries
beca9b13dd Updated Author user profile page and sidebar
No issue

- Authors don't need access to staff page and don't need to see breadcrumbs on their profile page
- There's enough space in the side navigation for the post views to be visible by default
2022-01-26 14:49:55 +00:00
James Morris
50502fa5a8 Styled activity mini-views and full-view to bring closer to design
refs https://github.com/TryGhost/Team/issues/1277
2022-01-26 14:37:34 +00:00
James Morris
f046fd3ccb Removed members column and combined with events in activity
refs https://github.com/TryGhost/Team/issues/1277
2022-01-26 11:19:03 +00:00
James Morris
f63328e2cf Added basic styling with icons for events and tided structure
refs https://github.com/TryGhost/Team/issues/1277
2022-01-26 11:19:03 +00:00
Kevin Ansfield
ee5aae8a90 Switched member activity feed widget from email_recipients to events feed
refs https://github.com/TryGhost/Team/issues/1277

- removed inclusion of `email_recipients` in member query when fetching member for display on the member details screen as it was only used for the activity feed
- added `<Member::ActivityFeed>` template-only component as a replacement for `<GhMemberActivityFeed>`
  - uses `members-event-fetcher` resource for consistency with main activity feed and dashboard widget. Allows for a template-only component because data fetching behaviour can be managed directly from the template rather than requiring a backing component
2022-01-26 10:55:05 +00:00
Rishabh
6d26bdcd1e Fixed enter key behavior on unarchive offer modal
no refs

- updates unarchive task method used on enter key for the unarchive offer popup
- wrong method was causing the enter key to not unarchive the offer as expected
2022-01-26 14:14:42 +05:30
Renovate Bot
127b27e6e4 Update dependency chai to v4.3.5 2022-01-25 20:42:09 +00:00
Kevin Ansfield
5211e5f1c9 Fixed spinner flash on fast member activity loads
refs https://github.com/TryGhost/Team/issues/1277

- switched to using the `<GhLoadingSpinner />` component as it has a 200ms delay before it's shown to avoid flashing on fast data changes
2022-01-25 16:53:45 +00:00
Kevin Ansfield
d9e6466106 Removed members activity link from main nav
refs https://github.com/TryGhost/Team/issues/1277

- removed nav item in favor of links only from the dashboard and member details screens
- added params reset to the dashboard link so you don't unexpectedly land back on a member-specific events list
- updated the members activity screen header so it's clearer this is a sub-section of members
2022-01-25 16:40:51 +00:00
Kevin Ansfield
69e7bad5d1 Added member details and hid member column on activity feed when filtered by member
refs https://github.com/TryGhost/Team/issues/1277

- extracted member details display into a `<GhMemberDetails>` component for re-use in the member details and members-activity screens
- added loading of member record from the member id query param and displayed the member details above the table when a member filter is present
- hid the member column in the events table when a member filter is present
  - it's useless/repeated info at that point
2022-01-25 16:40:51 +00:00
Djordje Vlaisavljevic
88e71dec6c Added welcome page input field to edit tier modal
refs https://github.com/TryGhost/Team/issues/1168
2022-01-25 17:04:14 +01:00
Kevin Ansfield
bbf1f38703 Added email preview modal link to activity feed items
refs https://github.com/TryGhost/Team/issues/1277

- used the `<GhEmailPreviewLink>` component to display the email's subject inside the activity feed that when clicked opens the email preview modal
2022-01-25 13:29:14 +00:00
Kevin Ansfield
6dc733ae3a Fixed <GhEmailPreviewLink> default text and whitespace
refs 21f2a58a8a

- passed in arg is `@data` not `@email` because it can be an email or post object
- added `~` handlebars syntax to collapse white-space so links can be surrounded by other chars without spaces being visible, eg `"<GhEmailPreviewLink />"`
2022-01-25 13:27:58 +00:00
Kevin Ansfield
21f2a58a8a Refactored post email preview modal
refs https://github.com/TryGhost/Team/issues/559
refs https://github.com/TryGhost/Team/issues/1277

- switched modal implementation to the newer promise-modal style
- added `<GhEmailPreviewLink>` component that renders a link that when clicked opens the modal
  - removes the need for templates/controllers to manually handle modal opening/closing and to pass actions down from parents
  - updated all places we were triggering an email preview modal to use `<GhEmailPreviewLink>`
2022-01-25 13:17:05 +00:00
Kevin Ansfield
de93c691cd Added member query param support to members-activity screen
refs https://github.com/TryGhost/Team/issues/1277

- added `member` query param that expects a member ID
  - using an ID as it makes the filtering simpler than using an email because there is no async member fetching required
- updated `filter` generation to build `type` and `member` parts and combine them in an AND query
- updated link in member screen to use a `member` param rather than a `filter` param
  - resets any `excludedEvents` param so all events for the member will be shown when following link from member->members-activity
2022-01-25 12:13:13 +00:00
Kevin Ansfield
acbc4233a8 Humanized event details on members activity screen
refs https://github.com/TryGhost/Team/issues/1277

- moved event parsing from a component to a helper
  - keeps code as a plain function
  - allows for per-event parsing which helps with rendering as we're not rebuilding/re-rendering a whole array each time the events data changes when a new page is loaded
  - updated to include full member and email objects (will be used later for email preview popup)
- updated members-activity table row component to use the event parser helper for better event details
2022-01-25 11:50:10 +00:00
Kevin Ansfield
5da8ee3c76 Switched members event fetcher to use data.created_at as cursor
refs https://github.com/TryGhost/Team/issues/1277

- updated to match API's expected filter format
2022-01-25 10:13:37 +00:00
Kevin Ansfield
05b1d85398 Fixed invalid filter query for members events
refs https://github.com/TryGhost/Team/issues/1277

- we were inadvertently adding an empty string to the excluded events set resulting in a trailing comma in the filter string (`type:-[x,y,z,]`)
2022-01-25 10:12:24 +00:00
Kevin Ansfield
e45dd1c3a7 Fixed "Members activity" nav link losing active class when filtered
refs https://github.com/TryGhost/Team/issues/1290

- added an explicit `current-when="members-activity"` so the active class is not tied to the default behaviour of matching specific query params
2022-01-24 17:44:09 +00:00
Kevin Ansfield
ae8cb00300 Added event filtering UI to members activity screen
refs https://github.com/TryGhost/Team/issues/1290

- changed query param from `filter` to `excludedEvents`
  - exposing filter directly creates problems converting back to NQL after parsing+modifying the query
  - removes suggestion that raw NQL can be manipulated by editing the URL
  - allows us to use a set of well-defined query params to build the underlying filter string from scratch each time a query param changes
- added `<MemberActivity::EventTypeFilter>` that renders a filter button with a dropdown containing a checkbox for each event type
- if no `member` property is set on the members-activity controller (soon to be another query param) any email event types are hidden because the API can't currently paginate those correctly and in any case they would drown out any other type of event
2022-01-24 17:31:32 +00:00
Daniel Lockyer
731c87ad11 Merged v4.33.1 into main
v4.33.1
2022-01-24 16:01:20 +00:00
Daniel Lockyer
7c50b97f93 v4.33.1 2022-01-24 15:59:59 +00:00
Kevin Ansfield
9c06b5e71f Switched from <= to < in members event pagination
refs https://github.com/TryGhost/Team/issues/1277

- using `<= created_at` requires client-side deduplication to prevent the same records appearing in the next page
- using `< created_at` does result in a possibility of records being missed between pages with the API's current pagination behaviour if many events occur within the same second but for our current requirements (no email events shown unless filtering by specific member) that is edge-case enough that simplified client code is preferable
2022-01-24 11:01:42 +00:00
Fabien "egg" O'Carroll
9c139a78e4 Removed Archived Tiers from Portal settings
refs https://github.com/TryGhost/Team/issues/1252

Archived Tiers are no longer able to be signed up to, and should not be
shown in Portal
2022-01-24 12:12:15 +02:00
renovate[bot]
065cac4914 Pin dependency @ember/test-helpers to 2.6.0 (#2222)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-24 09:07:47 +00:00
Kevin Ansfield
5f51310714 Removed unused membersActivity service
refs https://github.com/TryGhost/Team/issues/1277

- fetching member event data is now handled by the `members-event-fetcher` resource as that gives better ergonomics for data loading in templates
2022-01-22 16:06:39 +00:00
Kevin Ansfield
b5db0d57d9 Updated dashboard member activity widget to use fetcher resource
refs https://github.com/TryGhost/Team/issues/1277

- re-uses same fetcher resource used on member activities screen
  - allows for component to be simplified as it no longer needs to care about handling data loading itself
  - drops use of 1-minute data caching as there is no real need for it in typical usage and can be confusing when the dashboard didn't update as expected
- exposed error message on `members-event-fetcher` if one is encountered
2022-01-22 16:04:54 +00:00
Kevin Ansfield
08538bbb0b Fixed linter error
refs a45f80fa82

- removed unused import left over from development testing
2022-01-22 15:38:25 +00:00
Kevin Ansfield
a45f80fa82 Added fetching of member events to members-activity screen
refs https://github.com/TryGhost/Team/issues/1277

- added `ember-could-get-used-to-this` dependency to get access to Resources
  - context: https://www.pzuraq.com/introducing-use/
- added MembersEventFetcher resource for loading members events
  - using a Resource allows for a better data loading experience using only components
  - uses raw data from the API rather than going through Ember Data because we don't need full models or session-length caching that gives us
  - data is kept around in memory for the lifecycle of the resource, if the `filter` param changes the resource is torn down and recreated so it starts from page 1 again, once it's no longer used by a component it's torn down so data isn't kept around
  - paginates by using a `created_at:<={lastSeenTimestamp}` filter - this assumes the API can handle that effectively as a cursor with no duplicate or skipped records
- updated `members-activity` template to use the new resource and control data loading using infinite scroll
- moved overall screen structure from the `<MembersActivity::Table>` component into the `members-activity` template so that the table component can stay focused on just the table display
2022-01-22 15:35:08 +00:00
Kevin Ansfield
31ccd15eb1 Updated Ember dependencies to 3.24 (#2221)
no issue

- bumped `ember-source`, `ember-data`, and `ember-cli` to latest 3.24.x versions
2022-01-22 11:24:26 +00:00
Kevin Ansfield
d51e25888d Resolved ember-simple-auth deprecations
no issue

- many "The automatic session initialization is deprecated" were shown in test output due to an old method of initializing the session service
- switched to explicit session setup in the application route's `beforeModel` hook
- https://github.com/simplabs/ember-simple-auth/issues/2314
2022-01-22 00:30:56 +00:00
Kevin Ansfield
8965ee9789 Updated Ember dependencies to 3.23
no issue

- bumped `ember-source`, `ember-data`, and `ember-cli` to latest 3.23.x versions
2022-01-22 00:20:35 +00:00
Kevin Ansfield
b71babfc51 Updated Ember dependencies to 3.22 (#2220)
no issue

- bumped `ember-source`, `ember-data`, and `ember-cli` to latest 3.22.x versions
- fixed errors caused by updating properties inside of a render
  - `<GhPublishMenu>` removed insta-call of `@setSaveType` when rendering sub-components in favour of pre-setting the default `@saveType` value when the underlying post status changes
  - updated `<GhNavMenu>` to use the run-loop to update the `firstRender` property once rendering has finished rather than mid-render
2022-01-22 00:05:05 +00:00
Kevin Ansfield
7376167d0a Fixed errors thrown in integration tests
no issue

- errors were due to test setup rather than anything being broken
- cleans logged errors in test output
2022-01-21 23:45:47 +00:00
Kevin Ansfield
57b1ab4800 Ran ember-cli-update --run-codemods (#2219)
no issue

- part of ember upgrades
- removed all unnecessary usage of `.get`
- cleaned up imports where we had imports from the same module across multiple lines
- standardized on importing specific computed helpers rather than using `computed.foo`
- switched tests from using `wait()` to `settled()`
2022-01-21 19:25:47 +00:00
Kevin Ansfield
d494e01d6b Updated <MemberActivityEventParser> to handle email events
refs https://github.com/TryGhost/Team/issues/1277

- if email events were passed through the parser they had blank actions and objects
- added `opened`, `received`, and `failed to receive` actions for email events
- changed object to equal `an email` for any email events
2022-01-21 18:15:06 +00:00
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
Daniel Lockyer
3c2a322d79 v4.33.0 2022-01-21 16:00:31 +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
Renovate Bot
ea71e2a653 Update dependency eslint-plugin-ghost to v2.12.0 2022-01-20 15:42:07 +00:00
Renovate Bot
f1c1894f1a Update dependency @tryghost/string to v0.1.22 2022-01-20 15:36:12 +00:00
Renovate Bot
d215a9b114 Update dependency @tryghost/color-utils to v0.1.6 2022-01-20 15:36:01 +00:00
Renovate Bot
1492ded009 Update dependency @tryghost/limit-service to v1.0.9 2022-01-20 15:04:17 +00:00
renovate[bot]
53c96c1603 Update dependency liquid-fire to v0.34.0 (#2211)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-20 13:34:48 +00:00
renovate[bot]
dc7baa20f5 Update dependency ember-auto-import to v1.12.1 (#2210)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-20 13:18:29 +00:00
renovate[bot]
f05977b60e Update dependency ember-keyboard to v7.0.1 (#2208)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-20 13:17:38 +00:00
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
16781fbc0f Fixed linter error
refs 92ece7b373

- removed unused import that was left over from an earlier approach
2022-01-19 13:15:19 +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
renovate[bot]
614dda8af6 Update dependency @ember/render-modifiers to v2.0.3 (#2199)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-18 10:46:30 +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
Kevin Ansfield
8d67efb806 Revert "Update dependency ember-cli-mirage to v2.3.1 (#2198)"
This reverts commit 7dbec8b2cf.

- for some reason this was causing infinite build times locally
- reverted pending further investigation
2022-01-17 17:38:24 +00:00
Kevin Ansfield
54d201c230 Removed deprecated ember-keyboard options
refs c909e6babc

- the options are deprecated and were throwing warnings during build
2022-01-17 17:38:24 +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
renovate[bot]
c909e6babc Update dependency ember-keyboard to v7 (#2197)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-17 15:04:10 +00:00
renovate[bot]
7dbec8b2cf Update dependency ember-cli-mirage to v2.3.1 (#2198)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-17 15:02:31 +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
renovate[bot]
7aec5667a1 Update dependency @tryghost/members-csv to v1.2.2 (#2194)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-17 09:46:15 +00:00
renovate[bot]
c4026da64a Update dependency ember-svg-jar to v2.3.4 (#2196)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-17 09:45: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
Daniel Lockyer
01ac9f185c v4.32.3 2022-01-14 16:00:28 +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
Daniel Lockyer
97c9c23d4a Merged v4.32.2 into main
v4.32.2
2022-01-12 10:01:37 +00:00
Daniel Lockyer
a33b6f2b37 v4.32.2 2022-01-12 10:00:20 +00:00
Kevin Ansfield
d63e722bcd 🐛 Fixed broken styles in Admin's search modal
This reverts commit e581263682.

- ember-power-select and ember-basic-dropdown updates changed which elements classes are assigned to in some cases
- revert is the quick-fix option for getting back to the working state
- dependency updates should be pushed again later with app-level changes needed to match new behaviour with old designs
2022-01-12 09:25:18 +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
renovate[bot]
cae75694d7 Update dependency markdown-it to v12.3.2 (#2191)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-10 14:40:06 +00:00
renovate[bot]
4242a86333 Update dependency @tryghost/kg-parser-plugins to v2.11.3 (#2190)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-10 14:39:53 +00:00
renovate[bot]
a369f11881 Update dependency @tryghost/kg-clean-basic-html to v2.2.7 (#2189)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-01-10 14:20:22 +00:00
Kevin Ansfield
673159efdc 🐛 Fixed broken styles in Admin's search modal
This reverts commit e581263682.

- ember-power-select and ember-basic-dropdown updates changed which elements classes are assigned to in some cases
- revert is the quick-fix option for getting back to the working state
- dependency updates should be pushed again later with app-level changes needed to match new behaviour with old designs
2022-01-10 14:11:56 +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
Daniel Lockyer
d8aebb0c24 v4.32.1 2022-01-07 16:00:34 +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