changeset.html
314 lines
| 12.8 KiB
| text/html
|
HtmlLexer
r1 | ## -*- coding: utf-8 -*- | |||
<%inherit file="/base/base.html"/> | ||||
<%namespace name="diff_block" file="/changeset/diff_block.html"/> | ||||
<%def name="title()"> | ||||
${_('%s Commit') % c.repo_name} - ${h.show_id(c.commit)} | ||||
%if c.rhodecode_name: | ||||
· ${h.branding(c.rhodecode_name)} | ||||
%endif | ||||
</%def> | ||||
<%def name="menu_bar_nav()"> | ||||
${self.menu_items(active='repositories')} | ||||
</%def> | ||||
<%def name="menu_bar_subnav()"> | ||||
${self.repo_menu(active='changelog')} | ||||
</%def> | ||||
<%def name="main()"> | ||||
<script> | ||||
// TODO: marcink switch this to pyroutes | ||||
AJAX_COMMENT_DELETE_URL = "${url('changeset_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}"; | ||||
templateContext.commit_data.commit_id = "${c.commit.raw_id}"; | ||||
</script> | ||||
<div class="box"> | ||||
<div class="title"> | ||||
${self.repo_page_title(c.rhodecode_db_repo)} | ||||
</div> | ||||
<div id="changeset_compare_view_content" class="summary changeset"> | ||||
<div class="summary-detail"> | ||||
<div class="summary-detail-header"> | ||||
<span class="breadcrumbs files_location"> | ||||
<h4>${_('Commit')} | ||||
<code> | ||||
${h.show_id(c.commit)} | ||||
</code> | ||||
</h4> | ||||
</span> | ||||
<span id="parent_link"> | ||||
<a href="#" title="${_('Parent Commit')}">${_('Parent')}</a> | ||||
</span> | ||||
r1139 | | | |||
r1 | <span id="child_link"> | |||
<a href="#" title="${_('Child Commit')}">${_('Child')}</a> | ||||
</span> | ||||
</div> | ||||
r1139 | ||||
r1 | <div class="fieldset"> | |||
<div class="left-label"> | ||||
${_('Description')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<div id="trimmed_message_box" class="commit">${h.urlify_commit_message(c.commit.message,c.repo_name)}</div> | ||||
<div id="message_expand" style="display:none;"> | ||||
${_('Expand')} | ||||
</div> | ||||
</div> | ||||
</div> | ||||
r1139 | ||||
r1 | %if c.statuses: | |||
<div class="fieldset"> | ||||
<div class="left-label"> | ||||
${_('Commit status')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<div class="changeset-status-ico"> | ||||
<div class="${'flag_status %s' % c.statuses[0]} pull-left"></div> | ||||
</div> | ||||
<div title="${_('Commit status')}" class="changeset-status-lbl">[${h.commit_status_lbl(c.statuses[0])}]</div> | ||||
</div> | ||||
</div> | ||||
%endif | ||||
r1139 | ||||
r1 | <div class="fieldset"> | |||
<div class="left-label"> | ||||
${_('References')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<div class="tags"> | ||||
r1139 | ||||
r1 | %if c.commit.merge: | |||
<span class="mergetag tag"> | ||||
r931 | <i class="icon-merge"></i>${_('merge')} | |||
r1 | </span> | |||
%endif | ||||
r1139 | ||||
r1 | %if h.is_hg(c.rhodecode_repo): | |||
%for book in c.commit.bookmarks: | ||||
<span class="booktag tag" title="${_('Bookmark %s') % book}"> | ||||
<a href="${h.url('files_home',repo_name=c.repo_name,revision=c.commit.raw_id)}"><i class="icon-bookmark"></i>${h.shorter(book)}</a> | ||||
</span> | ||||
%endfor | ||||
%endif | ||||
r1139 | ||||
r1 | %for tag in c.commit.tags: | |||
<span class="tagtag tag" title="${_('Tag %s') % tag}"> | ||||
<a href="${h.url('files_home',repo_name=c.repo_name,revision=c.commit.raw_id)}"><i class="icon-tag"></i>${tag}</a> | ||||
</span> | ||||
%endfor | ||||
r1139 | ||||
r1 | %if c.commit.branch: | |||
<span class="branchtag tag" title="${_('Branch %s') % c.commit.branch}"> | ||||
<a href="${h.url('files_home',repo_name=c.repo_name,revision=c.commit.raw_id)}"><i class="icon-code-fork"></i>${h.shorter(c.commit.branch)}</a> | ||||
</span> | ||||
%endif | ||||
</div> | ||||
</div> | ||||
</div> | ||||
<div class="fieldset"> | ||||
<div class="left-label"> | ||||
r1259 | ${_('Diff options')}: | |||
r1 | </div> | |||
<div class="right-content"> | ||||
<div class="diff-actions"> | ||||
<a href="${h.url('changeset_raw_home',repo_name=c.repo_name,revision=c.commit.raw_id)}" class="tooltip" title="${h.tooltip(_('Raw diff'))}"> | ||||
${_('Raw Diff')} | ||||
</a> | ||||
r1139 | | | |||
r1 | <a href="${h.url('changeset_patch_home',repo_name=c.repo_name,revision=c.commit.raw_id)}" class="tooltip" title="${h.tooltip(_('Patch diff'))}"> | |||
${_('Patch Diff')} | ||||
</a> | ||||
r1139 | | | |||
r1 | <a href="${h.url('changeset_download_home',repo_name=c.repo_name,revision=c.commit.raw_id,diff='download')}" class="tooltip" title="${h.tooltip(_('Download diff'))}"> | |||
${_('Download Diff')} | ||||
</a> | ||||
r1139 | | | |||
r1 | ${c.ignorews_url(request.GET)} | |||
r1139 | | | |||
r1 | ${c.context_url(request.GET)} | |||
</div> | ||||
</div> | ||||
</div> | ||||
r1139 | ||||
r1 | <div class="fieldset"> | |||
<div class="left-label"> | ||||
${_('Comments')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<div class="comments-number"> | ||||
%if c.comments: | ||||
<a href="#comments">${ungettext("%d Commit comment", "%d Commit comments", len(c.comments)) % len(c.comments)}</a>, | ||||
%else: | ||||
${ungettext("%d Commit comment", "%d Commit comments", len(c.comments)) % len(c.comments)} | ||||
%endif | ||||
%if c.inline_cnt: | ||||
r1143 | <a href="#" onclick="return Rhodecode.comments.nextComment();" id="inline-comments-counter">${ungettext("%d Inline Comment", "%d Inline Comments", c.inline_cnt) % c.inline_cnt}</a> | |||
r1 | %else: | |||
${ungettext("%d Inline Comment", "%d Inline Comments", c.inline_cnt) % c.inline_cnt} | ||||
%endif | ||||
</div> | ||||
</div> | ||||
</div> | ||||
r1139 | ||||
r1 | </div> <!-- end summary-detail --> | |||
r1139 | ||||
r1 | <div id="commit-stats" class="sidebar-right"> | |||
<div class="summary-detail-header"> | ||||
<h4 class="item"> | ||||
${_('Author')} | ||||
</h4> | ||||
</div> | ||||
r410 | <div class="sidebar-right-content"> | |||
${self.gravatar_with_user(c.commit.author)} | ||||
<div class="user-inline-data">- ${h.age_component(c.commit.date)}</div> | ||||
</div> | ||||
r1 | </div><!-- end sidebar --> | |||
</div> <!-- end summary --> | ||||
r1139 | <div class="cs_files"> | |||
r1143 | <%namespace name="cbdiffs" file="/codeblocks/diffs.html"/> | |||
${cbdiffs.render_diffset_menu()} | ||||
${cbdiffs.render_diffset( | ||||
c.changes[c.commit.raw_id], commit=c.commit, use_comments=True)} | ||||
r1139 | </div> | |||
r1 | ||||
## template for inline comment form | ||||
<%namespace name="comment" file="/changeset/changeset_file_comment.html"/> | ||||
r1192 | ## render comments | |||
r1 | ${comment.generate_comments()} | |||
## main comment form and it status | ||||
${comment.comments(h.url('changeset_comment', repo_name=c.repo_name, revision=c.commit.raw_id), | ||||
h.commit_status(c.rhodecode_db_repo, c.commit.raw_id))} | ||||
r1143 | </div> | |||
r1 | ||||
## FORM FOR MAKING JS ACTION AS CHANGESET COMMENTS | ||||
<script type="text/javascript"> | ||||
$(document).ready(function() { | ||||
var boxmax = parseInt($('#trimmed_message_box').css('max-height'), 10); | ||||
if($('#trimmed_message_box').height() === boxmax){ | ||||
$('#message_expand').show(); | ||||
} | ||||
$('#message_expand').on('click', function(e){ | ||||
$('#trimmed_message_box').css('max-height', 'none'); | ||||
$(this).hide(); | ||||
}); | ||||
$('.show-inline-comments').on('click', function(e){ | ||||
var boxid = $(this).attr('data-comment-id'); | ||||
var button = $(this); | ||||
if(button.hasClass("comments-visible")) { | ||||
$('#{0} .inline-comments'.format(boxid)).each(function(index){ | ||||
$(this).hide(); | ||||
r1192 | }); | |||
r1 | button.removeClass("comments-visible"); | |||
} else { | ||||
$('#{0} .inline-comments'.format(boxid)).each(function(index){ | ||||
$(this).show(); | ||||
r1192 | }); | |||
r1 | button.addClass("comments-visible"); | |||
} | ||||
}); | ||||
// next links | ||||
$('#child_link').on('click', function(e){ | ||||
// fetch via ajax what is going to be the next link, if we have | ||||
// >1 links show them to user to choose | ||||
if(!$('#child_link').hasClass('disabled')){ | ||||
$.ajax({ | ||||
url: '${h.url('changeset_children',repo_name=c.repo_name, revision=c.commit.raw_id)}', | ||||
success: function(data) { | ||||
if(data.results.length === 0){ | ||||
r1192 | $('#child_link').html("${_('No Child Commits')}").addClass('disabled'); | |||
r1 | } | |||
if(data.results.length === 1){ | ||||
var commit = data.results[0]; | ||||
window.location = pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': commit.raw_id}); | ||||
} | ||||
else if(data.results.length === 2){ | ||||
$('#child_link').addClass('disabled'); | ||||
$('#child_link').addClass('double'); | ||||
var _html = ''; | ||||
_html +='<a title="__title__" href="__url__">__rev__</a> ' | ||||
.replace('__rev__','r{0}:{1}'.format(data.results[0].revision, data.results[0].raw_id.substr(0,6))) | ||||
.replace('__title__', data.results[0].message) | ||||
.replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[0].raw_id})); | ||||
_html +=' | ' | ||||
_html +='<a title="__title__" href="__url__">__rev__</a> ' | ||||
.replace('__rev__','r{0}:{1}'.format(data.results[1].revision, data.results[1].raw_id.substr(0,6))) | ||||
.replace('__title__', data.results[1].message) | ||||
.replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[1].raw_id})); | ||||
$('#child_link').html(_html); | ||||
} | ||||
} | ||||
}); | ||||
e.preventDefault(); | ||||
} | ||||
}); | ||||
// prev links | ||||
$('#parent_link').on('click', function(e){ | ||||
// fetch via ajax what is going to be the next link, if we have | ||||
// >1 links show them to user to choose | ||||
if(!$('#parent_link').hasClass('disabled')){ | ||||
$.ajax({ | ||||
r1192 | url: '${h.url("changeset_parents",repo_name=c.repo_name, revision=c.commit.raw_id)}', | |||
r1 | success: function(data) { | |||
if(data.results.length === 0){ | ||||
$('#parent_link').html('${_('No Parent Commits')}').addClass('disabled'); | ||||
} | ||||
if(data.results.length === 1){ | ||||
var commit = data.results[0]; | ||||
window.location = pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': commit.raw_id}); | ||||
} | ||||
else if(data.results.length === 2){ | ||||
$('#parent_link').addClass('disabled'); | ||||
$('#parent_link').addClass('double'); | ||||
var _html = ''; | ||||
_html +='<a title="__title__" href="__url__">Parent __rev__</a>' | ||||
.replace('__rev__','r{0}:{1}'.format(data.results[0].revision, data.results[0].raw_id.substr(0,6))) | ||||
.replace('__title__', data.results[0].message) | ||||
.replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[0].raw_id})); | ||||
_html +=' | ' | ||||
_html +='<a title="__title__" href="__url__">Parent __rev__</a>' | ||||
.replace('__rev__','r{0}:{1}'.format(data.results[1].revision, data.results[1].raw_id.substr(0,6))) | ||||
.replace('__title__', data.results[1].message) | ||||
.replace('__url__', pyroutes.url('changeset_home', {'repo_name': '${c.repo_name}','revision': data.results[1].raw_id})); | ||||
$('#parent_link').html(_html); | ||||
} | ||||
} | ||||
}); | ||||
e.preventDefault(); | ||||
} | ||||
}); | ||||
r789 | if (location.hash) { | |||
var result = splitDelimitedHash(location.hash); | ||||
var line = $('html').find(result.loc); | ||||
r794 | if (line.length > 0){ | |||
offsetScroll(line, 70); | ||||
} | ||||
r1 | } | |||
// browse tree @ revision | ||||
$('#files_link').on('click', function(e){ | ||||
window.location = '${h.url('files_home',repo_name=c.repo_name, revision=c.commit.raw_id, f_path='')}'; | ||||
e.preventDefault(); | ||||
}); | ||||
// inject comments into their proper positions | ||||
var file_comments = $('.inline-comment-placeholder'); | ||||
}) | ||||
</script> | ||||
</%def> | ||||