##// END OF EJS Templates
Add cache to ypjax calls to overcome chrome caching issues of requests
Add cache to ypjax calls to overcome chrome caching issues of requests

File last commit:

r2673:d5e42c00 beta
r2694:78694f9a beta
Show More
pullrequest_show.html
174 lines | 7.1 KiB | text/html | HtmlLexer
<%inherit file="/base/base.html"/>
<%def name="title()">
${c.repo_name} ${_('Pull request #%s') % c.pull_request.pull_request_id}
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(_(u'Home'),h.url('/'))}
&raquo;
${h.link_to(c.repo_name,h.url('changelog_home',repo_name=c.repo_name))}
&raquo;
${_('Pull request #%s') % c.pull_request.pull_request_id}
</%def>
<%def name="main()">
<div class="box">
<!-- box / title -->
<div class="title">
${self.breadcrumbs()}
</div>
%if c.pull_request.is_closed():
<div style="padding:10px; font-size:22px;width:100%;text-align: center; color:#88D882">${_('Closed %s') % (h.age(c.pull_request.updated_on))}</div>
%endif
<h3>${_('Title')}: ${c.pull_request.title}
<div class="changeset-status-container" style="float:none">
%if c.current_changeset_status:
<div title="${_('Pull request status')}" class="changeset-status-lbl">[${h.changeset_status_lbl(c.current_changeset_status)}]</div>
<div class="changeset-status-ico" style="padding:4px"><img src="${h.url('/images/icons/flag_status_%s.png' % c.current_changeset_status)}" /></div>
%endif
</div>
</h3>
<div style="white-space:pre-wrap;padding:3px 3px 5px 20px">${h.literal(c.pull_request.description)}</div>
<div style="padding:4px 4px 10px 20px">
<div>${_('Created on')}: ${h.fmt_date(c.pull_request.created_on)}</div>
</div>
<div style="min-height:160px">
##DIFF
<div class="table" style="float:left;clear:none">
<div id="body" class="diffblock">
<div style="white-space:pre-wrap;padding:5px">${_('Compare view')}</div>
</div>
<div id="changeset_compare_view_content">
##CS
<div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${_('Incoming changesets')}</div>
<%include file="/compare/compare_cs.html" />
## FILES
<div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${_('Files affected')}</div>
<div class="cs_files">
%for fid, change, f, stat in c.files:
<div class="cs_${change}">
<div class="node">${h.link_to(h.safe_unicode(f),h.url.current(anchor=fid))}</div>
<div class="changes">${h.fancy_file_stats(stat)}</div>
</div>
%endfor
</div>
</div>
</div>
## REVIEWERS
<div style="float:left; border-left:1px dashed #eee">
<h4>${_('Pull request reviewers')}</h4>
<div id="reviewers" style="padding:0px 0px 0px 15px">
## members goes here !
<div class="group_members_wrap">
<ul id="review_members" class="group_members">
%for member,status in c.pull_request_reviewers:
<li id="reviewer_${member.user_id}">
<div class="reviewers_member">
<div style="float:left;padding:0px 3px 0px 0px" class="tooltip" title="${h.tooltip(h.changeset_status_lbl(status[0][1].status if status else 'not_reviewed'))}">
<img src="${h.url(str('/images/icons/flag_status_%s.png' % (status[0][1].status if status else 'not_reviewed')))}"/>
</div>
<div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(member.email,14)}"/> </div>
<div style="float:left">${member.full_name} (${_('owner')})</div>
<input type="hidden" value="${member.user_id}" name="review_members" />
%if not c.pull_request.is_closed():
<span class="delete_icon action_button" onclick="removeReviewer(${member.user_id})"></span>
%endif
</div>
</li>
%endfor
</ul>
</div>
%if not c.pull_request.is_closed():
<div class='ac'>
<div class="reviewer_ac">
${h.text('user', class_='yui-ac-input')}
<span class="help-block">${_('Add reviewer to this pull request.')}</span>
<div id="reviewers_container"></div>
</div>
<div style="padding:0px 10px">
<span id="update_pull_request" class="ui-btn xsmall">${_('save')}</span>
</div>
</div>
%endif
</div>
</div>
</div>
<script>
var _USERS_AC_DATA = ${c.users_array|n};
var _GROUPS_AC_DATA = ${c.users_groups_array|n};
AJAX_COMMENT_URL = "${url('pullrequest_comment',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}";
AJAX_COMMENT_DELETE_URL = "${url('pullrequest_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
AJAX_UPDATE_PULLREQUEST = "${url('pullrequest_update',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}"
</script>
## diff block
<%namespace name="diff_block" file="/changeset/diff_block.html"/>
%for fid, change, f, stat in c.files:
${diff_block.diff_block_simple([c.changes[fid]])}
%endfor
## template for inline comment form
<%namespace name="comment" file="/changeset/changeset_file_comment.html"/>
${comment.comment_inline_form()}
## render comments and inlines
${comment.generate_comments()}
% if not c.pull_request.is_closed():
## main comment form and it status
${comment.comments(h.url('pullrequest_comment', repo_name=c.repo_name,
pull_request_id=c.pull_request.pull_request_id),
c.current_changeset_status,
close_btn=True)}
%endif
<script type="text/javascript">
YUE.onDOMReady(function(){
PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
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);
YUE.on(YUD.get('update_pull_request'),'click',function(e){
var reviewers_ids = [];
var ids = YUQ('#review_members input');
for(var i=0; i<ids.length;i++){
var id = ids[i].value
reviewers_ids.push(id);
}
updateReviewers(reviewers_ids);
})
})
</script>
</div>
</%def>