Edgewall Software

Changes between Version 12 and Version 13 of TracProject/UiGuidelines


Ignore:
Timestamp:
Oct 24, 2006, 11:03:29 AM (18 years ago)
Author:
Christian Boos
Comment:

Updated the page to reflect issues still present in 0.10 (in particular, I think there's no more any alternate format links and actions links left in the context navigation).

Legend:

Unmodified
Added
Removed
Modified
  • TracProject/UiGuidelines

    v12 v13  
    1111=== Current Situation ===
    1212
    13 While the navigation interface provided by Trac 0.7 is in general clean and minimalistic, some problems of redundancy and inconsistency are starting to surface. The goal of this proposal is to clean-up and unify the navigation interface, and ultimately to establish guidelines for how Trac modules should hook into the navigation, so that they integrate nicely with the rest of the system.
     13''Updated to 0.10 by cboos''
     14
     15While the navigation interface provided by Trac 0.10 is in general clean and minimalistic, some problems of redundancy and inconsistency can be identified. The goal of this proposal is to clean-up and unify the navigation interface, and ultimately to establish guidelines for how Trac modules should hook into the navigation, so that they integrate nicely with the rest of the system.
    1416
    1517Trac currently provides the following navigational elements:
     
    1921 4. '''Main navigation''': Primary means for switching between modules (Wiki, Timeline, Browser, etc)
    2022 5. '''Module navigation''': Often rendered as horizontal list of links directly beneath the main navigation bar.
    21  6. '''Local navigation''': Navigational elements specific to the page currently being viewed. One example is the "toolbar" in the browser modules, another example are the "This report" links in the report module.
     23 6. '''Local navigation''': Navigational elements specific to the page currently being viewed. One example is the "Last change" in the Wiki module, another example are the "Previous/Next" links in the changeset module or ticket module.
    2224 7. '''Help links''': Links to help documents (Wiki pages, actually) relevant to the page currently being viewed
    2325 8. '''Alternate formats''': Links to alternate formats of the current page, such as the RSS feed for the timeline, or the comma-delimited text option for a report
    2426 9. '''Footer links''': Links to Edgewall and Trac
    2527
    26 Of this list, items 1, 2, 3, 4 and 9 can together be referred to as the ''Global Navigation''. The global navigation obviously should never change between different modules. Technically, it is generated by the templates [source:trunk/templates/header.cs#latest header.cs] and [source:trunk/templates/footer.cs#latest footer.cs], which are included at the top and bottom of every module template, respectively.
     28Of this list, items 1, 2, 3, 4 and 9 can together be referred to as the ''Global Navigation''. The global navigation obviously should never change between different modules. Technically, it is generated by the templates [source:tags/trac-0.10/templates/header.cs header.cs] and [source:tags/trac-0.10/templates/footer.cs footer.cs], which are included at the top and bottom of every module template, respectively.
    2729
    28 The module- and/or page-specific navigation elements can together be referred to as "Context Navigation". However, they are currently not clearly defined, however, and their use is not consistent throughout the different modules. Let's look at a couple of examples:
     30The module- and/or page-specific navigation elements (5. and 6.) can together be referred to as "Context Navigation". However, they are currently not clearly defined and their use is not consistent throughout the different modules. Let's look at a couple of examples:
    2931
    3032  '''Wiki''':
    3133
    32   In the Wiki, the module navigation (item 5 in the list above) contains the links "Start Page", "Title Index", "Recent Changes" and "!Show/Hide History". These links are available independently of whether a page is being viewed or edited. While the first three of these links are "real" module navigation links (the result of activating one of those links is ''independent of which page of the module is currently being viewed''), the fourth is actually page-specific, and is thus a local navigation link.
     34  In the Wiki, the module navigation (item 5 in the list above) contains the links "Start Page", "Index by Title", "Index by Date" and "Last Change". These links are available independently of whether a page is being viewed or edited. While the first three of these links are "real" module navigation links (the result of activating one of those links is ''independent of which page of the module is currently being viewed''), the fourth is actually page-specific, and is thus a local navigation link.
    3335
    34   Also, when adding an attachment to a wiki page, the module navigation goes away. When viewing an attachment, the module navigation is even replaced with what semantically is really a "local" (per-page) navigation, showing the links "View as Text" and "Download File". The first is really an ''alternate format'' and should be moved there (item 8 in the list above) for consistency.
     36  Also, when adding an attachment to a wiki page, the module navigation goes away.
    3537
    3638  '''Browser''':
    3739
    38   While browsing a directory, the module navigation is empty. The local navigation contains a form that allows switching to a different revision by entering the revision number.
     40  While browsing a directory or a file, the module navigation is empty. The local navigation contains a link to the ''Revision Log'' and to the ''Last Change'' for the path being browsed. There's also a form that allows switching to a different revision by entering the revision number.
    3941
    40   When a file is being viewed, the links "Revision Log", "View as Text" and "Download File" are added to the local navigation. In addition, however, those same links also get added to the module navigation (see #431). The same problem exists in the revision log of a file, where the "View Latest Revision" is added both to the local navigation and to the module navigation.
     42  '''View Tickets''':
    4143
    42   '''Reports''':
     44  When viewing the list of available reports, two module navigation links are available: ''Available Reports'' and ''Custom Query''. Both remain available when opening a specific report. However, when viewing the report list or the custom query, only the ''alternative'' view remains selectable.
    4345
    44   When viewing the list of available reports, two module navigation links are available: "New Report" and "Report Index". Both remain available when opening a specific report, but three local navigation links are added "Edit", "Copy" and "Delete". These local navigation links are rendered differently to the local toolbar in the browser module, namely as a boxed horizontal list in front of the module navigation, prefixed by "This report" (see also #391). When creating or editing a report, only "Report Index" remains available.
    45 
    46 There is an additional aspect that has not been considered yet: ''action-type links''. For example, any Wiki page offers two form buttons beneath the content for adding attachments and editing the page. These are only forms so that they are rendered as buttons, and technical could just as easily be plain links (AFAICT). But what makes the editing of a Wiki page any different from the editing of a report, what makes adding an attachment to a Wiki page or ticket any different from adding a new report? Nothing, I believe. At least nothing that should be a concern to the user.
     46  There used to be ''action-type links'' in the report module. AFAICT, there's no such links anymore, everything that triggers an ''action'' in Trac is presented as a button in the interface.
    4747
    4848==== Conclusion ====
    4949
    50 As noted in the introduction, the navigation story in Trac is inconsistent especially when it comes to differentiating between module navigation and local navigation (and in some cases, both of these are also mixed up with the alternate formats navigation). In addition, there is the problem of differentiating between purely navigational links, and action triggers.
     50As noted in the introduction, the navigation story in Trac is inconsistent especially when it comes to differentiating between module navigation and local navigation.
    5151
    5252=== Possible Solutions ===
     
    8686
    8787In addition to your nice and clear analysis of the trac navigation system, I'd like to raise an issue that I do not think you address, concerning what you call "Module" and "Local" navigation. When using trac, I feel there is a lot of inconsistency here and lots of room for improvement. It seems to me that these links/actions should be further broken down into 3 categories as opposed to the 2 that you propose:
    88  * '''Module Navigation Links''', for links that are useful and makes sense irrespective of whichever page we are in the module, i.e. these links do not change between module pages... for example, currently below "View Tickets" we sometimes get a "Custom Query" link, e.g. when showing a report, but not always, e.g. when displaying a ticket. But, to me it seems interesting to have the Custom Query link on every page below "View Tickets"... Furthermore, on the  "Custom Query"  itself, the link should not disappear, and thus be consistent with higher level navigation practices.
     88 * '''Module Navigation Links''', for links that are useful and makes sense irrespective of whichever page we are in the module, i.e. these links do not change between module pages... for example, currently below "View Tickets" we sometimes get a "Custom Query" link, e.g. when showing a report, but not always, e.g. when displaying a ticket. But, to me it seems interesting to have the Custom Query link on every page below "View Tickets"... Furthermore, on the  "Custom Query"  itself, the link should not disappear, and thus be consistent with higher level navigation practices (''that latter point is "fixed" now'' -- cboos)
    8989 * '''Page Links''',  for links that make sense exclusively for this one module page, irrespective of the current '''mode''' of the page. E.g. different views of the same page.
    90  * '''Page Mode Options''', for actions that depend on the current page '''mode''', such as ''View'', ''Modify'', ... these actions are acting on this same page, and therefore should appear as appropriate. All actions should also be rendered as buttons (as active or disabled), as this implies more clearly their nature. Also, you may want in some cases to be able to display these multiple times on the same page, for convenience... such as the "Save Changes", "Cancel" options when editing a wiki page could be in 2 places, below the main textarea as well as below the previewed content.  --mario
     90 * '''Page Mode Options''', for actions that depend on the current page '''mode''', such as ''View'', ''Modify'', ... these actions are acting on this same page, and therefore should appear as appropriate. All actions should also be rendered as buttons (as active or disabled), as this implies more clearly their nature (''that latter point is "fixed" now'' -- cboos). Also, you may want in some cases to be able to display these multiple times on the same page, for convenience... such as the "Save Changes", "Cancel" options when editing a wiki page could be in 2 places, below the main textarea as well as below the previewed content (''this is the case for e.g. ''View Differences...'' buttons'' -- cboos).  --mario
    9191
    9292----
     
    9999
    100100
     101