Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Indicator for the Workspace state #3803

Closed
bwaidelich opened this issue Nov 10, 2023 · 6 comments
Closed

Indicator for the Workspace state #3803

bwaidelich opened this issue Nov 10, 2023 · 6 comments
Labels

Comments

@bwaidelich
Copy link
Member

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
Copy link
Member Author

bwaidelich commented Nov 10, 2023

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

@markusguenther
Copy link
Member

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 ;)

@bwaidelich
Copy link
Member Author

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..

@pKallert
Copy link
Contributor

I created a rough first draft of the feature here: #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

@bwaidelich
Copy link
Member Author

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

@mhsdesign
Copy link
Member

Can this be considered closed as part of #3742 ?

cc @grebaldi

@github-project-automation github-project-automation bot moved this from In Progress 🚧 to Done ✅ in Neos 9.0 Release Board Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Archived in project
Development

No branches or pull requests

4 participants