close
Warning:
Can't synchronize with repository "(default)" (The repository directory has changed, you should resynchronize the repository with: trac-admin $ENV repository resync '(default)'). Look in the Trac log for more information.
- Timestamp:
-
2020-07-23T14:06:24-07:00 (4 years ago)
- Author:
-
trac
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v3
|
v4
|
|
1 | 1 | = Trac Navigation |
2 | 2 | |
3 | | The main and meta navigation entries can be customized in some basic ways. The `[mainnav]` and `[metanav]` configuration sections can be used to customize the navigation item text and link, change the ordering of the navigation items, or even disable them. |
| 3 | The main and meta navigation entries can be customized in several ways. The `[mainnav]` and `[metanav]` configuration sections can be used to customize the navigation item text and link, change the ordering of the navigation items, disable them and add new ones. |
| 4 | |
| 5 | The primary attributes that can be customized are `href`, `label`, `order` and `permission`. |
4 | 6 | |
5 | 7 | === `[mainnav]` #mainnav-bar |
… |
… |
|
15 | 17 | tickets.href = /report/24 |
16 | 18 | }}} |
| 19 | |
| 20 | Note the entries on the main navigation are displayed in uppercase regardless of the casing of the `label`, unless this aspect of the styling is overridden through [TracInterfaceCustomization#SiteAppearance interface customization]. |
17 | 21 | |
18 | 22 | === `[metanav]` #metanav-bar |
… |
… |
|
30 | 34 | }}} |
31 | 35 | |
| 36 | === Extra Navigation Entries #nav-extra-entries |
| 37 | |
| 38 | New navigation entries can be arbitrarily defined and added |
| 39 | to the navigation. A new entry can be defined by providing a name with value `enabled`. At a minimum, the `href` attribute should be specified to define a useful navigation entry. If the `label` attribute is not defined the entry's name will be used for the label. |
| 40 | |
| 41 | The following example creates two new navigation items, one named //My Reports// and the other named //builds//. //My Reports// is only visible to users with `REPORT_VIEW` permission. |
| 42 | {{{#!ini |
| 43 | [mainnav] |
| 44 | myreports = enabled |
| 45 | myreports.href = /report/9 |
| 46 | myreports.label = My Reports |
| 47 | myreports.permission = REPORT_VIEW |
| 48 | |
| 49 | [metanav] |
| 50 | builds = enabled |
| 51 | builds.href = https://travis-ci.org/edgewall/trac |
| 52 | }}} |
| 53 | |
| 54 | The entry names are always read as lowercase, as is the case for all keys in the trac.ini file due to the way the configuration parser is configured. If the example above used `BUILDS` rather than `builds` for the name, the entry would still be displayed as `builds`. Use the `label` attribute for case-sensitive customization of the navigation entry text. |
| 55 | |
| 56 | === Relocating Entries #nav-relocating-entries |
| 57 | |
| 58 | Navigation entries provided by Trac and plugins can be moved from the meta navigation bar to the main navigation bar, and vise-versa. The entry should be defined in the desired category as if it was a new entry. For example, to move the //Admin// entry to the metanav and rename it to //Administration//: |
| 59 | {{{#!ini |
| 60 | [metanav] |
| 61 | admin = enabled |
| 62 | admin.label = Administration |
| 63 | }}} |
| 64 | |
| 65 | Attributes of the navigation item that are not overridden by the configuration will be preserved. |
32 | 66 | |
33 | 67 | === URL Formats |
… |
… |
|
63 | 97 | }}} |
64 | 98 | |
| 99 | === Permissions #nav-permissions |
| 100 | The `permission` attribute controls the visibility of the navigation item on the navigation bar. This is mainly useful for new entries in the navigation bar. Note that it does not provide access control to the URL that the navigation item directs to, and cannot override permission checks done by Trac and plugins. |
| 101 | |
| 102 | For example, the //Roadmap// navigation item will only display for users with `ROADMAP_VIEW`. Adding the attribute `roadmap.permission = MILESTONE_VIEW` will require both `ROADMAP_VIEW` and `MILESTONE_VIEW` for the entry to be visible, but as noted will not provide access control for the `/roadmap` path. TracFineGrainedPermissions should be used for access control to modules provided by Trac and plugins. |
| 103 | |
65 | 104 | === Context Navigation #ctxtnav-bar |
66 | 105 | |
67 | | Note that it is still not possible to customize the '''contextual navigation bar''', ie the one usually placed below the main navigation bar. |
| 106 | Note that it is still not possible to customize the '''contextual navigation bar''', i.e. the one usually placed below the main navigation bar. |
68 | 107 | |
69 | 108 | ---- |
70 | | See also: TracInterfaceCustomization, and the [http://trac-hacks.org/wiki/NavAddPlugin TracHacks:NavAddPlugin] or [http://trac-hacks.org/wiki/MenusPlugin TracHacks:MenusPlugin] (still needed for adding entries) |
| 109 | See also: TracInterfaceCustomization |