##// END OF EJS Templates
caches: use repo.lru based Dict cache. This LRUDict uses Timing Algo to not have to use locking...
caches: use repo.lru based Dict cache. This LRUDict uses Timing Algo to not have to use locking for the LRU implementation, this it's safer to use for dogpile. We used it before with beaker, so it's generally more stable.

File last commit:

r2446:acc26706 default
r2945:ec5716e4 default
Show More
summary_commits.mako
142 lines | 5.7 KiB | application/x-mako | MakoHtmlLexer
repo-summary: re-implemented summary view as pyramid....
r1785 ## -*- coding: utf-8 -*-
<%namespace name="base" file="/base/base.mako"/>
%if c.repo_commits:
<table class="rctable repo_summary table_disp">
<tr>
<th class="status" colspan="2"></th>
<th>${_('Commit')}</th>
<th>${_('Commit message')}</th>
<th>${_('Age')}</th>
<th>${_('Author')}</th>
<th>${_('Refs')}</th>
</tr>
issue-trackers: cache the fetched issue tracker paterns before loop iteration in summary and compare.
r2446
## to speed up lookups cache some functions before the loop
<%
active_patterns = h.get_active_pattern_entries(c.repo_name)
urlify_commit_message = h.partial(h.urlify_commit_message, active_pattern_entries=active_patterns)
%>
repo-summary: re-implemented summary view as pyramid....
r1785 %for cnt,cs in enumerate(c.repo_commits):
<tr class="parity${cnt%2}">
<td class="td-status">
%if c.statuses.get(cs.raw_id):
<div class="changeset-status-ico shortlog">
%if c.statuses.get(cs.raw_id)[2]:
pull-requests: prepare the migration of pull request to pyramid....
r1813 <a class="tooltip" title="${_('Commit status: %s\nClick to open associated pull request #%s') % (c.statuses.get(cs.raw_id)[0], c.statuses.get(cs.raw_id)[2])}" href="${h.route_path('pullrequest_show',repo_name=c.statuses.get(cs.raw_id)[3],pull_request_id=c.statuses.get(cs.raw_id)[2])}">
repo-commits: ported changeset code into pyramid views....
r1951 <div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
repo-summary: re-implemented summary view as pyramid....
r1785 </a>
%else:
repo-commits: ported changeset code into pyramid views....
r1951 <a class="tooltip" title="${_('Commit status: {}').format(h.commit_status_lbl(c.statuses.get(cs.raw_id)[0]))}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
<div class="${'flag_status {}'.format(c.statuses.get(cs.raw_id)[0])}"></div>
repo-summary: re-implemented summary view as pyramid....
r1785 </a>
%endif
</div>
%else:
<div class="tooltip flag_status not_reviewed" title="${_('Commit status: Not Reviewed')}"></div>
%endif
</td>
<td class="td-comments">
%if c.comments.get(cs.raw_id,[]):
repo-commits: ported changeset code into pyramid views....
r1951 <a title="${_('Commit has comments')}" href="${h.route_path('repo_commit',repo_name=c.repo_name,commit_id=cs.raw_id,_anchor='comment-%s' % c.comments[cs.raw_id][0].comment_id)}">
repo-summary: re-implemented summary view as pyramid....
r1785 <i class="icon-comment"></i> ${len(c.comments[cs.raw_id])}
</a>
%endif
</td>
<td class="td-commit">
repo-commits: ported changeset code into pyramid views....
r1951 <pre><a href="${h.route_path('repo_commit', repo_name=c.repo_name, commit_id=cs.raw_id)}">${h.show_id(cs)}</a></pre>
repo-summary: re-implemented summary view as pyramid....
r1785 </td>
<td class="td-description mid">
<div class="log-container truncate-wrap">
issue-trackers: cache the fetched issue tracker paterns before loop iteration in summary and compare.
r2446 <div class="message truncate" id="c-${cs.raw_id}">${urlify_commit_message(cs.message, c.repo_name)}</div>
repo-summary: re-implemented summary view as pyramid....
r1785 </div>
</td>
<td class="td-time">
${h.age_component(cs.date)}
</td>
<td class="td-user author">
${base.gravatar_with_user(cs.author)}
</td>
<td class="td-tags">
<div class="autoexpand">
%if h.is_hg(c.rhodecode_repo):
%for book in cs.bookmarks:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <span class="booktag tag" title="${h.tooltip(_('Bookmark %s') % book)}">
files: ported repository files controllers to pyramid views.
r1927 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=book))}"><i class="icon-bookmark"></i>${h.shorter(book)}</a>
repo-summary: re-implemented summary view as pyramid....
r1785 </span>
%endfor
%endif
## tags
%for tag in cs.tags:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <span class="tagtag tag" title="${h.tooltip(_('Tag %s') % tag)}">
files: ported repository files controllers to pyramid views.
r1927 <a href="${h.route_path('repo_files:default_path',repo_name=c.repo_name,commit_id=cs.raw_id, _query=dict(at=tag))}"><i class="icon-tag"></i>${h.shorter(tag)}</a>
repo-summary: re-implemented summary view as pyramid....
r1785 </span>
%endfor
## branch
%if cs.branch:
dan
tooltip: use consistent h.tooltip usage to set tooltips.
r1843 <span class="branchtag tag" title="${h.tooltip(_('Branch %s') % cs.branch)}">
changelog: ported to pyramid views.
r1931 <a href="${h.route_path('repo_changelog',repo_name=c.repo_name,_query=dict(branch=cs.branch))}"><i class="icon-code-fork"></i>${h.shorter(cs.branch)}</a>
repo-summary: re-implemented summary view as pyramid....
r1785 </span>
%endif
</div>
</td>
</tr>
%endfor
</table>
<script type="text/javascript">
repo-summary: don't push the url used for generation of summary preview. The url is...
r2072 $(document).pjax('#shortlog_data .pager_link','#shortlog_data', {timeout: 2000, scrollTo: false, push: false});
repo-summary: re-implemented summary view as pyramid....
r1785 $(document).on('pjax:success', function(){ timeagoActivate(); });
</script>
<div class="pagination-wh pagination-left">
${c.repo_commits.pager('$link_previous ~2~ $link_next')}
</div>
%else:
%if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name):
<div class="quick_start">
<div class="fieldset">
<div class="left-label">${_('Add or upload files directly via RhodeCode:')}</div>
<div class="right-content">
<div id="add_node_id" class="add_node">
files: ported repository files controllers to pyramid views.
r1927 <a href="${h.route_path('repo_files_add_file',repo_name=c.repo_name,commit_id=0, f_path='', _anchor='edit')}" class="btn btn-default">${_('Add New File')}</a>
repo-summary: re-implemented summary view as pyramid....
r1785 </div>
</div>
%endif
</div>
%if not h.is_svn(c.rhodecode_repo):
<div class="fieldset">
<div class="left-label">${_('Push new repo:')}</div>
<div class="right-content">
<pre>
${c.rhodecode_repo.alias} clone ${c.clone_repo_url}
${c.rhodecode_repo.alias} add README # add first file
${c.rhodecode_repo.alias} commit -m "Initial" # commit with message
${c.rhodecode_repo.alias} push ${'origin master' if h.is_git(c.rhodecode_repo) else ''} # push changes back
</pre>
</div>
</div>
<div class="fieldset">
<div class="left-label">${_('Existing repository?')}</div>
<div class="right-content">
<pre>
%if h.is_git(c.rhodecode_repo):
git remote add origin ${c.clone_repo_url}
git push -u origin master
%else:
hg push ${c.clone_repo_url}
%endif
</pre>
</div>
</div>
%endif
</div>
%endif