1
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
6
<tal:branch-name content="branch/friendly_name">
7
${branch.friendly_name}
10
<tal:revno content="change/revno">
15
<link rel="stylesheet"
16
tal:attributes="href python:tg.url('/static/css/zptstyle.css')" />
18
<script type="text/javascript"
19
tal:attributes="src python:tg.url('/static/javascript/collapse.js')">
22
<script type="text/javascript">
25
collapseDisplay('style', 'sbs', 'table');
26
collapseDisplay('style', 'unified', 'none');
27
document.cookie='diff=sbs';
29
function show_unified() {
30
collapseDisplay('style', 'unified', 'table');
31
collapseDisplay('style', 'sbs', 'none');
32
document.cookie='diff=unified';
35
sortCollapseElements();
36
if (document.cookie.indexOf('diff=unified') >= 0) { show_unified(); }
42
<body onload="javascript:load()">
44
<tal:navigation content="structure here/navigation.pt" />
47
<span class="branch-name" tal:content="branch/friendly_name">
48
${branch.friendly_name}
51
<tal:revno content="change/revno">
54
<span tal:condition="python:compare_revid is not None">
55
(compared to revision <tal:b replace="python:history.get_revno(compare_revid)" />)
62
<a tal:attributes="href python:url([ '/files', revid ])">
68
<a tal:attributes="href python:url(['/changes'], start_revid=revid)">
72
<div tal:condition="python:compare_revid is None" >
74
<a tal:attributes="href python:url([ '/bundle', revid, 'bundle.txt' ])">
78
<div tal:condition="python:compare_revid is not None" >
80
<a tal:attributes="href python:url([ '/bundle', revid, compare_revid, 'bundle.txt' ])">
84
<div tal:condition="python:(remember is not None) and (compare_revid is None)" >
86
<a tal:attributes="href python:url([ '/revision', revid ], compare_revid=remember)">
87
compare with revision ${history.get_revno(remember)}
90
<div tal:condition="python:remember != revid">
92
<a tal:attributes="href python:url([ '/revision', revid ], remember=revid, compare_revid=None)">
93
compare with another revision
96
<div tal:condition="python:compare_revid is not None">
98
<a tal:attributes="href python:url([ '/revision', revid ], remember=None, compare_revid=None)">
99
stop comparing to revision ${history.get_revno(compare_revid)}
104
<tal:revision-info replace="structure python:revisioninfo(url, branch, change, modified_file_link_rev)" />
106
<table class="diff-option-buttons">
109
<tal:b content="structure python:collapse_all_button('file', 'table-row')" />
113
<a href="javascript:show_sbs()"
114
class="hide-all collapse-style-sbs-show"
116
<img tal:attributes="src python:tg.url('/static/images/nav-small-out.gif')"
117
width="22" height="10" class="collapse-triangle" />
120
<a href="javascript:show_unified()"
121
class="hide-all collapse-style-unified-show"
123
<img tal:attributes="src python:tg.url('/static/images/nav-small-in.gif')"
124
width="22" height="10" class="collapse-triangle" />
129
<td class="diff-key-block diff-insert">
134
<td class="diff-key-block diff-delete">
143
tal:condition="change/changes/modified"
144
tal:define="uniqs python:{}">
145
<!-- ! side-by-side diff -->
146
<table class="diff-block collapse-style-sbs-content">
147
<tal:block repeat="item change/changes/modified">
148
<tal:u define="u python:util.uniq(uniqs, item.file_id)">
150
<th class="filename" colspan="4">
151
<tal:b content="structure python:collapse_button('file', u, 'table-row')" />
152
<a tal:attributes="href python:url(['/annotate', change.revid], file_id=item.file_id);
153
name string:${item/filename}-s;
154
title string:Annotate ${item/filename}"
155
tal:content="item/filename">
161
<tal:block repeat="chunk item/sbs_chunks">
162
<tr tal:attributes="class string:diff-chunk collapse-file-${u}-content">
174
<tr tal:repeat="line chunk/diff"
175
tal:attributes="class string:diff-chunk collapse-file-${u}-content">
176
<tal:block condition="line/old_lineno">
178
tal:content="line/old_lineno">
181
<td tal:attributes="class string:diff-${line/old_type}"
182
tal:content="line/old_line">
186
<tal:block condition="not:line/old_lineno">
187
<td class="lineno-skip"
188
tal:content="line/old_lineno">
191
<td tal:attributes="class string:diff-${line/old_type}-skip"
192
tal:content="line/old_line">
196
<tal:block condition="line/new_lineno">
198
tal:content="line/new_lineno">
201
<td tal:attributes="class string:diff-${line/new_type}"
202
tal:content="line/new_line">
206
<tal:block condition="not:line/new_lineno">
207
<td class="lineno-skip"
208
tal:content="line/new_lineno">
211
<td tal:attributes="class string:diff-${line/new_type}-skip"
212
tal:content="line/new_line">
217
<tr tal:attributes="class string:diff-chunk-spacing collapse-file-${u}-content">
223
<tr class="diff-spacing">
232
<!-- ! unified diff -->
233
<table class="diff-block collapse-style-unified-content">
234
<tal:block repeat="item change/changes/modified">
235
<tal:u define="u python:util.uniq(uniqs, item.file_id)">
237
<th class="filename" colspan="4">
238
<tal:b content="structure python:collapse_button('file', u, 'table-row')" />
239
<a tal:attributes="href python:url(['/annotate', change.revid], file_id=item.file_id);
240
name string:${item/filename}-u;
241
title string:Annotate ${item/filename}"
242
tal:content="item/filename">
248
<tal:block repeat="chunk item/chunks">
249
<tr tal:attributes="class string:diff-chunk collapse-file-${u}-content">
261
<tr tal:repeat="line chunk/diff"
262
tal:attributes="class string:diff-chunk collapse-file-${u}-content">
264
tal:content="line/old_lineno">
268
tal:content="line/new_lineno">
271
<td tal:attributes="class string:diff-${line/type} text"
272
tal:content="line/line">
278
<tr tal:attributes="class string:diff-chunk-spacing collapse-file-${u}-content">
284
<tr class="diff-spacing">
294
<div tal:condition="python:navigation.prev_page_revid or navigation.next_page_revid"
299
<a tal:condition="navigation/prev_page_revid"
300
tal:attributes="href navigation/prev_page_url">
302
<tal:r content="python:history.get_revno(navigation.prev_page_revid)" />
305
<td class="rbuttons" align="right">
306
<a tal:condition="navigation/next_page_revid"
307
tal:attributes="href navigation/next_page_url">
309
<tal:r content="python:history.get_revno(navigation.next_page_revid)" />
317
<tal:footer content="structure here/footer.pt" />
2
<tal:block define="onload string:load()">
3
<html xmlns="http://www.w3.org/1999/xhtml" metal:use-macro="macros/main">
5
<title metal:fill-slot="title"
6
tal:content="string:${branch/friendly_name} : 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/diff.css')"/>
12
<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" />;
23
<tal:block metal:fill-slot="backlink">
24
<tal:has-link condition="branch/branch_link">
25
<div class="black-link">
26
<a tal:attributes="href branch/branch_link">
27
← Back to branch summary
32
<tal:block metal:fill-slot="branchname" tal:content="string:${branch/friendly_name}" />
33
<tal:block metal:fill-slot="heading">
34
<div id="breadcrumbs">
35
<tal:has-link condition="branch/branch_link">
36
<a tal:attributes="href branch/branch_link"
37
tal:content="branch/friendly_name">
41
<tal:no-link condition="not: branch/branch_link">
42
<span metal:use-macro="breadcrumbs/directory"></span>
44
<span class="breadcrumb">» Revision
45
<tal:revno condition="not:specific_path" content="change/revno"></tal:revno>
46
<a tal:condition="specific_path" tal:content="change/revno"
47
tal:attributes="href python:url(['/revision', change.revno])"
48
title="View changes to all files"></a>
49
<tal:compare-to condition="python:compare_revid is not None">
50
(compared to revision <tal:block content="python:history.get_revno(compare_revid)" />)
53
<span class="breadcrumb" tal:condition="specific_path">
54
: <tal:annotate content="structure python:view_link(url, change.revno, specific_path)" />
57
<tal:branch-info replace="structure python:branchinfo(branch)" />
58
<h1 tal:condition="not:specific_path">
59
Viewing all changes in revision <tal:revno content="change/revno" />.
61
<p tal:condition="specific_path">
62
<a tal:attributes="href python:url(['/revision', change.revno])">
63
« back to all changes in this revision
66
<p tal:condition="specific_path">
67
Viewing changes to <tal:annotate content="structure python:view_link(url, change.revno, specific_path)" />
70
<li id="first"><a tal:attributes="href python:url(['/files', change.revno]);
71
title string:browse files at revision ${change/revno}"
72
tal:content="string:browse files at revision ${change/revno}"></a></li>
73
<li tal:condition="python:remember != change.revno">
74
<a tal:attributes="href python:url(['/revision', change.revno], remember=change.revno, compare_revid=None);
75
title string:compare with another revision"
76
tal:content="string:Compare with another revision"></a></li>
77
<li tal:condition="python:(remember is not None) and (compare_revid is None) and (change.revno != remember)" >
78
<a tal:attributes="href python:url(['/revision', change.revno], compare_revid=history.get_revno(remember))">
79
compare with revision <tal:b content="python:history.get_revno(remember)" />
83
<a tal:condition="python:len(change.parents) > 0 and compare_revid is None"
84
tal:attributes="href python:url(['/diff', change.revno], clear=1)">download diff</a>
85
<a tal:condition="python:compare_revid is not None"
86
tal:attributes="href python:url(['/diff', change.revno, history.get_revno(compare_revid)], clear=1)">download diff</a>
88
<li id="last"><a tal:attributes="href python:url(['/changes', change.revno]);
89
title string:view history from revision ${change/revno}"
90
tal:content="string:view history from revision ${change/revno}"></a></li>
93
<tal:we-are-comparing condition="python:compare_revid is not None">
96
<a tal:attributes="href python:url([ '/revision', history.get_revno(compare_revid) ], remember=change.revno, compare_revid=change.revno)">
97
reverse the comparison (<tal:b content="change/revno" /> to <tal:b content="python:history.get_revno(compare_revid)" />)
101
<a tal:attributes="href python:url(['/revision', change.revno], remember=None, compare_revid=None)">
102
stop comparing with revision <tal:b content="python:history.get_revno(compare_revid)" />
106
</tal:we-are-comparing>
108
<tal:revision-info replace="structure python:revisioninfo(url, branch, change, file_changes, specific_path, merged_in)" />
109
<tal:specific-path condition="not:specific_path">
110
<p class="expand show_if_js" id="expand_all"><a href="#">
111
<img tal:attributes="src python:branch.static_url('/static/images/treeCollapsed.png')"
112
alt="expand all" /> expand all</a>
114
<p class="expand" id="collapse_all" style="display:none;"><a href="#">
115
<img tal:attributes="src python:branch.static_url('/static/images/treeExpanded.png')"
116
alt="collapse all" /> collapse all</a>
120
<p class="expand show_if_js"><a id="toggle_unified_sbs" href="#">Show diffs side-by-side</a></p>
121
<p class="codin"><img tal:attributes="src python:branch.static_url('/static/images/newCode.gif')" alt="added" /> added</p>
122
<p class="codin"><img tal:attributes="src python:branch.static_url('/static/images/deleteCode.gif')" alt="removed" /> removed</p>
123
<div class="clear"><!-- --></div>
127
<div metal:fill-slot="content">
128
<tal:block condition="specific_path">
131
<div class="diffBox">
132
<a tal:attributes="href python:url(['/revision', change.revno, specific_path], clear=1);
133
id string:${specific_path};
134
title string:View changes to ${specific_path} only"
136
<img tal:attributes="src python:branch.static_url('/static/images/treeExpanded.png')"
137
class="expand_diff"/>
138
<tal:b content="specific_path" />
141
<div style="overflow: hidden">
142
<div class="container">
143
<div class="loading" style="display:none">
144
<img tal:attributes="src python:branch.static_url('/static/images/spinner.gif')" />
146
<div class="diffinfo">
147
<div class="pseudotable unified"
148
tal:repeat="chunk diff_chunks">
150
<tal:block condition="not:repeat/chunk/start">
151
<div class="pseudorow context-row">
152
<div class="lineNumber separate"></div>
153
<div class="lineNumber second separate"></div>
154
<div class="code separate"></div>
155
<div class="clear"><!-- --></div>
159
<div tal:repeat="line chunk/diff"
160
tal:attributes="class string:pseudorow ${line/type}-row">
161
<div class="lineNumber first"
162
tal:content="structure python:util.fill_div(line.old_lineno)"></div>
163
<div class="lineNumber second"
164
tal:content="structure python:util.fill_div(line.new_lineno)"></div>
165
<div tal:attributes="class string:code ${line/type}"
166
tal:content="structure python:util.fill_div(util.html_clean(line.line))"></div>
167
<div class="clear"><!-- --></div>
176
<tal:block condition="not:specific_path">
178
tal:repeat="item file_changes/text_changes" tal:attributes="id string:diff-${item/index}">
180
<div class="diffBox">
181
<a tal:attributes="href python:url(['/revision', change.revno, item.filename], clear=1);
182
id string:${item/filename};
183
title string:View changes to ${item/filename} only"
185
<img tal:attributes="src python:branch.static_url('/static/images/treeCollapsed.png')"
186
class="expand_diff" />
187
<tal:b content="item/filename" />
190
<div class="diffinfo" style="display:none">
191
<div class="loading">
192
<img tal:attributes="src python:branch.static_url('/static/images/spinner.gif')" />
198
<ul tal:condition="python:navigation.prev_page_revid or navigation.next_page_revid"
200
<li tal:condition="navigation/prev_page_revid"
202
<a tal:attributes="href navigation/prev_page_url">« Newer</a>
204
<!-- FIXME: Leaving this to eventually show page numbers. Can't show all of them,
205
so some magic has to be done to just show the previous and next N page numbers
207
<li class="active">1</li>
208
<tal:block tal:repeat="page_number python:range(navigation.page_count)">
210
tal:content="page_number"></a></li>
212
<li tal:condition="navigation/next_page_revid"
214
<a tal:attributes="href navigation/next_page_url">Older »</a>