Improve handling of projects shared with a group
Individual users and groups can be invited to collaborate on a project. When a group is invited to collaborate, the project is not added to the group, but should be easily accessible to group members. Previously shared projects were included in the list of group projects. We should make them easier to identify and improve the consistency of the invitation process
Proposal
- Update invitation interface to be more consistent between inviting users and groups to collaborate on a project
- Update group project list to list 'Shared Projects' separately from projects that belong to the group
Design
Group view:
Settings:
- Please note the following group config setting that changes the layout slightly to be without tabs
🤔
- 'show more' links in sections link to their respective tabs similar to to https://gitlab.com/gitlab-org/gitlab-ce/branches/active
- The existing empty state should be shown on the overview tab, if there is no content to show. The tabs and search row from the mockups will always be visible, it includes the new project/subgroup button. When the user clicks any of the other tabs we have the following pure text empty states:
There are no projects or subgroups in this group yet
There are no projects shared with this group yet
There are no archived projects yet
- Tabs should remain visible even if there is no content in them
- Sections on the overview tab should hide if there is no content to show. If both sections are to be hidden, show the empty state
- Async loading should remain. Use a spinner initially. Later on we can implement skeleton loading
- What if a project is shared with a group, and then archived => It is hidden from results (edge case)
- Note: Add a separate search field into each section similar to the members page. Searching redirects the user to the result page on their respective tab.
Update, 2018-08-15 Updates to the specs above:
- Get rid of overview tab
- Keep other tabs as is
- Introduce search front and center
- Search input is persistent across tabs (which is also indicated through visual hierarchy. Related issue #50293 (moved))
- Move existing empty state to "Subgroups and projects" tab
Potential follow ups
- https://gitlab.com/gitlab-org/gitlab-ce/issues/46489
- Skeleton loading for groups
- Empty state all tabs new group view
Links
https://gitlab.com/gitlab-org/gitlab-ce/issues/42407#note_60115599
Backend
-
fix per_page
parameter for https://gitlab.com/groups/gitlab-org/-/children.json?per_page=5 -
add archived=only
parameter to https://gitlab.com/groups/gitlab-org/-/children.json -
introduce new https://gitlab.com/groups/gitlab-org/-/shared_projects.json endpoint which serves the same data structure as the children.json
endpoint
Edited by Dennis Tang