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

Dashboard grid view #8561

Open
ilabutin opened this issue Oct 20, 2020 · 17 comments · May be fixed by #9694
Open

Dashboard grid view #8561

ilabutin opened this issue Oct 20, 2020 · 17 comments · May be fixed by #9694
Labels
area: dashboard Issues related to the Dashboard 🚧 status: in progress Issues which have associated PRs type: discussion

Comments

@ilabutin
Copy link

Feature description

The current dashboard look and feel is useful, especially when categories are used.
Still, it shows repositories in the view which is similar to "Tile" view in Explorer.
It makes it difficult to find repositories visually since you need to scan from left to right, top to bottom.

It would be good if it is possible to switch to another view, similar to "Details" view in the Explorer. It is a grid where columns might be: Path, Branch, Last Access Date.
Sorting by Path would simplify looking for a repository a lot since all work-related repositories are in the same folder, so it's very quick to find the required one in the alphabetical list.

What would be the opinion on this feature? I'm ready to try to contribute it if it looks appropriate.

Environment

  • Git Extensions 3.4.3.9999
  • Build d4b0f48
  • Git 2.27.0.windows.1
  • Microsoft Windows NT 10.0.18363.0
  • .NET Framework 4.8.4250.0
  • DPI 96dpi (no scaling)
@ilabutin ilabutin changed the title Dashboard list view Dashboard grid view Oct 20, 2020
@pmiossec
Copy link
Member

It makes it difficult to find repositories visually since you need to scan from left to right, top to bottom.

I share this point of view. I generally find it difficult and tiring to find something when things are represented like that.
The first thing I do is switching to a list.
So I like this proposal...

Let's see what other think about it.

@RussKie
Copy link
Member

RussKie commented Oct 21, 2020

This is certainly an interesting proposal 👍

Though ever since I implemented the current dashboard I had an itch to re-design it again, something like this:
image

@RussKie RussKie added area: dashboard Issues related to the Dashboard type: discussion labels Oct 21, 2020
@RussKie
Copy link
Member

RussKie commented Oct 21, 2020

@ilabutin can you come up with a mock up to visualise what you have in mind?

@drewnoakes
Copy link
Member

I would love a search feature on this UI.


Another idea would be to show just the folder name. So instead of:

  • d:\repos\CPS
  • d:\repos\project-system
  • d:\repos\VS
  • d:\repos\metadata-extractor-images
  • d:\repos\metadata-extractor-dotnet

I would like to see:

  • CPS
  • project-system
  • VS
  • metadata-extractor-images
  • metadata-extractor-dotnet

It may be necessarsy to add ancestors to disambiguate duplicates. (eg: client1/project, client2/project).

I keep all my repos in a single folder, so this would work for me. Others may have different strategies for organising their code for which this may be less of a good fit.

@pmiossec
Copy link
Member

Another idea would be to show just the folder name.

That's already doable (and that's the way I like it. I don't know why it's not the default...). And I absolutely want to keep it if dashboard is redesigned!

I'm not in front of a computer so it will difficult to tell you exactly.
That's in the recent repositories settings window (In the dashboard menu or at the bottomof the recent repositories list), you have a setting "shorten to the most significant folder"

It may be necessarsy to add ancestors to disambiguate duplicates.

This option also manages well this case...

@ghost
Copy link

ghost commented Oct 21, 2020

  • name [branch]
    path

@ilabutin
Copy link
Author

My idea was to have it like that (I hope you get the idea):
image

The "Recent" grid is sorted by Last Accessed descending.
The "Projects" grid is sorted by Category and then by Path.
The search box filters both grids (including path, category, and branch name fields) - probably it should be renamed to 'Filter'.
When dashboard is opened, the keyboard focus is in the filter/search field.

I'm a little bit struggling with categories. If you have many of them, having them as independent groups will either leave too little place for each or introduce a scrollbar to the dashboard which I'd like to avoid.
Therefore in my use case I'm fine having category as a column, but I feel this is not an ideal solution (but I only have two of them to distinguish work and non-work).

@drewnoakes
Copy link
Member

That's already doable

Thank you!

Though it took me a while to find the setting. I was looking through the settings dialog for a 'dashboard' section. Turns out the dashboard has its own settings UI with a different gesture to show it.

I don't know why it's not the default

I agree that shortening would be a good default.

@RussKie
Copy link
Member

RussKie commented Oct 22, 2020 via email

@ilabutin
Copy link
Author

@RussKie , I know it's almost a year that passed, but having used Git Extensions almost every day I still miss this feature. Would you have time to look at the proposal I showed above?
I'm not sticking to grids specifically, but two key things in it:

  • global 'filter' that will dynamically reduce the list of repositories as I type
  • layout having a single line per repository

I'd be happy to try to implement whatever final design will be once it is approved.

@pmiossec
Copy link
Member

@ilabutin I think the first request has been done in #9380 and will be in the next release.

Remain the 2nd one ;)

@ilabutin
Copy link
Author

ilabutin commented Oct 11, 2021

@pmiossec Oh, wow. Thanks for the heads up. Will wait for the next version.
The second one needs some approval of maintainers before any development is done, so I'll patiently wait :)

@RussKie
Copy link
Member

RussKie commented Oct 13, 2021

Sorry @ilabutin, this has completely fallen off my radar. I'm not totally opposed to the idea, though I guess I'd need to see a POC before I'd be able provide any feedback...

@RussKie RussKie added the 📭 needs: author feedback More info/confirmation awaited from OP; issues typically get closed after 30 days of inactivity label Oct 13, 2021
@ilabutin
Copy link
Author

Sure, I'll prepare some branch with POC implementation of the UI and we'll continue the discussion

@ghost ghost removed the 📭 needs: author feedback More info/confirmation awaited from OP; issues typically get closed after 30 days of inactivity label Oct 13, 2021
@ilabutin
Copy link
Author

I've hacked the source code a little to force it to draw the dashboard how I'd like it to be. The source code is in my fork: https://github.com/ilabutin/gitextensions/tree/feature/dashboard_detailsview

It turned out that ListView control contains what I needed, so it was just a matter of rendering it correctly by changing some styles.

Let me know if this is enough for POC to review and I'm open to any suggestions or changes to be done.

In the "production" implementation I imagine this as a global application-level setting (something like "Dashboard: use detailed view").

@RussKie

@pmiossec
Copy link
Member

@ilabutin It's always easier for everyone with a PR ;)

Could you open a PR and put it as a draft (because it is work in progress)?

Also in the description, please add a screenshot of your current progress.

@ilabutin ilabutin linked a pull request Oct 27, 2021 that will close this issue
@ghost ghost added the 🚧 status: in progress Issues which have associated PRs label Oct 27, 2021
@ilabutin
Copy link
Author

@pmiossec
The PR is opened. It is definitely an early stage of the feature, just a POC to see what everybody thinks about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: dashboard Issues related to the Dashboard 🚧 status: in progress Issues which have associated PRs type: discussion
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants