Automattic / wp-calypso

The JavaScript and API powered WordPress.com
https://developer.wordpress.com
GNU General Public License v2.0
12.42k stars 1.99k forks source link

Nav Unification - method to opt out of Calypso links #47043

Closed getdave closed 3 years ago

getdave commented 3 years ago

Many of our paying customers use WPAdmin. As a result of the Nav Unification project many of the links in the WPAdmin "view" will now point to their Calypso equivalent meaning that these customers will be "forced" to use Calypso. This is likely going to cause concern for these users.

As a result, we need to create an opt-out mechanism which allows WPAdmin power users to force all links to be wp-admin rather than Calypso.

We need to check what to do with links that are totally hidden in nav-unification, we are showing them when user opts out of calypso links or not? eg Settings -> Writing

getdave commented 3 years ago

FYI @davemart-in - how would you see this working? Some kind of account wide setting? Would it live on Calypso or WPAdmin? @Automattic/ajax team any ideas?

cpapazoglou commented 3 years ago

Facts: 1) We cannot completely avoid calypso links as there are not wp-admin equivalents for some calypso screens (eg Plans) 2) In case the user opts-out of Calypso links, the admin menu endpoint should return a variation of the menu which will contain the new links 3) Opting-out should be as easy as opting-in again 4) This setting should be reachable both from calypso and wp-admin

I suppose a User Account wide setting is more appropriate (like colour schemes), so that Users with multiple sites have the same experience while switching sites.

davemart-in commented 3 years ago

From my perspective:

obenland commented 3 years ago

Worth mentioning that even if that toggle is set to wp-admin, there will still be Calypso links in the admin menu. The plugins screen on Simple sites for example, or the Domains setting screen for all customers.

the admin menu endpoint should return a variation of the menu which will contain the alternate wp-admin links

The exact technical underpinnings are probably not too important right now, but I currently have the endpoint just return whatever the admin menu gives it. This logic would be in the menu structure class that I'm currently working on.

ghost commented 3 years ago

This toggle is only for screens which have both a Calypso and a wp-admin variation (e.g. posts list, pages list, media, etc...)

Worth mentioning that even if that toggle is set to wp-admin, there will still be Calypso links in the admin menu. The plugins screen on Simple sites for example, or the Domains setting screen for all customers.

I've been mulling this feature over and I think I am still unclear why a user would want to do this. I could see if every Calypso screen had a corresponding wp-admin counterpart, but having a mix of 2 separate interfaces seems to only create a more disjointed experience. Is there a particular use case I'm not seeing @davemart-in @lcollette @rickybanister ?

I'm happy for this toggle to live in a single location (vs. in Calypso AND wp-admin).

If we choose to move forward with this, I agree this makes sense. I imagine this would need to be placed in account settings, near/below the color scheme selections (with some more descriptive copy).

Screen Shot 2020-11-06 at 9 52 04 AM
cpapazoglou commented 3 years ago

I am still unclear why a user would want to do this.

@sfougnier I suppose that the most common problem is that not all the features are exposed in calypso screens. For example in the following posts page, there is no ability for bulk actions in calypso whereas in wp-admin there is.

davemart-in commented 3 years ago

I am still unclear why a user would want to do this.

Yep, it boils down to 3 things, loosely prioritized below:

  1. Personal preference - especially for pro users who tend to pay us more money.
  2. As @cpapazoglou points out, there is some functionality only available in the wp-admin version of these screens.
  3. Atomic customers may have plugins installed which extend the wp-admin versions of these screens which they don't want to lose out on.
lcollette commented 3 years ago

I'm with @sfougnier in being unclear on the use case and whether a toggle is the best way to solve for this. Rather than adding a toggle, I wonder if we might first understand what about our current experience necessitates a toggle and how we might reconcile those differences for a long term win.

  1. Personal preference - especially for pro users who tend to pay us more money.

Is there data that shows pro users have a personal preference for one UI over the other?

  1. As @cpapazoglou points out, there is some functionality only available in the wp-admin version of these screens.

It would be great to have a source of truth about the differences between screens so we can be more intentional in our unification efforts (on the Design side). I know bulk editing is one of those features. What else?

  1. Atomic customers may have plugins installed which extend the wp-admin versions of these screens which they don't want to lose out on.

Is there an example of a plugin that extends the wp-admin version of these screens so we can see this in context?

rickybanister commented 3 years ago

It's also worth understanding whether customers would want to default their entire account experience to one set of links to the other, or do this on a per site basis. I realize we settled on an account-level setting for color schemes, but I think it's worth asking for this setting as well.

ghost commented 3 years ago

Is there a comprehensive list of what screens this will affect? It may be helpful to evaluate those all together and determine if there's a better way to solve this.

cpapazoglou commented 3 years ago

@sfougnier

Is there a comprehensive list of what screens this will affect? It may be helpful to evaluate those all together and determine if there's a better way to solve this.

All links mentioned in https://docs.google.com/spreadsheets/d/1i640dQt4vs2XYgqRA4YEH69ssR9UNcFJx49HUss0-q0/edit#gid=0 with a checkmark in Screen affected by not offering a /wp-admin alternative column.

@lcollette

It would be great to have a source of truth about the differences between screens so we can be more intentional in our unification efforts (on the Design side). I know bulk editing is one of those features. What else?

I believe the problem is mostly in posts / pages due to bulk actions, sorting options, inline actions (added by plugins), and alerts/notifications (added by plugins missing). The rest of the features missing can be found through comparing these screens. I don't believe we have a missing features list in hand (do we @davemart-in ?)

wp-admin Calypso

Is there an example of a plugin that extends the wp-admin version of these screens so we can see this in context?

eg adding a page builder plugin, shows an inline action

or as shown above, plugins can register actions / notices

