5
5
<title metal:fill-slot="title"
6
6
tal:content="string:${branch/friendly_name} : contents of ${path}
7
7
at revision ${change/revno}">
8
${branch.friendly_name} : contents of ${path} 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/annotate.css')"/>
14
17
<h1 metal:fill-slot="heading">
15
<span class="branch-name" tal:content="branch/friendly_name">
16
${branch.friendly_name}
19
<span class="annotate-path" tal:content="path">
22
(revision <tal:revno content="change/revno">${change.revno}</tal:revno>)
18
<tal:has-link condition="branch/branch_link">
19
<a tal:attributes="href branch/branch_link"
20
tal:content="branch/friendly_name">
24
<tal:no-link condition="not: branch/branch_link">
25
<tal:branch-name replace="branch/friendly_name" />
27
<span>: <span tal:content="path"></span> (revision <tal:revno content="change/revno"></tal:revno>)</span>
25
30
<div metal:fill-slot="content">
29
<a tal:attributes="href python:url(['/files', change.revno], clear=1)">
35
<a tal:attributes="href python:url(['/revision'], clear=1, start_revid=revid)">
41
<a tal:attributes="href python:url(['/changes'], clear=1, start_revid=revid, filter_file_id=file_id)">
42
view changes to this file
47
<a tal:attributes="href python:url(['/download', revid, file_id, filename])">
33
<a tal:attributes="href python:url(['/files', change.revno], clear=1)">browse files</a>
36
<a tal:attributes="href python:url(['/revision'], clear=1, start_revid=change.revno)">view revision</a>
39
<a tal:attributes="href python:url(['/changes'], clear=1, start_revid=change.revno, filter_file_id=file_id)">view changes to this file</a>
42
<a tal:attributes="href python:url(['/download', change.revno, file_id, filename])">download file</a>
53
46
<div class="annotate">
56
<th class="lineno"> Line# </th>
57
<th class="revision"> Revision </th>
58
<th class="text"> Contents </th>
47
<table id="logentries">
48
<tr class="logheader">
49
<td class="annoLineTit">Line</td>
50
<td class="annoRevTit">Revision</td>
51
<td class="annoContTit">Contents</td>
61
<tr tal:repeat="line contents"
62
tal:attributes="class string:parity${line/parity}">
63
<td tal:attributes="class string:lineno ${line/status}">
64
<a tal:attributes="name string:L${line/lineno}"
65
tal:content="line/lineno">
69
<td tal:attributes="class string:revno ${line/status}">
54
<tr tal:repeat="line contents"
55
tal:attributes="class string:blueRow${line/parity}">
56
<td class="annoLine" tal:content="line/lineno">1</td>
70
58
<a tal:condition="python:line.status=='changed'"
71
59
tal:content="python:util.trunc(line.change.revno)"
72
tal:attributes="href python:url(['/revision'], clear=1, start_revid=line.change.revid, filter_file_id=file_id);
73
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))">
75
${util.trunc(line.change.revno)}
78
<td tal:attributes="class string:text ${line/status}"
79
tal:content="line/text">
60
tal:attributes="href python:url(['/revision'], clear=1, start_revid=line.change.revno, filter_file_id=file_id);
61
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>
63
<td class="annoCont" tal:content="line/text"></td>