Project Display Update
Current Design:
User creates new Project. They are redirected to the Files Tab of the new (empty) Project.
Each Tab is shown, and contains either instructions to get started (ie "There is no content. Please click Edit Wiki from the Tools menu.") or a button for adding content of that type.
There are instructions in the help icons for each Tab header.
Use Cases:
- A user creates a Project which will have only a Wiki. They want the Project to show just the Wiki without any Tabs or other distracting elements.
- A user creates a Project with a subset of features (i.e. a Wiki, Files, and tables). They want the Project to show those Tabs, but none of the other Tabs (Discussion, Docker, etc).
Goal:
To allow unnecessary content on a Project to be hidden. In this case, unnecessary content refers to some subset of the Tabs for navigating between different parts of a Project.
A Tab will only be considered necessary, and thus shown to the user, if:
- There's associated content (for example, if a File has been uploaded to the Project then the Files tab will be shown).
- They have permission to Edit the Project, and they switched the "Project Display Option" for the Tab to ON.
In addition, if there is only one Tab that would be shown (because it has content, or has been switched to ON in the "Project Display Options"), then there will be no tabs. It would be superfluous to render the lone tab when there are no other tabs to navigate to.
Proposed Design with Mockups:
Upon creating a new Project (or in the case where the counts for each tab are all 0), a dialog will be shown with a welcome message and switches to toggle on/off for selecting which elements to include in the project. The user's selections will be cached, and this way the tabs selected will be rendered even though they do not have any content. The cached selections will expire after some amount of time.
The user must select at least one tab to display in order to submit.
At some point, the user may wish to add other elements to their project. To do this, the user will select "Display Options" from the tools menu.
This will open the dialog they saw upon creating the project, with the tabs that contain content already switched "on."
If the user tries to hide a tab that contains content, an error will be shown.
An end user viewing this project will only see tabs that contain elements; for instance, if no discussion threads exist, there will be no discussion tab rendered.
In addition, if only one tab was selected by the creator, no tab section will be displayed.
Interactions between a user and the new design:
User creates new project. They will be shown the display options dialog.
User creates project, selects options to display, but adds no content. They navigate away from the project and then return a few hours later. The project should still display the selected tabs, even though they contain no content.
User returns to project after a long time, or using a different browser. They initially selected tabs to display, but added no content to any of them. They will be shown the display options dialog.
User wants to delete a tab from their project. They must first delete all content within that tab, and then it will be automatically hidden. Trying to hide the tab in the display options dialog will result in an error being shown (if the tab still contains content).
User wants to add a tab to their project. They must select that tab from the display options dialog - which can be reached from the Tools menu.