##// END OF EJS Templates
pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits....
pull-requests: increase stability of concurrent pull requests creation by flushing prematurly the statuses of commits. This is required to increase the versions on each concurrent call. Otherwise we could get into an integrity errors of commitsha+version+repo

File last commit:

r3370:ec7c0418 default
r3408:2a133f7e stable
Show More
diffs.mako
1025 lines | 40.8 KiB | application/x-mako | MakoHtmlLexer
comments: allow submitting id of comment which submitted comment resolved....
r1325 <%namespace name="commentblock" file="/changeset/changeset_file_comment.mako"/>
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 <%def name="diff_line_anchor(commit, filename, line, type)"><%
return '%s_%s_%i' % (h.md5_safe(commit+filename), type, line)
templating: use .mako as extensions for template files.
r1282 %></%def>
html: fixed found syntax problems
r1283 <%def name="action_class(action)">
<%
templating: use .mako as extensions for template files.
r1282 return {
'-': 'cb-deletion',
'+': 'cb-addition',
' ': 'cb-context',
}.get(action, 'cb-empty')
html: fixed found syntax problems
r1283 %>
</%def>
templating: use .mako as extensions for template files.
r1282
html: fixed found syntax problems
r1283 <%def name="op_class(op_id)">
<%
templating: use .mako as extensions for template files.
r1282 return {
DEL_FILENODE: 'deletion', # file deleted
BIN_FILENODE: 'warning' # binary diff hidden
}.get(op_id, 'addition')
html: fixed found syntax problems
r1283 %>
</%def>
templating: use .mako as extensions for template files.
r1282
routing: remove usage of url.current from pylons.
r2104
templating: use .mako as extensions for template files.
r1282
<%def name="render_diffset(diffset, commit=None,
# collapse all file diff entries when there are more than this amount of files in the diff
collapse_when_files_over=20,
# collapse lines in the diff when more than this amount of lines changed in the file diff
lines_changed_limit=500,
# add a ruler at to the output
ruler_at_chars=0,
# show inline comments
use_comments=False,
# disable new comments
disable_new_comments=False,
# special file-comments that were deleted in previous versions
# it's used for showing outdated comments for deleted files in a PR
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 deleted_files_comments=None,
# for cache purpose
pull-requests: allow to show range diff in pr view
r3124 inline_comments=None,
templating: use .mako as extensions for template files.
r1282
)">
%if use_comments:
<div id="cb-comments-inline-container-template" class="js-template">
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 ${inline_comments_container([], inline_comments)}
templating: use .mako as extensions for template files.
r1282 </div>
<div class="js-template" id="cb-comment-inline-form-template">
<div class="comment-inline-form ac">
%if c.rhodecode_user.username != h.DEFAULT_USER:
comments: allow submitting id of comment which submitted comment resolved....
r1325 ## render template for inline comments
${commentblock.comment_form(form_type='inline')}
templating: use .mako as extensions for template files.
r1282 %else:
${h.form('', class_='inline-form comment-form-login', method='get')}
<div class="pull-left">
<div class="comment-help pull-right">
routing: remove usage of url.current from pylons.
r2104 ${_('You need to be logged in to leave comments.')} <a href="${h.route_path('login', _query={'came_from': h.current_route_path(request)})}">${_('Login now')}</a>
templating: use .mako as extensions for template files.
r1282 </div>
</div>
<div class="comment-button pull-right">
<button type="button" class="cb-comment-cancel" onclick="return Rhodecode.comments.cancelComment(this);">
${_('Cancel')}
</button>
</div>
<div class="clearfix"></div>
${h.end_form()}
%endif
</div>
</div>
%endif
<%
collapse_all = len(diffset.files) > collapse_when_files_over
%>
users: use new session store for temporary settings for users....
r3088 %if c.user_session_attrs["diffmode"] == 'sideside':
templating: use .mako as extensions for template files.
r1282 <style>
.wrapper {
max-width: 1600px !important;
}
</style>
%endif
%if ruler_at_chars:
<style>
.diff table.cb .cb-content:after {
content: "";
border-left: 1px solid blue;
position: absolute;
top: 0;
height: 18px;
opacity: .2;
z-index: 10;
//## +5 to account for diff action (+/-)
left: ${ruler_at_chars + 5}ch;
</style>
%endif
<div class="diffset ${disable_new_comments and 'diffset-comments-disabled'}">
<div class="diffset-heading ${diffset.limited_diff and 'diffset-heading-warning' or ''}">
%if commit:
<div class="pull-right">
files: ported repository files controllers to pyramid views.
r1927 <a class="btn tooltip" title="${h.tooltip(_('Browse Files at revision {}').format(commit.raw_id))}" href="${h.route_path('repo_files',repo_name=diffset.repo_name, commit_id=commit.raw_id, f_path='')}">
templating: use .mako as extensions for template files.
r1282 ${_('Browse Files')}
</a>
</div>
%endif
<h2 class="clearinner">
diffs: added handy quick file selector in diffs views.
r3100 ## invidual commit
% if commit:
pull-requests: allow to show range diff in pr view
r3124 <a class="tooltip revision" title="${h.tooltip(commit.message)}" href="${h.route_path('repo_commit',repo_name=diffset.repo_name,commit_id=commit.raw_id)}">${('r%s:%s' % (commit.idx,h.short_id(commit.raw_id)))}</a> -
diffs: added handy quick file selector in diffs views.
r3100 ${h.age_component(commit.date)}
% if diffset.limited_diff:
- ${_('The requested commit is too big and content was truncated.')}
${_ungettext('%(num)s file changed.', '%(num)s files changed.', diffset.changed_files) % {'num': diffset.changed_files}}
<a href="${h.current_route_path(request, fulldiff=1)}" onclick="return confirm('${_("Showing a big diff might take some time and resources, continue?")}')">${_('Show full diff')}</a>
% elif hasattr(c, 'commit_ranges') and len(c.commit_ranges) > 1:
## compare diff, has no file-selector and we want to show stats anyway
${_ungettext('{num} file changed: {linesadd} inserted, ''{linesdel} deleted',
'{num} files changed: {linesadd} inserted, {linesdel} deleted', diffset.changed_files) \
.format(num=diffset.changed_files, linesadd=diffset.lines_added, linesdel=diffset.lines_deleted)}
% endif
% else:
## pull requests/compare
${_('File Changes')}
% endif
templating: use .mako as extensions for template files.
r1282
</h2>
</div>
path-permissions: Initial support for path-based permissions
r2618 %if diffset.has_hidden_changes:
<p class="empty_data">${_('Some changes may be hidden')}</p>
%elif not diffset.files:
templating: use .mako as extensions for template files.
r1282 <p class="empty_data">${_('No files')}</p>
%endif
<div class="filediffs">
diffs: sticky top-file bar + context aware file labels....
r3126
pr-diffs: fixed a case when there are outdated comments and we're doing a rebase compare.
r1374 ## initial value could be marked as False later on
<% over_lines_changed_limit = False %>
templating: use .mako as extensions for template files.
r1282 %for i, filediff in enumerate(diffset.files):
<%
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 lines_changed = filediff.patch['stats']['added'] + filediff.patch['stats']['deleted']
templating: use .mako as extensions for template files.
r1282 over_lines_changed_limit = lines_changed > lines_changed_limit
%>
diffs: sticky top-file bar + context aware file labels....
r3126 ## anchor with support of sticky header
<div class="anchor" id="a_${h.FID(filediff.raw_id, filediff.patch['filename'])}"></div>
comments: allow commenting on empty files without content.
r3081
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 <input ${(collapse_all and 'checked' or '')} class="filediff-collapse-state" id="filediff-collapse-${id(filediff)}" type="checkbox" onchange="updateSticky();">
templating: use .mako as extensions for template files.
r1282 <div
class="filediff"
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 data-f-path="${filediff.patch['filename']}"
diffs: sticky top-file bar + context aware file labels....
r3126 data-anchor-id="${h.FID(filediff.raw_id, filediff.patch['filename'])}"
comments: allow commenting on empty files without content.
r3081 >
<label for="filediff-collapse-${id(filediff)}" class="filediff-heading">
<div class="filediff-collapse-indicator"></div>
${diff_ops(filediff)}
</label>
diffs: sticky top-file bar + context aware file labels....
r3126
comments: allow commenting on empty files without content.
r3081 ${diff_menu(filediff, use_comments=use_comments)}
diffs: sticky top-file bar + context aware file labels....
r3126 <table data-f-path="${filediff.patch['filename']}" data-anchor-id="${h.FID(filediff.raw_id, filediff.patch['filename'])}" class="code-visible-block cb cb-diff-${c.user_session_attrs["diffmode"]} code-highlight ${(over_lines_changed_limit and 'cb-collapsed' or '')}">
comments: allow commenting on empty files without content.
r3081
## new/deleted/empty content case
% if not filediff.hunks:
## Comment container, on "fakes" hunk that contains all data to render comments
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 ${render_hunk_lines(filediff, c.user_session_attrs["diffmode"], filediff.hunk_ops, use_comments=use_comments, inline_comments=inline_comments)}
comments: allow commenting on empty files without content.
r3081 % endif
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if filediff.limited_diff:
templating: use .mako as extensions for template files.
r1282 <tr class="cb-warning cb-collapser">
users: use new session store for temporary settings for users....
r3088 <td class="cb-text" ${(c.user_session_attrs["diffmode"] == 'unified' and 'colspan=4' or 'colspan=6')}>
routing: remove usage of url.current from pylons.
r2104 ${_('The requested commit is too big and content was truncated.')} <a href="${h.current_route_path(request, fulldiff=1)}" onclick="return confirm('${_("Showing a big diff might take some time and resources, continue?")}')">${_('Show full diff')}</a>
templating: use .mako as extensions for template files.
r1282 </td>
</tr>
%else:
%if over_lines_changed_limit:
<tr class="cb-warning cb-collapser">
users: use new session store for temporary settings for users....
r3088 <td class="cb-text" ${(c.user_session_attrs["diffmode"] == 'unified' and 'colspan=4' or 'colspan=6')}>
templating: use .mako as extensions for template files.
r1282 ${_('This diff has been collapsed as it changes many lines, (%i lines changed)' % lines_changed)}
<a href="#" class="cb-expand"
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 onclick="$(this).closest('table').removeClass('cb-collapsed'); updateSticky(); return false;">${_('Show them')}
templating: use .mako as extensions for template files.
r1282 </a>
<a href="#" class="cb-collapse"
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 onclick="$(this).closest('table').addClass('cb-collapsed'); updateSticky(); return false;">${_('Hide them')}
templating: use .mako as extensions for template files.
r1282 </a>
</td>
</tr>
%endif
%endif
comments: allow commenting on empty files without content.
r3081 % for hunk in filediff.hunks:
<tr class="cb-hunk">
users: use new session store for temporary settings for users....
r3088 <td ${(c.user_session_attrs["diffmode"] == 'unified' and 'colspan=3' or '')}>
comments: allow commenting on empty files without content.
r3081 ## TODO: dan: add ajax loading of more context here
## <a href="#">
<i class="icon-more"></i>
## </a>
</td>
users: use new session store for temporary settings for users....
r3088 <td ${(c.user_session_attrs["diffmode"] == 'sideside' and 'colspan=5' or '')}>
comments: allow commenting on empty files without content.
r3081 @@
-${hunk.source_start},${hunk.source_length}
+${hunk.target_start},${hunk.target_length}
${hunk.section_header}
</td>
</tr>
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 ${render_hunk_lines(filediff, c.user_session_attrs["diffmode"], hunk, use_comments=use_comments, inline_comments=inline_comments)}
comments: allow commenting on empty files without content.
r3081 % endfor
templating: use .mako as extensions for template files.
r1282
comments: ensure we ALWAYS display unmatched comments.
r3080 <% unmatched_comments = (inline_comments or {}).get(filediff.patch['filename'], {}) %>
templating: use .mako as extensions for template files.
r1282 ## outdated comments that do not fit into currently displayed lines
comments: ensure we ALWAYS display unmatched comments.
r3080 % for lineno, comments in unmatched_comments.items():
templating: use .mako as extensions for template files.
r1282
users: use new session store for temporary settings for users....
r3088 %if c.user_session_attrs["diffmode"] == 'unified':
comments: ensure we ALWAYS display unmatched comments.
r3080 % if loop.index == 0:
<tr class="cb-hunk">
<td colspan="3"></td>
<td>
<div>
${_('Unmatched inline comments below')}
</div>
</td>
</tr>
% endif
<tr class="cb-line">
<td class="cb-data cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-content cb-context">
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 ${inline_comments_container(comments, inline_comments)}
comments: ensure we ALWAYS display unmatched comments.
r3080 </td>
</tr>
users: use new session store for temporary settings for users....
r3088 %elif c.user_session_attrs["diffmode"] == 'sideside':
comments: ensure we ALWAYS display unmatched comments.
r3080 % if loop.index == 0:
diffs: small UI fixes
r3083 <tr class="cb-comment-info">
comments: ensure we ALWAYS display unmatched comments.
r3080 <td colspan="2"></td>
diffs: small UI fixes
r3083 <td class="cb-line">
<div>
${_('Unmatched inline comments below')}
</div>
</td>
<td colspan="2"></td>
<td class="cb-line">
comments: ensure we ALWAYS display unmatched comments.
r3080 <div>
${_('Unmatched comments below')}
</div>
</td>
</tr>
% endif
<tr class="cb-line">
<td class="cb-data cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-content cb-context">
% if lineno.startswith('o'):
${inline_comments_container(comments, inline_comments)}
% endif
</td>
templating: use .mako as extensions for template files.
r1282
comments: ensure we ALWAYS display unmatched comments.
r3080 <td class="cb-data cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-content cb-context">
% if lineno.startswith('n'):
${inline_comments_container(comments, inline_comments)}
% endif
</td>
</tr>
%endif
templating: use .mako as extensions for template files.
r1282
% endfor
</table>
</div>
%endfor
## outdated comments that are made for a file that has been deleted
% for filename, comments_dict in (deleted_files_comments or {}).items():
pull-requests: fixed case of unresolved comments attached to removed file in pr....
r2808 <%
display_state = 'display: none'
open_comments_in_file = [x for x in comments_dict['comments'] if x.outdated is False]
if open_comments_in_file:
display_state = ''
%>
<div class="filediffs filediff-outdated" style="${display_state}">
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 <input ${(collapse_all and 'checked' or '')} class="filediff-collapse-state" id="filediff-collapse-${id(filename)}" type="checkbox" onchange="updateSticky();">
pull-requests: allow to show range diff in pr view
r3124 <div class="filediff" data-f-path="${filename}" id="a_${h.FID(filediff.raw_id, filename)}">
templating: use .mako as extensions for template files.
r1282 <label for="filediff-collapse-${id(filename)}" class="filediff-heading">
<div class="filediff-collapse-indicator"></div>
<span class="pill">
## file was deleted
<strong>${filename}</strong>
</span>
<span class="pill-group" style="float: left">
## file op, doesn't need translation
<span class="pill" op="removed">removed in this version</span>
</span>
pull-requests: allow to show range diff in pr view
r3124 <a class="pill filediff-anchor" href="#a_${h.FID(filediff.raw_id, filename)}">¶</a>
templating: use .mako as extensions for template files.
r1282 <span class="pill-group" style="float: right">
<span class="pill" op="deleted">-${comments_dict['stats']}</span>
</span>
</label>
users: use new session store for temporary settings for users....
r3088 <table class="cb cb-diff-${c.user_session_attrs["diffmode"]} code-highlight ${over_lines_changed_limit and 'cb-collapsed' or ''}">
templating: use .mako as extensions for template files.
r1282 <tr>
users: use new session store for temporary settings for users....
r3088 % if c.user_session_attrs["diffmode"] == 'unified':
templating: use .mako as extensions for template files.
r1282 <td></td>
%endif
<td></td>
users: use new session store for temporary settings for users....
r3088 <td class="cb-text cb-${op_class(BIN_FILENODE)}" ${(c.user_session_attrs["diffmode"] == 'unified' and 'colspan=4' or 'colspan=5')}>
pull-requests: fixed case of unresolved comments attached to removed file in pr....
r2808 ${_('File was deleted in this version. There are still outdated/unresolved comments attached to it.')}
templating: use .mako as extensions for template files.
r1282 </td>
</tr>
users: use new session store for temporary settings for users....
r3088 %if c.user_session_attrs["diffmode"] == 'unified':
templating: use .mako as extensions for template files.
r1282 <tr class="cb-line">
<td class="cb-data cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-content cb-context">
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 ${inline_comments_container(comments_dict['comments'], inline_comments)}
templating: use .mako as extensions for template files.
r1282 </td>
</tr>
users: use new session store for temporary settings for users....
r3088 %elif c.user_session_attrs["diffmode"] == 'sideside':
templating: use .mako as extensions for template files.
r1282 <tr class="cb-line">
<td class="cb-data cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-content cb-context"></td>
<td class="cb-data cb-context"></td>
<td class="cb-lineno cb-context"></td>
<td class="cb-content cb-context">
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 ${inline_comments_container(comments_dict['comments'], inline_comments)}
templating: use .mako as extensions for template files.
r1282 </td>
</tr>
%endif
</table>
</div>
</div>
% endfor
</div>
</div>
</%def>
<%def name="diff_ops(filediff)">
<%
from rhodecode.lib.diffs import NEW_FILENODE, DEL_FILENODE, \
diffs: support mercurial copy in diffs details.
r1582 MOD_FILENODE, RENAMED_FILENODE, CHMOD_FILENODE, BIN_FILENODE, COPIED_FILENODE
templating: use .mako as extensions for template files.
r1282 %>
<span class="pill">
%if filediff.source_file_path and filediff.target_file_path:
html: fixed found syntax problems
r1283 %if filediff.source_file_path != filediff.target_file_path:
diffs: support mercurial copy in diffs details.
r1582 ## file was renamed, or copied
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if RENAMED_FILENODE in filediff.patch['stats']['ops']:
diffs: support mercurial copy in diffs details.
r1582 <strong>${filediff.target_file_path}</strong> ⬅ <del>${filediff.source_file_path}</del>
diffs: show copy-to-clipboard next to diff files
r2120 <% final_path = filediff.target_file_path %>
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %elif COPIED_FILENODE in filediff.patch['stats']['ops']:
diffs: support mercurial copy in diffs details.
r1582 <strong>${filediff.target_file_path}</strong> ⬅ ${filediff.source_file_path}
diffs: show copy-to-clipboard next to diff files
r2120 <% final_path = filediff.target_file_path %>
diffs: support mercurial copy in diffs details.
r1582 %endif
templating: use .mako as extensions for template files.
r1282 %else:
## file was modified
<strong>${filediff.source_file_path}</strong>
diffs: show copy-to-clipboard next to diff files
r2120 <% final_path = filediff.source_file_path %>
templating: use .mako as extensions for template files.
r1282 %endif
%else:
%if filediff.source_file_path:
## file was deleted
<strong>${filediff.source_file_path}</strong>
diffs: show copy-to-clipboard next to diff files
r2120 <% final_path = filediff.source_file_path %>
templating: use .mako as extensions for template files.
r1282 %else:
## file was added
<strong>${filediff.target_file_path}</strong>
diffs: show copy-to-clipboard next to diff files
r2120 <% final_path = filediff.target_file_path %>
templating: use .mako as extensions for template files.
r1282 %endif
%endif
diffs: show copy-to-clipboard next to diff files
r2120 <i style="color: #aaa" class="tooltip icon-clipboard clipboard-action" data-clipboard-text="${final_path}" title="${_('Copy the full path')}" onclick="return false;"></i>
templating: use .mako as extensions for template files.
r1282 </span>
dan
diffs: made pills display on single side. Better UX and readability.
r3116 ## anchor link
pull-requests: allow to show range diff in pr view
r3124 <a class="pill filediff-anchor" href="#a_${h.FID(filediff.raw_id, filediff.patch['filename'])}">¶</a>
dan
diffs: made pills display on single side. Better UX and readability.
r3116
<span class="pill-group" style="float: right">
## ops pills
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if filediff.limited_diff:
templating: use .mako as extensions for template files.
r1282 <span class="pill tooltip" op="limited" title="The stats for this diff are not complete">limited diff</span>
%endif
diffs: support mercurial copy in diffs details.
r1582
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if NEW_FILENODE in filediff.patch['stats']['ops']:
templating: use .mako as extensions for template files.
r1282 <span class="pill" op="created">created</span>
%if filediff['target_mode'].startswith('120'):
<span class="pill" op="symlink">symlink</span>
%else:
<span class="pill" op="mode">${nice_mode(filediff['target_mode'])}</span>
%endif
%endif
dan
diffs: made pills display on single side. Better UX and readability.
r3116 %if RENAMED_FILENODE in filediff.patch['stats']['ops']:
<span class="pill" op="renamed">renamed</span>
%endif
%if COPIED_FILENODE in filediff.patch['stats']['ops']:
<span class="pill" op="copied">copied</span>
%endif
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if DEL_FILENODE in filediff.patch['stats']['ops']:
templating: use .mako as extensions for template files.
r1282 <span class="pill" op="removed">removed</span>
%endif
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if CHMOD_FILENODE in filediff.patch['stats']['ops']:
templating: use .mako as extensions for template files.
r1282 <span class="pill" op="mode">
${nice_mode(filediff['source_mode'])} âž¡ ${nice_mode(filediff['target_mode'])}
</span>
%endif
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if BIN_FILENODE in filediff.patch['stats']['ops']:
templating: use .mako as extensions for template files.
r1282 <span class="pill" op="binary">binary</span>
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if MOD_FILENODE in filediff.patch['stats']['ops']:
dan
diffs: made pills display on single side. Better UX and readability.
r3116 <span class="pill" op="modified">modified</span>
templating: use .mako as extensions for template files.
r1282 %endif
%endif
dan
diffs: made pills display on single side. Better UX and readability.
r3116
<span class="pill" op="added">${('+' if filediff.patch['stats']['added'] else '')}${filediff.patch['stats']['added']}</span>
<span class="pill" op="deleted">${((h.safe_int(filediff.patch['stats']['deleted']) or 0) * -1)}</span>
templating: use .mako as extensions for template files.
r1282 </span>
</%def>
<%def name="nice_mode(filemode)">
diffs: added handy quick file selector in diffs views.
r3100 ${(filemode.startswith('100') and filemode[3:] or filemode)}
templating: use .mako as extensions for template files.
r1282 </%def>
<%def name="diff_menu(filediff, use_comments=False)">
<div class="filediff-menu">
compare: fixed case of cross repo compare before links not working.
r3146
%if filediff.diffset.source_ref:
## FILE BEFORE CHANGES
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if filediff.operation in ['D', 'M']:
templating: use .mako as extensions for template files.
r1282 <a
class="tooltip"
compare: fixed case of cross repo compare before links not working.
r3146 href="${h.route_path('repo_files',repo_name=filediff.diffset.target_repo_name,commit_id=filediff.diffset.source_ref,f_path=filediff.source_file_path)}"
templating: use .mako as extensions for template files.
r1282 title="${h.tooltip(_('Show file at commit: %(commit_id)s') % {'commit_id': filediff.diffset.source_ref[:12]})}"
>
${_('Show file before')}
</a> |
%else:
<span
class="tooltip"
compare: fixed case of cross repo compare before links not working.
r3146 title="${h.tooltip(_('File not present at commit: %(commit_id)s') % {'commit_id': filediff.diffset.source_ref[:12]})}"
templating: use .mako as extensions for template files.
r1282 >
${_('Show file before')}
</span> |
%endif
compare: fixed case of cross repo compare before links not working.
r3146
## FILE AFTER CHANGES
diffs: simplified the datastructure of fillediff. Hopefully this...
r1844 %if filediff.operation in ['A', 'M']:
templating: use .mako as extensions for template files.
r1282 <a
class="tooltip"
files: ported repository files controllers to pyramid views.
r1927 href="${h.route_path('repo_files',repo_name=filediff.diffset.source_repo_name,commit_id=filediff.diffset.target_ref,f_path=filediff.target_file_path)}"
templating: use .mako as extensions for template files.
r1282 title="${h.tooltip(_('Show file at commit: %(commit_id)s') % {'commit_id': filediff.diffset.target_ref[:12]})}"
>
${_('Show file after')}
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 </a>
templating: use .mako as extensions for template files.
r1282 %else:
<span
class="tooltip"
compare: fixed case of cross repo compare before links not working.
r3146 title="${h.tooltip(_('File not present at commit: %(commit_id)s') % {'commit_id': filediff.diffset.target_ref[:12]})}"
templating: use .mako as extensions for template files.
r1282 >
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 ${_('Show file after')}
</span>
templating: use .mako as extensions for template files.
r1282 %endif
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134
compare: fixed case of cross repo compare before links not working.
r3146 % if use_comments:
|
<a href="#" onclick="return Rhodecode.comments.toggleComments(this);">
<span class="show-comment-button">${_('Show comments')}</span><span class="hide-comment-button">${_('Hide comments')}</span>
</a>
% endif
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134
compare: fixed case of cross repo compare before links not working.
r3146 %endif
templating: use .mako as extensions for template files.
r1282 </div>
</%def>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 <%def name="inline_comments_container(comments, inline_comments)">
templating: use .mako as extensions for template files.
r1282 <div class="inline-comments">
%for comment in comments:
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 ${commentblock.comment_block(comment, inline=True)}
templating: use .mako as extensions for template files.
r1282 %endfor
% if comments and comments[-1].outdated:
<span class="btn btn-secondary cb-comment-add-button comment-outdated}"
style="display: none;}">
${_('Add another comment')}
</span>
% else:
<span onclick="return Rhodecode.comments.createComment(this)"
class="btn btn-secondary cb-comment-add-button">
${_('Add another comment')}
</span>
% endif
</div>
</%def>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 <%!
comments: ensure we ALWAYS display unmatched comments.
r3080 def get_comments_for(diff_type, comments, filename, line_version, line_number):
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 if hasattr(filename, 'unicode_path'):
filename = filename.unicode_path
templating: use .mako as extensions for template files.
r1282
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 if not isinstance(filename, basestring):
return None
comments: ensure we ALWAYS display unmatched comments.
r3080 line_key = '{}{}'.format(line_version, line_number) ## e.g o37, n12
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 if comments and filename in comments:
file_comments = comments[filename]
if line_key in file_comments:
comments: ensure we ALWAYS display unmatched comments.
r3080 data = file_comments.pop(line_key)
return data
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %>
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 <%def name="render_hunk_lines_sideside(filediff, hunk, use_comments=False, inline_comments=None)">
templating: use .mako as extensions for template files.
r1282 %for i, line in enumerate(hunk.sideside):
<%
old_line_anchor, new_line_anchor = None, None
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131
templating: use .mako as extensions for template files.
r1282 if line.original.lineno:
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 old_line_anchor = diff_line_anchor(filediff.raw_id, hunk.source_file_path, line.original.lineno, 'o')
templating: use .mako as extensions for template files.
r1282 if line.modified.lineno:
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 new_line_anchor = diff_line_anchor(filediff.raw_id, hunk.target_file_path, line.modified.lineno, 'n')
templating: use .mako as extensions for template files.
r1282 %>
<tr class="cb-line">
<td class="cb-data ${action_class(line.original.action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="${line.original.lineno}"
templating: use .mako as extensions for template files.
r1282 >
<div>
comments: ensure we ALWAYS display unmatched comments.
r3080
<% line_old_comments = None %>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %if line.original.get_comment_args:
comments: ensure we ALWAYS display unmatched comments.
r3080 <% line_old_comments = get_comments_for('side-by-side', inline_comments, *line.original.get_comment_args) %>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %endif
comments: ensure we ALWAYS display unmatched comments.
r3080 %if line_old_comments:
<% has_outdated = any([x.outdated for x in line_old_comments]) %>
diffs: inidicate visually outdated comments in the icon.
r2611 % if has_outdated:
comments: ensure we ALWAYS display unmatched comments.
r3080 <i title="${_('comments including outdated')}:${len(line_old_comments)}" class="icon-comment_toggle" onclick="return Rhodecode.comments.toggleLineComments(this)"></i>
diffs: inidicate visually outdated comments in the icon.
r2611 % else:
comments: ensure we ALWAYS display unmatched comments.
r3080 <i title="${_('comments')}: ${len(line_old_comments)}" class="icon-comment" onclick="return Rhodecode.comments.toggleLineComments(this)"></i>
diffs: inidicate visually outdated comments in the icon.
r2611 % endif
templating: use .mako as extensions for template files.
r1282 %endif
</div>
</td>
<td class="cb-lineno ${action_class(line.original.action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="${line.original.lineno}"
templating: use .mako as extensions for template files.
r1282 %if old_line_anchor:
id="${old_line_anchor}"
%endif
>
%if line.original.lineno:
<a name="${old_line_anchor}" href="#${old_line_anchor}">${line.original.lineno}</a>
%endif
</td>
<td class="cb-content ${action_class(line.original.action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="o${line.original.lineno}"
templating: use .mako as extensions for template files.
r1282 >
%if use_comments and line.original.lineno:
${render_add_comment_button()}
%endif
dan
diffs: exclude +/- from diffs generation and make then a non-selectable markers visible only via CSS.
r3135 <span class="cb-code"><span class="cb-action ${action_class(line.original.action)}"></span>${line.original.content or '' | n}</span>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685
comments: ensure we ALWAYS display unmatched comments.
r3080 %if use_comments and line.original.lineno and line_old_comments:
${inline_comments_container(line_old_comments, inline_comments)}
templating: use .mako as extensions for template files.
r1282 %endif
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685
templating: use .mako as extensions for template files.
r1282 </td>
<td class="cb-data ${action_class(line.modified.action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="${line.modified.lineno}"
templating: use .mako as extensions for template files.
r1282 >
<div>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685
%if line.modified.get_comment_args:
comments: ensure we ALWAYS display unmatched comments.
r3080 <% line_new_comments = get_comments_for('side-by-side', inline_comments, *line.modified.get_comment_args) %>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %else:
comments: ensure we ALWAYS display unmatched comments.
r3080 <% line_new_comments = None%>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %endif
comments: ensure we ALWAYS display unmatched comments.
r3080 %if line_new_comments:
<% has_outdated = any([x.outdated for x in line_new_comments]) %>
diffs: inidicate visually outdated comments in the icon.
r2611 % if has_outdated:
comments: ensure we ALWAYS display unmatched comments.
r3080 <i title="${_('comments including outdated')}:${len(line_new_comments)}" class="icon-comment_toggle" onclick="return Rhodecode.comments.toggleLineComments(this)"></i>
diffs: inidicate visually outdated comments in the icon.
r2611 % else:
comments: ensure we ALWAYS display unmatched comments.
r3080 <i title="${_('comments')}: ${len(line_new_comments)}" class="icon-comment" onclick="return Rhodecode.comments.toggleLineComments(this)"></i>
diffs: inidicate visually outdated comments in the icon.
r2611 % endif
templating: use .mako as extensions for template files.
r1282 %endif
</div>
</td>
<td class="cb-lineno ${action_class(line.modified.action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="${line.modified.lineno}"
templating: use .mako as extensions for template files.
r1282 %if new_line_anchor:
id="${new_line_anchor}"
%endif
>
%if line.modified.lineno:
<a name="${new_line_anchor}" href="#${new_line_anchor}">${line.modified.lineno}</a>
%endif
</td>
<td class="cb-content ${action_class(line.modified.action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="n${line.modified.lineno}"
templating: use .mako as extensions for template files.
r1282 >
%if use_comments and line.modified.lineno:
${render_add_comment_button()}
%endif
dan
diffs: exclude +/- from diffs generation and make then a non-selectable markers visible only via CSS.
r3135 <span class="cb-code"><span class="cb-action ${action_class(line.modified.action)}"></span>${line.modified.content or '' | n}</span>
comments: ensure we ALWAYS display unmatched comments.
r3080 %if use_comments and line.modified.lineno and line_new_comments:
${inline_comments_container(line_new_comments, inline_comments)}
templating: use .mako as extensions for template files.
r1282 %endif
</td>
</tr>
%endfor
</%def>
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 <%def name="render_hunk_lines_unified(filediff, hunk, use_comments=False, inline_comments=None)">
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %for old_line_no, new_line_no, action, content, comments_args in hunk.unified:
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131
templating: use .mako as extensions for template files.
r1282 <%
old_line_anchor, new_line_anchor = None, None
if old_line_no:
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 old_line_anchor = diff_line_anchor(filediff.raw_id, hunk.source_file_path, old_line_no, 'o')
templating: use .mako as extensions for template files.
r1282 if new_line_no:
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 new_line_anchor = diff_line_anchor(filediff.raw_id, hunk.target_file_path, new_line_no, 'n')
templating: use .mako as extensions for template files.
r1282 %>
<tr class="cb-line">
<td class="cb-data ${action_class(action)}">
<div>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685
%if comments_args:
comments: ensure we ALWAYS display unmatched comments.
r3080 <% comments = get_comments_for('unified', inline_comments, *comments_args) %>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %else:
diffs: don't use highlite on the new ops lines
r3082 <% comments = None %>
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 %endif
diffs: inidicate visually outdated comments in the icon.
r2611 % if comments:
<% has_outdated = any([x.outdated for x in comments]) %>
% if has_outdated:
<i title="${_('comments including outdated')}:${len(comments)}" class="icon-comment_toggle" onclick="return Rhodecode.comments.toggleLineComments(this)"></i>
% else:
<i title="${_('comments')}: ${len(comments)}" class="icon-comment" onclick="return Rhodecode.comments.toggleLineComments(this)"></i>
% endif
% endif
templating: use .mako as extensions for template files.
r1282 </div>
</td>
<td class="cb-lineno ${action_class(action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="${old_line_no}"
templating: use .mako as extensions for template files.
r1282 %if old_line_anchor:
id="${old_line_anchor}"
%endif
>
%if old_line_anchor:
<a name="${old_line_anchor}" href="#${old_line_anchor}">${old_line_no}</a>
%endif
</td>
<td class="cb-lineno ${action_class(action)}"
diffs/files: fix and improve line selections and anchor links.
r2642 data-line-no="${new_line_no}"
templating: use .mako as extensions for template files.
r1282 %if new_line_anchor:
id="${new_line_anchor}"
%endif
>
%if new_line_anchor:
<a name="${new_line_anchor}" href="#${new_line_anchor}">${new_line_no}</a>
%endif
</td>
<td class="cb-content ${action_class(action)}"
diffs: added handy quick file selector in diffs views.
r3100 data-line-no="${(new_line_no and 'n' or 'o')}${(new_line_no or old_line_no)}"
templating: use .mako as extensions for template files.
r1282 >
%if use_comments:
${render_add_comment_button()}
%endif
dan
diffs: exclude +/- from diffs generation and make then a non-selectable markers visible only via CSS.
r3135 <span class="cb-code"><span class="cb-action ${action_class(action)}"></span> ${content or '' | n}</span>
templating: use .mako as extensions for template files.
r1282 %if use_comments and comments:
Bartłomiej Wołyńczyk
caching: add option to cache diffs for commits and pull requests....
r2685 ${inline_comments_container(comments, inline_comments)}
templating: use .mako as extensions for template files.
r1282 %endif
</td>
</tr>
%endfor
</%def>
comments: allow commenting on empty files without content.
r3081
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 <%def name="render_hunk_lines(filediff, diff_mode, hunk, use_comments, inline_comments)">
comments: allow commenting on empty files without content.
r3081 % if diff_mode == 'unified':
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 ${render_hunk_lines_unified(filediff, hunk, use_comments=use_comments, inline_comments=inline_comments)}
comments: allow commenting on empty files without content.
r3081 % elif diff_mode == 'sideside':
diffs: make line anchors commit aware. This fixes duplicate anchor problem on range diffs.
r3131 ${render_hunk_lines_sideside(filediff, hunk, use_comments=use_comments, inline_comments=inline_comments)}
comments: allow commenting on empty files without content.
r3081 % else:
<tr class="cb-line">
<td>unknown diff mode</td>
</tr>
% endif
pull-requests: allow to show range diff in pr view
r3124 </%def>file changes
comments: allow commenting on empty files without content.
r3081
templating: use .mako as extensions for template files.
r1282 <%def name="render_add_comment_button()">
<button class="btn btn-small btn-primary cb-comment-box-opener" onclick="return Rhodecode.comments.createComment(this)">
<span><i class="icon-comment"></i></span>
</button>
</%def>
pull-requests: allow to show range diff in pr view
r3124 <%def name="render_diffset_menu(diffset=None, range_diff_on=None)">
templating: use .mako as extensions for template files.
r1282
diffs: sticky top-file bar + context aware file labels....
r3126 <div id="diff-file-sticky" class="diffset-menu clearinner">
## auto adjustable
dan
diffs: ui improvements over the sticky header.
r3128 <div class="sidebar__inner">
<div class="sidebar__bar">
diffs: sticky top-file bar + context aware file labels....
r3126 <div class="pull-right">
templating: use .mako as extensions for template files.
r1282 <div class="btn-group">
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 ## DIFF OPTIONS via Select2
<div class="pull-left">
${h.hidden('diff_menu')}
</div>
templating: use .mako as extensions for template files.
r1282 <a
users: use new session store for temporary settings for users....
r3088 class="btn ${(c.user_session_attrs["diffmode"] == 'sideside' and 'btn-primary')} tooltip"
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 title="${h.tooltip(_('View side by side'))}"
routing: deprecate url_replace function in exchange of current_route_path which we now use in pyramid
r2307 href="${h.current_route_path(request, diffmode='sideside')}">
templating: use .mako as extensions for template files.
r1282 <span>${_('Side by Side')}</span>
</a>
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134
templating: use .mako as extensions for template files.
r1282 <a
users: use new session store for temporary settings for users....
r3088 class="btn ${(c.user_session_attrs["diffmode"] == 'unified' and 'btn-primary')} tooltip"
routing: deprecate url_replace function in exchange of current_route_path which we now use in pyramid
r2307 title="${h.tooltip(_('View unified'))}" href="${h.current_route_path(request, diffmode='unified')}">
templating: use .mako as extensions for template files.
r1282 <span>${_('Unified')}</span>
</a>
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134
pull-requests: allow to show range diff in pr view
r3124 % if range_diff_on is True:
<a
title="${_('Turn off: Show the diff as commit range')}"
class="btn btn-primary"
href="${h.current_route_path(request, **{"range-diff":"0"})}">
<span>${_('Range Diff')}</span>
</a>
% elif range_diff_on is False:
<a
title="${_('Show the diff as commit range')}"
class="btn"
href="${h.current_route_path(request, **{"range-diff":"1"})}">
<span>${_('Range Diff')}</span>
</a>
% endif
templating: use .mako as extensions for template files.
r1282 </div>
</div>
diffs: sticky top-file bar + context aware file labels....
r3126 <div class="pull-left">
<div class="btn-group">
diffs: added handy quick file selector in diffs views.
r3100 <div class="pull-left">
${h.hidden('file_filter')}
</div>
templating: use .mako as extensions for template files.
r1282 <a
class="btn"
href="#"
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 onclick="$('input[class=filediff-collapse-state]').prop('checked', false); updateSticky(); return false">${_('Expand All Files')}</a>
diffs: sticky top-file bar + context aware file labels....
r3126 <a
class="btn"
href="#"
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 onclick="$('input[class=filediff-collapse-state]').prop('checked', true); updateSticky(); return false">${_('Collapse All Files')}</a>
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 </div>
dan
diffs: ui improvements over the sticky header.
r3128 </div>
templating: use .mako as extensions for template files.
r1282 </div>
diffs: sticky top-file bar + context aware file labels....
r3126 <div class="fpath-placeholder">
<i class="icon-file-text"></i>
<strong class="fpath-placeholder-text">
dan
diffs: ui improvements over the sticky header.
r3128 Context file:
diffs: sticky top-file bar + context aware file labels....
r3126 </strong>
</div>
<div class="sidebar_inner_shadow"></div>
</div>
templating: use .mako as extensions for template files.
r1282 </div>
diffs: added handy quick file selector in diffs views.
r3100
% if diffset:
%if diffset.limited_diff:
diffs: sticky top-file bar + context aware file labels....
r3126 <% file_placeholder = _ungettext('%(num)s file changed', '%(num)s files changed', diffset.changed_files) % {'num': diffset.changed_files} %>
diffs: added handy quick file selector in diffs views.
r3100 %else:
<% file_placeholder = _ungettext('%(num)s file changed: %(linesadd)s inserted, ''%(linesdel)s deleted', '%(num)s files changed: %(linesadd)s inserted, %(linesdel)s deleted', diffset.changed_files) % {'num': diffset.changed_files, 'linesadd': diffset.lines_added, 'linesdel': diffset.lines_deleted}%>
%endif
diffs: sticky top-file bar + context aware file labels....
r3126 ## case on range-diff placeholder needs to be updated
% if range_diff_on is True:
<% file_placeholder = _('Disabled on range diff') %>
% endif
diffs: added handy quick file selector in diffs views.
r3100
<script>
var feedFilesOptions = function (query, initialData) {
var data = {results: []};
var isQuery = typeof query.term !== 'undefined';
var section = _gettext('Changed files');
var filteredData = [];
//filter results
$.each(initialData.results, function (idx, value) {
if (!isQuery || query.term.length === 0 || value.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0) {
filteredData.push({
'id': this.id,
'text': this.text,
"ops": this.ops,
})
}
});
data.results = filteredData;
query.callback(data);
};
var formatFileResult = function(result, container, query, escapeMarkup) {
return function(data, escapeMarkup) {
var container = '<div class="filelist" style="padding-right:100px">{0}</div>';
var tmpl = '<span style="margin-right:-50px"><strong>{0}</strong></span>'.format(escapeMarkup(data['text']));
var pill = '<span class="pill-group" style="float: right;margin-right: -100px">' +
'<span class="pill" op="added">{0}</span>' +
'<span class="pill" op="deleted">{1}</span>' +
'</span>'
;
var added = data['ops']['added'];
if (added === 0) {
// don't show +0
added = 0;
} else {
added = '+' + added;
}
var deleted = -1*data['ops']['deleted'];
tmpl += pill.format(added, deleted);
return container.format(tmpl);
}(result, escapeMarkup);
};
diffs: fixed scope mismatch for diff navigation
r3163
var preloadFileFilterData = {
diffs: added handy quick file selector in diffs views.
r3100 results: [
% for filediff in diffset.files:
pull-requests: allow to show range diff in pr view
r3124 {id:"a_${h.FID(filediff.raw_id, filediff.patch['filename'])}",
diffs: added handy quick file selector in diffs views.
r3100 text:"${filediff.patch['filename']}",
ops:${h.json.dumps(filediff.patch['stats'])|n}}${('' if loop.last else ',')}
% endfor
]
};
diffs: sticky top-file bar + context aware file labels....
r3126 $(document).ready(function () {
var fileFilter = $("#file_filter").select2({
'dropdownAutoWidth': true,
'width': 'auto',
'placeholder': "${file_placeholder}",
containerCssClass: "drop-menu",
dropdownCssClass: "drop-menu-dropdown",
diffs: fixed scope mismatch for diff navigation
r3163 data: preloadFileFilterData,
diffs: sticky top-file bar + context aware file labels....
r3126 query: function(query) {
diffs: fixed scope mismatch for diff navigation
r3163 feedFilesOptions(query, preloadFileFilterData);
diffs: sticky top-file bar + context aware file labels....
r3126 },
formatResult: formatFileResult
});
diffs: fixed scope mismatch for diff navigation
r3163
diffs: sticky top-file bar + context aware file labels....
r3126 % if range_diff_on is True:
fileFilter.select2("enable", false);
% endif
$("#file_filter").on('click', function (e) {
e.preventDefault();
var selected = $('#file_filter').select2('data');
var idSelector = "#"+selected.id;
window.location.hash = idSelector;
// expand the container if we quick-select the field
$(idSelector).next().prop('checked', false);
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 updateSticky()
diffs: sticky top-file bar + context aware file labels....
r3126 });
var contextPrefix = _gettext('Context file: ');
## sticky sidebar
var sidebarElement = document.getElementById('diff-file-sticky');
sidebar = new StickySidebar(sidebarElement, {
topSpacing: 0,
bottomSpacing: 0,
innerWrapperSelector: '.sidebar__inner'
});
sidebarElement.addEventListener('affixed.static.stickySidebar', function () {
// reset our file so it's not holding new value
$('.fpath-placeholder-text').html(contextPrefix)
});
updateSticky = function () {
dan
diffs: update all sticky elements on dom changes to handle cases like:...
r3129 sidebar.updateSticky();
Waypoint.refreshAll();
diffs: sticky top-file bar + context aware file labels....
r3126 };
var animateText = $.debounce(100, function(fPath, anchorId) {
security: fixed xss in context diff menu.
r3333 fPath = Select2.util.escapeMarkup(fPath);
diffs: sticky top-file bar + context aware file labels....
r3126 // animate setting the text
var callback = function () {
$('.fpath-placeholder-text').animate({'opacity': 1.00}, 200)
$('.fpath-placeholder-text').html(contextPrefix + '<a href="#a_' + anchorId + '">' + fPath + '</a>')
};
$('.fpath-placeholder-text').animate({'opacity': 0.15}, 200, callback);
});
## dynamic file waypoints
var setFPathInfo = function(fPath, anchorId){
animateText(fPath, anchorId)
};
var codeBlock = $('.filediff');
// forward waypoint
codeBlock.waypoint(
function(direction) {
if (direction === "down"){
setFPathInfo($(this.element).data('fPath'), $(this.element).data('anchorId'))
}
}, {
dan
diffs: ui improvements over the sticky header.
r3128 offset: 70,
diffs: sticky top-file bar + context aware file labels....
r3126 context: '.fpath-placeholder'
}
);
// backward waypoint
codeBlock.waypoint(
function(direction) {
if (direction === "up"){
setFPathInfo($(this.element).data('fPath'), $(this.element).data('anchorId'))
}
}, {
offset: function () {
dan
diffs: ui improvements over the sticky header.
r3128 return -this.element.clientHeight + 90
diffs: sticky top-file bar + context aware file labels....
r3126 },
context: '.fpath-placeholder'
}
);
diffs: fixed scope mismatch for diff navigation
r3163 var preloadDiffMenuData = {
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 results: [
## Wide diff mode
{
id: 1,
dan
diffs: exclude +/- from diffs generation and make then a non-selectable markers visible only via CSS.
r3135 text: _gettext('Toggle Wide Mode diff'),
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 action: function () {
updateSticky();
Rhodecode.comments.toggleWideMode(this);
return null;
},
url: null,
},
## Whitespace change
% if request.GET.get('ignorews', '') == '1':
{
id: 2,
text: _gettext('Show whitespace changes'),
action: function () {},
url: "${h.current_route_path(request, ignorews=0)|n}"
},
% else:
{
id: 2,
text: _gettext('Hide whitespace changes'),
action: function () {},
url: "${h.current_route_path(request, ignorews=1)|n}"
},
% endif
## FULL CONTEXT
% if request.GET.get('fullcontext', '') == '1':
{
id: 3,
text: _gettext('Hide full context diff'),
action: function () {},
url: "${h.current_route_path(request, fullcontext=0)|n}"
},
% else:
{
id: 3,
text: _gettext('Show full context diff'),
action: function () {},
url: "${h.current_route_path(request, fullcontext=1)|n}"
},
% endif
]
};
$("#diff_menu").select2({
minimumResultsForSearch: -1,
containerCssClass: "drop-menu",
dropdownCssClass: "drop-menu-dropdown",
dropdownAutoWidth: true,
diffs: fixed scope mismatch for diff navigation
r3163 data: preloadDiffMenuData,
dan
diffs: introducing diff menu for whitespace toggle and context changes
r3134 placeholder: "${_('Diff Options')}",
});
$("#diff_menu").on('select2-selecting', function (e) {
e.choice.action();
if (e.choice.url !== null) {
window.location = e.choice.url
}
});
dan
diffs: exclude +/- from diffs generation and make then a non-selectable markers visible only via CSS.
r3135
diffs: added handy quick file selector in diffs views.
r3100 });
</script>
% endif
dan
diffs: exclude +/- from diffs generation and make then a non-selectable markers visible only via CSS.
r3135 </%def>