systemd: Expose primary service actions as direct buttons - #23207
systemd: Expose primary service actions as direct buttons#23207andreahlert wants to merge 1 commit into
Conversation
Primary actions (Start, Stop, Restart, Reload) were hidden inside a kebab menu, making them hard to discover. This commit exposes them as direct PatternFly Button components in the service header, while keeping secondary actions (Mask, Pin, Edit, Delete) in the overflow menu. Fixes cockpit-project#23060 Signed-off-by: André Ahlert <andre@aex.partners>
tomasmatus
left a comment
There was a problem hiding this comment.
Thanks for the PR!
With this there's a lot of duplicates. There is the on/off switch, start button and the same start button is in the dropdown menu

and same when the service is started:

Ideally I think you can remove duplicated buttons from the dropdown menu. The on/off switch should stay as that is used to enable/disable the service. Perhaps @Venefilyn has more to say about the UX with regard to Start && Enable vs only Start using the button added in this PR.
| */ | ||
| /** | ||
| * Primary service actions rendered as direct buttons (not in kebab menu). | ||
| * Addresses issue #23060: service actions are too hidden. |
| @@ -0,0 +1,97 @@ | |||
| # Proposal: Expose primary service actions as direct buttons | |||
There was a problem hiding this comment.
whatever this file is please drop it from the commit
Venefilyn
left a comment
There was a problem hiding this comment.
Overall I'm not a fan of this design as it creates way too much visual noise. Even if your instance has a lot of space for buttons it quickly becomes cluttered, especially so at smaller resolutions or longer service names.
Even if we just had one button for start/stop I wouldn't think it fits either. I believe it's better if we rework the details of the service itself and not keep these buttons in the header actions to begin with, but that requires a redesign too.
And by that I mean reworking the table layout we showcase to allow buttons there

If there is enough pushback to have these buttons added then the on off switch needs to go as it does not work together with the other buttons there. As the buttons are added the switch becomes ambiguous and confusing whereas previously there is only one button.
Though now that I think about it more, it might be possible to have some sort of tertiary icon buttons there instead for "Reload and restart" and "Reload and start". But it might still create some confusion with the enable/disable switch, so that would need to replaced as well.
If you want to try some UI prototypes (doesn't have to be functioning to begin with) you can spin some PRs up or showcase images in #23060 to gather feedback
Hope that helps
I keep running into this myself. Open a service page and try to restart it. You look around, no obvious button. Eventually you find it buried in the three-dots menu. Not great.
Issue #23060 has the full report. Short version: people expect start/stop/restart/reload to be visible, not hidden in an overflow menu.
This pulls those actions out into actual buttons in the header. Start is primary, restart/reload are secondary, stop is danger. The kebab menu still holds the secondary stuff: mask/unmask, pin, edit, delete.
I added a ServicePrimaryActions component and dropped it next to the enable/disable switch. Pretty straightforward.
Fixes #23060