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

Redesign repo list and include last pipeline #4386

Merged
merged 23 commits into from
Nov 20, 2024
Merged

Redesign repo list and include last pipeline #4386

merged 23 commits into from
Nov 20, 2024

Conversation

xoxys
Copy link
Member

@xoxys xoxys commented Nov 16, 2024

Supersedes: #2552

  • Use the same list for Repos/OrgRepos
  • Show the last four visited Repos
  • List all repos sorted by last pipeline creation

I tried out many variants of what information should be displayed in the repo list with different layouts and decided on the absolute minimum. Everything else seemed kind of overloaded and cluttered (especially as it has to work consistently on mobile). However, if you have any ideas, please let me know, but I would like to keep this PR small and focus on the repo list for now.

Repo list (desktop):

image

Repo list (mobile):

OrgRepo list (mobile):

@xoxys xoxys marked this pull request as draft November 16, 2024 14:40
@anbraten anbraten added ui frontend related enhancement improve existing features labels Nov 17, 2024
@xoxys xoxys requested a review from a team November 17, 2024 19:48
@xoxys xoxys marked this pull request as ready for review November 17, 2024 19:48
@anbraten
Copy link
Member

I would suggest to place the status icon in front of the last pipeline message to group all info that belongs to the pipeline. The time feels a bit far away on the desktop screen, however I've no nice idea were to place it instead. To avoid two icons we could remove the pipeline type icon (push, pr, ...).

Some similar UIs I've found:

image

image

https://v0.dev/chat/fWkCn1IFMjk?b=b_jUv2KjQbRRj

image

web/src/lib/api/types/repo.ts Outdated Show resolved Hide resolved
web/src/components/repo/RepoItems.vue Outdated Show resolved Hide resolved
web/src/store/repos.ts Outdated Show resolved Hide resolved
web/src/views/Repos.vue Outdated Show resolved Hide resolved
@anbraten anbraten mentioned this pull request Nov 17, 2024
12 tasks
@anbraten anbraten changed the title Improve repo list Redesign repo list and include last pipeline Nov 17, 2024
@xoxys
Copy link
Member Author

xoxys commented Nov 17, 2024

I would suggest to place the status icon in front of the last pipeline message to group all info that belongs to the pipeline. The time feels a bit far away on the desktop screen, however I've no nice idea were to place it instead. To avoid two icons we could remove the pipeline type icon (push, pr, ...).

Did some rework. What do you think about this approach:

image

@pat-s
Copy link
Contributor

pat-s commented Nov 18, 2024

I like the new layout. Thanks for putting the time and effort in!

There's still room for UX improvement, but we can go from there and iterate on it. E.g. I think we have too much free space in the middle now where the repo list starts.

Additionally, I don't like the coloring of the "public" badge so much. I know it is already in use like this in the "add repository" list. Personally, I'd prefer no background but only a rounded border with a solid colored text. The gray color doesn't really fit into the light theme well, IMO. But this can also be done in a follow-up PR as this one is mainly about the layout.

Another idea would be to add possible repo avatars, now that we have so much space. And deciding for a visually pleasing default image.

pat-s
pat-s previously approved these changes Nov 18, 2024
@xoxys
Copy link
Member Author

xoxys commented Nov 18, 2024

I like the new layout. Thanks for putting the time and effort in!

No problem :) also credits to @anbraten for starting the work on it

E.g. I think we have too much free space in the middle now where the repo list starts.

Spacing is always a bit difficult. Too less and it looks weird, too much is wasting space.

Additionally, I don't like the coloring of the "public" badge so much.

I would like to rework the badges globally, I also don't like them.

Another idea would be to add possible repo avatars

We can try again, but for me, it was too much and looked overloaded.

@xoxys
Copy link
Member Author

xoxys commented Nov 19, 2024

That's how it looks right now for me on Firefox:

Bildschirmaufzeichnung.vom.2024-11-19.14-28-08.mp4

@xoxys xoxys dismissed pat-s’s stale review November 19, 2024 13:47

A lot has changes, should be re-approved.

@6543
Copy link
Member

6543 commented Nov 19, 2024

just based on the video, an idea poped up: could the transition from hiding and showing be sothed out (e.g. transition animation) - of course you are free to adopt the idea or not

@xoxys
Copy link
Member Author

xoxys commented Nov 19, 2024

My opinion remains, changing the layout (hiding/moving/transforming parts of the overall page layout) on keyboard inputs is a bad UX and should be avoided in any case.

@xoxys
Copy link
Member Author

xoxys commented Nov 19, 2024

Ok, after playing around with it, I can't find any better solution. The issue on mobile described by @anbraten is valid, and I agree on that. So to get forward, I would say we live with the tradeoff for now. I just added some changes:

  • I still expect the "All repos" list to contain all repos (search is applied o this list)
  • Smooth in-out transition while using search
  • Layout adjustments to show feedback on empty search result and empty repo lists

I added all changes to a single commit so they can be easily reverted. Let me know if this compromise is acceptable for you.

Bildschirmaufzeichnung.vom.2024-11-20.00-47-07.mp4

@pat-s
Copy link
Contributor

pat-s commented Nov 20, 2024

Most users don't use mobile anyway I guess? If so, there will be future efforts to improve it.

