Commit Graph

1413 Commits

Author SHA1 Message Date
Rishabh
a7f3eef830 Updated filter builder behavior to always keep one filter row
closes https://github.com/TryGhost/Team/issues/965

If there's only one filter row in the members filter builder modal, then clicking on "X" in that row resets the fields instead of removing the complete row and showing empty filter builder
2021-08-13 19:00:35 +05:30
Naz
f8c75a1e22 Added 'sent' status label in the posts list view
refs https://github.com/TryGhost/Team/issues/954

- This is a first iteration before replacing the status with an email icon in the future. It's meant to signal visually the current status instead of leaving it completely blank
2021-08-13 17:18:37 +04:00
Peter Zimon
905b312383 Refined labels in members list 2021-08-13 15:17:07 +02:00
Rishabh
520252f5aa Added filter count to filter builder UI
no refs
2021-08-13 18:37:19 +05:30
Rishabh
084380d155 Wired reset filters filter button in filter builder
closes https://github.com/TryGhost/Team/issues/964

Wires the "Reset" button in filter builder to clear all filters easily and see the original full list of members.
2021-08-13 18:00:28 +05:30
Naz
f23e8bc801 Changed post publish menu copy with "send" state
refs https://github.com/TryGhost/Team/issues/947

- Before making a bigger changes - introducing an inline component with send/send&publish/publish dropdown, have made minimal copy changes to reflect what's about to happen after the publish menu submit button is pressed
2021-08-13 16:23:55 +04:00
Naz
d0576beac3 Fixed email only toggle in PSM
refs https://github.com/TryGhost/Team/issues/947

- The toggle was missing an autosave, which was causing a confusing UX where the user had to remember to save the post before publishing.
2021-08-13 16:23:55 +04:00
Peter Zimon
0c3848c23a Refined members action dropdown 2021-08-13 13:55:08 +02:00
Rishabh
38a3962368 Added bulk operations UI for filtered members
refs https://github.com/TryGhost/Team/issues/969

A lot of power of filtering members comes from ability to perform actions on the filtered member list. This change adds bulk operation actions on the the UI to apply on filtered members, but has not wired them up to the API yet.

- adds unsubscribe bulk operation UI
- adds label addition bulk operation UI
- adds label removal bulk operation UI
- adds new single label selection UI for add/remove label to members UI
2021-08-13 17:11:34 +05:30
Rishabh
a34fac50b0 Added custom filter operators for filtering UI
refs https://github.com/TryGhost/Team/issues/943

- adds custom operators for each filter based on type
- adds `name or email` filter for `contains` search  on name or email
2021-08-13 13:42:30 +05:30
Peter Zimon
615dc8d24c Added Reset button to member filter builder 2021-08-12 18:26:29 +02:00
Peter Zimon
e936f3928e Members filtering refinements 2021-08-12 18:12:06 +02:00
Peter Zimon
c71e5f19bf Fixed fullwidth bug for members screen
- Added condition to make the members screen full width when filters Alpha feature is applied
2021-08-12 17:53:49 +02:00
Naz
6651b44de9 Reverted post visibility control by email-only checkbox
closes https://github.com/TryGhost/Team/issues/896
refs 3cd1c56d4e

- The visibility dropdown auto-hiding was reconsidered, so reverting parts of the referenced change
2021-08-12 17:36:33 +04:00
Rishabh
a895bafb53 Added label editing feature in filtering dropdown
refs https://github.com/TryGhost/Team/issues/966

With introduction of members filtering, the current way of editing member labels needed an upgrade. This change updates the member label input component to include editing option which allows triggering label edit modal directly from the filtering menu when working with labels. The long term idea is to make this a consistent global pattern with labels dropdown, extending to member details screen as well.
2021-08-12 17:51:18 +05:30
Rishabh
0aa7aca560 Added dynamic value selection UI for filter dropdown
refs https://github.com/TryGhost/Team/issues/943

The filter UI behind labs in Admin allows filtering members list across several filters. Since each filter type can have its own specific set of values to choose from, this change adds custom UI based on filter type to select filter value.
2021-08-12 13:33:32 +05:30
Rishabh
e224c96bba Added members filtering on subscription status and billing period
refs https://github.com/TryGhost/Team/issues/943

- updated filtering ui to handle stripe subscription status and billing period filtering
2021-08-11 18:04:11 +05:30
Rishabh
247f24394d Added dynamic columns to member list from filter UI
refs https://github.com/TryGhost/Team/issues/943

- adds new columns to member list table based on selected filters in UI
- handles dynamic columns in members list with formatted output like for labels
- works behind the filtering feature flag
2021-08-10 17:41:59 +05:30
Rishabh
30756f8882 Separated alpha members filtering feature into own component
refs https://github.com/TryGhost/Team/issues/943

- separates the new alpha members filtering to its own `-labs` component
- fixes behaviour for existing filtering feature on members list which was overwritten with last change
- updates up action handling to modern glimmer syntax
2021-08-07 09:48:47 +05:30
Rishabh
7a43c53ddb Added basic members list filtering via UI
refs https://github.com/TryGhost/Team/issues/943

