Commit Graph

8918 Commits

Author SHA1 Message Date
Rishabh Garg
c1ad9475d7 Added filter by tiers to members filter UI (#2274)
closes https://github.com/TryGhost/Team/issues/1029

- allows site owner to filter members on specific tier
- needs tiers beta flag enabled and site should have more than 1 paid tiers.
2022-02-28 16:08:44 +05:30
Rishabh
a7ef6c97e8 Fixed include transformation in query for embedded relations
refs https://github.com/TryGhost/Team/issues/1029

- `?include` query in API needs to be transformed from camel case to snake case
- the transformation was missing for building query in relationship adapter, causing incorrect camel-case `?include` in api like `emailRecipients` instead of `email_recipients`
2022-02-28 15:44:57 +05:30
Daniel Lockyer
84065585e1 v4.37.0 2022-02-25 16:00:27 +00:00
Thibaut Patel
20ff86c1f3 Removed last_seen_at from the api queries
refs https://github.com/TryGhost/Team/issues/1393

- This prevents the `last_seen_at` from being sent to the API
- In the future the API will accept this property, this is a temporary fix
2022-02-24 18:46:57 +01:00
Kevin Ansfield
e7424b1892 Removed "Email" member filter options when email sending is disabled
no issue

- updated the selection of available filter properties to remove any with the "Email" group when the default email recipients setting is set to "disabled"
2022-02-24 14:52:01 +00:00
Kevin Ansfield
07a01c2df6 Removed "Subscription" member filter options when Stripe is not connected
no issue

- updated the filtering of available filter properties to remove any with the "Subscription" group when Stripe is not connected
2022-02-24 11:24:39 +00:00
Kevin Ansfield
36ba447de0 Fixed mirage setup for members
refs 2bf311edc8

- added missing relationship definitions for included relationships on member model
- cleaned up unnecessary forcing of `id: 99` when creating new records of some models
2022-02-23 14:21:28 +00:00
Kevin Ansfield
2bf311edc8 Updated label filtering test to check labels column is populated correctly
no issue

- updated assertions to check that labels are shown inside the labels column when filtering members list by label
- added a member serializer to mirage so that relationships are correctly expanded to full embedded records
2022-02-23 13:54:23 +00:00
Kevin Ansfield
0589f32788 Added last seen at column to members list when filtered
closes https://github.com/TryGhost/Team/issues/1388

- added `lastSeenAtUTC` property to member model
- added `last_seen_at` filter column handling to `<GhMembersListItemColumn>`
  - uses same format as the "Created" column showing the date only and a "days ago" string
2022-02-22 17:13:32 +00:00
Kevin Ansfield
ab67df76f8 Added tests for filtered columns showing in members table
refs https://github.com/TryGhost/Team/issues/1388
refs https://github.com/TryGhost/Team/issues/1337

- when filtering the members table, extra columns are shown to make any filtered data visible but we didn't have any tests for the functionality
- updated the `filterColumnLabels` getter to return an object with the original filter type name and the display label so it's easier to use test selectors
2022-02-22 16:10:16 +00:00
Peter Zimon
df3c53be5d Fixed linting error 2022-02-22 16:52:11 +01:00
Sanne de Vries
fb5fe66343 Updated empty members screen 2022-02-22 15:54:35 +01:00
Sanne de Vries
7c5605dc2c Updated Members screen empty screen 2022-02-22 15:40:57 +01:00
Sanne de Vries
5fb9b8f641 Hid Offers page when subscription access is off
No issue

- When subscription access is set to nobody, all member and newsletter related UI should be hidden
2022-02-22 15:18:59 +01:00
Peter Zimon
4f21712828 Replaced divs with inputs for portal links 2022-02-22 14:36:24 +01:00
Peter Zimon
cce771b879 Updated portal links copy function 2022-02-22 14:00:36 +01:00
Djordje Vlaisavljevic
fcb8a19594 Removed the white line visible when selecting currency 2022-02-22 12:30:03 +01:00
Kevin Ansfield
6b36dfc92f Merged v4.36.3 into main 2022-02-22 10:31:35 +00:00
Daniel Lockyer
9708f173fe v4.36.3 2022-02-22 10:25:09 +00:00
Kevin Ansfield
1df79dda2b 🐛 Fixed saving of custom integrations
closes https://github.com/TryGhost/Ghost/pull/14183
refs 3ee0c3ff53

- unskipped test for integration saving
- fixed missed rename from `save` to `saveTask`
- fixed `saveTask` throwing from a "handled" validation error
2022-02-22 10:14:44 +00:00
Kevin Ansfield
17de5a91ff 🐛 Fixed "Enable email open-rate" toggle
closes https://github.com/TryGhost/Team/issues/1381
refs 21b4b15a1c

- when the email newsletter settings was refactored, the `emailTrackOpens: reads('settings.emailTrackOpens')` was removed as it's a confusing redirection but it's usage in the toggle action was missed
2022-02-22 10:14:28 +00:00
Kevin Ansfield
034dc8ef3f 🐛 Fixed mismatched operator in member filters after changing filter type
closes https://github.com/TryGhost/Team/issues/1384

- when setting the filter type, change the filter's relation/operator to match the filter type's first operator so the filter string and the UI are in sync
2022-02-22 10:08:16 +00:00
Kevin Ansfield
4d00f5fb69 Added "Last seen" members list filtering options
closes https://github.com/TryGhost/Team/issues/1307

- adds "Last seen more/less than x days ago" option to members filtering UI
- re-ordered a few related objects/arrays so they are consistent
2022-02-22 09:47:01 +00:00
Kevin Ansfield
f44c54862b Completed Octane migration of integration controller
refs https://github.com/TryGhost/Ghost/issues/14101

Applied scout rule to fix linter errors when touching a file.

- added local `updateProperty` and `validateProperty` methods to remove use of `target=`
  - our validation implementation does not properly bind `this` so direct usage of `this.integration.validate` fails
- added `on-input` argument support to our `TextInput` mixin so we we're not overwriting the native event handlers on classic input components
2022-02-21 17:54:47 +00:00
Kevin Ansfield
d1e7ccbe00 🐛 Fixed saving of custom integrations
closes https://github.com/TryGhost/Ghost/pull/14183
refs 3ee0c3ff53

- unskipped test for integration saving
- fixed missed rename from `save` to `saveTask`
- fixed `saveTask` throwing from a "handled" validation error
2022-02-21 17:54:47 +00:00
Djordje Vlaisavljevic
26388774cc Fixed more linting issues
refs https://github.com/TryGhost/Team/issues/1096
2022-02-21 17:55:47 +01:00
Djordje Vlaisavljevic
97ca3db8b1 Fixed linting issues
refs https://github.com/TryGhost/Team/issues/1096
2022-02-21 17:30:03 +01:00
Djordje Vlaisavljevic
899c078816 Added the "selectablePortalLinks" feature flag
refs https://github.com/TryGhost/Team/issues/1096
2022-02-21 16:46:21 +01:00
Djordje Vlaisavljevic
e8a01142bc Put portal links update under the feature flag
refs https://github.com/TryGhost/Team/issues/1096
2022-02-21 16:46:21 +01:00
Kevin Ansfield
15510221c5 🐛 Fixed "Enable email open-rate" toggle
closes https://github.com/TryGhost/Team/issues/1381
refs 21b4b15a1c

- when the email newsletter settings was refactored, the `emailTrackOpens: reads('settings.emailTrackOpens')` was removed as it's a confusing redirection but it's usage in the toggle action was missed
2022-02-21 14:31:36 +00:00
Djordje Vlaisavljevic
f98aafb08b Added grouping to portal links table to fix linting issue
refs https://github.com/TryGhost/Team/issues/1096
2022-02-21 13:22:21 +01:00
Djordje Vlaisavljevic
1142307b8b Made links in portal settings selectable
refs https://github.com/TryGhost/Team/issues/1096
2022-02-21 13:01:20 +01:00
Kevin Ansfield
1534172fef Added membersLastSeenFilter labs flag
refs https://github.com/TryGhost/Team/issues/1307

- will be used for gating access to "Last seen" filtering on members screen
2022-02-21 11:52:32 +00:00
renovate[bot]
c4aaa63748 Update dependency ember-css-transitions to v3.1.0 (#2270)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-21 09:27:55 +00:00
Kevin Ansfield
80504a426c Fixed linter error 2022-02-19 22:26:28 +00:00
Kevin Ansfield
2e42bc1908 Fixed membership tests in CI
refs 4b646d40ea

- blogUrl config was not set meaning the baseUrl handling in `<GhUrlInput>` picked up the current test URL which can change between test runs, especially when run in parallel using ember-exam
2022-02-19 22:20:33 +00:00
Kevin Ansfield
4b646d40ea Added non-Stripe members setting screen acceptance tests
refs https://github.com/TryGhost/Team/issues/1358

- added acceptance tests for members settings screen
  - subscription access management
  - default post access management
  - free tier management
- fixed `enableLabsFlag()` test helper overwriting existing flag settings when enabling another one
- updated API mocks and fixtures
  - matched product fixtures to default tiers-enabled products
  - updated product API mocks to include benefit handling
2022-02-18 22:36:01 +00:00
Daniel Lockyer
8af0ce7474 v4.36.2 2022-02-18 16:00:29 +00:00
renovate[bot]
ea08f2c964 Update dependency @tryghost/kg-parser-plugins to v2.11.5 (#2267)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-16 18:56:46 +00:00
Matt Hanley
5103adeeb4 Merged v4.36.1 into main
v4.36.1
2022-02-16 15:26:15 +00:00
Daniel Lockyer
0cd0406cd1 v4.36.1 2022-02-16 15:23:42 +00:00
renovate[bot]
d69e5d043b Update dependency @tryghost/kg-clean-basic-html to v2.2.9 (#2266)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-16 15:21:19 +00:00
renovate[bot]
146cdece68 Pin dependency @nexes/nql to 0.6.0 (#2264)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-16 08:29:24 +00:00
Kevin Ansfield
80c6f93b21 Removed errant console.log 2022-02-15 21:41:12 +00:00
Kevin Ansfield
03defc274e 🐛 Fixed Admin crash when member filters were focused+blurred without entering a filter value
closes https://github.com/TryGhost/Team/issues/1309
closes https://github.com/TryGhost/Team/issues/1336

- the error occurred because the `<Members::FilterValue>` component detaches it's value from the passed in value it was initialized with. Due to the detached handling, after changing the filter type away from the default label filter to a text input based filter, the internal value stayed as `[]` even though the filter type's value was changed. When the blur event was triggered in that state the internal `[]` value was used to update the filter resulting in an invalid filter string
  - added a quick-fix of assigning the input's value in the blur event handler meaning we get the expected `''` value
  - allows for passing tests to be created ready for a deeper fix/refactor later
- added `nql` dependency and used it in the `GET /members` API mock to match members against the filter param so behaviour matches the real API
  - tested increase in code size - dev build increased by ~180KB, no difference in prod
- added acceptance tests for all current filters and search
2022-02-15 21:38:57 +00:00
James Morris
b8823f433a Tidied up the Activity Feed search box
refs: https://github.com/TryGhost/Team/issues/1373

- added some additional styles to dropdown to better handle names and emails together
- widened the search box to better fit names and emails
2022-02-15 17:28:15 +00:00
James Morris
db6db71817 Replaced icon for changed subscription event in Activity Feed
refs: https://github.com/TryGhost/Team/issues/1373

- current icon wasn't representive of the event
2022-02-15 17:03:35 +00:00
James Morris
da9c15f7b5 Ensure from and to plan icons aren't overridden with default icon in Activity Feed
refs: https://github.com/TryGhost/Team/issues/1373

- moved the icon variable for subscription_event to avoid it overriding the if statements
2022-02-15 16:07:28 +00:00
James Morris
30f7892de8 Simplifying for the fitler dropdown for Activity Feed
refs: https://github.com/TryGhost/Team/issues/1373

- using more conventional controls with checkboxes
- simplifying to make ready for release
2022-02-15 15:41:32 +00:00
Kevin Ansfield
c72b31f504 Fixed test-selector typo for members table
refs 995673ad3c (commitcomment-66689174)

- fixed typo
- added check to base state test to confirm
2022-02-15 15:01:36 +00:00
Kevin Ansfield
9a77543e6f Removed unused resolver test helper
no issue

- hangover from older Ember versions
2022-02-15 15:01:36 +00:00
Kevin Ansfield
b65c05a9ba Removed unused find* test helpers 2022-02-15 15:01:36 +00:00
Matt Hanley
7966ff555f Updated row format for activity feed
- The row format was incorrectly outputting the month instead of the minute value when listing events
2022-02-15 14:46:48 +00:00
Kevin Ansfield
7e3565d71f Resolved linter errors in koenig-toolbar.hbs
refs https://github.com/TryGhost/Ghost/issues/14101

- switched from the deprecated `{{action}}` helper to the `{{on}}` modifier
2022-02-15 13:46:49 +00:00
Kevin Ansfield
63d41e7255 Fixed linter error for unused variable 2022-02-15 13:31:17 +00:00
Kevin Ansfield
f253228d94 🐛 Fixed "Header two" formatting toolbar button not working
closes https://github.com/TryGhost/Ghost/issues/14146
refs https://github.com/TryGhost/Admin/pull/2251

- an action rename was missed when converting the toolbar component to native class syntax
- added test for the h3 toolbar button working
  - fixed `<KoenigEditor>` not assigning the test property that gives tests access to the underlying mobiledoc `editor` instance
2022-02-15 13:23:37 +00:00
Peter Zimon
b5d900a1d3 Updated template linting hint 2022-02-15 12:41:26 +01:00
Peter Zimon
f1aade9aa9 Updated lint todo file 2022-02-15 11:22:54 +01:00
Peter Zimon
952ac4675e Fixed email count formatting bug 2022-02-15 08:27:30 +01:00
Renovate Bot
5974bb7b41 Update dependency ember-template-lint to v4.1.0 2022-02-15 04:05:43 +00:00
James Morris
34b5108b23 Removed the Publication Icon from the Finishing Touches
refs: https://github.com/TryGhost/Team/issues/1303

- on reflection, the Publication Icon was not needed
2022-02-14 17:05:27 +00:00
James Morris
d17f2e4dc6 Added in dark styles for onboarding steps, just in case
refs: https://github.com/TryGhost/Team/issues/1303

- added in basic dark mode styles as someone could see those
- added for finishing touches and get started modal
2022-02-14 16:27:43 +00:00
Kevin Ansfield
995673ad3c Added acceptance test for members search
refs https://github.com/TryGhost/Team/issues/1336
refs bf9bbc3aa6

- adds basic search param handling to `GET /members` API mock
- adds acceptance tests for basic search behaviour
- contains regression check for search input not being visible when no members match
2022-02-14 16:23:57 +00:00
James Morris
450182edf4 Added back in two additional controls for testing onboarding
refs: https://github.com/TryGhost/Team/issues/1303

- added back in Publication Icon
- added back in Publication Logo
2022-02-14 16:11:45 +00:00
James Morris
eb25b2a120 Few additional tweaks to the styling
refs: https://github.com/TryGhost/Team/issues/1303
2022-02-14 15:38:58 +00:00
James Morris
c88770a110 Added in a more styled Get Started modal for fresh start
refs: https://github.com/TryGhost/Team/issues/1303

- implemented a new design for the modal
- added in a start up animation inline with rest of onboarding
2022-02-14 13:26:59 +00:00
Djordje Vlaisavljevic
6f1d5c7e30 Fixed whitespace
refs https://github.com/TryGhost/Team/issues/1069
2022-02-14 13:15:32 +01:00
Djordje Vlaisavljevic
2593395ecf Fixed formatting
refs https://github.com/TryGhost/Team/issues/1069
2022-02-14 13:06:00 +01:00
Djordje Vlaisavljevic
aed5da5d7a Added static HTML design for showing status/tier in members table
refs https://github.com/TryGhost/Team/issues/1035
2022-02-14 12:58:05 +01:00
Djordje Vlaisavljevic
8b5ef4a7d7 Added membersTableStatus feature flag
refs https://github.com/TryGhost/Team/issues/1035
2022-02-14 12:58:05 +01:00
renovate[bot]
04505eeb41 Update dependency eslint to v8.9.0 (#2259)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-14 10:30:11 +00:00
Sanne de Vries
7e2230d952 Updated Members screen when subscription access is off 2022-02-11 19:06:48 +01:00
Daniel Lockyer
1aec35a154 v4.36.0 2022-02-11 16:00:27 +00:00
Kevin Ansfield
69a8122ca6 Disabled non-functional edit buttons in labels dropdown when importing members (#2258)
closes https://github.com/TryGhost/Team/issues/1320

- added `@allowEdit` argument to `<GhMemberLabelInput>` and changed the dropdown to only show the edit label when `@allowEdit` is truthy
- updated usage in the filter UI and members detail screens to allow editing
2022-02-11 15:20:28 +00:00
Sanne de Vries
489c4b90c3 Removed border in publish-menu 2022-02-11 14:56:48 +01:00
Kevin Ansfield
7d0298c7a8 🐛 Fixed labels not being selectable in members importer
refs https://github.com/TryGhost/Team/issues/1320

- added a tracked `labels` property in `<ModalImportMembers::CsvFileMapping>` and passed it through to `<GhMembersLabelInput>` so that it has a list of labels that can be added to
- fixed error from sorting labels if one doesn't have a name
- added acceptance test for selecting labels in the members import flow
2022-02-11 13:10:42 +00:00
Peter Zimon
278b70d668 Updated members list help vertical alignment 2022-02-11 12:13:34 +01:00
Kevin Ansfield
09a97779b2 Added basic happy path acceptance test for member csv upload
refs https://github.com/TryGhost/Team/issues/1320

- fixed event handling in `gh-file-input` for test-initiated uploads
- added `POST /members/upload/` API mock that emulates uploading a single member
  - it's enough for this particular test and can be expanded as needed
- added acceptance test that does a simple 1-member, no Stripe, CSV upload with no mapping changes
2022-02-11 11:07:13 +00:00
Kevin Ansfield
152e9ff7d1 Added acceptance test for members import modal display
refs https://github.com/TryGhost/Team/issues/1320

- start of acceptance tests ready for more detailed testing
- added ignore of `no-duplicate-landmark-elements` lint rule in import modal template
  - the rule was a false flag because the conditionals only allow one `<header>` element to be rendered at a time
2022-02-11 10:01:08 +00:00
Sanne de Vries
b9d5e7dca6 Replaced disabled email sending UI for notification in publish menu
No ref

- When memberships are set up but no members are present, we would display the email sending UI in a disabled state. We're now notifying the user why they can't send emails and how to start sending
2022-02-11 10:33:22 +01:00
Sanne de Vries
f27088c581 Fixed linting error
Refs 72d3d6debc

- Fixed PSM error by moving the action on to the button and change the styling so the button is the main styled element that fills the whole area
- Hid the post-list-item error, which will warn in 30 and error in 60 days
2022-02-11 10:10:18 +01:00
Sanne de Vries
72d3d6debc Hid email related ui when subscription access is set to 'Nobody' 2022-02-11 09:29:11 +01:00
Kevin Ansfield
f4c6555ccf Fixed linter error 2022-02-10 18:37:31 +00:00
Kevin Ansfield
c511349c81 Fixed test runs downloading members CSV files
refs 8052166cbe

- when migrating the bulk delete logic to a new modal the `isTesting` property was missed meaning test runs were triggering actual downloads, littering your downloads folder with repeated CSV files
2022-02-10 18:33:27 +00:00
Kevin Ansfield
9a24be2b4f Fixed Ember Data deprecation warnings for queryRecord response returning array
no issue

- our API always returns an array whether we're performing a browse or find request but Ember Data expects explicit find requests to return a single object and throws deprecations when it sees an array
  - https://deprecations.emberjs.com/ember-data/v2.x/#toc_store-queryrecord-array-response-with-restserializer
- we previously had `normalizeSingleResponse` overrides in specific models that we use with `queryRecord` but we've since introduced `queryRecord` usage on more models but the associated "fix" was not duplicated in the serializers for those models leading to many deprecation warnings logged to the console in development and when testing
- moved the fix to the application serializer so it applies to all models
  - explicitly excluded `setting` model because that's a special-case and has it's own array-into-object serialization to represent multiple settings records as a single model instance
2022-02-10 14:50:58 +00:00
Kevin Ansfield
1e4af5d072 Fixed typo in default UTC timezone of {{gh-format-post-time}} helper
no issue

- was throwing errors from Moment.js in tests but not causing failures
2022-02-10 14:29:36 +00:00
renovate[bot]
65b4e72d7e Pin dependencies (#2257)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-10 11:01:35 +00:00
Kevin Ansfield
45d8fa8a54 Fixed linter error
refs 235fcb4903

- commit snuck in between merge of eslint update with fixes applied
- ran `yarn lint:js --fix` again
2022-02-10 10:49:32 +00:00
Gabriel Csapo
d51f2bcf23 [chore] migrate to eslint@8 and run --fix (#2256)
closes https://github.com/TryGhost/Admin/pull/2107

- updated related babel dependencies
- bumped eslint
- ran `yarn lint:js --fix`
- added eslint ignore comments for some required non-camel-case properties
2022-02-10 10:41:36 +00:00
Djordje Vlaisavljevic
235fcb4903 Added tierName feature flag
refs https://github.com/TryGhost/Team/issues/1069
2022-02-10 11:37:57 +01:00
Kevin Ansfield
b8d47c73a0 Updated .lint-todo file 2022-02-10 10:26:55 +00:00
Kevin Ansfield
3ee0c3ff53 Fixed duplicate top-level properties after native class codemod
refs https://github.com/TryGhost/Ghost/issues/14101
refs https://github.com/TryGhost/Admin/pull/2256

Before migrating to native classes we had a number of controllers/components that had an `.actions.foo` action and a `.foo` task. The automated migration to native classes didn't take that into account and we've ended up with duplicate top-level property names. These duplicates are confusing and can potentially lead to errors or unexpected behaviour, they'll also be flagged as linter errors when we bump our eslint version.

- switched tasks with matching action names to `.actionTask` naming scheme
2022-02-10 10:20:03 +00:00
Kevin Ansfield
f1c8af662f Refactored modal for bulk unsubscribing members
refs https://github.com/TryGhost/Team/issues/559

Members controller was becoming bloated and difficult to follow due to catering for many different concerns.

- converted old modal to newer promise-modal style
- pulled full bulk unsubscribing logic out of the members controller and into the modal so logic is contained in one place
2022-02-09 22:04:02 +00:00
Kevin Ansfield
8052166cbe Refactored modal for bulk deleting members
refs https://github.com/TryGhost/Team/issues/559

Members controller was becoming bloated and difficult to follow due to catering for many different concerns.

- converted old modal to newer promise-modal style
- pulled full label-removing logic out of the members controller and into the modal so logic is contained in one place
2022-02-09 22:04:02 +00:00
Kevin Ansfield
efb7bc4c3b Refactored modal for bulk removing a label to members
refs https://github.com/TryGhost/Team/issues/559

Members controller was becoming bloated and difficult to follow due to catering for many different concerns.

- converted old modal to newer promise-modal style
- pulled full label-removing logic out of the members controller and into the modal so logic is contained in one place
2022-02-09 21:58:59 +00:00
Kevin Ansfield
925751c678 Removed unused addLabel() action on members controller
no issue

- left-over from earlier iterations
- adding a new label whilst filtering will be added back in so we don't want to confuse things with similar-but-unused code
2022-02-09 21:58:59 +00:00
Kevin Ansfield
24b222e927 Refactored modal for bulk adding a label to members
refs https://github.com/TryGhost/Team/issues/559

Members controller was becoming bloated and difficult to follow due to catering for many different concerns.

- converted old modal to newer promise-modal style
- pulled full label-adding logic out of the members controller and into the modal so logic is contained in one place
- added `{{members-count-fetcher}}` resource that allows for member counts to be fetched directly from templates avoiding duplicated code
2022-02-09 21:58:59 +00:00
James Morris
510b115329 Better styling for the Finishing Touches screen
refs: https://github.com/TryGhost/Team/issues/1303

- fixed glaring styling issues after technical implementation
- got to a place for testing, though small issues remain
2022-02-09 18:10:02 +00:00
Kevin Ansfield
b38e21995a Fixed Cmd+S not saving on membership and members email setting screens
no issue

- routes no longer automatically trigger save for cmd+s, it should be explicitly tied to the action that should be performed
- added `{{on-key "cmd+s"}}` to the `<GhTaskButton>` save buttons
  - `{{on-key}}` with no explicit action triggers a click action on the attached element, in this case the screen's save buttons
2022-02-09 10:59:12 +00:00
Kevin Ansfield
8cc4c6c4a1 Dropped ember-concurrency-decorators dependency
no issue

- since `ember-concurrency@2.0` it's possible to use the standard imports as decorators removing the need for the extra `ember-concurrency-decorators` dependency and imports
2022-02-09 10:49:38 +00:00
Sanne de Vries
1e081aa000 Fixed test 2022-02-09 10:56:21 +01:00
Gabriel Csapo
4a6e175615 [chore] migrate app/controllers/settings/navigation.js to use native classes (#2254)
refs https://github.com/TryGhost/Ghost/issues/14101
refs https://github.com/TryGhost/Admin/pull/2245

- continuing migration to native classes with use of `@classic` decorator
- required as a part of https://github.com/TryGhost/Admin/pull/2245
2022-02-09 09:53:38 +00:00
Gabriel Csapo
a8dbc1ab7e [chore] updates app/controllers/editor.js to use native classes (#2253)
refs https://github.com/TryGhost/Ghost/issues/14101

- continuing migration to native classes with use of `@classic` decorator
2022-02-09 09:50:46 +00:00
Sanne de Vries
929378c318 Updated copy of Save buttons on settings pages
No issue

- Changed all buttons to "Save" for consistency across settings
2022-02-09 10:32:47 +01:00
Gabriel Csapo
f75d88cb2c [chore] migrates koenig-editor files to native classes (#2251)
refs https://github.com/TryGhost/Ghost/issues/14101

- continuing migration to native classes with use of `@classic` decorator
2022-02-09 09:19:45 +00:00
Kevin Ansfield
6b4fe78252 Swapped use of EmberObject for member filter rows to native classes
refs https://github.com/TryGhost/Team/issues/1309

General cleanup to switch to more modern idioms.

- removed unnecessary assignment of properties in component's `constructor`
- dropped use of `EmberObject`, use an explicitly defined `Filter` class instead
  - marked properties that change as `@tracked`
  - switched to direct property setting with `=` instead of `.set()`
2022-02-09 09:10:55 +00:00
renovate[bot]
c75961a368 Update dependency ember-concurrency to v2.2.1 (#2255)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-09 09:10:21 +00:00
Fabien "egg" O'Carroll
047f28177f 🐛 Fixed sending non-integer prices to Tiers API
refs https://github.com/TryGhost/Team/issues/1319

Due to how JS implements numbers, it's possible that when we multiple a
number with 2 decimal places by 100 that we do not end up with an
integer e.g. 9.95 * 100 = 994.999...

This is not a valid price for the API and so we must round it to the
nearest integer. Rounding is safe here, because the errors involved in
floating point operations are very small.
2022-02-09 10:41:16 +02:00
Sanne de Vries
a2b631f8b6 Updated empty states for posts, pages, and tags 2022-02-09 09:34:12 +01:00
Sanne de Vries
7061b3416f Updated copy on empty members screen 2022-02-09 09:24:11 +01:00
Kevin Ansfield
e3aa51310c Resolved linter errors in <Members::FilterValue> component
refs https://github.com/TryGhost/Ghost/issues/14101

- dropped use of unnecessary `<GhTextInput>` component
- switched action calls over to standard `{{on "event"}}` rather than the sometimes error-prone overriding of EmberObject component event handlers
2022-02-08 15:11:01 +00:00
Kevin Ansfield
b80ce527e5 Moved members screen filter components into components/members
no issue

- currently the components are screen-specific rather than generalised so shouldn't have the `gh-` prefix
- fixed linter error for confusing `{{#unless}}...{{else}}` usage
2022-02-08 15:11:01 +00:00
Fabien "egg" O'Carroll
b287c881eb Revert "Rounded monthly/yearly Price"
This reverts commit 55af726402.
2022-02-08 16:46:00 +02:00
Fabien "egg" O'Carroll
55af726402 Rounded monthly/yearly Price
refs https://github.com/TryGhost/Team/issues/1319
2022-02-08 16:43:57 +02:00
Sanne de Vries
4cd5ea90eb Updated import-members modal 2022-02-08 14:56:19 +01:00
Kevin Ansfield
8e5cbf4e0f Cleaned up members filter labs components
no issue

- the members filtering is out of labs, we don't need to keep the labs component naming around
- renamed `-labs` components/classes to non-labs naming, replacing old and unused non-labs components where necessary
2022-02-08 11:48:55 +00:00
Kevin Ansfield
bf9bbc3aa6 Fixed members search input losing focus whilst typing
closes https://github.com/TryGhost/Team/issues/1318

The `{{if this.members.length "" "hidden"}}` class meant that whenever loading occurred the search input was briefly changed to `display: none` which caused focus to be lost making searching rather painful. It also meant the search input disappeared completely when no members matched a search.

- switched to a standard `<input>` element to get better event handling ergonomics
- added `searchIsFocused` tracked property that is set to `true` any time the search input has focus - works around an unexpected re-render when clearing the search input whilst it has focus
- switched the "hide" conditional to a getter that takes members length, search param text, and search input focus into account so there are no unexpected hides of the search bar
2022-02-08 11:44:08 +00:00
Kevin Ansfield
f111a23031 🐛 Fixed "Show all members" button not clearing search field when no results match
no issue

- the reset button was only clearing the `filter` param rather than resetting all query params
- removed unnecessary `searchText` indirection, the search input can work directly with the query param
2022-02-08 11:36:49 +00:00
Kevin Ansfield
f0432ba82c Migrated <GhUnsplashPhoto> to glimmer component
refs https://github.com/TryGhost/Ghost/issues/14101

- extracted the ratio zoom handling to a `{{ratio-zoom}}` modifier to clean up the component and avoid needing lifecycle hooks that don't exist in Glimmer components
- disabled `no-nested-interactive` linting in the template - not ideal but we'd need a much bigger design refactor to eliminate the nested links
2022-02-08 10:13:18 +00:00
renovate[bot]
8be8eb05bc Update dependency tracked-built-ins to v2 (#2146)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-08 08:58:18 +00:00
renovate[bot]
21fafd08fd Update dependency ember-modifier to v3 (#2123)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-08 08:54:14 +00:00
Djordje Vlaisavljevic
088c1af098 Fixed showing explainer text for free membership welcome page input field
refs https://github.com/TryGhost/Team/issues/1168
2022-02-08 09:39:48 +01:00
renovate[bot]
d67cffa76b Update dependency ember-css-transitions to v3 (#2249)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-08 08:28:25 +00:00
Rishabh
f341edb02d Updated welcome page location for free membership
refs https://github.com/TryGhost/Team/issues/1168

- moved free tier welcome page url from product card to main screen
2022-02-08 09:31:40 +05:30
renovate[bot]
7a07c431fc Update dependency @tryghost/kg-parser-plugins to v2.11.4 (#2248)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-08 00:15:30 +00:00
renovate[bot]
3a95e8bd8e Update dependency @tryghost/kg-clean-basic-html to v2.2.8 (#2247)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-07 21:21:41 +00:00
James Morris
7ee156ef72 Quick fixed the links not showing when activity feature flag is off for members
refs: https://github.com/TryGhost/Team/issues/1317
2022-02-07 17:00:59 +00:00
Kevin Ansfield
9459ad068f Updated linter todo file
refs 018a4ec5e9

- ran `yarn lint:hbs` to update the todo list for errors that were resolved in the `<GhUnsplash>` glimmer component refactor
2022-02-07 16:58:36 +00:00
Kevin Ansfield
c55084eeb4 🐛 Fixed Ctrl+Enter-to-edit keyboard shortcut not working on Windows for some editor cards
no issue

- Callout, Email, Email CTA, Header, Product, and Toggle cards all had the same typo in the Ctrl/Cmd+Enter keyboard handling
2022-02-07 16:55:01 +00:00
Kevin Ansfield
018a4ec5e9 Migrated <GhUnsplash> to glimmer component
refs https://github.com/TryGhost/Ghost/issues/14101

- swapped use of `<LiquidWormhole>` to `{{#in-element}}` because we weren't animating anything
  - we can now use `{{css-transition}}` instead if we want to animate in the future
- swapped use of `ShortcutsMixin` for ember-keyboard's `{{on-key}}` modifier
- added `{{query-selector}}` helper so we can grab an element from inside the template rather than requiring a backing component function (used to pass the wormhole element to `{{#in-element}}`)
- added `{{on-resize}}` modifier so the `resizeDetector` service can be used directly from the template rather than requiring a backing component to wait for render and use query selectors to grab an element
2022-02-07 16:53:12 +00:00
Kevin Ansfield
4ad99dadc4 Disabled linting rule that forbids use of <style> elements
no issue

- rule: https://github.com/ember-template-lint/ember-template-lint/blob/master/docs/rule/no-forbidden-elements.md
- we need to use `<stye>` in our application template to allow use of dynamic CSS variables
- the whatwg html spec says `<style>` is not valid inside `<body>` but all of the browsers we care about support it
2022-02-07 15:22:32 +00:00
Sanne de Vries
9234c8f695 🎨 Improved empty state of the Members screen
No issue

- Added resources to help and inspire people get started with members, which will be hidden after 6+ members are added
2022-02-07 16:11:08 +01:00
Kevin Ansfield
aadbb6ea1c Added unsplash button/selector to publication cover image form field
no issue

- shows an unsplash button when no image is present, opening the full unsplash selector when clicked
- behind the `improvedOnboarding` labs flag
2022-02-07 12:16:57 +00:00
Kevin Ansfield
bbd4c452b9 Updated conditionals for editorIsLaunchComplete with improvedOnboarding feature
closes https://github.com/TryGhost/Team/issues/1294

- ensures latest member activity is shown when improvedOnboarding feature is enabled no matter what the `editorIsLaunchComplete` value is to better show what the dashboard will look like when the launch wizard is removed
2022-02-07 11:11:19 +00:00
Kevin Ansfield
19023a17a0 Disabled "no-inline-styles" template lint rule
no issue

- in general we only use inline styles when it reduces maintenance problems so the rule was providing too many false negatives
2022-02-07 10:21:03 +00:00
Kevin Ansfield
da9c4288bf Added collapse animation to get-started dashboard panel when dismissing
no issue

- softens the disappearance by fading out and collapsing the height when removing
- uses `{{css-transition}}` modifier from https://peec.github.io/ember-css-transitions/docs/insert-destroy
- max-height used in order to animate collapse of a `height: auto` panel, 350px starting point chosen as it's slightly bigger than the largest height of the panel at mobile widths
2022-02-07 10:04:52 +00:00
Kevin Ansfield
7e95890a99 Added saving spinner to finishing-touches screen
refs https://github.com/TryGhost/Team/issues/1310

- switched to a task and `<GhTaskButton>` to show a saving indicator whilst waiting for API to return
2022-02-04 17:32:43 +00:00
Kevin Ansfield
2525a43156 Changed firstStart flow to show a streamlined settings screen
closes https://github.com/TryGhost/Team/issues/1310

- added `/setup/finishing-touches` route
  - refreshes theme preview on access
  - uses existing setting form components to build a reduced settings menu
- updated `/?firstStart=true` handling to transition to `/setup/finishing-touches` instead of showing the get-started modal
- updated standard setup flow to show the get-started modal upon completion
  - `/?firstStart=true` flow for now will only be used when a theme has been chosen before site creation
2022-02-04 17:06:40 +00:00
Kevin Ansfield
b166522916 Added global max-width for input[type="image"]
refs 14c0c5ff65

- we want `<input type="image">` to behave the same as `<img>`
2022-02-04 16:44:34 +00:00
Kevin Ansfield
5f0f47ac4d Fixed missing ...attributes on <Settings::FormFields::PublicationCover>
refs 14c0c5ff65
2022-02-04 16:11:23 +00:00
Kevin Ansfield
14c0c5ff65 Refactored general design settings form components
refs https://github.com/TryGhost/Team/issues/1310

We want to use parts of the "Brand setting" form in a separate streamlined settings screen after site setup but that wasn't possible without a lot of duplication.

- extracted individual form fields into separate components for re-use
  - included minor refactors like using `uploader.registerFileInput` and `uploader.triggerFileDialog` instead of continually duplicating the same file input trigger method
- fixed accessibility issues
  - changed input titles from `<div>` to `<label>` and associated with the component's input fields
  - changed `<img {{on "click" upload}}>` to `<input type="image">` so they act as proper buttons and are linked to the label (required a styling change so `img` and `input[type="image"]` are treated equally)
- finished cleanup of `.description-container-labs` by renaming to `.description-container`
2022-02-04 16:04:58 +00:00
Daniel Lockyer
799dadd533 v4.35.0 2022-02-04 16:00:26 +00:00
Rishabh Garg
e493afdb16 Updated specific tier handling for default post access setting (#2246)
refs https://github.com/TryGhost/Team/issues/1071

Default content visibility for specific tiers is now stored across 2 settings - `tiers` on `default_content_visibility` and list of tier ids on `default_content_visibility_tiers` setting, which is consistent with pattern of storing visibility on posts. This change -

- updates visibility filter UI for default content visibility segment select
- cleans up common visibility segment select component to handle ids directly instead of nql segments
- updates setting model
2022-02-04 21:00:59 +05:30
Djordje Vlaisavljevic
bc1cede1f4 Updated lint todo file
refs https://github.com/TryGhost/Team/issues/1252
2022-02-04 14:58:47 +01:00
Djordje Vlaisavljevic
0d30d98a9b Moving styling from Tachyons classes to custom classes
refs https://github.com/TryGhost/Team/issues/1252
2022-02-04 14:50:41 +01:00
Kevin Ansfield
213170feaf Update .lint-todo
refs 019b22caa1

- the linter error had been fixed but the todo wasn't removed
2022-02-04 10:32:06 +00:00
Kevin Ansfield
019b22caa1 Added desktop/mobile switch to <GhBrowserPreview> component
refs https://github.com/TryGhost/Team/issues/1310

- we had a `<GhBrowserPreview>` component but it wasn't being used everywhere because it's behaviour didn't match the mobile/desktop switch with no iframe re-render that we needed for some screens
- updated component to match all required behaviour
  - include a switch between desktop and mobile views
  - default fallbacks for `@title` and `@icon` arguments
- switched design settings themes over to using the component instead of repeating the same set of markup
2022-02-04 10:28:20 +00:00
Djordje Vlaisavljevic
a05c9e4c76 Updated confirmation modal copy
refs https://github.com/TryGhost/Team/issues/1252
2022-02-04 10:36:55 +01:00
Kevin Ansfield
c44766e8d3 Collapsed @service injection definitions to single-line style
no issue

- find+replace to make service injection style consistent and take up much less space at the top of files that used multi-line syntax
2022-02-03 19:04:43 +00:00
Kevin Ansfield
1be7dd1770 Ran native classes codemod for lib/koenig-editor/addon/components
refs https://github.com/TryGhost/Ghost/issues/14101

- ran native classes codemod for koenig-editor in-repo-addon components
- added `ember-classic-decorator` to addon's package.json to fix errors when importing

Some files failed to convert automatically:
```
❯ grep -rL "@classic\|default class" lib/koenig-editor/addon/components/**/*.js
lib/koenig-editor/addon/components/koenig-alt-input.js
lib/koenig-editor/addon/components/koenig-card-image.js
lib/koenig-editor/addon/components/koenig-editor.js
lib/koenig-editor/addon/components/koenig-toolbar.js
```
2022-02-03 18:57:21 +00:00
Kevin Ansfield
e3c4eff84c Resolved use of {{action}} linter errors in <GhProductCard>
refs https://github.com/TryGhost/Ghost/issues/14101

- switched to `{{on}}` and `{{fn}}`
- updated linter todo list
2022-02-03 17:37:32 +00:00
Djordje Vlaisavljevic
65b2247ca5 Updated todo
refs https://github.com/TryGhost/Team/issues/1252
2022-02-03 18:22:13 +01:00
Djordje Vlaisavljevic
2ec4a1fb5c Removed an extra div
refs https://github.com/TryGhost/Team/issues/1252
2022-02-03 18:07:41 +01:00
James Morris
637fbbd2e1 Fixed the green button text that appeared on the dashboard
refs: https://github.com/TryGhost/Team/issues/1308

- added more targeted selectors to revert back original color
2022-02-03 17:03:48 +00:00
Djordje Vlaisavljevic
5ab17e586f Updated free membership card
refs https://github.com/TryGhost/Team/issues/1252
2022-02-03 18:03:29 +01:00
Rishabh
40c78b6be6 Removed add complimentary option for member when no active tiers
refs https://github.com/TryGhost/Team/issues/1252

"Add complimentary subscription" doesn't make sense when there are no active tiers for site in member detail screen
2022-02-03 19:12:41 +05:30
Djordje Vlaisavljevic
c67e76a1ff Moved the welcome page URL input field to the bottom of the section
refs https://github.com/TryGhost/Team/issues/1168
2022-02-03 09:47:43 +01:00
Djordje Vlaisavljevic
333f6f2424 Updated tiers dropdown filter active state
refs https://github.com/TryGhost/Team/issues/1252
2022-02-03 09:16:25 +01:00
Gabriel Csapo
75a138cb39 [chore] Ran native classes codemod for app/services (#2240)
refs https://github.com/TryGhost/Admin/pull/2227

- a continuation of #2227 that runs the native classes codemod against app/services
2022-02-02 22:11:11 +00:00
Renovate Bot
48e5eb0261 Pin dependency ember-template-lint to 4.0.0 2022-02-02 20:08:47 +00:00
Kevin Ansfield
850a223dd4 Dropped use of @classic decorator in transforms
refs https://github.com/TryGhost/Admin/pull/2242

- there was no further EmberObject specific usage to migrate for these classes so the @classic decorator is not necessary
2022-02-02 18:48:59 +00:00
Kevin Ansfield
83fb74613c Migrated session-store to native class syntax
no issue

- part of the push to standardize on native es6 classes in place of EmberObject syntax
2022-02-02 18:41:16 +00:00
Kevin Ansfield
f73837fba3 Finalized migration of serializers to native class syntax
refs d40740b0ec

- dropped use of `@classic` for auto-converted classes
- switched remaining EmberObject serializers to native classes
2022-02-02 18:35:18 +00:00
Gabriel Csapo
d40740b0ec [chore] ran native classes codemod for apps/serializers (#2243)
refs https://github.com/TryGhost/Admin/pull/2227

A continuation of #2227 that runs the native classes codemod against app/serializers.

Most of the serializers that are trying to be transformed are failing with the same issue:

```
Validation errors: 
	[attrs]: Transform not supported - value is of type object. For more details: eslint-plugin-ember/avoid-leaking-state-in-ember-objects
2022-02-02T05:54:58.571Z [warn] [app/serializers/role.js]: FAILURE 
```
2022-02-02 18:27:03 +00:00
Gabriel Csapo
f22a758a3b [chore] run the no-implicit-this codemod (#2244)
refs https://github.com/TryGhost/Admin/pull/2238

Follow up to #2238, this should remove the existing no-implicit-this lint errors and any new violations should be flagged right away.

* run the no-implicit-this codemod
* updated todos
2022-02-02 17:09:02 +00:00
Gabriel Csapo
fdc24103cc [chore] runs native classes codemod for app/adapters (#2239)
no issue

* ran native classes codemod for app/adapters
* migrated slug-url mixin to a utility
2022-02-02 16:57:22 +00:00
Kevin Ansfield
5e7c98fb46 Fixed template linting error in koenig-card-email.hbs
refs cc257f8576

- template change triggered a linting rule
- fixed and ran `yarn lint:hbs --update-todo`
2022-02-02 16:48:09 +00:00
Kevin Ansfield
cc257f8576 Fixed noreferer typos
no issue

- should be `noreferrer`, caused duplication by ember-template-lint auto fixing
2022-02-02 16:20:01 +00:00
Daniel Lockyer
bd5923efe0 v4.34.3 2022-02-02 16:10:50 +00:00
Gabriel Csapo
beb5ae1737 [chore] adds ember-template-lint and fixes all fixable issues (#2238)
no issue

- This will help with the octane migration and you can still run the lint rules even when they are todos. (Checkout the docs at 158b119667/docs/todos.md) The good news is any new code will be checked against the recommended config.
- I fixed all the auto fixable things we could get in this PR as well
2022-02-02 16:09:43 +00:00
Rushab Kumar
894cea5256 Fix incorrect color on hover for publish and send buttons (#2188)
- Use default primary button style in publish menu for dark mode
2022-02-02 15:27:27 +01:00
James Morris
10948af9be Added in basic styleing for the onboarding modal ready for testing
refs https://github.com/TryGhost/Team/issues/1303

- added rudimentary styling to the new onboarding modal
- added in three new icons to go with the new modal
- added the styling to the main.css for the moment
2022-02-02 12:28:08 +00:00
Thibaut Patel
151e647daa Removed the UI for the callout card feature flag
no issue

- The feature flag was removed in 7a270de050
- The UI was remaining, although it wasn't working
2022-02-02 13:27:36 +01:00
Rishabh
38b51fe192 Removed archive options for tiers without prices
refs https://github.com/TryGhost/Team/issues/1252

- on stripe disconnect, the prices on tiers are deleted, which causes the archive/unarchive on them to fail in admin
- this change removes the archive/activate option for such tiers, which will get properly cleaned up once we start removing tiers on stripe disconnect
2022-02-02 16:34:51 +05:30
Rishabh
61eeafbca7 Refined portal settings for multiple tiers
refs https://github.com/TryGhost/Team/issues/1252

- enables available tiers list for portal in case of a single tier as well, which was previously hidden
- allows site owners to enable a tier again for Portal if it was archived in past
2022-02-02 16:24:20 +05:30
Rishabh
9b0ba5968e Fixed broken offer screen for tiers missing price
no refs

- in an edge-case scenario, if an offer is using a tier with missing price, it will not throw an error because of lack of price
- this case will be auto-handled once we delete all existing offers in future on stripe disconnect
2022-02-02 16:24:20 +05:30
Rishabh
498efd00cb Refined tiers list to switch to active list on unarchive
refs https://github.com/TryGhost/Team/issues/1252

- on unarchiving a tier, we switch back to active tier list instead of staying back on archived list
2022-02-02 16:24:20 +05:30
Gabriel Csapo
b4c3e1ae40 [chore] runs native classes codemod for app/transforms (#2242)
refs https://github.com/TryGhost/Admin/pull/2227

- a continuation of #2227 that runs the native classes codemod against app/transforms
2022-02-02 10:40:43 +00:00
Gabriel Csapo
c849bea549 [chore] runs native classes codemod for apps/helpers (#2241)
refs https://github.com/TryGhost/Admin/pull/2227

- a continuation of #2227 that runs the native classes codemod against app/helpers
2022-02-02 10:38:52 +00:00
Sodbileg Gansukh
a1ba715d0a Remove commented style 2022-02-02 11:21:36 +01:00
Sodbileg Gansukh
442772c694 Fix dashboard chart width on wide screens 2022-02-02 11:21:36 +01:00
Peter Zimon
d5018cbb3a Fix tests 2022-02-02 10:57:34 +01:00
Peter Zimon
b5995419dc Updated default redirect for contributors 2022-02-02 10:12:16 +01:00
Sodbileg Gansukh
87738cb5de Fix close icon overlapping in the link input 2022-02-01 19:44:01 +01:00
Kevin Ansfield
8bc4309deb Added display of get-started modal after completing setup flow
refs https://github.com/TryGhost/Team/issues/1295

- moved `?firstStart` query param handling into `'home'` route as it seemed like a preferable location
  - switched to using `resetController` hook to manage removal of query param which seemed more reliable than the transition approach
- added `firstStart` query param to the transitions when completing step 3 of the setup flow
2022-02-01 18:20:26 +00:00
Sodbileg Gansukh
41edf44bee Fix post preview header pixel jump 2022-02-01 18:59:36 +01:00
Peter Zimon
6fa8dafa79 Contributors updates (#2235)
Updates Admin UX for Contributors

When logged in as a Contributor:

- removes sidebar, added floating account menu and dark-mode switch to right side. Updated mobile menu accordingly
- all post by the given user is listed in the Post list
- changed post filtering
- hides email columns in post list
- removes publishmenu for Contributors in Post preview modal
- visual tweaks
2022-02-01 18:59:20 +01:00
Kevin Ansfield
9760e67b3d Added "Get started" modal for first-load onboarding
refs https://github.com/TryGhost/Team/issues/1295

- modal is triggered by the query param `?firstStart=true`, eg https://localhost:2368/ghost/#/?firstStart=true
- clears the query param after triggering the modal so it doesn't get re-triggered after leaving and re-entering the dashboard route
2022-02-01 17:47:50 +00:00
renovate[bot]
59f769a696 Update dependency @ember/render-modifiers to v2.0.4 (#2236)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-01 17:10:13 +00:00
Kevin Ansfield
f07940f0e7 Collapsed @service injection definitions to single-line style
no issue

- find+replace to make service injection style consistent and take up much less space at the top of files that used multi-line syntax
2022-02-01 17:03:54 +00:00
Daniel Lockyer
075aae9e3b Merged v4.34.2 into main
v4.34.2
2022-02-01 16:07:15 +00:00
Daniel Lockyer
66b7041a6f v4.34.2 2022-02-01 15:30:00 +00:00
James Morris
0987630aa3 Fixed breadcrumb not working at narrow widths and member activity scroll gap
refs: https://github.com/TryGhost/Team/issues/1277

- added a z-index to fix breadcrumbs when filters overlap
- made the scrolling list longer on the member activity page to remove gap
2022-02-01 14:45:19 +00:00
James Morris
4b662db575 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:45:19 +00:00
James Morris
9cce99d7a1 🐛 Fixed icon size in member activity view when labs flag is disabled
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 14:45:14 +00:00
James Morris
b5521e0922 Fixed breadcrumb not working at narrow widths and member activity scroll gap
refs: https://github.com/TryGhost/Team/issues/1277

- added a z-index to fix breadcrumbs when filters overlap
- made the scrolling list longer on the member activity page to remove gap
2022-02-01 14:41:21 +00:00
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