Thanks to both of you for finding a consensus and getting this improvement shipped 💙

@pat-s pat-s merged commit b3932a0 into main Nov 20, 2024
7 checks passed
@pat-s pat-s deleted the repo-list branch November 20, 2024 11:24
@woodpecker-bot
Copy link
Collaborator

@woodpecker-bot woodpecker-bot mentioned this pull request Nov 20, 2024
1 task
@zc-devs
Copy link
Contributor

zc-devs commented Nov 21, 2024

Show the last four visited Repos

Is this per user info then, right?

Under User 1 I've added some repos. I did not visited that repos under User 2, but they are on top:

Screenshot 2024-11-21 131238

Can I adjust the number of recently visited repos to be displayed? Can I hide it or disable completely?


List all pipelines sorted by last pipeline creation

But the issue is about repositories list. What is this about?


What is the order?

Screenshot 2024-11-21 131025

Or something else?


What visibility is it supposed to be?

Screenshot 2024-11-21 131920


Currently I have 7 repos.

Screenshot 2024-11-21 133824

Is there the N+1 problem? It is event worse: 2*N+1.

@xoxys
Copy link
Member Author

xoxys commented Nov 21, 2024

Pretty confusing post for me. I try to sort it:

Is this per user info then, right?

If the "last access" list is not user based, we should look into that.

Can I adjust the number of recently visited repos to be displayed? Can I hide it or disable completely?

No, atm it can't be disabled you can of course hide it by custom CSS.

But the issue is about repositories list. What is this about?

I don't understand this point. What is your problem/question?

What is the order?

Its 1)

What visibility is it supposed to be?

It's supposed to be not "Public" so "Private" or "Internal" but we can improve this part if that's what you are asking for. Maybe turning it around and show if a repo is "Private" or "Internal" makes more sense. But I planned to rework the badges anyway, so I'll keep it in mind.

Is there the N+1 problem? It is event worse: 2*N+1.

Also, something we should investigate.

@zc-devs
Copy link
Contributor

zc-devs commented Nov 21, 2024

we should look into that
we should investigate

Thanks in advance.

No, atm it can't be disabled you can of course hide it by custom CSS
Its 1

Thanks for answers.

It's supposed to be not "Public" so "Private" or "Internal".

So, it is Wodpecker's visibility, not the Forge.

show if a repo is "Private" or "Internal" makes more sense. I planned to rework the badges anyway, so I'll keep it in mind.

👍

I don't understand this point. What is your problem/question?

Just tried to understand what is the "pipeline list" you are talking about? Where it is and how I can test it?

@xoxys
Copy link
Member Author

xoxys commented Nov 21, 2024

Just tried to understand what is the "pipeline list" you are talking about? Where it is and how I can test it?

Oh, now I got it. That's just a typo in the PR description, sorry for the confusion. It was meant to be:

  • List all repos sorted by last pipeline creation

Ill fix it in the PR description

@xoxys
Copy link
Member Author

xoxys commented Nov 21, 2024

So, it is Wodpecker's visibility, not the Forge.

Yes it shows the woodpecker state of the repo, whatever you have configured for it in the WP repos settings will apply here.

@anbraten
Copy link
Member

Is this per user info then, right?

Under User 1 I've added some repos. I did not visited that repos under User 2, but they are on top:

It's the last 4 visited repos. If you never visited a repo it shows the first 4 repos from the "general" list (probably sorted by last pipeline time).

Just noticed the repo list for an org doesn't seem to be sorted by pipeline time.

@zc-devs
Copy link
Contributor

zc-devs commented Nov 21, 2024

List all repos sorted by last pipeline creation

Then I have another feedback.

Repos list used to be sorted by name, right? So, it was kinda static. One could remember at a subconscious level where some repo is. Like: it is somewhere "one scroll from the top" and then "on the middle of the page". So, after "Repositories" clicked, I do one scroll and move pointer to the center of the screen. Then, I find the repo visually, adjust position of the pointer and click.

Now, this list is dynamic, it always changes. I even can do nothing, just hit F5 and there will be completely reordered list, just because my teammates push changes, PRs got merged or some cron jobs. Reminds me of https://www.youtube.com/watch?v=uRGljemfwUE&t=507s 🤣

It would be great to have sorting setting like in GitHub and default is by name.

@xoxys
Copy link
Member Author

xoxys commented Nov 21, 2024

Sure, there will always be different use cases and preferences. But IMO, the repo list was quite useless. For me getting this PR done was a huge achievement and makes the repo list a lot more valuable. But I agree, sorting options would be useful. Besides that, I would recommend creating separate issues for all the missing features you discovered.

BTW even the GitHub repo list is sorted by last activity by default same for Issues PR's, etc. and in my opinion that should be the default for WP as well even if we add other sort options.

@zc-devs
Copy link
Contributor

zc-devs commented Nov 21, 2024

GitHub repo list is sorted by last activity by default
in my opinion that should be the default for WP as well even if we add other sort options.

Maybe. At least it is in Gitea.
It would be great if this setting will be saved somewhere.

same for Issues PR's, etc.

Not for me

Issues Default
Issues Recently updated

PRs Default
PRs Recently updated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement improve existing features ui frontend related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants