| {%extends "change_base.html"%} |
| {%block title1%}{{patch_right.filename}} -{%endblock%} |
| {%block body%} |
| |
| <script language="JavaScript" type="text/javascript"><!-- |
| function keyPressIntermediary(evt) { |
| return M_keyPress(evt); |
| } |
| document.onkeypress = keyPressIntermediary; |
| {%if user%} |
| logged_in = true; |
| {%else%} |
| logged_in = false; |
| login_warned = false; |
| {%endif%} |
| // --> |
| </script> |
| |
| {%if user%} |
| <!-- Form used by in-line comment JS; XXX filled in by JS code --> |
| <form id="dainlineform" style="display: none;" |
| action="{{inline_draft_url}}" method="post"> |
| <div class="comment-border" name="form-container"> |
| {{inline_draft_url|form_xsrf}} |
| <input type="hidden" name="snapshot" value="XXX"> |
| <input type="hidden" name="lineno" value="XXX"> |
| <input type="hidden" name="side" value="XXX"> |
| <input type="hidden" name="change" value="{{change.key.id}}"> |
| <input type="hidden" name="ps_left" value="{{ps_left.key.id}}"> |
| <input type="hidden" name="patch_left" value="{{patch_left.id}}"> |
| <input type="hidden" name="ps_right" value="{{ps_right.key.id}}"> |
| <input type="hidden" name="patch_right" value="{{patch_right.id}}"> |
| <textarea name="text" cols="60" rows="5"></textarea><br> |
| <input type="submit" name="save" value="Save" |
| onclick="return M_submitInlineComment(this.form);"> |
| <input type="reset" name="cancel" value="Cancel" |
| onclick="M_removeTempInlineComment(this.form)"> |
| </div> |
| <div class="comment-border" style="padding: 0pt;"></div> |
| </form> |
| <a id="resizer" style="display:none;cursor:pointer"><img src="/static/zippyplus.gif"></a> |
| {%endif%} |
| |
| <div style="float: left;"> |
| <h2 style="margin-bottom: 0em; margin-top: 0em;">Delta Between Patch Sets {{ps_left.id}} and {{ps_right.id}}: {{patch_right.filename}}</h2> |
| <div style="margin-top: .2em;"> |
| {%include "change_star.html"%} |
| <b>Change <a href="{%url codereview.views.show change.key.id%}" onmouseover="M_showPopUp(this, 'popup-change');" id="upCL">{{change.key.id}}</a>:</b> |
| {{change.subject|truncatewords:11}} {{change|closed_label}} |
| </div> |
| <div style="margin-top: .4em;"> |
| <b>Left Patch Set: {%if ps_left.message%}{{ps_left.message}}{%endif%}</b> |
| <span class="extra"> |
| Created {{ps_left.created|timesince}} ago |
| {%ifnotequal ps_left.owner change.owner%} |
| by <b>{{ps_left.owner|show_user}}</b>{%endifnotequal%} |
| </span> |
| </div> |
| <div style="margin-top: .4em;"> |
| <b>Right Patch Set: {%if ps_right.message%}{{ps_right.message}}{%endif%}</b> |
| <span class="extra"> |
| Created {{ps_right.created|timesince}} ago |
| {%ifnotequal ps_right.owner change.owner%} |
| by <b>{{ps_right.owner|show_user}}</b>{%endifnotequal%} |
| </span> |
| </div> |
| <div style="margin-top: .4em;" class="help"> |
| Use n/p to move between diff chunks; |
| N/P to move between comments. |
| {%if user%} |
| Double-click a line to add a draft in-line comment. |
| <br><span style="color:red">Draft comments are only viewable by you;</span> |
| use <a href="{%url codereview.views.publish change.key.id%}" class="novisit">Publish Comments & Approvals</a> ('m') to let others view them. |
| {%else%} |
| Please Sign in to add in-line comments. |
| {%endif%} |
| </div> |
| </div> |
| <div style="float: right; color: #333333; background-color: #eeeeec; border: 1px solid lightgray; -moz-border-radius: 5px 5px 5px 5px; padding: 5px;"> |
| <div>{%include "context_select.html"%}</div> |
| <div> |
| File: <select onchange="M_jumpToPatch(this, {{change.key.id}}, {{patchset.key.id}});"> |
| {% for jump_patch in ps_right.patches %} |
| <option value="{{jump_patch.id}}" |
| {%ifequal jump_patch.id patch.id%} selected="selected"{%endifequal%}>{{jump_patch.filename}}</option> |
| {% endfor %} |
| </select> |
| </div> |
| <div> |
| Left: <a href="{%url codereview.views.diff change.key.id,ps_left.key.id,patch_left.id%}" |
| title="View regular side by side diff">Side by side diff</a> |
| <br/> |
| Right: <a href="{%url codereview.views.diff change.key.id,ps_right.key.id,patch_right.id%}" |
| title="View regular side by side diff">Side by side diff</a> |
| {%if user%} |
| </div> |
| <div style="margin-top: 5px;"> |
| <a class="novisit" href="{%url codereview.views.publish change.key.id%}">Publish Comments & Approvals</a> ('m') |
| {%endif%} |
| </div> |
| </div> |
| <div style="clear: both;"></div> |
| |
| |
| <div class="code" style="margin-top: 1.3em; display: table; margin-left: auto; margin-right: auto;"> |
| <div class="codenav"> |
| {%comment%} |
| For some reason, |
| {%url codereview.views.diff change.key.id,patchset.key.id,patch.prev.key.id%} |
| doesn't work. Go figure. Bleah. So use absolute URLs. |
| {%endcomment%} |
| {%if patch_right.prev%} |
| <a id="prevFile" |
| href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.prev.id}}"> |
| « {{patch_right.prev.filename}}</a> ('k'){%else%} |
| <span class="disabled">« no previous file</span>{%endif%} |
| | |
| {%if patch_right.next%} |
| <a id="nextFile" |
| href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.next.id}}"> |
| {{patch_right.next.filename}} »</a> ('j'){%else%} |
| <span class="disabled">no next file »</span>{%endif%} |
| | |
| <a href="javascript:if (intraLineDiff) intraLineDiff.toggle()"> |
| Toggle Intra-line Diffs</a> ('i') |
| | |
| <a href="javascript:M_expandAllInlineComments()">Expand Comments</a> ('e') |
| | |
| <a href="javascript:M_collapseAllInlineComments()">Collapse Comments</a> ('c') |
| | |
| <a id="show-all-inline" |
| style="display:none" |
| href="javascript:M_showAllInlineComments()">Show Comments</a> |
| <a id="hide-all-inline" |
| href="javascript:M_hideAllInlineComments()">Hide Comments</a> ('s') |
| </div> |
| <div style="position:relative" id="table-top"> |
| |
| <span id="hook-sel" style="display:none;"></span> |
| |
| <table border="0" cellpadding="0" cellspacing="0" id="thecode" |
| ondblclick="M_handleTableDblClick(event)"> |
| |
| <tr><th>LEFT (Patch Set {{ps_left.id}})</th><th>RIGHT (Patch Set {{ps_right.id}})</th></tr> |
| |
| {%for row in rows%}{{row|safe}}{%endfor%} |
| |
| <tr><th>LEFT</th><th>RIGHT</th></tr> |
| |
| </table> |
| |
| </div> |
| |
| <div class="codenav"> |
| {%if patch_right.prev%} |
| <a id="prevFile" |
| href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.prev.id}}"> |
| « {{patch_right.prev.filename}}</a> ('k'){%else%} |
| <span class="disabled">« no previous file</span>{%endif%} |
| | |
| {%if patch_right.next%} |
| <a id="nextFile" |
| href="/{{change.key.id}}/diff2/{{ps_left.key.id}}:{{ps_right.key.id}}/{{patch_right.next.id}}"> |
| {{patch_right.next.filename}} »</a> ('j'){%else%} |
| <span class="disabled">no next file »</span>{%endif%} |
| | |
| <a href="javascript:if (intraLineDiff) intraLineDiff.toggle()"> |
| Toggle Intra-line Diffs</a> ('i') |
| | |
| <a href="javascript:M_expandAllInlineComments()">Expand Comments</a> ('e') |
| | |
| <a href="javascript:M_collapseAllInlineComments()">Collapse Comments</a> ('c') |
| | |
| <a href="javascript:M_toggleAllInlineComments()"> |
| Toggle Comments</a> ('s') |
| </div> |
| |
| </div> |
| </script> |
| <script language="JavaScript" type="text/javascript"><!-- |
| var old_snapshot = "new"; |
| var new_snapshot = "new"; |
| var intraLineDiff = new M_IntraLineDiff(); |
| var hookState = new M_HookState(window); |
| hookState.updateHooks(); |
| |
| var skipped_lines_url = ('/' + {{change.key.id}} + '/diff2_skipped_lines/' + |
| {{ps_left.key.id}} + ':' + {{ps_right.key.id}} + '/' + |
| '{{patch_right.id}}' + '/'); |
| // --> |
| </script> |
| {%endblock%} |