##// 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:

r3376:27e2bdc5 default
r3408:2a133f7e stable
Show More
search_content.mako
99 lines | 4.1 KiB | application/x-mako | MakoHtmlLexer
<%def name="highlight_text_file(terms, text, url, line_context=3,
max_lines=10,
mimetype=None, filepath=None)">
<%
lines = text.split('\n')
lines_of_interest = set()
matching_lines = h.get_matching_line_offsets(lines, terms)
shown_matching_lines = 0
for line_number in matching_lines:
if len(lines_of_interest) < max_lines:
lines_of_interest |= set(range(
max(line_number - line_context, 0),
min(line_number + line_context, len(lines) + 1)))
shown_matching_lines += 1
%>
${h.code_highlight(
text,
h.get_lexer_safe(
mimetype=mimetype,
filepath=filepath,
),
h.SearchContentCodeHtmlFormatter(
linenos=True,
cssclass="code-highlight",
url=url,
query_terms=terms,
only_line_numbers=lines_of_interest
))|n}
%if len(matching_lines) > shown_matching_lines:
<a href="${url}">
${len(matching_lines) - shown_matching_lines} ${_('more matches in this file')}
</a>
%endif
</%def>
<div class="search-results">
%for entry in c.formatted_results:
## search results are additionally filtered, and this check is just a safe gate
% if h.HasRepoPermissionAny('repository.write','repository.read','repository.admin')(entry['repository'], 'search results content check'):
<div id="codeblock" class="codeblock">
<div class="codeblock-header">
<h2>
%if h.get_repo_type_by_name(entry.get('repository')) == 'hg':
<i class="icon-hg"></i>
%elif h.get_repo_type_by_name(entry.get('repository')) == 'git':
<i class="icon-git"></i>
%elif h.get_repo_type_by_name(entry.get('repository')) == 'svn':
<i class="icon-svn"></i>
%endif
${h.link_to(entry['repository'], h.route_path('repo_summary',repo_name=entry['repository']))}
</h2>
<div class="stats">
${h.link_to(h.literal(entry['f_path']), h.route_path('repo_files',repo_name=entry['repository'],commit_id=entry.get('commit_id', 'tip'),f_path=entry['f_path']))}
%if entry.get('lines'):
| ${entry.get('lines', 0.)} ${_ungettext('line', 'lines', entry.get('lines', 0.))}
%endif
%if entry.get('size'):
| ${h.format_byte_size_binary(entry['size'])}
%endif
%if entry.get('mimetype'):
| ${entry.get('mimetype', "unknown mimetype")}
%endif
</div>
<div class="buttons">
<a id="file_history_overview_full" href="${h.route_path('repo_changelog_file',repo_name=entry.get('repository',''),commit_id=entry.get('commit_id', 'tip'),f_path=entry.get('f_path',''))}">
${_('Show Full History')}
</a>
| ${h.link_to(_('Annotation'), h.route_path('repo_files:annotated', repo_name=entry.get('repository',''),commit_id=entry.get('commit_id', 'tip'),f_path=entry.get('f_path','')))}
| ${h.link_to(_('Raw'), h.route_path('repo_file_raw', repo_name=entry.get('repository',''),commit_id=entry.get('commit_id', 'tip'),f_path=entry.get('f_path','')))}
| ${h.link_to(_('Download'), h.route_path('repo_file_download',repo_name=entry.get('repository',''),commit_id=entry.get('commit_id', 'tip'),f_path=entry.get('f_path','')))}
</div>
</div>
<div class="code-body search-code-body">
${highlight_text_file(c.cur_query, entry['content'],
url=h.route_path('repo_files',repo_name=entry['repository'],commit_id=entry.get('commit_id', 'tip'),f_path=entry['f_path']),
mimetype=entry.get('mimetype'), filepath=entry.get('path'))}
</div>
</div>
% endif
%endfor
</div>
%if c.cur_query and c.formatted_results:
<div class="pagination-wh pagination-left" >
${c.formatted_results.pager('$link_previous ~2~ $link_next')}
</div>
%endif
%if c.cur_query:
<script type="text/javascript">
$(function(){
$(".code").mark(
'${' '.join(h.normalize_text_for_matching(c.cur_query).split())}',
{"className": 'match',
});
})
</script>
%endif