<?cs include "header.cs"?> <?cs include "macros.cs"?> <div id="ctxtnav" class="nav"> <h2>Navigation</h2><?cs with:links = chrome.links ?> <ul><?cs if:changeset.chgset ?><?cs if:changeset.restricted ?><?cs set:change = "Change" ?><?cs else ?><?cs set:change = "Changeset" ?><?cs /if ?> <li class="first"><?cs if:len(links.prev) ?> ← <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs var:links.prev.0.title ?>">Previous <?cs var:change ?></a> <?cs else ?> <span class="missing">← Previous <?cs var:change ?></span><?cs /if ?> </li> <li class="last"><?cs if:len(links.next) ?> <a class="next" href="<?cs var:links.next.0.href ?>" title="<?cs var:links.next.0.title ?>">Next <?cs var:change ?></a> → <?cs else ?> <span class="missing">Next <?cs var:change ?> →</span><?cs /if ?> </li><?cs else ?> <li class="last"><a href="<?cs var:changeset.reverse_href ?>">Reverse Diff</a></li><?cs /if ?> </ul><?cs /with ?> </div> <div id="content" class="changeset"> <div id="title"><?cs if:changeset.chgset ?><?cs if:changeset.restricted ?> <h1>Changeset <a title="Show full changeset" href="<?cs var:changeset.href.new_rev ?>"> <?cs var:changeset.new_rev ?></a> for <a title="Show entry in browser" href="<?cs var:changeset.href.new_path ?>"> <?cs var:changeset.new_path ?></a> </h1><?cs else ?> <h1>Changeset <?cs var:changeset.new_rev ?></h1><?cs /if ?><?cs else ?><?cs if:changeset.restricted ?> <h1>Changes in <a title="Show entry in browser" href="<?cs var:changeset.href.new_path ?>"> <?cs var:changeset.new_path ?></a> <a title="Show revision log" href="<?cs var:changeset.href.log ?>"> [<?cs var:changeset.old_rev ?>:<?cs var:changeset.new_rev ?>]</a> </h1><?cs else ?> <h1>Changes from <a title="Show entry in browser" href="<?cs var:changeset.href.old_path ?>"> <?cs var:changeset.old_path ?></a> at <a title="Show full changeset" href="<?cs var:changeset.href.old_rev ?>"> r<?cs var:changeset.old_rev ?></a> to <a title="Show entry in browser" href="<?cs var:changeset.href.new_path ?>"> <?cs var:changeset.new_path ?></a> at <a title="Show full changeset" href="<?cs var:changeset.href.new_rev ?>"> r<?cs var:changeset.new_rev ?></a> </h1><?cs /if ?><?cs /if ?> </div> <?cs each:change = changeset.changes ?><?cs if:len(change.diff) ?><?cs set:has_diffs = 1 ?><?cs /if ?><?cs /each ?><?cs if:has_diffs || diff.options.ignoreblanklines || diff.options.ignorecase || diff.options.ignorewhitespace ?> <form method="post" id="prefs" action=""> <div><?cs if:!changeset.chgset ?> <input type="hidden" name="old_path" value="<?cs var:changeset.old_path ?>" /> <input type="hidden" name="new_path" value="<?cs var:changeset.new_path ?>" /> <input type="hidden" name="old" value="<?cs var:changeset.old_rev ?>" /> <input type="hidden" name="new" value="<?cs var:changeset.new_rev ?>" /><?cs /if ?> <label for="style">View differences</label> <select id="style" name="style"> <option value="inline"<?cs if:diff.style == 'inline' ?> selected="selected"<?cs /if ?>>inline</option> <option value="sidebyside"<?cs if:diff.style == 'sidebyside' ?> selected="selected"<?cs /if ?>>side by side</option> </select> <div class="field"> Show <input type="text" name="contextlines" id="contextlines" size="2" maxlength="3" value="<?cs var:diff.options.contextlines ?>" /> <label for="contextlines">lines around each change</label> </div> <fieldset id="ignore"> <legend>Ignore:</legend> <div class="field"> <input type="checkbox" id="blanklines" name="ignoreblanklines"<?cs if:diff.options.ignoreblanklines ?> checked="checked"<?cs /if ?> /> <label for="blanklines">Blank lines</label> </div> <div class="field"> <input type="checkbox" id="case" name="ignorecase"<?cs if:diff.options.ignorecase ?> checked="checked"<?cs /if ?> /> <label for="case">Case changes</label> </div> <div class="field"> <input type="checkbox" id="whitespace" name="ignorewhitespace"<?cs if:diff.options.ignorewhitespace ?> checked="checked"<?cs /if ?> /> <label for="whitespace">White space changes</label> </div> </fieldset> <div class="buttons"> <input type="submit" name="update" value="Update" /> </div> </div> </form><?cs /if ?> <?cs def:node_change(item,cl,kind) ?><?cs set:ndiffs = len(item.diff) ?><?cs set:nprops = len(item.props) ?> <div class="<?cs var:cl ?>"></div><?cs if:cl == "rem" ?> <a title="Show what was removed (rev. <?cs var:item.rev.old ?>)" href="<?cs var:item.browser_href.old ?>"><?cs var:item.path.old ?></a><?cs else ?> <a title="Show entry in browser" href="<?cs var:item.browser_href.new ?>"><?cs alt:item.path.new ?>(root)<?cs /alt?></a><?cs /if ?> <span class="comment">(<?cs var:kind ?>)</span><?cs if:item.path.old && item.change == 'copy' || item.change == 'move' ?> <small><em>(<?cs var:kind ?> from <a href="<?cs var:item.browser_href.old ?>" title="Show original file (rev. <?cs var:item.rev.old ?>)"><?cs var:item.path.old ?></a>)</em></small><?cs /if ?><?cs if:item.diff_href ?> (<a href="<?cs var:item.diff_href ?>" title="Show differences">view diffs</a>)<?cs elif:$ndiffs + $nprops > #0 ?> (<a href="#file<?cs var:name(item) ?>" title="Show differences"><?cs if:$ndiffs > #0 ?><?cs var:ndiffs ?> diff<?cs if:$ndiffs > #1 ?>s<?cs /if ?><?cs /if ?><?cs if:$ndiffs && $nprops ?>, <?cs /if ?><?cs if:$nprops > #0 ?><?cs var:nprops ?> prop<?cs if:$nprops > #1 ?>s<?cs /if ?><?cs /if ?></a>)<?cs elif:cl == "mod" ?> (<a href="<?cs var:item.browser_href.old ?>" title="Show previous version in browser">previous</a>)<?cs /if ?> <?cs /def ?> <dl id="overview"><?cs if:changeset.chgset ?> <dt class="property time">Timestamp:</dt> <dd class="time"><?cs var:changeset.time ?> (<?cs alt:changeset.age ?>less than one hour<?cs /alt ?> ago)</dd> <dt class="property author">Author:</dt> <dd class="author"><?cs var:changeset.author ?></dd> <?cs each:prop = changeset.properties ?> <dt class="property <?cs var:prop.htmlclass ?>"><?cs var:prop.name ?>:</dt> <dd class="<?cs var:prop.htmlclass ?>"><?cs var:prop.value ?></dd> <?cs /each ?> <dt class="property message">Message:</dt> <dd class="message" id="searchable"><?cs alt:changeset.message ?> <?cs /alt ?></dd><?cs /if ?> <dt class="property files"><?cs if:len(changeset.changes) > #0 ?> Files:<?cs else ?> (No files)<?cs /if ?> </dt> <dd class="files"> <ul><?cs each:item = changeset.changes ?> <li><?cs if:item.change == 'add' ?><?cs call:node_change(item, 'add', 'added') ?><?cs elif:item.change == 'delete' ?><?cs call:node_change(item, 'rem', 'deleted') ?><?cs elif:item.change == 'copy' ?><?cs call:node_change(item, 'cp', 'copied') ?><?cs elif:item.change == 'move' ?><?cs call:node_change(item, 'mv', 'moved') ?><?cs elif:item.change == 'edit' ?><?cs call:node_change(item, 'mod', 'modified') ?><?cs /if ?> </li> <?cs /each ?></ul> </dd> </dl> <div class="diff"> <div id="legend"> <h3>Legend:</h3> <dl> <dt class="unmod"></dt><dd>Unmodified</dd> <dt class="add"></dt><dd>Added</dd> <dt class="rem"></dt><dd>Removed</dd> <dt class="mod"></dt><dd>Modified</dd> <dt class="cp"></dt><dd>Copied</dd> <dt class="mv"></dt><dd>Moved</dd> </dl> </div> <ul class="entries"><?cs each:item = changeset.changes ?><?cs if:len(item.diff) || len(item.props) ?><li class="entry" id="file<?cs var:name(item) ?>"><h2><a href="<?cs var:item.browser_href.new ?>" title="Show new revision <?cs var:item.rev.new ?> of this file in browser"><?cs var:item.path.new ?></a></h2><?cs if:len(item.props) ?><ul class="props"><?cs each:prop = item.props ?><li>Property <strong><?cs var:prop.name ?></strong> <?cs if:prop.old && prop.new ?>changed from <?cs elif:!prop.old ?>set<?cs else ?>deleted<?cs /if ?><?cs if:prop.old && prop.new ?><em><tt><?cs var:prop.old ?></tt></em><?cs /if ?><?cs if:prop.new ?> to <em><tt><?cs var:prop.new ?></tt></em><?cs /if ?></li><?cs /each ?></ul><?cs /if ?><?cs if:len(item.diff) ?><table class="<?cs var:diff.style ?>" summary="Differences" cellspacing="0"><?cs if:diff.style == 'sidebyside' ?> <colgroup class="l"><col class="lineno" /><col class="content" /></colgroup> <colgroup class="r"><col class="lineno" /><col class="content" /></colgroup> <thead><tr> <th colspan="2"><a href="<?cs var:item.browser_href.old ?>" title="Show old rev. <?cs var:item.rev.old ?> of <?cs var:item.path.old ?>">Revision <?cs var:item.rev.old ?></a></th> <th colspan="2"><a href="<?cs var:item.browser_href.new ?>" title="Show new rev. <?cs var:item.rev.new ?> of <?cs var:item.path.new ?>">Revision <?cs var:item.rev.new ?></a></th> </tr> </thead><?cs each:change = item.diff ?><tbody><?cs call:diff_display(change, diff.style) ?></tbody><?cs if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr> <th>…</th><td> </td><th>…</th><td> </td> </tr></tbody><?cs /if ?><?cs /each ?><?cs else ?> <colgroup><col class="lineno" /><col class="lineno" /><col class="content" /></colgroup> <thead><tr> <th title="Revision <?cs var:item.rev.old ?>"><a href="<?cs var:item.browser_href.old ?>" title="Show old version of <?cs var:item.path.old ?>">r<?cs var:item.shortrev.old ?></a></th> <th title="Revision <?cs var:item.rev.new ?>"><a href="<?cs var:item.browser_href.new ?>" title="Show new version of <?cs var:item.path.new ?>">r<?cs var:item.shortrev.new ?></a></th> <th> </th></tr> </thead><?cs each:change = item.diff ?><?cs call:diff_display(change, diff.style) ?><?cs if:name(change) < len(item.diff) - 1 ?><tbody class="skipped"><tr> <th>…</th><th>…</th><td> </td> </tr></tbody><?cs /if ?><?cs /each ?><?cs /if ?></table><?cs /if ?></li><?cs /if ?><?cs /each ?></ul> </div> </div> <?cs include "footer.cs"?>