ghost commented 3 years ago

I'd like to propose that we keep the opt-out feature account-specific rather than site-specific.

I imagine for this first iteration this could exist as some kind of settings toggle within the Me - Account Settings page. In future iterations, I think we could further consider this feature and its relationship with the interface.

Desktop - Me Desktop - Me-1
lcollette commented 3 years ago

Smart solution, @sfougnier! The placement within settings, alongside color schemes, feels right.

Could color schemes fit under Interface settings? Maybe language too?

ghost commented 3 years ago

Thanks, @lcollette! Splitting this out into its own interface-related section on this screen could help make these options a bit more scannable:

Desktop - Me Desktop - Me-1
getdave commented 3 years ago

@sfougnier Just a note that we cannot make all dashboard pages WPAdmin.

Account pages, purchases, domains, are some of the few that will always be in Calypso.

Not sure how you can account for that.

ghost commented 3 years ago

Yes, I'm aware. Maybe we can remove "all", as I can see how that's misleading, and instead say "Replace dashboard pages with wp-admin equivalents".

cpapazoglou commented 3 years ago

The link destination (calypso vs wp-admin) is now filterable https://github.com/Automattic/jetpack/pull/18101/files props to Obenland.

rickybanister commented 3 years ago

I like the new grouping, good suggestion @lcollette. And nice work @sfougnier.

getdave commented 3 years ago

Started working on this in https://github.com/Automattic/wp-calypso/pull/48710

JoshuaGoode commented 3 years ago

For Atomic:

Outside of accessing theme, plugin, and inline settings that have been previously discussed, another case would be local user accounts.

Without an option to turn this off, Users in the WP-Admin goes to https://wordpress.com/people/team/

Many membership and eCommerce sites will require access to the WP-Admin version of Users so they can manage, create, and invite non-WPCOM accounts or manage plugin-based profile settings and permissions.

JoshuaGoode commented 3 years ago

Also Atomic:

WP-Admin > Settings also includes important membership, default role, and time format settings that many power users adjust that are not available in Calypso.

getdave commented 3 years ago

We have made this a "must have" for final launch. I'm working on it now.

getdave commented 3 years ago

This is a good escape hatch for Issues such as this p7DVsv-ago-p2#comment-33825

cpapazoglou commented 3 years ago

@Automattic/ajax I thinks it's time to step back and think again if this approach is enough. As I have already commented here https://github.com/Automattic/wp-calypso/issues/49191#issuecomment-765551434

we may need to have accessible both interfaces. For example https://wordpress.com/settings/general/yoursite.com has several features not accessible through a WPAdmin screen

What I am trying to say here, is that WPAdmin is not a superset of features and doesn't include all Calypso features. It seems to me that we may have to extract that kind of features into different Calypso screens / menus first.

mmtr commented 3 years ago

It seems to me that we may have to extract that kind of features into different Calypso screens / menus first.

I agree that would be ideal, but even though Calypso developers would like be unaware of this limitation when adding new features to Calypso. So even if we refactor the screens to make sure all current features are accessible, I anticipate we'll have the same problem in the near future.

So in addition to trying to make sure that the current features that are exclusive to Calypso are always visible, I'd also add a small scape hatch for covering future features that are unintentionally hidden.

Maybe a small switch button that is displayed on every page that has an equivalent on both WP Admin/Calypso could work. Users can use that switch button to quickly switch to the WP Admin / Calypso equivalent.

Quick mockup illustrating the idea:

Screen Shot 2021-01-22 at 18 43 53
obenland commented 3 years ago

It's probably worth revisiting the menu structure for Atomic sites. Users and Settings screens seem to be the biggest issues so far?

cpapazoglou commented 3 years ago

It's probably worth revisiting the menu structure for Atomic sites. Users and Settings screens seem to be the biggest issues so far?

Per my understanding and users' reports, yes. Users and Settings screens seem to be the biggest (only) issues, meaning that neither Calypso nor WPAdmin are full featured.

getdave commented 3 years ago

Users and Settings screens seem to be the biggest (only) issues, meaning that neither Calypso nor WPAdmin are full featured.

Let's pull together a list of screens and features for a side-by-side comparison of Calypso and WPAdmin (Google Spreadsheet seems best).

From there we can decide how to approach the Issue.

I will say that as a quick solution @mmtr's suggestion seems like a good short term plan. It does however ask a lot of users given that Nav Unification is supposed to be providing a single interface for our product.

I've created a separate Issue to track this

https://github.com/Automattic/wp-calypso/issues/49262

getdave commented 3 years ago

Needs splitting up into smaller Issues as this is currently a bit of an epic.

obenland commented 3 years ago

as a quick solution @mmtr's suggestion seems like a good short term plan

I'm hesitant about spelling out the difference between the two interfaces like that, to me it doesn't necessarily feel in line with what we're trying to do with nav unification.

Maybe we could explore finding menu titles for the wp-admin screens that we want to put back and have them available in addition to the Calypso ones? Like Edit Users or something for the users list?

We could limit adding the settings to only when the settings sections have registered fields or sections? isset( $wp_settings_fields['general']['default'] ), isset( $wp_settings_sections['general']

obenland commented 3 years ago

I should have used the word "Fixes" ;)

getdave commented 3 years ago

Missing Settings and Users screens discussion:

Just so this Issue remains on topic for Method to opt our of Calypso links let's continue the discussion about sorting out the missing settings pages over at https://github.com/Automattic/wp-calypso/issues/49262.

Thanks 🙇

mmtr commented 3 years ago

Reopening since this still needs https://github.com/Automattic/jetpack/pull/18548 to be released in Jetpack 9.4.1 for handling Atomic sites.

mmtr commented 3 years ago

Jetpack 9.4.1 just came out, so we can close this issue now.