root/infra/TracX/tracx/templates/layout.html @ 94

Revision 94, 3.6 KB (checked in by lazaridis_com, 4 years ago)

re #53, using tracx/templates/global_header.html

Line 
1<!DOCTYPE html
2    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml"
5      xmlns:py="http://genshi.edgewall.org/"
6      xmlns:xi="http://www.w3.org/2001/XInclude"
7      py:strip="">
8
9  <!-- custom template -->
10
11  <head py:match="head">
12    <title py:with="title = unicode(select('title/text()'))">
13      ${' - '.join(filter(None, [title, project.name]))}
14    </title>
15    <py:if test="chrome.links">
16      <py:for each="rel, links in chrome.links.items()">
17        <link rel="${rel}" py:for="link in links" py:attrs="link" />
18      </py:for>
19    </py:if>
20    <script py:for="script in chrome.scripts"
21            type="${script.type}" src="${script.href}"></script>
22    ${select('*[not(title)]')}
23  </head>
24 
25  <xi:include href="global_header.html"><xi:fallback /></xi:include>
26
27  <div py:def="navigation(category)" id="${category}" class="nav">
28    <ul py:if="chrome.nav[category]">
29      <li py:for="idx, item in  enumerate(chrome.nav[category])"
30          class="${item.active and 'active ' or ''}${first_last(idx, chrome.nav[category])}">${item.label}</li>
31    </ul>
32  </div>
33
34  <div py:def="navigationl(category)" id="${category}" class="nav left">
35    <ul py:if="chrome.nav[category]">
36      <li py:for="idx, item in  enumerate(chrome.nav[category])"
37          class="${item.active and 'active ' or ''}${first_last(idx, chrome.nav[category])}">${item.label}</li>
38    </ul>
39  </div>
40
41  <body py:match="body">
42    <div id="banner">
43      <div id="header">
44        <a py:if="chrome.logo.src" id="logo" href="${chrome.logo.link}"><img
45          src="${chrome.logo.src}" alt="${chrome.logo.alt}" /></a>
46      </div>
47      <form py:if="'SEARCH_VIEW' in perm" id="search"
48            action="${href.search()}" method="get"><div>
49        <label for="proj-search">Search:</label>
50        <input type="text" id="proj-search" name="q" size="10" accesskey="f" value="" />
51        <input type="submit" value="Search" />
52        <input type="hidden" name="wiki" value="on" />
53        <input type="hidden" name="changeset" value="on" />
54        <input type="hidden" name="ticket" value="on" />
55      </div></form>
56          ${navigationl('projnav')}
57          ${navigation('metanav')}
58
59    </div>
60    ${navigation('mainnav')}
61
62    <div id="main">
63      ${select('*|text()')}
64
65      <script type="text/javascript" py:if="chrome.late_links">
66        <py:for each="link in chrome.late_links.get('stylesheet')">
67          $.loadStyleSheet("${link.href}", "${link.title}");
68        </py:for>
69      </script>
70      <script py:for="script in chrome.late_scripts"
71              type="${script.type}" src="${script.href}"></script>
72
73      <div id="altlinks" py:if="chrome.links.alternate">
74        <h3>Download in other formats:</h3>
75        <ul>
76          <li py:for="idx, link in enumerate(chrome.links.alternate)"
77            class="${first_last(idx, chrome.links.alternate)}">
78            <a href="${link.href}" class="${link['class']}" py:content="link.title" />
79          </li>
80        </ul>
81      </div>
82    </div>
83
84    <div id="footer"><hr/>
85      <!--a id="tracpowered" href="http://trac.edgewall.org/"><img
86        src="${href.chrome('common/trac_logo_mini.png')}" height="30"
87        width="107" alt="Trac Powered"/></a-->
88      <p class="left">
89        Powered by <a href="${href.about()}"><strong>Trac ${trac.version}</strong></a><!--br />
90                By <a href="http://www.edgewall.org/">Edgewall Software</a-->.
91      </p>
92      <p class="right">${chrome.footer}</p>
93    </div>
94  </body>
95
96  <xi:include href="site.html"><xi:fallback /></xi:include>
97
98</html>
Note: See TracBrowser for help on using the browser.