##// END OF EJS Templates
fixed race condition in autocomplete widget on inlines comments
fixed race condition in autocomplete widget on inlines comments

File last commit:

r2430:9f372811 merge codereview
r2437:81c29d26 beta
Show More
changeset_file_comment.html
124 lines | 4.5 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
## usage:
## <%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
## ${comment.comment_block(co)}
##
<%def name="comment_block(co)">
<div class="comment" id="comment-${co.comment_id}" line="${co.line_no}">
<div class="comment-wrapp">
<div class="meta">
<span class="user">
<img src="${h.gravatar_url(co.author.email, 20)}" />
${co.author.username}
</span>
<span class="date">
${h.age(co.modified_at)}
</span>
%if h.HasPermissionAny('hg.admin', 'repository.admin')() or co.author.user_id == c.rhodecode_user.user_id:
<span class="buttons">
<span onClick="deleteComment(${co.comment_id})" class="delete-comment ui-btn">${_('Delete')}</span>
</span>
%endif
</div>
<div class="text">
${h.rst_w_mentions(co.text)|n}
</div>
</div>
</div>
</%def>
<%def name="comment_inline_form(changeset)">
<div id='comment-inline-form-template' style="display:none">
<div class="comment-inline-form ac">
%if c.rhodecode_user.username != 'default':
<div class="overlay"><div class="overlay-text">${_('Submitting...')}</div></div>
${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=changeset.raw_id),class_='inline-form')}
<div class="clearfix">
<div class="comment-help">${_('Commenting on line {1}.')}
${(_('Comments parsed using %s syntax with %s support.') % (
('<a href="%s">RST</a>' % h.url('rst_help')),
('<span style="color:#003367" class="tooltip" title="%s">@mention</span>' % _('Use @username inside this text to send notification to this RhodeCode user'))
)
)|n
}
</div>
<div class="mentions-container" id="mentions_container_{1}"></div>
<textarea id="text_{1}" name="text" class="yui-ac-input"></textarea>
</div>
<div class="comment-button">
<input type="hidden" name="f_path" value="{0}">
<input type="hidden" name="line" value="{1}">
${h.submit('save', _('Comment'), class_='ui-btn save-inline-form')}
${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
</div>
${h.end_form()}
%else:
${h.form('')}
<div class="clearfix">
<div class="comment-help">
${_('You need to be logged in to comment.')} <a href="${h.url('login_home',came_from=h.url.current())}">${_('Login now')}</a>
</div>
</div>
<div class="comment-button">
${h.reset('hide-inline-form', _('Hide'), class_='ui-btn hide-inline-form')}
</div>
${h.end_form()}
%endif
</div>
</div>
</%def>
<%def name="inlines(changeset)">
<div class="comments-number">${ungettext("%d comment", "%d comments", len(c.comments)) % len(c.comments)} ${ungettext("(%d inline)", "(%d inline)", c.inline_cnt) % c.inline_cnt}</div>
%for path, lines in c.inline_comments:
% for line,comments in lines.iteritems():
<div style="display:none" class="inline-comment-placeholder" path="${path}" target_id="${h.safeid(h.safe_unicode(path))}">
%for co in comments:
${comment_block(co)}
%endfor
</div>
%endfor
%endfor
</%def>
<%def name="comments(changeset)">
<div class="comments">
<div id="inline-comments-container">
${inlines(changeset)}
</div>
%for co in c.comments:
<div id="comment-tr-${co.comment_id}">
${comment_block(co)}
</div>
%endfor
%if c.rhodecode_user.username != 'default':
<div class="comment-form ac">
${h.form(h.url('changeset_comment', repo_name=c.repo_name, revision=changeset.raw_id))}
<strong>${_('Leave a comment')}</strong>
<div class="clearfix">
<div class="comment-help">
${(_('Comments parsed using %s syntax with %s support.') % (('<a href="%s">RST</a>' % h.url('rst_help')),
'<span style="color:#003367" class="tooltip" title="%s">@mention</span>' %
_('Use @username inside this text to send notification to this RhodeCode user')))|n}
</div>
<div class="mentions-container" id="mentions_container"></div>
${h.textarea('text')}
</div>
<div class="comment-button">
${h.submit('save', _('Comment'), class_='ui-button')}
</div>
${h.end_form()}
</div>
%endif
</div>
<script>
YUE.onDOMReady(function () {
MentionsAutoComplete('text', 'mentions_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
});
</script>
</%def>