diff options
author | lpsolit%gmail.com <> | 2007-05-27 05:34:42 +0200 |
---|---|---|
committer | lpsolit%gmail.com <> | 2007-05-27 05:34:42 +0200 |
commit | 071be418564827e42085e18c39520420f3b9d7ef (patch) | |
tree | b5f95b55c89843b18f539f5f98914dcb02b6d177 | |
parent | 2bd57ce8e6f2c2bb59a99d825fc9d181ea2cb4a5 (diff) | |
download | bugzilla-071be418564827e42085e18c39520420f3b9d7ef.tar.gz bugzilla-071be418564827e42085e18c39520420f3b9d7ef.tar.xz |
Bug 218618: Show line numbers on patch attachments when viewing them in "diff" mode - Patch by Frédéric Buclin <LpSolit@gmail.com> r=justdave a=LpSolit
-rw-r--r-- | template/en/default/attachment/diff-file.html.tmpl | 55 | ||||
-rw-r--r-- | template/en/default/attachment/diff-header.html.tmpl | 12 | ||||
-rw-r--r-- | template/en/default/filterexceptions.pl | 6 |
3 files changed, 58 insertions, 15 deletions
diff --git a/template/en/default/attachment/diff-file.html.tmpl b/template/en/default/attachment/diff-file.html.tmpl index cd54ab3ca..da38a36cd 100644 --- a/template/en/default/attachment/diff-file.html.tmpl +++ b/template/en/default/attachment/diff-file.html.tmpl @@ -23,8 +23,11 @@ # between the elements. This is necessary because DOM parent-child-sibling # relations can change and screw up the javascript for restoring, collapsing # and expanding. Do not change without testing all three of those. + # Also, the first empty row is required because 'table-layout: fixed' only + # considers the first row to determine column widths. If a colspan is found, + # it then share the width equally among all columns, which we don't want. #%] -<table class="file_table"><thead><tr><td class="file_head" colspan="2"><a href="#" onclick="return twisty_click(this)">[% collapsed ? '(+)' : '(-)' %]</a><input type="checkbox" name="[% file.filename FILTER html %]"[% collapsed ? '' : ' checked' %] style="display: none"> +<table class="file_table"><thead><tr><td class="num"></td><td></td><td class="num"></td><td></td></tr><tr><td class="file_head" colspan="4"><a href="#" onclick="return twisty_click(this)">[% collapsed ? '(+)' : '(-)' %]</a><input type="checkbox" name="[% file.filename FILTER html %]"[% collapsed ? '' : ' checked' %] style="display: none"> [% IF lxr_prefix && !file.is_add %] <a href="[% lxr_prefix %]">[% file.filename FILTER html %]</a> [% ELSE %] @@ -49,7 +52,7 @@ incremental_restore() [% section_num = 0 %] [% FOREACH section = sections %] [% section_num = section_num + 1 %] - <tr><th colspan="2" class="section_head"> + <tr><th colspan="4" class="section_head"> <table cellpadding="0" cellspacing="0"> <tr><th width="95%" align="left"> [% IF file.is_add %] @@ -79,38 +82,67 @@ incremental_restore() <a name="[% file.filename FILTER html %]_sec[% section_num %]" href="#[% file.filename FILTER html %]_sec[% section_num %]">Link Here</a> </th></tr></table> </th></tr> + [% current_line_old = section.old_start %] + [% current_line_new = section.new_start %] [% FOREACH group = section.groups %] [% IF group.context %] [% FOREACH line = group.context %] - <tr><td><pre>[% line FILTER html %]</pre></td><td><pre>[% line FILTER html %]</pre></td></tr> + <tr> + <td class="num">[% current_line_old %]</td> + <td><pre>[% line FILTER html %]</pre></td> + <td class="num">[% current_line_new %]</td> + <td><pre>[% line FILTER html %]</pre></td> + </tr> + [% current_line_old = current_line_old + 1 %] + [% current_line_new = current_line_new + 1 %] [% END %] [% END %] [% IF group.plus.size %] [% IF group.minus.size %] [% i = 0 %] + [%# We need to store them in external variables. %] + [% curr_new = current_line_new %] + [% curr_old = current_line_old %] [% WHILE (i < group.plus.size || i < group.minus.size) %] [% currentloop = 0 %] [% WHILE currentloop < 500 && (i < group.plus.size || i < group.minus.size) %] - <tr class="changed"> - <td><pre>[% group.minus.$i FILTER html %]</pre></td> - <td><pre>[% group.plus.$i FILTER html %]</pre></td> + <tr> + <td class="num">[% curr_old %]</td> + <td class="changed"><pre>[% group.minus.$i FILTER html %]</pre></td> + <td class="num">[% curr_new %]</td> + <td class="changed"><pre>[% group.plus.$i FILTER html %]</pre></td> </tr> [% currentloop = currentloop + 1 %] [% i = i + 1 %] + [% IF i < group.minus.size %] + [% curr_old = curr_old + 1 %] + [% ELSE %] + [% curr_old = "" %] + [% END %] + [% IF i < group.plus.size %] + [% curr_new = curr_new + 1 %] + [% ELSE %] + [% curr_new = "" %] + [% END %] [% END %] [% END %] + [% current_line_old = current_line_old + group.minus.size %] + [% current_line_new = current_line_new + group.plus.size %] [% ELSE %] [% FOREACH line = group.plus %] [% IF file.is_add %] <tr> - <td class="added" colspan="2"><pre>[% line FILTER html %]</pre></td> + <td class="num">[% current_line_new %]</td> + <td class="added" colspan="3"><pre>[% line FILTER html %]</pre></td> </tr> [% ELSE %] <tr> - <td></td> + <td class="num"></td><td></td> + <td class="num">[% current_line_new %]</td> <td class="added"><pre>[% line FILTER html %]</pre></td> </tr> [% END %] + [% current_line_new = current_line_new + 1 %] [% END %] [% END %] [% ELSE %] @@ -118,14 +150,17 @@ incremental_restore() [% FOREACH line = group.minus %] [% IF file.is_remove %] <tr> - <td class="removed" colspan="2"><pre>[% line FILTER html %]</pre></td> + <td class="num">[% current_line_old %]</td> + <td class="removed" colspan="3"><pre>[% line FILTER html %]</pre></td> </tr> [% ELSE %] <tr> + <td class="num">[% current_line_old %]</td> <td class="removed"><pre>[% line FILTER html %]</pre></td> - <td></td> + <td class="num"></td><td></td> </tr> [% END %] + [% current_line_old = current_line_old + 1 %] [% END %] [% END %] [% END %] diff --git a/template/en/default/attachment/diff-header.html.tmpl b/template/en/default/attachment/diff-header.html.tmpl index 97a6d0527..a5f05f1bb 100644 --- a/template/en/default/attachment/diff-header.html.tmpl +++ b/template/en/default/attachment/diff-header.html.tmpl @@ -37,7 +37,6 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] font-size: 1em; background-color: #c3c3c3; border: 1px solid black; - width: 100%; } .file_head a { @@ -51,7 +50,6 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %] } .section_head { - width: 100%; background-color: #f0f0f0; border: 1px solid black; text-align: left; @@ -70,7 +68,6 @@ table.file_table { tbody.file td { border-left: 1px dashed black; border-right: 1px dashed black; - width: 50%; } tbody.file pre { @@ -95,6 +92,13 @@ tbody.file pre:empty { background-color: #FFCC99; } +.num { + background-color: #ffe9ae; + text-align:right; + padding: 0 0.3em; + width: 3em; +} + .warning { color: red } @@ -196,7 +200,7 @@ tbody.file pre:empty { return twisty.parentNode.parentNode.parentNode.nextSibling; } function get_twisty_from_tbody(tbody) { - return tbody.previousSibling.firstChild.firstChild.firstChild; + return tbody.previousSibling.firstChild.nextSibling.firstChild.firstChild; } [% END %] diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl index b5ab0bf47..7d1c369f7 100644 --- a/template/en/default/filterexceptions.pl +++ b/template/en/default/filterexceptions.pl @@ -448,7 +448,11 @@ 'file.plus_lines', 'bonsai_prefix', 'section.old_start', - 'section_num' + 'section_num', + 'current_line_old', + 'current_line_new', + 'curr_old', + 'curr_new' ], 'admin/admin.html.tmpl' => [ |