mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-18 21:02:41 +01:00
Write documentation for profile menus
Summary: Ref T10054. This is all pretty straightforward. Also include some project-specific examples in the project documentation. Test Plan: Read documentation. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10054 Differential Revision: https://secure.phabricator.com/D15090
This commit is contained in:
parent
51ed95c00b
commit
df4b484a5f
4 changed files with 191 additions and 14 deletions
|
@ -20,18 +20,6 @@ final class PhabricatorProjectProfilePanelEngine
|
||||||
->setBuiltinKey(PhabricatorProject::PANEL_WORKBOARD)
|
->setBuiltinKey(PhabricatorProject::PANEL_WORKBOARD)
|
||||||
->setPanelKey(PhabricatorProjectWorkboardProfilePanel::PANELKEY);
|
->setPanelKey(PhabricatorProjectWorkboardProfilePanel::PANELKEY);
|
||||||
|
|
||||||
// TODO: This is temporary.
|
|
||||||
$uri = urisprintf(
|
|
||||||
'/maniphest/?statuses=open()&projects=%s#R',
|
|
||||||
$object->getPHID());
|
|
||||||
|
|
||||||
$panels[] = $this->newPanel()
|
|
||||||
->setBuiltinKey('tasks')
|
|
||||||
->setPanelKey(PhabricatorLinkProfilePanel::PANELKEY)
|
|
||||||
->setPanelProperty('icon', 'maniphest')
|
|
||||||
->setPanelProperty('name', pht('Open Tasks'))
|
|
||||||
->setPanelProperty('uri', $uri);
|
|
||||||
|
|
||||||
$panels[] = $this->newPanel()
|
$panels[] = $this->newPanel()
|
||||||
->setBuiltinKey(PhabricatorProject::PANEL_MEMBERS)
|
->setBuiltinKey(PhabricatorProject::PANEL_MEMBERS)
|
||||||
->setPanelKey(PhabricatorProjectMembersProfilePanel::PANELKEY);
|
->setPanelKey(PhabricatorProjectMembersProfilePanel::PANELKEY);
|
||||||
|
|
|
@ -630,7 +630,7 @@ abstract class PhabricatorProfilePanelEngine extends Phobject {
|
||||||
|
|
||||||
if ($panel->isDisabled()) {
|
if ($panel->isDisabled()) {
|
||||||
$hide_icon = 'fa-plus';
|
$hide_icon = 'fa-plus';
|
||||||
$hide_text = pht('Show');
|
$hide_text = pht('Enable');
|
||||||
} else if ($panel->getBuiltinKey() !== null) {
|
} else if ($panel->getBuiltinKey() !== null) {
|
||||||
$hide_icon = 'fa-times';
|
$hide_icon = 'fa-times';
|
||||||
$hide_text = pht('Disable');
|
$hide_text = pht('Disable');
|
||||||
|
@ -683,10 +683,14 @@ abstract class PhabricatorProfilePanelEngine extends Phobject {
|
||||||
->setLabel(true)
|
->setLabel(true)
|
||||||
->setName(pht('Documentation')));
|
->setName(pht('Documentation')));
|
||||||
|
|
||||||
|
$doc_link = PhabricatorEnv::getDoclink('Profile Menu User Guide');
|
||||||
|
$doc_name = pht('Profile Menu User Guide');
|
||||||
|
|
||||||
$action_view->addAction(
|
$action_view->addAction(
|
||||||
id(new PhabricatorActionView())
|
id(new PhabricatorActionView())
|
||||||
->setIcon('fa-book')
|
->setIcon('fa-book')
|
||||||
->setName(pht('TODO: Write Documentation')));
|
->setHref($doc_link)
|
||||||
|
->setName($doc_name));
|
||||||
|
|
||||||
$action_button = id(new PHUIButtonView())
|
$action_button = id(new PHUIButtonView())
|
||||||
->setTag('a')
|
->setTag('a')
|
||||||
|
|
143
src/docs/user/userguide/profile_menu.diviner
Normal file
143
src/docs/user/userguide/profile_menu.diviner
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
@title Profile Menu User Guide
|
||||||
|
@group userguide
|
||||||
|
|
||||||
|
Master profile menus for projects and other objects.
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
|
Some objects, like projects, have customizable menus called "profile menus".
|
||||||
|
This guide discusses how to add, remove, reorder, configure and extend these
|
||||||
|
menus.
|
||||||
|
|
||||||
|
|
||||||
|
Supported Applications
|
||||||
|
======================
|
||||||
|
|
||||||
|
These applications currently support profile menus:
|
||||||
|
|
||||||
|
| Application | Support |
|
||||||
|
|-----|-----|
|
||||||
|
| Projects | Full |
|
||||||
|
| People | //Read-Only// |
|
||||||
|
|
||||||
|
|
||||||
|
Collapsing and Expanding
|
||||||
|
========================
|
||||||
|
|
||||||
|
To collapse a full-width profile menu, click
|
||||||
|
{nav icon="angle-left", name="Collapse"}. To expand a narrow menu, click
|
||||||
|
{nav icon="angle-right", name="Expand"}.
|
||||||
|
|
||||||
|
If you're logged in, this setting is sticky, and all menus will respect your
|
||||||
|
preference.
|
||||||
|
|
||||||
|
|
||||||
|
Editing Menus
|
||||||
|
=============
|
||||||
|
|
||||||
|
You can only edit an object's menu if you can edit the object. For example, you
|
||||||
|
must have permission to edit a project in order to reconfigure the menu for the
|
||||||
|
project.
|
||||||
|
|
||||||
|
To edit a menu, click {nav icon="pencil", name="Edit Menu"}. This brings you to
|
||||||
|
the menu configuration interface which allows you to add and remove items,
|
||||||
|
reorder the menu, edit existing items, and choose a default item.
|
||||||
|
|
||||||
|
Menus are comprised of a list of items. Some of the items are builtin
|
||||||
|
(for example, projects have builtin "Profile", "Workboard" and "Members"
|
||||||
|
items). You can also add custom items. Builtin and custom items mostly
|
||||||
|
behave in similar ways, but there are a few exceptions (for example, you can
|
||||||
|
not completely delete builtin items).
|
||||||
|
|
||||||
|
|
||||||
|
Adding Items
|
||||||
|
============
|
||||||
|
|
||||||
|
To add new items to a menu, use {nav icon="cog", name="Configure Menu"} and
|
||||||
|
choose a type of item to add. See below for more details on available items.
|
||||||
|
|
||||||
|
You can also find a link to this documentation in the same menu, if you want
|
||||||
|
to reference it later.
|
||||||
|
|
||||||
|
|
||||||
|
Reordering Items
|
||||||
|
================
|
||||||
|
|
||||||
|
To reorder items, drag and drop them to the desired position. Your changes
|
||||||
|
will be reflected in the item ordering in the menu.
|
||||||
|
|
||||||
|
|
||||||
|
Setting a Default
|
||||||
|
=================
|
||||||
|
|
||||||
|
The default item controls what content is shown when a user browses to the
|
||||||
|
object's main page. For example, the default item for a project controls where
|
||||||
|
the user ends up when they click a link to the project from another
|
||||||
|
application.
|
||||||
|
|
||||||
|
To choose a default item, click {nav icon="thumb-tack", name="Make Default"}.
|
||||||
|
Not all kinds of items can be set as the default item. For example, you can not
|
||||||
|
set a separator line as a default because the item can't be selected and has no
|
||||||
|
content.
|
||||||
|
|
||||||
|
If no default is explicitly selected, or a default is deleted or disabled, the
|
||||||
|
first item which is eligible to be a default is used as the default item.
|
||||||
|
|
||||||
|
|
||||||
|
Removing Items
|
||||||
|
==============
|
||||||
|
|
||||||
|
To remove items, click the {nav icon="times", name="Delete"} action.
|
||||||
|
|
||||||
|
Builtin items can not be deleted and have a
|
||||||
|
{nav icon="times", name="Disable"} action instead, which will hide them but
|
||||||
|
not delete them. You an re-enable a disabled item with the
|
||||||
|
{nav icon="plus', name="Enable"} action.
|
||||||
|
|
||||||
|
Removing or hiding an item does not disable the underlying functionality.
|
||||||
|
For example, if you hide the "Members" item for a project, that just removes
|
||||||
|
it from the menu. The project still has members, and users can still navigate
|
||||||
|
to the members page by following a link to it from elsewhere in the application
|
||||||
|
or entering the URI manually.
|
||||||
|
|
||||||
|
|
||||||
|
Editing Items
|
||||||
|
=============
|
||||||
|
|
||||||
|
To edit an item, click the name of the item. This will show you available
|
||||||
|
configuration for the item and allow you to edit it.
|
||||||
|
|
||||||
|
Which properties are editable depends on what sort of item you are editing.
|
||||||
|
Most items can be renamed, and some items have more settings available. For
|
||||||
|
example, when editing a link, you can choose the link target and select an
|
||||||
|
icon for the item.
|
||||||
|
|
||||||
|
A few items have no configuration. For example, visual separator lines are
|
||||||
|
purely cosmetic and have no available settings.
|
||||||
|
|
||||||
|
|
||||||
|
Available Items
|
||||||
|
===============
|
||||||
|
|
||||||
|
When you add items, you can choose between different types of items to add.
|
||||||
|
Which item types are available depends on what sort of object you are editing
|
||||||
|
the menu for, but most objects support these items:
|
||||||
|
|
||||||
|
- {icon link} **Link**: Allows you to create an item which links to
|
||||||
|
somewhere else in Phabricator, or to an external site.
|
||||||
|
- {icon minus} **Divider**: Adds a visual separator to the menu. This is
|
||||||
|
purely cosmetic.
|
||||||
|
- {icon coffee} **Motivator**: Motivate your employees with inspirational
|
||||||
|
quotes. A new quote every day!
|
||||||
|
|
||||||
|
To learn more about how an item works, try adding it. You can always delete
|
||||||
|
it later if it doesn't do what you wanted.
|
||||||
|
|
||||||
|
|
||||||
|
Writing New Item Types
|
||||||
|
======================
|
||||||
|
|
||||||
|
IMPORTANT: This feature is not stable, and the API is subject to change.
|
||||||
|
|
||||||
|
To add new types of items, subclass @{class:PhabricatorProfilePanel}.
|
|
@ -51,3 +51,45 @@ complicated by members and watchers.
|
||||||
|
|
||||||
If you'd like to receive edit notifications for a project, you can write a
|
If you'd like to receive edit notifications for a project, you can write a
|
||||||
Herald rule to keep you in the loop.
|
Herald rule to keep you in the loop.
|
||||||
|
|
||||||
|
|
||||||
|
Customizing Menus
|
||||||
|
=================
|
||||||
|
|
||||||
|
Projects support profile menus, which are customizable. For full details on
|
||||||
|
managing and customizing profile menus, see @{article:Profile Menu User Guide}.
|
||||||
|
|
||||||
|
Here are some examples of common ways to customize project profile menus that
|
||||||
|
may be useful:
|
||||||
|
|
||||||
|
**Link to Tasks or Repositories**: You can add a menu item for "Open Tasks" or
|
||||||
|
"Active Repositories" for a project by running the search in the appropriate
|
||||||
|
application, then adding a link to the search results to the menu.
|
||||||
|
|
||||||
|
This can let you quickly jump from a project screen to related tasks,
|
||||||
|
revisions, repositories, or other objects.
|
||||||
|
|
||||||
|
For more details on how to use search and manage queries, see
|
||||||
|
@{article:Search User Guide}.
|
||||||
|
|
||||||
|
**New Task Button**: To let users easily make a new task that is tagged with
|
||||||
|
the current project, add a link to the "New Task" form with the project
|
||||||
|
prefilled, or to a custom form with appropriate defaults.
|
||||||
|
|
||||||
|
For information on customizing and prefilling forms, see
|
||||||
|
@{article:User Guide: Customizing Forms}.
|
||||||
|
|
||||||
|
**Link to Wiki Pages**: You can add links to relevant wiki pages or other
|
||||||
|
documentation to the menu to make it easy to find and access. You could also
|
||||||
|
link to a Conpherence if you have a chatroom for a project.
|
||||||
|
|
||||||
|
**Link to External Resources**: You can link to external resources outside
|
||||||
|
of Phabricator if you have other pages which are relevant to a project.
|
||||||
|
|
||||||
|
**Set Workboard as Default**: For projects that are mostly used to organize
|
||||||
|
tasks, change the default item to the workboard instead of the profile to get
|
||||||
|
to the workboard view more easily.
|
||||||
|
|
||||||
|
**Hide Unused Items**: If you have a project which you don't expect to have
|
||||||
|
members or won't have a workboard, you can hide these items to streamline the
|
||||||
|
menu.
|
||||||
|
|
Loading…
Reference in a new issue