3
3
<html xmlns="http://www.w3.org/1999/xhtml" metal:use-macro="macros/main">
5
5
<title metal:fill-slot="title"
6
tal:content="string:${branch/friendly_name} : contents of ${path}
6
tal:content="string:${branch/friendly_name} : contents of ${file_path}
7
7
at revision ${change/revno}">
9
<metal:block fill-slot="header_extras">
10
<link rel="stylesheet" type="text/css" media="all"
11
tal:attributes="href python:branch.static_url('/static/css/view.css')"/>
12
<link rel="stylesheet" type="text/css" media="all"
13
tal:attributes="href python:branch.static_url('/static/css/highlight.css')"/>
13
<h1 metal:fill-slot="heading">
14
<span class="branch-name" tal:content="branch/friendly_name"></span>
16
<span class="annotate-path" tal:content="path"></span>
17
(revision <tal:revno content="change/revno"></tal:revno>)
18
<tal:block metal:fill-slot="backlink">
19
<tal:has-link condition="branch/branch_link">
20
<div class="black-link">
21
<a tal:attributes="href branch/branch_link">
22
← Back to branch summary
27
<tal:block metal:fill-slot="branchname" tal:content="string:${branch/friendly_name}" />
28
<tal:block metal:fill-slot="heading">
29
<div id="breadcrumbs">
30
<tal:has-link condition="branch/branch_link">
31
<a tal:attributes="href branch/branch_link"
32
tal:content="branch/friendly_name">
36
<tal:no-link condition="not: branch/branch_link">
37
<span metal:use-macro="breadcrumbs/directory"></span>
39
<span>: <span metal:use-macro="breadcrumbs/branch" /> (revision <tal:revno content="change/revno"></tal:revno>)</span>
20
43
<div metal:fill-slot="content">
24
<a tal:attributes="href python:url(['/files', change.revno], clear=1)">browse files</a>
28
<a tal:attributes="href python:url(['/revision'], clear=1, start_revid=change.revno)">view revision</a>
32
<a tal:attributes="href python:url(['/changes'], clear=1, start_revid=change.revno, filter_file_id=file_id)">view changes to this file</a>
36
<a tal:attributes="href python:url(['/download', change.revno, file_id, filename])">download file</a>
40
<div class="annotate">
43
<th class="lineno"> Line# </th>
44
<th class="revision"> Revision </th>
45
<th class="text"> Contents </th>
48
<tr tal:repeat="line contents"
49
tal:attributes="class string:parity${line/parity}">
50
<td tal:attributes="class string:lineno ${line/status}">
51
<a tal:attributes="name string:L${line/lineno}"
52
tal:content="line/lineno"></a>
54
<td tal:attributes="class string:revno ${line/status}">
55
<a tal:condition="python:line.status=='changed'"
56
tal:content="python:util.trunc(line.change.revno)"
57
tal:attributes="href python:url(['/revision'], clear=1, start_revid=line.change.revno, filter_file_id=file_id);
58
title python:'%s by %s, on %s (%s)'%(line.change.revno, util.hide_email(line.change.author), line.change.date.strftime('%d %b %Y %H:%M'), util.date_time(line.change.date))"></a>
60
<td tal:attributes="class string:text ${line/status}"
61
tal:content="line/text">
44
<tal:branch-info replace="structure python:branchinfo(branch)" />
48
<a tal:attributes="href python:url(['/files', change.revno], clear=1)">browse files</a>
50
<li tal:condition="not:annotated">
51
<a tal:attributes="href python:url(['/annotate', revno_url, file_path], clear=1)"
52
>view with revision information</a>
54
<li tal:condition="annotated">
55
<a tal:attributes="href python:url(['/view', revno_url, file_path], clear=1)"
56
>view without revision information</a>
59
<a tal:attributes="href python:url(['/revision', change.revno], clear=1)">view revision</a>
62
<a tal:attributes="href python:url(['/changes'], clear=1, filter_file_id=file_id)"
63
>view changes to this file</a>
66
<a tal:attributes="href python:url(['/download',
67
revno_url, file_id, filename])"
73
<table id="logentries">
74
<tal:rep tal:repeat="line contents">
76
<td tal:condition="python:path('repeat/line/number') in annotated"
77
tal:define="anno python:annotated.get(path('repeat/line/number'), None)"
78
tal:attributes="rowspan python:anno.revspan"
80
<a tal:content="python:'%s' % (anno.change.revno,)"
81
tal:attributes="href python:url(['/revision', anno.change.revno], clear=1);
82
title python:'%s by %s, on %s (%s)' % (anno.change.revno, ', '.join(util.hide_emails(anno.change.authors)), anno.change.date.strftime('%d %b %Y %H:%M'), util.date_time(anno.change.date))"></a>
83
<span class="viewAuthors" tal:content="python:'by ' + ', '.join(util.hide_emails(anno.change.authors))" />
86
<span tal:content="python:anno.message"></span>
88
<td tal:attributes="class python:path('repeat/line/number') in annotated and 'viewLine first' or 'viewLine'">
89
<a tal:attributes="id string:L${repeat/line/number}; href string:#L${repeat/line/number}"
90
tal:content="repeat/line/number">1</a>
92
<td class="viewCont"><pre tal:content="structure line"></pre></td>