39
|
1 <?cs include "header.cs"?>
|
|
2 <?cs include "macros.cs"?>
|
|
3
|
|
4 <div id="ctxtnav" class="nav">
|
|
5 <ul>
|
|
6 <li class="first"><a href="<?cs var:browser.restr_changeset_href ?>">
|
|
7 Last Change</a></li>
|
|
8 <li class="last"><a href="<?cs var:browser.log_href ?>">
|
|
9 Revision Log</a></li>
|
|
10 </ul>
|
|
11 </div>
|
|
12
|
|
13
|
|
14 <div id="searchable">
|
|
15 <div id="content" class="browser">
|
|
16 <h1><?cs call:browser_path_links(browser.path, browser) ?></h1>
|
|
17
|
|
18 <div id="jumprev">
|
|
19 <form action="" method="get">
|
|
20 <div>
|
|
21 <label for="rev">View revision:</label>
|
|
22 <input type="text" id="rev" name="rev" value="<?cs
|
|
23 var:browser.revision ?>" size="4" />
|
|
24 </div>
|
|
25 </form>
|
|
26 </div>
|
|
27
|
|
28 <?cs def:sortable_th(order, desc, class, title, href) ?>
|
|
29 <th class="<?cs var:class ?><?cs if:order == class ?> <?cs
|
|
30 if:desc ?>desc<?cs else ?>asc<?cs /if ?><?cs /if ?>">
|
|
31 <a title="Sort by <?cs var:class ?><?cs
|
|
32 if:order == class && !desc ?> (descending)<?cs /if ?>"
|
|
33 href="<?cs var:href[class] ?>"><?cs var:title ?></a>
|
|
34 </th>
|
|
35 <?cs /def ?>
|
|
36
|
|
37 <?cs if:browser.is_dir ?>
|
|
38 <table class="listing" id="dirlist">
|
|
39 <thead>
|
|
40 <tr><?cs
|
|
41 call:sortable_th(browser.order, browser.desc, 'name', 'Name', browser.order_href) ?><?cs
|
|
42 call:sortable_th(browser.order, browser.desc, 'size', 'Size', browser.order_href) ?>
|
|
43 <th class="rev">Rev</th><?cs
|
|
44 call:sortable_th(browser.order, browser.desc, 'date', 'Age', browser.order_href) ?>
|
|
45 <th class="change">Last Change</th>
|
|
46 </tr>
|
|
47 </thead>
|
|
48 <tbody>
|
|
49 <?cs if:len(chrome.links.up) ?>
|
|
50 <tr class="even">
|
|
51 <td class="name" colspan="5">
|
|
52 <a class="parent" title="Parent Directory" href="<?cs
|
|
53 var:chrome.links.up.0.href ?>">../</a>
|
|
54 </td>
|
|
55 </tr>
|
|
56 <?cs /if ?>
|
|
57 <?cs each:item = browser.items ?>
|
|
58 <?cs set:change = browser.changes[item.rev] ?>
|
|
59 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>">
|
|
60 <td class="name"><?cs
|
|
61 if:item.is_dir ?><?cs
|
|
62 if:item.permission ?>
|
|
63 <a class="dir" title="Browse Directory" href="<?cs
|
|
64 var:item.browser_href ?>"><?cs var:item.name ?></a><?cs
|
|
65 else ?>
|
|
66 <span class="dir" title="Access Denied" href=""><?cs
|
|
67 var:item.name ?></span><?cs
|
|
68 /if ?><?cs
|
|
69 else ?><?cs
|
|
70 if:item.permission != '' ?>
|
|
71 <a class="file" title="View File" href="<?cs
|
|
72 var:item.browser_href ?>"><?cs var:item.name ?></a><?cs
|
|
73 else ?>
|
|
74 <span class="file" title="Access Denied" href=""><?cs
|
|
75 var:item.name ?></span><?cs
|
|
76 /if ?><?cs
|
|
77 /if ?>
|
|
78 </td>
|
|
79 <td class="size"><?cs var:item.size ?></td>
|
|
80 <td class="rev"><?cs if:item.permission != '' ?><a title="View Revision Log" href="<?cs
|
|
81 var:item.log_href ?>"><?cs var:item.rev ?></a><?cs else ?><?cs var:item.rev ?><?cs /if ?></td>
|
|
82 <td class="age"><span title="<?cs var:browser.changes[item.rev].date ?>"><?cs
|
|
83 var:browser.changes[item.rev].age ?></span></td>
|
|
84 <td class="change">
|
|
85 <span class="author"><?cs var:browser.changes[item.rev].author ?>:</span>
|
|
86 <span class="change"><?cs var:browser.changes[item.rev].message ?></span>
|
|
87 </td>
|
|
88 </tr>
|
|
89 <?cs /each ?>
|
|
90 </tbody>
|
|
91 </table><?cs
|
|
92 /if ?><?cs
|
|
93
|
|
94 if:len(browser.props) || !browser.is_dir ?>
|
|
95 <table id="info" summary="Revision info"><?cs
|
|
96 if:!browser.is_dir ?><tr>
|
|
97 <th scope="col">
|
|
98 Revision <a href="<?cs var:file.changeset_href ?>"><?cs var:file.rev ?></a>, <?cs var:file.size ?>
|
|
99 (checked in by <?cs var:file.author ?>, <?cs var:file.age ?> ago)
|
|
100 </th></tr><tr>
|
|
101 <td class="message"><?cs var:file.message ?></td>
|
|
102 </tr><?cs /if ?><?cs
|
|
103 if:len(browser.props) ?><tr>
|
|
104 <td colspan="2"><ul class="props"><?cs
|
|
105 each:prop = browser.props ?>
|
|
106 <li>Property <strong><?cs var:prop.name ?></strong> set to <em><code><?cs
|
|
107 var:prop.value ?></code></em></li><?cs
|
|
108 /each ?>
|
|
109 </ul></td></tr><?cs
|
|
110 /if ?>
|
|
111 </table><?cs
|
|
112 /if ?><?cs
|
|
113
|
|
114 if:!browser.is_dir ?>
|
|
115 <div id="preview"><?cs
|
|
116 if:file.preview ?><?cs
|
|
117 var:file.preview ?><?cs
|
|
118 elif:file.max_file_size_reached ?>
|
|
119 <strong>HTML preview not available</strong>, since the file size exceeds
|
|
120 <?cs var:file.max_file_size ?> bytes. Try <a href="<?cs
|
|
121 var:file.raw_href ?>">downloading</a> the file instead.<?cs
|
|
122 else ?><strong>HTML preview not available</strong>. To view, <a href="<?cs
|
|
123 var:file.raw_href ?>">download</a> the file.<?cs
|
|
124 /if ?>
|
|
125 </div><?cs
|
|
126 /if ?>
|
|
127
|
|
128 <div id="help">
|
|
129 <strong>Note:</strong> See <a href="<?cs var:trac.href.wiki
|
|
130 ?>/TracBrowser">TracBrowser</a> for help on using the browser.
|
|
131 </div>
|
|
132
|
|
133 <div id="anydiff">
|
|
134 <form action="<?cs var:browser.anydiff_href ?>" method="get">
|
|
135 <div class="buttons">
|
|
136 <input type="hidden" name="new_path" value="<?cs var:browser.path ?>" />
|
|
137 <input type="hidden" name="old_path" value="<?cs var:browser.path ?>" />
|
|
138 <input type="hidden" name="new_rev" value="<?cs var:browser.revision ?>" />
|
|
139 <input type="hidden" name="old_rev" value="<?cs var:browser.revision ?>" />
|
|
140 <input type="submit" value="View changes..." title="Prepare an Arbitrary Diff" />
|
|
141 </div>
|
|
142 </form>
|
|
143 </div>
|
|
144
|
|
145 </div>
|
|
146 </div>
|
|
147 <?cs include:"footer.cs"?>
|