##// END OF EJS Templates
feat(configs): deprecared old hooks protocol and ssh wrapper....
feat(configs): deprecared old hooks protocol and ssh wrapper. New defaults are now set on v2 keys, so previous installation are automatically set to new keys. Fallback mode is still available.

File last commit:

r5046:0c2a09c8 default
r5496:cab50adf default
Show More
sidebar.mako
168 lines | 6.8 KiB | application/x-mako | MakoHtmlLexer
## snippet for sidebar elements
## usage:
## <%namespace name="sidebar" file="/base/sidebar.mako"/>
## ${sidebar.comments_table()}
<%namespace name="base" file="/base/base.mako"/>
<%def name="comments_table(comments, counter_num, todo_comments=False, draft_comments=False, existing_ids=None, is_pr=True)">
<%
if todo_comments:
cls_ = 'todos-content-table'
def sorter(entry):
user_id = entry.author.user_id
resolved = '1' if entry.resolved else '0'
if user_id == c.rhodecode_user.user_id:
# own comments first
user_id = 0
return '{}'.format(str(entry.comment_id).zfill(10000))
elif draft_comments:
cls_ = 'drafts-content-table'
def sorter(entry):
return '{}'.format(str(entry.comment_id).zfill(10000))
else:
cls_ = 'comments-content-table'
def sorter(entry):
return '{}'.format(str(entry.comment_id).zfill(10000))
existing_ids = existing_ids or []
%>
<table class="todo-table ${cls_}" data-total-count="${len(comments)}" data-counter="${counter_num}">
% for loop_obj, comment_obj in h.looper(reversed(sorted(comments, key=sorter))):
<%
display = ''
_cls = ''
## Extra precaution to not show drafts in the sidebar for todo/comments
if comment_obj.draft and not draft_comments:
continue
%>
<%
vers = getattr(c, 'versions', [])
comment_ver_index = comment_obj.get_index_version(vers)
prev_comment_ver_index = 0
if loop_obj.previous:
prev_comment_ver_index = loop_obj.previous.get_index_version(vers)
ver_info = None
if vers:
ver_info = c.versions[comment_ver_index-1] if comment_ver_index else None
%>
<% hidden_at_ver = comment_obj.outdated_at_version_js(c.at_version_num) %>
<% is_from_old_ver = comment_obj.older_than_version_js(c.at_version_num) %>
<%
if prev_comment_ver_index > comment_ver_index:
comments_ver_divider = comment_ver_index
else:
comments_ver_divider = None
%>
% if todo_comments:
% if comment_obj.resolved:
<% _cls = 'resolved-todo' %>
<% display = 'none' %>
% endif
% else:
## SKIP TODOs we display them in other area
% if comment_obj.is_todo and not comment_obj.draft:
<% display = 'none' %>
% endif
## Skip outdated comments
% if comment_obj.outdated:
<% display = 'none' %>
<% _cls = 'hidden-comment' %>
% endif
% endif
% if not todo_comments and comments_ver_divider:
<tr class="old-comments-marker">
<td colspan="3">
% if ver_info:
<code>v${comments_ver_divider} ${h.age_component(ver_info.created_on, time_is_local=True, tooltip=False)}</code>
% else:
<code>v${comments_ver_divider}</code>
% endif
</td>
</tr>
% endif
<tr class="${_cls}" style="display: ${display};" data-sidebar-comment-id="${comment_obj.comment_id}">
% if draft_comments:
<td style="width: 15px;">
${h.checkbox('submit_draft', id=None, value=comment_obj.comment_id)}
</td>
% endif
<td class="td-todo-number">
<%
version_info = ''
if is_pr:
version_info = (' made in older version (v{})'.format(comment_ver_index) if is_from_old_ver == 'true' else ' made in this version')
%>
## new comments, since refresh
% if existing_ids and comment_obj.comment_id not in existing_ids:
<div class="tooltip" style="position: absolute; left: 8px; color: #682668" title="New comment">
!
</div>
% endif
<%
data = h.str_json({
'comment_id': comment_obj.comment_id,
'version_info': version_info,
'file_name': comment_obj.f_path,
'line_no': comment_obj.line_no,
'outdated': comment_obj.outdated,
'inline': comment_obj.is_inline,
'is_todo': comment_obj.is_todo,
'created_on': h.format_date(comment_obj.created_on),
'datetime': '{}{}'.format(comment_obj.created_on, h.get_timezone(comment_obj.created_on, time_is_local=True)),
'review_status': (comment_obj.review_status or '')
})
icon = ''
if comment_obj.outdated:
icon += ' icon-comment-toggle'
elif comment_obj.is_inline:
icon += ' icon-code'
else:
icon += ' icon-comment'
if comment_obj.draft:
if comment_obj.is_todo:
icon = 'icon-flag-filled icon-draft'
else:
icon = 'icon-comment icon-draft'
%>
<i id="commentHovercard${comment_obj.comment_id}"
class="${icon} tooltip-hovercard"
data-hovercard-url="javascript:sidebarComment(${comment_obj.comment_id})"
data-comment-json-b64='${h.b64(data)}'>
</i>
</td>
<td class="td-todo-gravatar">
${base.gravatar(comment_obj.author.email, 16, user=comment_obj.author, tooltip=True, extra_class=['no-margin'])}
</td>
<td class="todo-comment-text-wrapper">
<div class="todo-comment-text ${('todo-resolved' if comment_obj.resolved else '')}">
<a class="${('todo-resolved' if comment_obj.resolved else '')} permalink"
href="#comment-${comment_obj.comment_id}"
onclick="return Rhodecode.comments.scrollToComment($('#comment-${comment_obj.comment_id}'), 0, ${hidden_at_ver})">
${h.chop_at_smart(comment_obj.text, '\n', suffix_if_chopped='...')}
</a>
</div>
</td>
</tr>
% endfor
</table>
</%def>