Version 6 (modified by 14 years ago) ( diff ) | ,
---|
Interface Customization using site.html
This page intends to collect useful snippets for inclusing in a project site.html
file. Any snippet below is intended to be included inside the standard root element of the file:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/" xmlns:xi="http://www.w3.org/2001/XInclude" py:strip=""> <!--! Add snippets here... --> </html>
Remember, snippets are more useful if accompanied by a short description…
Quicksearch for tickets only
When no search filters are provided, Trac searches using all filters. This snippets adds a filter to the quicksearch that restricts searches to tickets only by default - more can of course be added by user after initial search:
<div py:match="body/div[@id='banner']/form[@id='search']/div" py:attrs="select('@*')" once="true"> ${select('*|text()|comment()')} <input type="hidden" name="ticket" value="on"/> </div>
Explanation: It grabs the <div/>
inside the quicksearch form into a new div, adding any attributes of the old (though no attributes by default) and then inserts any content (elements, text and comments) that the old element had with the ${select()}
call. To this new (identical) div, a new <input/>
element is added that provides a filter for ticket-only search.
Add licensing information when adding attachments
If adding attachments to your Trac site requires people to agree to some licensing, you can add the terms of the license on the "Add attachments" page as follows:
<py:match path="form[@id='attachment']/div[@class='buttons']" once="true"> <p>By submitting a file here, you accept that we can do whatever we want with it, blah blah...</p> <div py:attrs="select('@*')"> ${select('*|comment()|text()')} </div> </py:match>
Explanation: This matches the <div>
containing the submit buttons, adds a paragraph with the text at that location, then reconstructs the matched <div>
with its initial content and attributes.
See also: TracInterfaceCustomization, SiteStyleCss