neos-ui icon indicating copy to clipboard operation
neos-ui copied to clipboard

Indicator for the Workspace state

Open bwaidelich opened this issue 2 years ago • 6 comments

TL;DR The Backend should provide an indicator of the current workspace state, especially when conflicts happened

A workspace in Neos 9.0 can have one of the following three states:

  • UP_TO_DATE - This is the case if the contentStream of the base workspace IS EQUAL TO the sourceContentStream of this workspace's content stream, i.e. there no new events on the base workspace (By definition, a base workspace (like "live") is ALWAYS UP_TO_DATE)
  • OUTDATED - Can have two reasons: a) The base content stream has been rebased, b) The base content stream has new events
  • OUTDATED_CONFLICT - a special case of OUTDATED, but then an error happens during the rebasing

See WorkspaceStatus enum for more details.

The OUTDATED state means, that a rebase is required (Currently that is triggered by logging-out and -in again). In the OUTDATED_CONFLICT the current workspace can't be published. So new changes will be lost.

With 9.0 there won't be a (fully fledged) conflict resolution because that's very intricate, but we are considering ways to at least partially apply changes and/or be able to "stash" the pending changes so that they don't have to be discarded.

In any case, we should provide the user an early feedback of the workspace state, especially for the latter two cases.

bwaidelich avatar Nov 10 '23 16:11 bwaidelich

Some more UX/UI ideas (disclaimer: I'm not a designer, nor UX expert. at all.):

  • Currently we don't show the user workspace name at all in the Backend UI. But IMO that could be useful – especially if we add that "workspace stashing" feature mentioned above.
  • The indicator should link to the workspace module (that will allow for manual rebasing and – later – conflict resolution)
    • @dlubitz suggested that the rebase can be triggered directly from the indicator if OUTDATED
  • Obviously we should not use terms like "rebase" in the UI – something like "synchronize with changes from 'live' workspace" could work

Two really rough suggestions just to communicate the direction (I guess an indicator should rather be a small badge/icon instead of this huge buttons, but I didn't want to overstress my Photoshop skills):

SCR-20231110-pags

SCR-20231110-payy

bwaidelich avatar Nov 10 '23 16:11 bwaidelich

I like the idea that we see directly the current selected workspace, but the top bar becomes really overloaded. So if we put more information at the top, we should prioritize the most important stuff.

The state and the workspace are important, and the dimension and the publishing as well. As we need bit more space, we can maybe move the user menu to the drawer menu footer. The user menu is more or less just for the logout and bet the user impersonation and user settings are really seldom in use. So you will have just one more click to open the side menu and be able to log out. What do you think? Alternately, we could always use the small screen view and don't render the first and last name.

But I am also not a designer ;)

markusguenther avatar Nov 10 '23 17:11 markusguenther

the top bar becomes really overloaded

That's true. Maybe the indicator could just be a simple icon on the publish button with more details & options in the dropdown..

bwaidelich avatar Nov 10 '23 17:11 bwaidelich

I created a rough first draft of the feature here: https://github.com/neos/neos-ui/pull/3665

To avoid confusion I would suggest only adding a small button if the workspace is outdated. If the personal workspace is up to date the button would not do anything anyways.

The Icons is something I made up on the fly, but if an actual person who can do icons wants to have a go, feel free 😄

Also, the whole padding/sizes and newlines styling stuff is not finished, this is something like a mockup.

Normal status, personal workspace is up to date

Bildschirmfoto 2023-11-14 um 12 11 24

Personal workspace is outdated

Bildschirmfoto 2023-11-14 um 11 10 35

Clicking on the button opens a popup: Bildschirmfoto 2023-11-14 um 11 32 19

Personal workspace is outdated and in error state

Bildschirmfoto 2023-11-14 um 11 54 13

Clicking on the button opens a popup: Bildschirmfoto 2023-11-14 um 11 54 28

pKallert avatar Nov 14 '23 13:11 pKallert

I created a rough first draft of the feature

@pKallert You're amazing, I like the approach! From those modals one option should be to go to the workspace module, but we can always add that later

bwaidelich avatar Nov 14 '23 14:11 bwaidelich

Can this be considered closed as part of https://github.com/neos/neos-ui/issues/3742 ?

cc @grebaldi

mhsdesign avatar Jun 14 '24 11:06 mhsdesign