Group-level wiki: Exploration

Problem to solve

Today, you can add documentation/structured information related to a GitLab project via the Wiki feature. On larger GitLab instances, there can be a lot of groups and sub-groups that organize a cluster of GitLab projects.
Right now, there is no straight-forward way to document and share information on Group-level.

Further details

  • There have been MR contributions that weren't finished due to the complexity of this feature and the current architecture
  • Dependencies to Gitaly, Workhorse and Geo

Proposal

To achieve this, let's implement Wiki on group-level. Setting up a group wiki should be identical to project wikis.
Similar to project-level, group wikis are added via their own repository that is created in the background.

This issue serves as engineering exploration for the ~Platform team and ~"design artifact". The outcome should be an engineering plan/architecture for the follow-up implementation step, as well as a ready UX.

What does success look like, and how can we measure that?

(If no way to measure success, link to an issue that will implement a way to measure this)

Solution

Group overview (with 'Wiki' in menu) Group wiki empty state Create home page Home page Create a page (generic)
image image image image image

A few imrpovements proposed:

  • Add '(Required)' to input labels where needed (Title, Content)
  • Update form validation (error messages appear below input fields in error state)
  • Change the 'Format' dropdown select to segmented control
  • Say 'No pages yet' in the sidebar when there are no pages yet (when creating the home page) and the 'More pages' button needs to be disabled
  • Kill the 'Create a page' modal, clicking on the 'New page' button goes straight to the generic 'Create a page' page, put the 'Page slug' input in that page below the title.
  • When loading the 'Create a page' page autofocus to 'Title', as users type the title in the 'Page slug' input gets automatically filled in with what is written in 'Title' but in lowercase and '-' instead of spaces. The user can still change this.
  • Limit 'Title' and 'Page slug' input fields to 320px or 20rem
  • Limit the 'Commit message' input field to 560px or 35rem

We also need to add the toggle below "Permission" group settings, similar to what we are having in project settings, with an additional help description.

image

Links / references

https://gitlab.com/gitlab-org/gitlab-ce/issues/4037

Edited Jul 30, 2018 by Matej Latin
Assignee Loading
Time tracking Loading