Skip to content

TUI: Make project-context clearer in TUI and TUI actions #8230

@crowjake

Description

@crowjake

Is there an existing issue for this?

  • I have searched the existing issues

Is your feature request related to a problem?

Having used the new TUI a little, I do find it a little ambiguous which project different actions act upon, and if you step away from the terminal, it's also not clear what directory you are in.

If I have 3 projects and I launch ddev from ~/projects/project-2 this is how the TUI looks:

DDEV Projects                                                     v1.25.1
──────────────────────────────
> project-1         running     php           https://project-1.ddev.site
  project-2         stopped     drupal10
  project-3         stopped     drupal11

Operation completed
──────────────────────────────
Router: healthy
──────────────────────────────
s start  S stop  r restart  a start all  A stop all  P poweroff  l launch
m mailpit  x xhgui  C config  enter detail  / filter  ? help  q quit

The > indicator is next to project-1 because it's the first in an alphabetical list. Some actions, e.g. s for start acts upon the selected project, whereas C for config acts upon the current directory. There's no indication of what it acts upon until you run it!

Describe your solution

To avoid ambiguity, I'd do something like this:

Current Project(*): project-2                                     DDEV v1.25.1
All projects:                        
─────────────────────────────
  project-1        running     php           https://project-1.ddev.site
---------------------------------------------------------------
> project-2*       stopped     drupal11
actions on project-2: 
s start,  S stop,  r restart, l launch, enter detail, l launch, m mailpit
x xhgui,  C config,  d switch directory 
---------------------------------------------------------------
  project-3       stopped     drupal10 


Operation completed
──────────────────────────────
Router: healthy
─  general actions ─────────────────────
↑ / ↓ navigate  a start all  A stop all  P poweroff   / filter  ? help  q quit

If the directoy doesn't have DDEV maybe it could be something like this

Current Project(*): new-project (no ddev)             DDEV v1.25.1
All projects:                        
─────────────────────────────
  project-1        running     php           https://project-1.ddev.site
  project-2       stopped     drupal10 
  project-3       stopped     drupal11
---------------------------------------------------------------
> new-project*       no-ddev
actions on new-project
configure ddev at this directory?... C config 
--------------------------------------------------------------- 

Router: healthy
─ general actions ─────────────────────
↑ / ↓ navigate  a start all  A stop all  P poweroff   / filter  ? help  q quit

This set-up provides an an indicator of whether the current directory is a ddev project or not (and if so, the project name)

The > defaults to the current directory, not the first project alphabetically.

It also provides an indication (or separation) of which actions are performed in the current directory project, and which actions are performed on the selected project, by making that menu contextual and move with the > indicator.

I know it's a little ugly/busy, but it does provide more context - I hope it can be made much prettier in the TUI, with colors and ASCII box charcacters but I think the concept works?

Describe alternatives

You don't need the contextual menu to move with the > cursor, it could also be a permanent menu labelled "actions on the selected project" with the other menu labelled "general actions"

Additional context

Image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions