Ticket #2028: trac-diff-for-0.9.4.patch
| File trac-diff-for-0.9.4.patch, 85.4 KB (added by trac-project@…, 3 years ago) |
|---|
-
htdocs/css/browser.css
diff -Nru htdocs/css/browser.css htdocs/css/browser.css
46 46 #dirlist td.rev { text-align: right } 47 47 #dirlist td.change { font-size: 85%; vertical-align: middle; white-space: nowrap } 48 48 49 /* Log */ 50 tr.diff input { 51 padding: 0 1em 0 1em; 52 margin: 0; 53 } 54 55 div.buttons { 56 clear: left; 57 } 58 59 #anydiff { 60 margin: 0 0 1em; 61 float: left; 62 } 63 #anydiff form, #anydiff div, #anydiff h2 { 64 display: inline; 65 } 66 #anydiff input { 67 vertical-align: baseline; 68 margin: 0 -0.5em 0 1em; 69 } 70 71 49 72 /* Styles for the revision log table 50 73 (extends the styles for "table.listing") */ 51 74 #chglist { margin-top: 0 } -
htdocs/css/changeset.css
diff -Nru htdocs/css/changeset.css htdocs/css/changeset.css
26 26 27 27 .diff ul.props { font-size: 90%; list-style: disc; margin: .5em 0 0; padding: 0 .5em 1em 2em } 28 28 .diff ul.props li { margin: 0; padding: 0 } 29 30 31 #title dl { 32 display: inline; 33 font-size: 110% 34 } 35 #title dt { 36 font-size: 110%; 37 font-weight: bold; 38 display: inline; 39 margin-left: 3em; 40 } 41 #title dd { 42 display: inline; 43 margin-left: 0.4em; 44 } -
templates/anydiff.cs
diff -Nru templates/anydiff.cs templates/anydiff.cs
1 <?cs include "header.cs"?> 2 3 <div id="ctxtnav" class="nav"> 4 <h2>Navigation</h2><?cs 5 with:links = chrome.links ?> 6 <ul> 7 </ul><?cs 8 /with ?> 9 </div> 10 11 <div id="content" class="changeset"> 12 <div id="title"> 13 <h1>Select Base and Target for Diff:</h1> 14 </div> 15 16 <div id="anydiff"> 17 <form action="<?cs var:anydiff.diff_href ?>" method="post"> 18 <table> 19 <tr> 20 <th><label for="old_path">From:</label></th> 21 <td> 22 <input type="text" id="old_path" name="old_path" value="<?cs 23 var:anydiff.old_path ?>" size="44" /> 24 <label for="old_rev">at Revision:</label> 25 <input type="text" id="old_rev" name="old" value="<?cs 26 var:anydiff.old_rev ?>" size="4" /> 27 </td> 28 </tr> 29 <tr> 30 <th><label for="new_path">To:</label></th> 31 <td> 32 <input type="text" id="new_path" name="path" value="<?cs 33 var:anydiff.new_path ?>" size="44" /> 34 <label for="new_rev">at Revision:</label> 35 <input type="text" id="new_rev" name="new" value="<?cs 36 var:anydiff.new_rev ?>" size="4" /> 37 </td> 38 </tr> 39 </table> 40 <div class="buttons"> 41 <input type="submit" value="View changes" /> 42 </div> 43 </form> 44 </div> 45 </div> 46 47 <?cs include "footer.cs"?> -
templates/browser.cs
diff -Nru templates/browser.cs templates/browser.cs
3 3 4 4 <div id="ctxtnav" class="nav"> 5 5 <ul> 6 <li class="last"><a href="<?cs var:browser.log_href ?>">Revision Log</a></li> 6 <li class="first"><a href="<?cs var:browser.restr_changeset_href ?>"> 7 Last Change</a></li> 8 <li class="last"><a href="<?cs var:browser.log_href ?>"> 9 Revision Log</a></li> 7 10 </ul> 8 11 </div> 9 12 13 10 14 <div id="content" class="browser"> 11 15 <h1><?cs call:browser_path_links(browser.path, browser) ?></h1> 12 16 13 17 <div id="jumprev"> 14 <form action="" method="get"><div> 15 <label for="rev">View revision:</label> 16 <input type="text" id="rev" name="rev" value="<?cs 17 var:browser.revision ?>" size="4" /> 18 </div></form> 18 <form action="" method="get"> 19 <div> 20 <label for="rev">View revision:</label> 21 <input type="text" id="rev" name="rev" value="<?cs 22 var:browser.revision ?>" size="4" /> 23 </div> 24 </form> 19 25 </div> 20 26 21 27 <?cs if:browser.is_dir ?> … … 114 120 ?>/TracBrowser">TracBrowser</a> for help on using the browser. 115 121 </div> 116 122 123 <div id="anydiff"><?cs 124 if len(browser.path) > #1 ?> 125 <form action="<?cs var:browser.anydiff_href ?>" method="get"> 126 <input type="hidden" name="new_path" value="<?cs var:browser.path ?>" /> 127 <input type="hidden" name="old_path" value="<?cs var:browser.path ?>" /> 128 <input type="hidden" name="new_rev" value="<?cs var:browser.revision ?>" /> 129 <input type="hidden" name="old_rev" value="<?cs var:browser.revision ?>" /> 130 <div class="buttons"> 131 <input type="submit" value="View changes..." title="Prepare an Arbitrary Diff" /> 132 </div> 133 </form><?cs 134 /if ?> 135 </div> 136 117 137 </div> 118 138 <?cs include:"footer.cs"?> -
templates/changeset.cs
diff -Nru templates/changeset.cs templates/changeset.cs
1 <?cs include "header.cs"?>2 <?cs include "macros.cs"?>3 4 <div id="ctxtnav" class="nav">5 <h2>Changeset Navigation</h2><?cs6 with:links = chrome.links ?>7 <ul><?cs8 if:len(links.prev) ?>9 <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>">10 ← <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs11 var:links.prev.0.title ?>">Previous Changeset</a>12 </li><?cs13 /if ?><?cs14 if:len(links.next) ?>15 <li class="<?cs if:len(links.prev) ?>first <?cs /if ?>last">16 <a class="next" href="<?cs var:links.next.0.href ?>" title="<?cs17 var:links.next.0.title ?>">Next Changeset</a> →18 </li><?cs19 /if ?>20 </ul><?cs21 /with ?>22 </div>23 24 <div id="content" class="changeset">25 <h1>Changeset <?cs var:changeset.revision ?></h1>26 27 <?cs each:change = changeset.changes ?><?cs28 if:len(change.diff) ?><?cs29 set:has_diffs = 1 ?><?cs30 /if ?><?cs31 /each ?><?cs if:has_diffs || diff.options.ignoreblanklines32 || diff.options.ignorecase || diff.options.ignorewhitespace ?>33 <form method="post" id="prefs" action="">34 <div>35 <label for="style">View differences</label>36 <select id="style" name="style">37 <option value="inline"<?cs38 if:diff.style == 'inline' ?> selected="selected"<?cs39 /if ?>>inline</option>40 <option value="sidebyside"<?cs41 if:diff.style == 'sidebyside' ?> selected="selected"<?cs42 /if ?>>side by side</option>43 </select>44 <div class="field">45 Show <input type="text" name="contextlines" id="contextlines" size="2"46 maxlength="3" value="<?cs var:diff.options.contextlines ?>" />47 <label for="contextlines">lines around each change</label>48 </div>49 <fieldset id="ignore">50 <legend>Ignore:</legend>51 <div class="field">52 <input type="checkbox" id="blanklines" name="ignoreblanklines"<?cs53 if:diff.options.ignoreblanklines ?> checked="checked"<?cs /if ?> />54 <label for="blanklines">Blank lines</label>55 </div>56 <div class="field">57 <input type="checkbox" id="case" name="ignorecase"<?cs58 if:diff.options.ignorecase ?> checked="checked"<?cs /if ?> />59 <label for="case">Case changes</label>60 </div>61 <div class="field">62 <input type="checkbox" id="whitespace" name="ignorewhitespace"<?cs63 if:diff.options.ignorewhitespace ?> checked="checked"<?cs /if ?> />64 <label for="whitespace">White space changes</label>65 </div>66 </fieldset>67 <div class="buttons">68 <input type="submit" name="update" value="Update" />69 </div>70 </div>71 </form><?cs /if ?>72 73 <?cs def:node_change(item,cl,kind) ?><?cs74 set:ndiffs = len(item.diff) ?><?cs75 set:nprops = len(item.props) ?>76 <div class="<?cs var:cl ?>"></div><?cs77 if:cl == "rem" ?>78 <a title="Show what was removed (rev. <?cs var:item.rev.old ?>)" href="<?cs79 var:item.browser_href.old ?>"><?cs var:item.path.old ?></a><?cs80 else ?>81 <a title="Show entry in browser" href="<?cs82 var:item.browser_href.new ?>"><?cs var:item.path.new ?></a><?cs83 /if ?>84 <span class="comment">(<?cs var:kind ?>)</span><?cs85 if:item.path.old && item.change == 'copy' || item.change == 'move' ?>86 <small><em>(<?cs var:kind ?> from <a href="<?cs87 var:item.browser_href.old ?>" title="Show original file (rev. <?cs88 var:item.rev.old ?>)"><?cs var:item.path.old ?></a>)</em></small><?cs89 /if ?><?cs90 if:$ndiffs + $nprops > #0 ?>91 (<a href="#file<?cs var:name(item) ?>" title="Show differences"><?cs92 if:$ndiffs > #0 ?><?cs var:ndiffs ?> diff<?cs if:$ndiffs > #1 ?>s<?cs /if ?><?cs93 /if ?><?cs94 if:$ndiffs && $nprops ?>, <?cs /if ?><?cs95 if:$nprops > #0 ?><?cs var:nprops ?> prop<?cs if:$nprops > #1 ?>s<?cs /if ?><?cs96 /if ?></a>)<?cs97 elif:cl == "mod" ?>98 (<a href="<?cs var:item.browser_href.old ?>"99 title="Show previous version in browser">previous</a>)<?cs100 /if ?>101 <?cs /def ?>102 103 <dl id="overview">104 <dt class="time">Timestamp:</dt>105 <dd class="time"><?cs var:changeset.time ?></dd>106 <dt class="author">Author:</dt>107 <dd class="author"><?cs var:changeset.author ?></dd>108 <dt class="message">Message:</dt>109 <dd class="message" id="searchable"><?cs110 alt:changeset.message ?> <?cs /alt ?></dd>111 <dt class="files">Files:</dt>112 <dd class="files">113 <ul><?cs each:item = changeset.changes ?>114 <li><?cs115 if:item.change == 'add' ?><?cs116 call:node_change(item, 'add', 'added') ?><?cs117 elif:item.change == 'delete' ?><?cs118 call:node_change(item, 'rem', 'deleted') ?><?cs119 elif:item.change == 'copy' ?><?cs120 call:node_change(item, 'cp', 'copied') ?><?cs121 elif:item.change == 'move' ?><?cs122 call:node_change(item, 'mv', 'moved') ?><?cs123 elif:item.change == 'edit' ?><?cs124 call:node_change(item, 'mod', 'modified') ?><?cs125 /if ?>126 </li>127 <?cs /each ?></ul>128 </dd>129 </dl>130 131 <div class="diff">132 <div id="legend">133 <h3>Legend:</h3>134 <dl>135 <dt class="unmod"></dt><dd>Unmodified</dd>136 <dt class="add"></dt><dd>Added</dd>137 <dt class="rem"></dt><dd>Removed</dd>138 <dt class="mod"></dt><dd>Modified</dd>139 <dt class="cp"></dt><dd>Copied</dd>140 <dt class="mv"></dt><dd>Moved</dd>141 </dl>142 </div>143 <ul class="entries"><?cs144 each:item = changeset.changes ?><?cs145 if:len(item.diff) || len(item.props) ?><li class="entry" id="file<?cs146 var:name(item) ?>"><h2><a href="<?cs147 var:item.browser_href.new ?>" title="Show new revision <?cs148 var:item.rev.new ?> of this file in browser"><?cs149 var:item.path.new ?></a></h2><?cs150 if:len(item.props) ?><ul class="props"><?cs151 each:prop = item.props ?><li>Property <strong><?cs152 var:name(prop) ?></strong> <?cs153 if:prop.old && prop.new ?>changed from <?cs154 elif:!prop.old ?>set<?cs155 else ?>deleted<?cs156 /if ?><?cs157 if:prop.old && prop.new ?><em><tt><?cs var:prop.old ?></tt></em><?cs /if ?><?cs158 if:prop.new ?> to <em><tt><?cs var:prop.new ?></tt></em><?cs /if ?></li><?cs159 /each ?></ul><?cs160 /if ?><?cs161 if:len(item.diff) ?><table class="<?cs162 var:diff.style ?>" summary="Differences" cellspacing="0"><?cs163 if:diff.style == 'sidebyside' ?>164 <colgroup class="l"><col class="lineno" /><col class="content" /></colgroup>165 <colgroup class="r"><col class="lineno" /><col class="content" /></colgroup>166 <thead><tr>167 <th colspan="2"><a href="<?cs168 var:item.browser_href.old ?>" title="Show old rev. <?cs169 var:item.rev.old ?> of <?cs var:item.path.old ?>">Revision <?cs170 var:item.rev.old ?></a></th>171 <th colspan="2"><a href="<?cs172 var:item.browser_href.new ?>" title="Show new rev. <?cs173 var:item.rev.new ?> of <?cs var:item.path.new ?>">Revision <?cs174 var:item.rev.new ?></a></th>175 </tr>176 </thead><?cs177 each:change = item.diff ?><tbody><?cs178 call:diff_display(change, diff.style) ?></tbody><?cs179 if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr>180 <th>…</th><td> </td><th>…</th><td> </td>181 </tr></tbody><?cs /if ?><?cs182 /each ?><?cs183 else ?>184 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup>185 <thead><tr>186 <th title="Revision <?cs var:item.rev.old ?>"><a href="<?cs187 var:item.browser_href.old ?>" title="Show old version of <?cs188 var:item.path.old ?>">r<?cs var:item.rev.old ?></a></th>189 <th title="Revision <?cs var:item.rev.new ?>"><a href="<?cs190 var:item.browser_href.new ?>" title="Show new version of <?cs191 var:item.path.new ?>">r<?cs var:item.rev.new ?></a></th>192 <th> </th></tr>193 </thead><?cs194 each:change = item.diff ?><?cs195 call:diff_display(change, diff.style) ?><?cs196 if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr>197 <th>…</th><th>…</th><td> </td>198 </tr></tbody><?cs /if ?><?cs199 /each ?><?cs200 /if ?></table><?cs201 /if ?></li><?cs202 /if ?><?cs203 /each ?></ul>204 </div>205 206 </div>207 <?cs include "footer.cs"?> -
templates/diff.cs
diff -Nru templates/diff.cs templates/diff.cs
1 <?cs include "header.cs"?> 2 <?cs include "macros.cs"?> 3 4 <div id="ctxtnav" class="nav"> 5 <h2>Navigation</h2><?cs 6 with:links = chrome.links ?> 7 <ul><?cs 8 if:diff.chgset ?><?cs 9 if:len(links.prev) ?> 10 <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>"> 11 ← <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs 12 var:links.prev.0.title ?>">Previous <?cs 13 if:diff.restricted ?>Change<?cs else ?>Changeset<?cs /if ?></a> 14 </li><?cs 15 /if ?><?cs 16 if:len(links.next) ?> 17 <li class="<?cs if:len(links.prev) ?>first <?cs /if ?>last"> 18 <a class="next" href="<?cs var:links.next.0.href ?>" title="<?cs 19 var:links.next.0.title ?>">Next <?cs 20 if:diff.restricted ?>Change<?cs else ?>Changeset<?cs /if ?></a> → 21 </li><?cs 22 /if ?><?cs 23 else ?> 24 <li class="first"><a href="<?cs var:diff.reverse_href ?>">Reverse Diff</a></li><?cs 25 /if ?> 26 </ul><?cs 27 /with ?> 28 </div> 29 30 <div id="content" class="changeset"> 31 <div id="title"><?cs 32 if:diff.chgset ?><?cs 33 if:diff.restricted ?> 34 <h1>Changeset <a title="Show full changeset" href="<?cs var:diff.href.new_rev ?>"> 35 <?cs var:diff.new_rev ?></a> 36 for <a title="Show entry in browser" href="<?cs var:diff.href.new_path ?>"> 37 <?cs var:diff.new_path ?></a> 38 </h1><?cs 39 else ?> 40 <h1>Changeset <?cs var:diff.new_rev ?></h1><?cs 41 /if ?><?cs 42 else ?><?cs 43 if:diff.restricted ?> 44 <h1>Changes in <a title="Show entry in browser" href="<?cs var:diff.href.new_path ?>"> 45 <?cs var:diff.new_path ?></a> 46 from revision <a title="Show full changeset" href="<?cs var:diff.href.old_rev ?>"> 47 <?cs var:diff.old_rev ?></a> 48 to <a title="Show full changeset" href="<?cs var:diff.href.new_rev ?>"> 49 <?cs var:diff.new_rev ?></a> 50 </h1><?cs 51 else ?> 52 <h1>Changes from <a title="Show entry in browser" href="<?cs var:diff.href.old_path ?>"> 53 <?cs var:diff.old_path ?></a> 54 at revision <a title="Show full changeset" href="<?cs var:diff.href.old_rev ?>"> 55 <?cs var:diff.old_rev ?></a> 56 to <a title="Show entry in browser" href="<?cs var:diff.href.new_path ?>"> 57 <?cs var:diff.new_path ?></a> 58 at revision <a title="Show full changeset" href="<?cs var:diff.href.new_rev ?>"> 59 <?cs var:diff.new_rev ?></a> 60 </h1><?cs 61 /if ?><?cs 62 /if ?> 63 </div> 64 65 <?cs each:change = diff.changes ?><?cs 66 if:len(change.diff) ?><?cs 67 set:has_diffs = 1 ?><?cs 68 /if ?><?cs 69 /each ?><?cs if:has_diffs || diff.options.ignoreblanklines 70 || diff.options.ignorecase || diff.options.ignorewhitespace ?> 71 <form method="post" id="prefs" action=""> 72 <div><?cs 73 if:!diff.chgset ?> 74 <input type="hidden" name="old_path" value="<?cs var:diff.old_path ?>" /> 75 <input type="hidden" name="path" value="<?cs var:diff.new_path ?>" /> 76 <input type="hidden" name="old" value="<?cs var:diff.old_rev ?>" /> 77 <input type="hidden" name="new" value="<?cs var:diff.new_rev ?>" /><?cs 78 /if ?> 79 <label for="style">View differences</label> 80 <select id="style" name="style"> 81 <option value="inline"<?cs 82 if:diff.style == 'inline' ?> selected="selected"<?cs 83 /if ?>>inline</option> 84 <option value="sidebyside"<?cs 85 if:diff.style == 'sidebyside' ?> selected="selected"<?cs 86 /if ?>>side by side</option> 87 </select> 88 <div class="field"> 89 Show <input type="text" name="contextlines" id="contextlines" size="2" 90 maxlength="3" value="<?cs var:diff.options.contextlines ?>" /> 91 <label for="contextlines">lines around each change</label> 92 </div> 93 <fieldset id="ignore"> 94 <legend>Ignore:</legend> 95 <div class="field"> 96 <input type="checkbox" id="blanklines" name="ignoreblanklines"<?cs 97 if:diff.options.ignoreblanklines ?> checked="checked"<?cs /if ?> /> 98 <label for="blanklines">Blank lines</label> 99 </div> 100 <div class="field"> 101 <input type="checkbox" id="case" name="ignorecase"<?cs 102 if:diff.options.ignorecase ?> checked="checked"<?cs /if ?> /> 103 <label for="case">Case changes</label> 104 </div> 105 <div class="field"> 106 <input type="checkbox" id="whitespace" name="ignorewhitespace"<?cs 107 if:diff.options.ignorewhitespace ?> checked="checked"<?cs /if ?> /> 108 <label for="whitespace">White space changes</label> 109 </div> 110 </fieldset> 111 <div class="buttons"> 112 <input type="submit" name="update" value="Update" /> 113 </div> 114 </div> 115 </form><?cs /if ?> 116 117 <?cs def:node_change(item,cl,kind) ?><?cs 118 set:ndiffs = len(item.diff) ?><?cs 119 set:nprops = len(item.props) ?> 120 <div class="<?cs var:cl ?>"></div><?cs 121 if:cl == "rem" ?> 122 <a title="Show what was removed (rev. <?cs var:item.rev.old ?>)" href="<?cs 123 var:item.browser_href.old ?>"><?cs var:item.path.old ?></a><?cs 124 else ?> 125 <a title="Show entry in browser" href="<?cs 126 var:item.browser_href.new ?>"><?cs var:item.path.new ?></a><?cs 127 /if ?> 128 <span class="comment">(<?cs var:kind ?>)</span><?cs 129 if:item.path.old && item.change == 'copy' || item.change == 'move' ?> 130 <small><em>(<?cs var:kind ?> from <a href="<?cs 131 var:item.browser_href.old ?>" title="Show original file (rev. <?cs 132 var:item.rev.old ?>)"><?cs var:item.path.old ?></a>)</em></small><?cs 133 /if ?><?cs 134 if:$ndiffs + $nprops > #0 ?> 135 (<a href="#file<?cs var:name(item) ?>" title="Show differences"><?cs 136 if:$ndiffs > #0 ?><?cs var:ndiffs ?> diff<?cs if:$ndiffs > #1 ?>s<?cs /if ?><?cs 137 /if ?><?cs 138 if:$ndiffs && $nprops ?>, <?cs /if ?><?cs 139 if:$nprops > #0 ?><?cs var:nprops ?> prop<?cs if:$nprops > #1 ?>s<?cs /if ?><?cs 140 /if ?></a>)<?cs 141 elif:cl == "mod" ?> 142 (<a href="<?cs var:item.browser_href.old ?>" 143 title="Show previous version in browser">previous</a>)<?cs 144 /if ?> 145 <?cs /def ?> 146 147 <dl id="overview"><?cs 148 if:diff.chgset ?> 149 <dt class="time">Timestamp:</dt> 150 <dd class="time"><?cs var:changeset.time ?></dd> 151 <dt class="author">Author:</dt> 152 <dd class="author"><?cs var:changeset.author ?></dd> 153 <dt class="message">Message:</dt> 154 <dd class="message" id="searchable"><?cs 155 alt:changeset.message ?> <?cs /alt ?></dd><?cs 156 /if ?> 157 <dt class="files"><?cs 158 if:len(diff.changes) > #0 ?> 159 Files:<?cs 160 else ?> 161 (None)<?cs 162 /if ?> 163 </dt> 164 <dd class="files"> 165 <ul><?cs each:item = diff.changes ?> 166 <li><?cs 167 if:item.change == 'add' ?><?cs 168 call:node_change(item, 'add', 'added') ?><?cs 169 elif:item.change == 'delete' ?><?cs 170 call:node_change(item, 'rem', 'deleted') ?><?cs 171 elif:item.change == 'copy' ?><?cs 172 call:node_change(item, 'cp', 'copied') ?><?cs 173 elif:item.change == 'move' ?><?cs 174 call:node_change(item, 'mv', 'moved') ?><?cs 175 elif:item.change == 'edit' ?><?cs 176 call:node_change(item, 'mod', 'modified') ?><?cs 177 /if ?> 178 </li> 179 <?cs /each ?></ul> 180 </dd> 181 </dl> 182 183 <div class="diff"> 184 <div id="legend"> 185 <h3>Legend:</h3> 186 <dl> 187 <dt class="unmod"></dt><dd>Unmodified</dd> 188 <dt class="add"></dt><dd>Added</dd> 189 <dt class="rem"></dt><dd>Removed</dd> 190 <dt class="mod"></dt><dd>Modified</dd> 191 <dt class="cp"></dt><dd>Copied</dd> 192 <dt class="mv"></dt><dd>Moved</dd> 193 </dl> 194 </div> 195 <ul class="entries"><?cs 196 each:item = diff.changes ?><?cs 197 if:len(item.diff) || len(item.props) ?><li class="entry" id="file<?cs 198 var:name(item) ?>"><h2><a href="<?cs 199 var:item.browser_href.new ?>" title="Show new revision <?cs 200 var:item.rev.new ?> of this file in browser"><?cs 201 var:item.path.new ?></a></h2><?cs 202 if:len(item.props) ?><ul class="props"><?cs 203 each:prop = item.props ?><li>Property <strong><?cs 204 var:name(prop) ?></strong> <?cs 205 if:prop.old && prop.new ?>changed from <?cs 206 elif:!prop.old ?>set<?cs 207 else ?>deleted<?cs 208 /if ?><?cs 209 if:prop.old && prop.new ?><em><tt><?cs var:prop.old ?></tt></em><?cs /if ?><?cs 210 if:prop.new ?> to <em><tt><?cs var:prop.new ?></tt></em><?cs /if ?></li><?cs 211 /each ?></ul><?cs 212 /if ?><?cs 213 if:len(item.diff) ?><table class="<?cs 214 var:diff.style ?>" summary="Differences" cellspacing="0"><?cs 215 if:diff.style == 'sidebyside' ?> 216 <colgroup class="l"><col class="lineno" /><col class="content" /></colgroup> 217 <colgroup class="r"><col class="lineno" /><col class="content" /></colgroup> 218 <thead><tr> 219 <th colspan="2"><a href="<?cs 220 var:item.browser_href.old ?>" title="Show old rev. <?cs 221 var:item.rev.old ?> of <?cs var:item.path.old ?>">Revision <?cs 222 var:item.rev.old ?></a></th> 223 <th colspan="2"><a href="<?cs 224 var:item.browser_href.new ?>" title="Show new rev. <?cs 225 var:item.rev.new ?> of <?cs var:item.path.new ?>">Revision <?cs 226 var:item.rev.new ?></a></th> 227 </tr> 228 </thead><?cs 229 each:change = item.diff ?><tbody><?cs 230 call:diff_display(change, diff.style) ?></tbody><?cs 231 if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr> 232 <th>…</th><td> </td><th>…</th><td> </td> 233 </tr></tbody><?cs /if ?><?cs 234 /each ?><?cs 235 else ?> 236 <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup> 237 <thead><tr> 238 <th title="Revision <?cs var:item.rev.old ?>"><a href="<?cs 239 var:item.browser_href.old ?>" title="Show old version of <?cs 240 var:item.path.old ?>">r<?cs var:item.rev.old ?></a></th> 241 <th title="Revision <?cs var:item.rev.new ?>"><a href="<?cs 242 var:item.browser_href.new ?>" title="Show new version of <?cs 243 var:item.path.new ?>">r<?cs var:item.rev.new ?></a></th> 244 <th> </th></tr> 245 </thead><?cs 246 each:change = item.diff ?><?cs 247 call:diff_display(change, diff.style) ?><?cs 248 if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr> 249 <th>…</th><th>…</th><td> </td> 250 </tr></tbody><?cs /if ?><?cs 251 /each ?><?cs 252 /if ?></table><?cs 253 /if ?></li><?cs 254 /if ?><?cs 255 /each ?></ul> 256 </div> 257 258 </div> 259 <?cs include "footer.cs"?> -
templates/log.cs
diff -Nru templates/log.cs templates/log.cs
3 3 4 4 <div id="ctxtnav" class="nav"> 5 5 <ul> 6 <li class="last"><a href="<?cs 7 var:log.browser_href ?>">View Latest Revision</a></li><?cs 6 <li class="last"> 7 <a href="<?cs var:log.browser_href ?>">View Latest Revision</a> 8 </li><?cs 8 9 if:len(chrome.links.prev) ?> 9 10 <li class="first<?cs if:!len(chrome.links.next) ?> last<?cs /if ?>"> 10 11 ← <a href="<?cs var:chrome.links.prev.0.href ?>" title="<?cs … … 61 62 title="Warning: by updating, you will clear the page history" /> 62 63 </div> 63 64 </form> 65 64 66 <div class="diff"> 65 67 <div id="legend"> 66 68 <h3>Legend:</h3> … … 74 76 </dl> 75 77 </div> 76 78 </div> 79 80 <form action="<?cs var:log.href ?>" method="post"> 81 <div class="buttons"><input type="submit" value="View changes" 82 title="Diff from Old Revision to New Revision (select them below)" /> 83 </div> 77 84 <table id="chglist" class="listing"> 78 85 <thead> 79 86 <tr> 87 <th>Old</th> 88 <th>New</th> 80 89 <th class="change"></th> 81 90 <th class="data">Date</th> 82 91 <th class="rev">Rev</th> … … 87 96 </thead> 88 97 <tbody><?cs 89 98 set:indent = #1 ?><?cs 99 set:idx = #0 ?><?cs 90 100 each:item = log.items ?><?cs 91 101 if:item.copyfrom_path ?> 92 102 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 93 <td class="copyfrom_path" colspan=" 6" style="padding-left: <?cs var:indent ?>em">103 <td class="copyfrom_path" colspan="8" style="padding-left: <?cs var:indent ?>em"> 94 104 copied from <a href="<?cs var:item.browser_href ?>"?><?cs var:item.copyfrom_path ?></a>: 95 105 </td> 96 106 </tr><?cs … … 99 109 set:indent = #1 ?><?cs 100 110 /if ?> 101 111 <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>"> 112 <td><input type="radio" name="old" 113 value="<?cs var:item.path ?>#<?cs var:item.rev ?>" <?cs 114 if:idx == #1 ?> checked="checked" <?cs /if ?> /></td> 115 <td><input type="radio" name="new" 116 value="<?cs var:item.path ?>#<?cs var:item.rev ?>" <?cs 117 if:idx == #0 ?> checked="checked" <?cs /if ?> /></td> 102 118 <td class="change" style="padding-left:<?cs var:indent ?>em"> 103 119 <a title="View log starting at this revision" href="<?cs var:item.log_href ?>"> 104 120 <span class="<?cs var:item.change ?>"></span> … … 117 133 <td class="author"><?cs var:log.changes[item.rev].author ?></td> 118 134 <td class="summary"><?cs var:log.changes[item.rev].message ?></td> 119 135 </tr><?cs 136 set:idx = idx + 1 ?><?cs 120 137 /each ?> 121 138 </tbody> 122 </table><?cs 139 </table> 140 <div class="buttons"><input type="submit" value="View changes" 141 title="Diff from Old Revision to New Revision (select them above)" /> 142 </div> 143 </form><?cs 123 144 if:len(links.prev) || len(links.next) ?><div id="paging" class="nav"><ul><?cs 124 145 if:len(links.prev) ?><li class="first<?cs 125 146 if:!len(links.next) ?> last<?cs /if ?>">← <a href="<?cs -
templates/wiki.cs
diff -Nru templates/wiki.cs templates/wiki.cs
154 154 var:wiki.page_name ?></a></h1> 155 155 <?cs if:len(wiki.history) ?><form method="get" action=""> 156 156 <input type="hidden" name="action" value="diff" /> 157 <div class="buttons"> 158 <input type="submit" value="View changes" /> 159 </div> 157 160 <table id="wikihist" class="listing" summary="Change history"> 158 161 <thead><tr> 159 162 <th class="diff"></th> -
trac/__init__.py
diff -Nru trac/__init__.py trac/__init__.py
10 10 """ 11 11 __docformat__ = 'epytext en' 12 12 13 __version__ = '0.9.4 '13 __version__ = '0.9.4-trac-diff' 14 14 __url__ = 'http://trac.edgewall.com/' 15 15 __copyright__ = '(C
