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')"/>
12
11
<script type="text/javascript"
13
tal:attributes="src python:branch.static_url('/static/javascript/diff.js')"></script>
14
<script type="text/javascript">
15
var link_data = <tal:b content="link_data" />;
16
var specific_path = <tal:b content="json_specific_path" />;
17
var path_to_id = <tal:b content="path_to_id" />;
12
tal:attributes="src python:branch.static_url('/static/javascript/collapse.js')">
23
<tal:block metal:fill-slot="heading">
25
<tal:has-link condition="branch/branch_link">
26
<a tal:attributes="href branch/branch_link"
27
tal:content="branch/friendly_name">
31
<tal:no-link condition="not: branch/branch_link">
32
<span metal:use-macro="breadcrumbs/directory"></span>
34
<span class="breadcrumb">:
35
<tal:revno condition="not:specific_path" content="change/revno"></tal:revno>
36
<a tal:condition="specific_path" tal:content="change/revno"
37
tal:attributes="href python:url(['/revision', change.revno])"
38
title="View changes to all files"></a>
39
<tal:compare-to condition="python:compare_revid is not None">
40
(compared to revision <tal:block content="python:history.get_revno(compare_revid)" />)
43
<span class="breadcrumb" tal:condition="specific_path">
44
: <tal:annotate content="structure python:view_link(url, change.revno, specific_path)" />
47
<tal:branch-info replace="structure python:branchinfo(branch)" />
48
<p tal:condition="not:specific_path">
49
Viewing all changes in revision <tal:revno content="change/revno" />.
51
<p tal:condition="specific_path">
52
<a tal:attributes="href python:url(['/revision', change.revno])">
53
« back to all changes in this revision
56
<p tal:condition="specific_path">
57
Viewing changes to <tal:annotate content="structure python:view_link(url, change.revno, specific_path)" />
60
<li id="first"><a tal:attributes="href python:url(['/files', change.revno]);
61
title string:browse files at revision ${change/revno}"
62
tal:content="string:browse files at revision ${change/revno}"></a></li>
63
<li tal:condition="python:remember != change.revno">
64
<a tal:attributes="href python:url(['/revision', change.revno], remember=change.revno, compare_revid=None);
65
title string:compare with another revision"
66
tal:content="string:Compare with another revision"></a></li>
67
<li tal:condition="python:(remember is not None) and (compare_revid is None) and (change.revno != remember)" >
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">
27
<tal:compare-to condition="python:compare_revid is not None">
28
(compared to revision <tal:b content="python:history.get_revno(compare_revid)" />)
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:(remember is not None) and (compare_revid is None) and remember != revid" >
68
48
<a tal:attributes="href python:url(['/revision', change.revno], compare_revid=history.get_revno(remember))">
69
49
compare with revision <tal:b content="python:history.get_revno(remember)" />
73
<a tal:condition="python:len(change.parents) > 0 and compare_revid is None"
74
tal:attributes="href python:url(['/diff', change.revno], clear=1)">download diff</a>
75
<a tal:condition="python:compare_revid is not None"
76
tal:attributes="href python:url(['/diff', change.revno, history.get_revno(compare_revid)], clear=1)">download diff</a>
78
<li id="last"><a tal:attributes="href python:url(['/changes', change.revno]);
79
title string:view history from revision ${change/revno}"
80
tal:content="string:view history from revision ${change/revno}"></a></li>
83
<tal:we-are-comparing condition="python:compare_revid is not None">
52
<div tal:condition="python:remember != revid">
54
<a tal:attributes="href python:url(['/revision', change.revno], remember=change.revno, compare_revid=None)">
55
compare with another revision
58
<tal:we-are-comparing condition="python:compare_revid is not None">
86
61
<a tal:attributes="href python:url([ '/revision', history.get_revno(compare_revid) ], remember=change.revno, compare_revid=change.revno)">
87
62
reverse the comparison (<tal:b content="change/revno" /> to <tal:b content="python:history.get_revno(compare_revid)" />)
91
67
<a tal:attributes="href python:url(['/revision', change.revno], remember=None, compare_revid=None)">
92
68
stop comparing with revision <tal:b content="python:history.get_revno(compare_revid)" />
96
</tal:we-are-comparing>
98
<tal:revision-info replace="structure python:revisioninfo(url, branch, change, file_changes, specific_path, merged_in)" />
99
<tal:specific-path condition="not:specific_path">
100
<p class="expand show_if_js" id="expand_all"><a href="#">
101
<img tal:attributes="src python:branch.static_url('/static/images/treeCollapsed.png')"
102
alt="expand all" /> expand all</a>
104
<p class="expand" id="collapse_all" style="display:none;"><a href="#">
105
<img tal:attributes="src python:branch.static_url('/static/images/treeExpanded.png')"
106
alt="collapse all" /> collapse all</a>
110
<p class="expand show_if_js"><a id="toggle_unified_sbs" href="#">Show diffs side-by-side</a></p>
111
<p class="codin"><img tal:attributes="src python:branch.static_url('/static/images/newCode.gif')" alt="added" /> added</p>
112
<p class="codin"><img tal:attributes="src python:branch.static_url('/static/images/deleteCode.gif')" alt="removed" /> removed</p>
113
<div class="clear"><!-- --></div>
117
<div metal:fill-slot="content">
118
<tal:block condition="specific_path">
121
<div class="diffBox">
122
<a tal:attributes="href python:url(['/revision', change.revno, specific_path], clear=1);
123
id string:${specific_path};
124
title string:View changes to ${specific_path} only"
126
<img tal:attributes="src python:branch.static_url('/static/images/treeExpanded.png')"
127
class="expand_diff"/>
128
<tal:b content="specific_path" />
131
<div style="overflow: hidden">
132
<div class="container">
133
<div class="loading" style="display:none">
134
<img tal:attributes="src python:branch.static_url('/static/images/spinner.gif')" />
136
<div class="diffinfo">
137
<div class="pseudotable unified"
138
tal:repeat="chunk diff_chunks">
140
<tal:block condition="not:repeat/chunk/start">
141
<div class="pseudorow context-row">
142
<div class="lineNumber separate"></div>
143
<div class="lineNumber second separate"></div>
144
<div class="code separate"></div>
145
<div class="clear"><!-- --></div>
149
<div tal:repeat="line chunk/diff"
150
tal:attributes="class string:pseudorow ${line/type}-row">
151
<div class="lineNumber first"
152
tal:content="structure python:util.fill_div(line.old_lineno)"></div>
153
<div class="lineNumber second"
154
tal:content="structure python:util.fill_div(line.new_lineno)"></div>
155
<div tal:attributes="class string:code ${line/type}"
156
tal:content="structure python:util.fill_div(util.html_clean(line.line))"></div>
157
<div class="clear"><!-- --></div>
166
<tal:block condition="not:specific_path">
168
tal:repeat="item file_changes/text_changes" tal:attributes="id string:diff-${item/index}">
170
<div class="diffBox">
171
<a tal:attributes="href python:url(['/revision', change.revno, item.filename], clear=1);
172
id string:${item/filename};
173
title string:View changes to ${item/filename} only"
175
<img tal:attributes="src python:branch.static_url('/static/images/treeCollapsed.png')"
176
class="expand_diff" />
177
<tal:b content="item/filename" />
180
<div class="diffinfo" style="display:none">
181
<div class="loading">
182
<img tal:attributes="src python:branch.static_url('/static/images/spinner.gif')" />
188
<ul tal:condition="python:navigation.prev_page_revid or navigation.next_page_revid"
190
<li tal:condition="navigation/prev_page_revid"
192
<a tal:attributes="href navigation/prev_page_url">« Newer</a>
194
<!-- FIXME: Leaving this to eventually show page numbers. Can't show all of them,
195
so some magic has to be done to just show the previous and next N page numbers
197
<li class="active">1</li>
198
<tal:block tal:repeat="page_number python:range(navigation.page_count)">
200
tal:content="page_number"></a></li>
202
<li tal:condition="navigation/next_page_revid"
204
<a tal:attributes="href navigation/next_page_url">Older »</a>
71
</tal:we-are-comparing>
74
<tal:revision-info replace="structure python:revisioninfo(url, branch, change, modified_file_link_rev)" />
76
<table class="diff-option-buttons">
79
<tal:b content="structure python:collapse_all_button('file', branch, normal='table-row')" />
83
<a href="javascript:show_sbs()"
84
class="hide-all collapse-style-sbs-show"
86
<img tal:attributes="src python:branch.static_url('/static/images/nav-small-out.gif')"
87
width="22" height="10" class="collapse-triangle" />
90
<a href="javascript:show_unified()"
91
class="hide-all collapse-style-unified-show"
93
<img tal:attributes="src python:branch.static_url('/static/images/nav-small-in.gif')"
94
width="22" height="10" class="collapse-triangle" />
99
<td class="diff-key-block diff-insert">
104
<td class="diff-key-block diff-delete">
113
tal:condition="change/changes/modified"
114
tal:define="uniqs python:{}">
115
<!-- ! side-by-side diff -->
116
<table class="diff-block collapse-style-sbs-content">
117
<tal:block repeat="item change/changes/modified">
118
<tal:u define="u python:util.uniq(uniqs, item.file_id)">
120
<th class="filename" colspan="4">
121
<tal:b content="structure python:collapse_button('file', u, branch, normal='table-row')" />
122
<a tal:attributes="href python:url(['/annotate', change.revno], file_id=item.file_id);
123
name string:${item/filename}-s;
124
title string:Annotate ${item/filename}"
125
tal:content="item/filename">
131
<tal:block repeat="chunk item/sbs_chunks">
132
<tr tal:attributes="class string:diff-chunk collapse-file-${u}-content">
144
<tr tal:repeat="line chunk/diff"
145
tal:attributes="class string:diff-chunk collapse-file-${u}-content">
146
<tal:block condition="line/old_lineno">
148
tal:content="line/old_lineno">
151
<td tal:attributes="class string:diff-${line/old_type}"
152
tal:content="line/old_line">
156
<tal:block condition="not:line/old_lineno">
157
<td class="lineno-skip"
158
tal:content="line/old_lineno">
161
<td tal:attributes="class string:diff-${line/old_type}-skip"
162
tal:content="line/old_line">
166
<tal:block condition="line/new_lineno">
168
tal:content="line/new_lineno">
171
<td tal:attributes="class string:diff-${line/new_type}"
172
tal:content="line/new_line">
176
<tal:block condition="not:line/new_lineno">
177
<td class="lineno-skip"
178
tal:content="line/new_lineno">
181
<td tal:attributes="class string:diff-${line/new_type}-skip"
182
tal:content="line/new_line">
187
<tr tal:attributes="class string:diff-chunk-spacing collapse-file-${u}-content">
193
<tr class="diff-spacing">
202
<!-- ! unified diff -->
203
<table class="diff-block collapse-style-unified-content">
204
<tal:block repeat="item change/changes/modified">
205
<tal:u define="u python:util.uniq(uniqs, item.file_id)">
207
<th class="filename" colspan="4">
208
<tal:b content="structure python:collapse_button('file', u, branch, normal='table-row')" />
209
<a tal:attributes="href python:url(['/annotate', change.revno], file_id=item.file_id);
210
name string:${item/filename}-u;
211
title string:Annotate ${item/filename}"
212
tal:content="item/filename">
218
<tal:block repeat="chunk item/chunks">
219
<tr tal:attributes="class string:diff-chunk collapse-file-${u}-content">
231
<tr tal:repeat="line chunk/diff"
232
tal:attributes="class string:diff-chunk collapse-file-${u}-content">
234
tal:content="line/old_lineno">
238
tal:content="line/new_lineno">
241
<td tal:attributes="class string:diff-${line/type} text"
242
tal:content="line/line">
248
<tr tal:attributes="class string:diff-chunk-spacing collapse-file-${u}-content">
254
<tr class="diff-spacing">
264
<div tal:condition="python:navigation.prev_page_revid or navigation.next_page_revid"
269
<a tal:condition="navigation/prev_page_revid"
270
tal:attributes="href navigation/prev_page_url">
272
<tal:r content="python:history.get_revno(navigation.prev_page_revid)" />
275
<td class="rbuttons" align="right">
276
<a tal:condition="navigation/next_page_revid"
277
tal:attributes="href navigation/next_page_url">
279
<tal:r content="python:history.get_revno(navigation.next_page_revid)" />