5
5
<title metal:fill-slot="title"
6
6
tal:content="string:${branch/friendly_name} : revision ${change/revno}">
7
${branch.friendly_name} : revision ${change.revno}
9
10
<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/diff.css')"/>
11
<script type="text/javascript"
12
tal:attributes="src python:branch.static_url('/static/javascript/collapse.js')">
17
<tal:block metal:fill-slot="heading">
19
<tal:has-link condition="branch/branch_link">
20
<a tal:attributes="href branch/branch_link"
21
tal:content="branch/friendly_name">
25
<tal:no-link condition="not: branch/branch_link">
26
<tal:branch-name replace="branch/friendly_name" />
28
<span>: <tal:revno content="change/revno"></tal:revno>
19
<h1 metal:fill-slot="heading">
20
<span class="branch-name" tal:content="branch/friendly_name">
21
${branch.friendly_name}
24
<tal:revno content="change/revno">
29
27
<tal:compare-to condition="python:compare_revid is not None">
30
(compared to revision <tal:block content="python:history.get_revno(compare_revid)" />)
34
<li id="first"><a tal:attributes="href python:url(['/files', change.revno]);
35
title string:browse files at revision ${change/revno}"
36
tal:content="string:browse files at revision ${change/revno}"></a></li>
37
<li tal:condition="python:remember != change.revno">
38
<a tal:attributes="href python:url(['/revision', change.revno], remember=change.revno, compare_revid=None);
39
title string:compare with another revision"
40
tal:content="string:Compare with another revision"></a></li>
41
<li tal:condition="python:(remember is not None) and (compare_revid is None) and (change.revno != remember)" >
42
<a tal:attributes="href python:url(['/revision', change.revno], compare_revid=history.get_revno(remember))">
43
compare with revision <tal:b content="python:history.get_revno(remember)" />
47
<a tal:condition="python:len(change.parents) > 0 and compare_revid is None"
48
tal:attributes="href python:url(['/diff', change.revno], clear=1)">download diff</a>
49
<a tal:condition="python:compare_revid is not None"
50
tal:attributes="href python:url(['/diff', change.revno, history.get_revno(compare_revid)], clear=1)">download diff</a>
52
<li id="last"><a tal:attributes="href python:url(['/changes', change.revno]);
53
title string:view history from revision ${change/revno}"
54
tal:content="string:view history from revision ${change/revno}"></a></li>
28
(compared to revision <tal:b content="python:history.get_revno(compare_revid)" />)
57
<tal:we-are-comparing condition="python:compare_revid is not None">
32
<div metal:fill-slot="content">
36
<a tal:attributes="href python:url(['/files', change.revno])">
37
browse files at revision <tal:b content="change/revno" />
42
<a tal:attributes="href python:url(['/changes'], start_revid=change.revno)">
43
view history from revision <tal:b content="change/revno" />
46
<div tal:condition="python:compare_revid is not None" >
48
<a tal:attributes="href python:branch.url(['/bundle', change.revno, history.get_revno(compare_revid), 'bundle.txt'])">
49
download bundle from <tal:b content="python:history.get_revno(compare_revid)" /> to <tal:b content="change/revno" />
52
<div tal:condition="python:(remember is not None) and (compare_revid is None) and remember != revid" >
54
<a tal:attributes="href python:url(['/revision', change.revno], compare_revid=history.get_revno(remember))">
55
compare with revision <tal:b content="python:history.get_revno(remember)" />
58
<div tal:condition="python:remember != revid">
60
<a tal:attributes="href python:url(['/revision', change.revno], remember=change.revno, compare_revid=None)">
61
compare with another revision
64
<tal:we-are-comparing condition="python:compare_revid is not None">
60
67
<a tal:attributes="href python:url([ '/revision', history.get_revno(compare_revid) ], remember=change.revno, compare_revid=change.revno)">
61
68
reverse the comparison (<tal:b content="change/revno" /> to <tal:b content="python:history.get_revno(compare_revid)" />)
65
73
<a tal:attributes="href python:url(['/revision', change.revno], remember=None, compare_revid=None)">
66
74
stop comparing with revision <tal:b content="python:history.get_revno(compare_revid)" />
70
</tal:we-are-comparing>
77
</tal:we-are-comparing>
72
80
<tal:revision-info replace="structure python:revisioninfo(url, branch, change, modified_file_link_rev)" />
73
<p class="expand" id="expand_all" style="display:none;"><a tal:attributes="href string:javascript:toggle_expand_all_revisionview('open')">
74
<img tal:attributes="src python:branch.static_url('/static/images/treeCollapsed.png')"
75
alt="expand all" /> expand all</a>
77
<p class="expand" id="collapse_all"><a tal:attributes="href string:javascript:toggle_expand_all_revisionview('close')">
78
<img tal:attributes="src python:branch.static_url('/static/images/treeExpanded.png')"
79
alt="collapse all" /> collapse all</a>
82
<p class="codin"><img tal:attributes="src python:branch.static_url('/static/images/newCode.gif')" alt="added" /> added</p>
83
<p class="codin"><img tal:attributes="src python:branch.static_url('/static/images/deleteCode.gif')" alt="removed" /> removed</p>
84
<div class="clear"><!-- --></div>
88
<div metal:fill-slot="content">
82
<table class="diff-option-buttons">
85
<tal:b content="structure python:collapse_all_button('file', branch, normal='table-row')" />
89
<a href="javascript:show_sbs()"
90
class="hide-all collapse-style-sbs-show"
92
<img tal:attributes="src python:branch.static_url('/static/images/nav-small-out.gif')"
93
width="22" height="10" class="collapse-triangle" />
96
<a href="javascript:show_unified()"
97
class="hide-all collapse-style-unified-show"
99
<img tal:attributes="src python:branch.static_url('/static/images/nav-small-in.gif')"
100
width="22" height="10" class="collapse-triangle" />
105
<td class="diff-key-block diff-insert">
110
<td class="diff-key-block diff-delete">
90
119
tal:condition="change/changes/modified"
91
120
tal:define="uniqs python:{}">
92
121
<!-- ! side-by-side diff -->
93
<tal:block repeat="item change/changes/modified">
122
<table class="diff-block collapse-style-sbs-content">
123
<tal:block repeat="item change/changes/modified">
95
124
<tal:u define="u python:util.uniq(uniqs, item.file_id)">
96
<div class="diffBox"><img tal:attributes="src python:branch.static_url('/static/images/treeExpanded.png');
97
title python:branch.static_url('/static/images/treeCollapsed.png');
98
alt python:branch.static_url('/static/images/treeExpanded.png')"
99
class="expand_diff" />
100
<a tal:attributes="href python:url(['/annotate', change.revno], clear=1, file_id=item.file_id);
101
id string:${item/filename}-s;
102
title string:Annotate ${item/filename}"
103
tal:content="item/filename"></a></div>
104
<div id="psuedotable" class="diffinfo">
105
<tal:block repeat="chunk item/sbs_chunks">
107
<tal:block condition="not:repeat/chunk/start">
108
<div class="lineNumber separate"></div>
109
<div class="lineCode separate"></div>
110
<div class="lineNumber separate"></div>
111
<div class="lineCode separate"></div>
112
<div class="clear"><!-- --></div>
115
<tal:block repeat="line chunk/diff">
126
<th class="filename" colspan="4">
127
<tal:b content="structure python:collapse_button('file', u, branch, normal='table-row')" />
128
<a tal:attributes="href python:url(['/annotate', change.revno], file_id=item.file_id);
129
name string:${item/filename}-s;
130
title string:Annotate ${item/filename}"
131
tal:content="item/filename">
137
<tal:block repeat="chunk item/sbs_chunks">
138
<tr tal:attributes="class string:diff-chunk collapse-file-${u}-content">
150
<tr tal:repeat="line chunk/diff"
151
tal:attributes="class string:diff-chunk collapse-file-${u}-content">
117
152
<tal:block condition="line/old_lineno">
118
<div class="lineNumber"><tal:block replace="structure python:util.fill_div(line.old_lineno)" /></div>
119
<div tal:attributes="class string:lineCode ${line/old_type}">
120
<tal:block replace="structure python:util.fill_div(line.old_line)" />
154
tal:content="line/old_lineno">
157
<td tal:attributes="class string:diff-${line/old_type}"
158
tal:content="line/old_line">
124
162
<tal:block condition="not:line/old_lineno">
125
<div class="lineNumber"><tal:block replace="structure python:util.fill_div(line.old_lineno)" /></div>
126
<div tal:attributes="class string:lineCode ${line/old_type}">
127
<tal:block replace="structure python:util.fill_div(line.old_line)" />
163
<td class="lineno-skip"
164
tal:content="line/old_lineno">
167
<td tal:attributes="class string:diff-${line/old_type}-skip"
168
tal:content="line/old_line">
131
172
<tal:block condition="line/new_lineno">
132
<div class="lineNumber"><tal:block replace="structure python:util.fill_div(line.new_lineno)" /></div>
133
<div tal:attributes="class string:lineCode ${line/new_type}">
134
<tal:block replace="structure python:util.fill_div(line.new_line)" />
174
tal:content="line/new_lineno">
177
<td tal:attributes="class string:diff-${line/new_type}"
178
tal:content="line/new_line">
138
182
<tal:block condition="not:line/new_lineno">
139
<div class="lineNumber"><tal:block replace="structure python:util.fill_div(line.new_lineno)" /></div>
140
<div tal:attributes="class string:lineCode ${line/new_type}">
141
<tal:block replace="structure python:util.fill_div(line.new_line)" />
183
<td class="lineno-skip"
184
tal:content="line/new_lineno">
187
<td tal:attributes="class string:diff-${line/new_type}-skip"
188
tal:content="line/new_line">
144
<div class="clear"><!-- --></div>
153
<ul tal:condition="python:navigation.prev_page_revid or navigation.next_page_revid"
155
<li tal:condition="navigation/prev_page_revid"
157
<a tal:attributes="href navigation/prev_page_url">« Previous</a>
159
<!-- FIXME: Leaving this to eventually show page numbers. Can't show all of them,
160
so some magic has to be done to just show the previous and next N page numbers
162
<li class="active">1</li>
163
<tal:block tal:repeat="page_number python:range(navigation.page_count)">
165
tal:content="page_number"></a></li>
167
<li tal:condition="navigation/next_page_revid"
169
<a tal:attributes="href navigation/next_page_url">Next »</a>
193
<tr tal:attributes="class string:diff-chunk-spacing collapse-file-${u}-content">
199
<tr class="diff-spacing">
208
<!-- ! unified diff -->
209
<table class="diff-block collapse-style-unified-content">
210
<tal:block repeat="item change/changes/modified">
211
<tal:u define="u python:util.uniq(uniqs, item.file_id)">
213
<th class="filename" colspan="4">
214
<tal:b content="structure python:collapse_button('file', u, branch, normal='table-row')" />
215
<a tal:attributes="href python:url(['/annotate', change.revno], file_id=item.file_id);
216
name string:${item/filename}-u;
217
title string:Annotate ${item/filename}"
218
tal:content="item/filename">
224
<tal:block repeat="chunk item/chunks">
225
<tr tal:attributes="class string:diff-chunk collapse-file-${u}-content">
237
<tr tal:repeat="line chunk/diff"
238
tal:attributes="class string:diff-chunk collapse-file-${u}-content">
240
tal:content="line/old_lineno">
244
tal:content="line/new_lineno">
247
<td tal:attributes="class string:diff-${line/type} text"
248
tal:content="line/line">
254
<tr tal:attributes="class string:diff-chunk-spacing collapse-file-${u}-content">
260
<tr class="diff-spacing">
270
<div tal:condition="python:navigation.prev_page_revid or navigation.next_page_revid"
275
<a tal:condition="navigation/prev_page_revid"
276
tal:attributes="href navigation/prev_page_url">
278
<tal:r content="python:history.get_revno(navigation.prev_page_revid)" />
281
<td class="rbuttons" align="right">
282
<a tal:condition="navigation/next_page_revid"
283
tal:attributes="href navigation/next_page_url">
285
<tal:r content="python:history.get_revno(navigation.next_page_revid)" />