- updates the static filtering ui to dynamic (behind alpha flag)
- generates basic nql filter queries for selected filters - `is` , `is not`
- filters members list on applied filters
2021-08-05 19:22:58 +05:30
Naz
3cd1c56d4e Added email only checkbox to PSM
closes https://github.com/TryGhost/Team/issues/896

- Having this checkbox allows user to control posts email_only flag
- Also sets the post automatically to "public" when the email-only toggle is switched on as the access would be controlled form within email and not through the internal gatekeeping mechanism
2021-08-04 17:13:52 +04:00
Sanne de Vries
03d46ed67e Fixed chevron character in meta-data preview in post settings 2021-08-04 14:40:45 +02:00
Rishabh
1492527b3e Added basic add/delete action on filter UI
refs https://github.com/TryGhost/Team/issues/943

Adds basic add/delete button action on dynamic filter UI to create custom filter blocks
2021-08-04 15:53:06 +05:30
Naz
ac814f32f3 Fixed typo 2021-07-29 13:53:52 +04:00
Naz
c9e29d6e9e Displed special modal header for disabled email limit
closes https://github.com/TryGhost/Team/issues/915
refs https://github.com/TryGhost/Admin/commit/a7bb783d3

- When the disabled email limit is returned we want to have a special header along with the modal copy
2021-07-28 14:47:16 +04:00
Naz
2c52fab9ae Fixed limit error parsing when there are no details
refs https://github.com/TryGhost/Team/issues/913

- Some limit errors don't contain a "details" property, in those cases the code should still execute instead of throwing an errors!
2021-07-28 14:27:03 +04:00
Kevin Ansfield
e02e921b22 Fixed email tab not working in preview modal
no issue

- added missing service injection
2021-07-27 16:46:02 +01:00
Kevin Ansfield
23a1f63d24 Added free/paid toggle to email preview modal
refs https://github.com/TryGhost/Team/issues/927

- the `email-cta` card can be segmented so only free or paid members can see the content, it should be possible for authors to preview what that will look like in either case
2021-07-27 16:31:56 +01:00
Naz
a7bb783d33 Added special error modal copy on email freeze
closes https://github.com/TryGhost/Team/issues/913

- When an error is returned from the server during a CSV import and it's because of the email freeze the import modal error has to show a special header along with error message
2021-07-27 16:19:38 +04:00
Sanne de Vries
bea787f1e9 Added tooltip with last-updated timestamp on hovering "X days ago" in post list 2021-07-26 15:41:27 +02:00
Peter Zimon
5255489779 Added static members filtering
- added filter builder dropdown (alpha)
- refactored related CSS
2021-07-23 16:05:22 +02:00
Peter Zimon
d356f5451a Added static result table for members filtering
- Added horizontal scrolling, fullscreen table component.
- Mocked multiple columns in the members result list.

Alpha feature.
2021-07-22 15:47:01 +02:00
Kevin Ansfield
019a1cf41d 🐛 Fixed publication icon in nav bar sometimes appearing inverted in dark mode
no issue

- `iconClass` was set to `gh-nav-logo-default` when first loading admin with the default icon
- when a new icon was uploaded the background style was changed but the class wasn't reset so continued to appear inverted
2021-07-21 11:40:55 +01:00
Sanne de Vries
6e540cf2ef Changed drag&drop indicator color 2021-07-20 11:30:10 +02:00
Peter Zimon
a6ba245bcd Updated copy for tiers
- Updated copy of multiple products to "Tiers"
2021-07-19 12:39:59 +02:00
Rishabh
95c3759282 Removed focus out error handling for invite staff modal
refs https://github.com/TryGhost/Team/issues/732

This fix is part of the broader design change we want in Admin, moving away from showing errors on focus out in fields with feels a little aggressive and instead change it to the default behaviour of showing errors when submitting the form. This change updates this behaviour for invite staff modal.
2021-07-19 14:02:15 +05:30
Kevin Ansfield
876c2b6cdd Added first pass at feature image drag+drop uploading
refs https://github.com/TryGhost/Team/issues/884

- add `[data-user-is-dragging]` to `body` element when any drag is occurring so that we can make drop zones active
- added dropzone and drop handling to feature image component
2021-07-16 15:01:00 +01:00
Rishabh
0f9177919c Refined segment selection in default post access setting
closes https://github.com/TryGhost/Team/issues/862

- allows deleting a single product in the segment dropdown
- shows error message in segment when no product is selected
2021-07-16 18:31:23 +05:30
Kevin Ansfield
04f39e047e Always show feature image buttons when no title is set
no issue

- keeps the buttons visible for longer to aid discovery
2021-07-15 15:50:32 +01:00
Kevin Ansfield
1ad2c05d37 Bumped eslint-plugin-ghost and fixed linter errors
no issue

