Mercurial > kallithea
view rhodecode/templates/changeset/changeset.html @ 2375:bc2d8c03c050 beta
Implemented #467 Journal logs comments on changesets
- added created/updated user action to journal
- added created/updated users group action journal
- added ip adresses to most of action_log calls to track IP changes
- rewrote action_parser to simpler and more efficient solution
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 03 Jun 2012 00:40:14 +0200 |
parents | c2f131502037 |
children | 91fae60bf2b6 44f328d6f209 |
line wrap: on
line source
## -*- coding: utf-8 -*- <%inherit file="/base/base.html"/> <%def name="title()"> ${c.repo_name} ${_('Changeset')} - r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} - ${c.rhodecode_name} </%def> <%def name="breadcrumbs_links()"> ${h.link_to(u'Home',h.url('/'))} » ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))} » ${_('Changeset')} - <span class='hash'>r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}</span> </%def> <%def name="page_nav()"> ${self.menu('changelog')} </%def> <%def name="main()"> <div class="box"> <!-- box / title --> <div class="title"> ${self.breadcrumbs()} </div> <div class="table"> <div class="diffblock"> <div class="code-header"> <div class="hash"> r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)} </div> <div class="date"> ${c.changeset.date} </div> <div class="diff-actions"> <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='show')}" title="${_('raw diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white.png')}"/></a> <a href="${h.url('raw_changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id,diff='download')}" title="${_('download diff')}" class="tooltip"><img class="icon" src="${h.url('/images/icons/page_white_get.png')}"/></a> ${c.ignorews_url(request.GET)} ${c.context_url(request.GET)} </div> <div class="comments-number" style="float:right;padding-right:5px">${ungettext("%d comment", "%d comments", len(c.comments)) % len(c.comments)} ${ungettext("(%d inline)", "(%d inline)", c.inline_cnt) % c.inline_cnt}</div> </div> </div> <div id="changeset_content"> <div class="container"> <div class="left"> <div class="author"> <div class="gravatar"> <img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/> </div> <span>${h.person(c.changeset.author)}</span><br/> <span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/> </div> <div class="message">${h.urlify_commit(h.wrap_paragraphs(c.changeset.message),c.repo_name)}</div> </div> <div class="right"> <div class="changes"> % if len(c.changeset.affected_files) <= c.affected_files_cut_off: <span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span> <span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span> <span class="added" title="${_('added')}">${len(c.changeset.added)}</span> % else: <span class="removed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span> <span class="changed" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span> <span class="added" title="${_('affected %s files') % len(c.changeset.affected_files)}">!</span> % endif </div> %if c.changeset.parents: %for p_cs in reversed(c.changeset.parents): <div class="parent">${_('Parent')} <span class="changeset_id">${p_cs.revision}:<span class="changeset_hash">${h.link_to(h.short_id(p_cs.raw_id), h.url('changeset_home',repo_name=c.repo_name,revision=p_cs.raw_id),title=p_cs.message)}</span></span> </div> %endfor %else: <div class="parent">${_('No parents')}</div> %endif <span class="logtags"> %if len(c.changeset.parents)>1: <span class="merge">${_('merge')}</span> %endif %if c.changeset.branch: <span class="branchtag" title="${'%s %s' % (_('branch'),c.changeset.branch)}"> ${h.link_to(c.changeset.branch,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))} </span> %endif %for tag in c.changeset.tags: <span class="tagtag" title="${'%s %s' % (_('tag'),tag)}"> ${h.link_to(tag,h.url('files_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</span> %endfor </span> </div> </div> <span> ${_('%s files affected with %s insertions and %s deletions:') % (len(c.changeset.affected_files),c.lines_added,c.lines_deleted)} </span> <div class="cs_files"> %for change,filenode,diff,cs1,cs2,stat in c.changes: <div class="cs_${change}"> <div class="node"> %if change != 'removed': ${h.link_to(h.safe_unicode(filenode.path),c.anchor_url(filenode.changeset.raw_id,filenode.path,request.GET)+"_target")} %else: ${h.link_to(h.safe_unicode(filenode.path),h.url.current(anchor=h.FID('',filenode.path)))} %endif </div> <div class="changes">${h.fancy_file_stats(stat)}</div> </div> %endfor % if c.cut_off: ${_('Changeset was too big and was cut off...')} % endif </div> </div> </div> <script> var _USERS_AC_DATA = ${c.users_array|n}; var _GROUPS_AC_DATA = ${c.users_groups_array|n}; </script> ## diff block <%namespace name="diff_block" file="/changeset/diff_block.html"/> ${diff_block.diff_block(c.changes)} ## template for inline comment form <%namespace name="comment" file="/changeset/changeset_file_comment.html"/> ${comment.comment_inline_form(c.changeset)} ## render comments ${comment.comments(c.changeset)} <script type="text/javascript"> YUE.onDOMReady(function(){ AJAX_COMMENT_URL = "${url('changeset_comment',repo_name=c.repo_name,revision=c.changeset.raw_id)}"; AJAX_COMMENT_DELETE_URL = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}" YUE.on(YUQ('.show-inline-comments'),'change',function(e){ var show = 'none'; var target = e.currentTarget; if(target.checked){ var show = '' } var boxid = YUD.getAttribute(target,'id_for'); var comments = YUQ('#{0} .inline-comments'.format(boxid)); for(c in comments){ YUD.setStyle(comments[c],'display',show); } var btns = YUQ('#{0} .inline-comments-button'.format(boxid)); for(c in btns){ YUD.setStyle(btns[c],'display',show); } }) YUE.on(YUQ('.line'),'click',function(e){ var tr = e.currentTarget; injectInlineForm(tr); }); // inject comments into they proper positions var file_comments = YUQ('.inline-comment-placeholder'); renderInlineComments(file_comments); }) </script> </div> </%def>