- new linting rules that needed fixing:
   - calling `super` in lifecycle hooks
   - no usage of String prototype extensions
2021-07-15 15:27:29 +01:00
Kevin Ansfield
7a3b171f7f Fixed error when interacting with tag accent color input
closes https://github.com/TryGhost/Team/issues/744

- we were using `{{on}}` with a function on the component that wasn't bound to `this` via the `action` decorator meaning errors were thrown every time the input lost focus
2021-07-14 16:00:24 +01:00
Kevin Ansfield
85f579b785 Fixed error when entering invalid URL in canonical URL field
closes https://github.com/TryGhost/Team/issues/745

- `URL()` will throw when given something it doesn't understand. As `seoURL` is just a display property it doesn't matter, we can catch the error and do nothing
2021-07-14 15:53:55 +01:00
Kevin Ansfield
8630be5a87 🐛 Fixed re-authenticate modal not showing when saving in editor
closes https://github.com/TryGhost/Team/issues/865

Ghost now returns a forbidden error rather than an unauthorized error when saving whilst logged out so the session invalidation was not being triggered.

- added forbidden check to ajax service to trigger session invalidation
- added automatic retry of save in editor when re-authenticating
- fixed re-population of user and proxy services when re-authenticating, it's not needed at that point because nothing has been cleared
2021-07-14 12:28:09 +01:00
Sanne de Vries
53d76da054 Updated feature image Unsplash integration to appear on post title hover 2021-07-14 09:50:59 +01:00
Kevin Ansfield
3dc4126397 Dropped use of @classic decorator in <GhTokenInput>
no issue

- updated component to be a glimmer component and use full "Octane" syntax
2021-07-12 14:03:48 +01:00
Thibaut Patel
dc9c812d9c Renamed isAdmin/isOwner/isAdminOrOwner to reduce confusion
issue https://github.com/TryGhost/Team/issues/857

- The goal is to avoid testing for the owner role only is cases where we should be testing for the owner or admin role
- `isOwner` => `isOwnerOnly`
- `isAdmin` => `isAdminOnly`
- `isOwnerOrAdmin` => `isAdmin` (concerns now both Owner and Admins)
2021-07-12 14:55:56 +02:00
Kevin Ansfield
7ab0db9be7 Fixed ember-test-selectors bound attributes deprecations
no issue

- converted publish menu and `gh-tags-list-item` components to glimmer syntax so data attributes can be passed in via `...attributes`
- added explicit `data-test-button` bound attribute to `gh-task-button` component
- moved `modal-theme-warnings` auto-bound data attribute from JS file to explicit html attribute in template
2021-07-08 22:44:52 +01:00
Kevin Ansfield
c646e78fff Made session.user a synchronous property rather than a promise
no issue

Having `session.user` return a promise made dealing with it in components difficult because you always had to remember it returned a promise rather than a model and had to handle the async behaviour. It also meant that you couldn't use any current user properties directly inside getters which made refactors to Glimmer/Octane idioms harder to reason about.

`session.user` was a cached computed property so it really made no sense for it to be a promise - it was loaded on first access and then always returned instantly but with a fulfilled promise rather than the  underlying model.

Refactoring to a synchronous property that is loaded as part of the authentication flows (we load the current user to check that we're logged in - we may as well make use of that!) means one less thing to be aware of/remember and provides a nicer migration process to Glimmer components. As part of the refactor, the auth flows and pre-load of required data across other services was also simplified to make it easier to find and follow.

- refactored app setup and `session.user`
  - added `session.populateUser()` that fetches a user model from the current user endpoint and sets it on `session.user`
  - removed knowledge of app setup from the `cookie` authenticator and moved it into = `session.postAuthPreparation()`, this means we have the same post-authentication setup no matter which authenticator is used so we have more consistent behaviour in tests which don't use the `cookie` authenticator
  - switched `session` service to native class syntax to get the expected `super()` behaviour
  - updated `handleAuthentication()` so it populate's `session.user` and performs post-auth setup before transitioning (handles sign-in after app load)
  - updated `application` route to remove duplicated knowledge of app preload behaviour that now lives in `session.postAuthPreparation()` (handles already-authed app load)
  - removed out-of-date attempt at pre-loading data from setup controller as that's now handled automatically via `session.handleAuthentication`
- updated app code to not treat `session.user` as a promise
  - predominant usage was router `beforeModel` hooks that transitioned users without valid permissions, this sets us up for an easier removal of the `current-user-settings` mixin in the future
2021-07-08 14:54:31 +01:00
Peter Zimon
873472ab63 Fixed theme uploader UI bug
- added max height to theme uploader modal container to avoid long list of errors leaning out of screen
- added shadow on top of footer to indicate long list of errors
2021-07-08 15:05:30 +02:00
Kevin Ansfield
dd7985a2fd Fixed tests
refs 1cfa0ae58e

- `- Saved` indicator was not correctly behind labs flag
2021-07-07 11:53:06 +01:00