comparison rhodecode/templates/pullrequests/pullrequest_show.html @ 2614:3f50a5e8fc4d beta

Added editing of pull-request reviewers.
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 15 Jul 2012 21:16:14 +0200
parents 58c529332e7e
children 731e823d330e
comparison
equal deleted inserted replaced
2613:ad3573d744ef 2614:3f50a5e8fc4d
33 <div style="white-space:pre-wrap;padding:3px 3px 5px 20px">${h.literal(c.pull_request.description)}</div> 33 <div style="white-space:pre-wrap;padding:3px 3px 5px 20px">${h.literal(c.pull_request.description)}</div>
34 <div style="padding:4px 4px 10px 20px"> 34 <div style="padding:4px 4px 10px 20px">
35 <div>${_('Created on')}: ${h.fmt_date(c.pull_request.created_on)}</div> 35 <div>${_('Created on')}: ${h.fmt_date(c.pull_request.created_on)}</div>
36 </div> 36 </div>
37 37
38 ## REVIEWERS
39 <div> 38 <div>
40 <div class="table" style="float:right;width:46%;clear:none">
41 <div id="body" class="diffblock">
42 <div style="white-space:pre-wrap;padding:5px">${_('Pull request reviewers')}</div>
43 </div>
44 <div style="border: 1px solid #CCC">
45 <div class="group_members_wrap">
46 <ul class="group_members">
47 %for user,status in c.pull_request_reviewers:
48 <li>
49 <div class="group_member">
50 <div style="float:left;padding:3px" class="tooltip" title="${h.tooltip(h.changeset_status_lbl(status[0][1].status if status else 'not_reviewed'))}">
51 <img src="${h.url(str('/images/icons/flag_status_%s.png' % (status[0][1].status if status else 'not_reviewed')))}"/>
52 </div>
53 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(user.email,20)}"/> </div>
54 <div style="float:left">${user.username}</div>
55 </div>
56 </li>
57 %endfor
58 </ul>
59 </div>
60 </div>
61 </div>
62 ##DIFF 39 ##DIFF
63 <div class="table" style="float:left;width:46%;clear:none"> 40 <div class="table" style="float:left;clear:none">
64 <div id="body" class="diffblock"> 41 <div id="body" class="diffblock">
65 <div style="white-space:pre-wrap;padding:5px">${_('Compare view')}</div> 42 <div style="white-space:pre-wrap;padding:5px">${_('Compare view')}</div>
66 </div> 43 </div>
67 <div id="changeset_compare_view_content"> 44 <div id="changeset_compare_view_content">
68 ##CS 45 ##CS
79 </div> 56 </div>
80 %endfor 57 %endfor
81 </div> 58 </div>
82 </div> 59 </div>
83 </div> 60 </div>
61 ## REVIEWERS
62 <div style="float:left; border-left:1px dashed #eee">
63 <h4>${_('Pull request reviewers')}</h4>
64 <div id="reviewers" style="padding:0px 0px 0px 15px">
65 ## members goes here !
66 <div class="group_members_wrap">
67 <ul id="review_members" class="group_members">
68 %for member,status in c.pull_request_reviewers:
69 <li id="reviewer_${member.user_id}">
70 <div class="reviewers_member">
71 <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'))}">
72 <img src="${h.url(str('/images/icons/flag_status_%s.png' % (status[0][1].status if status else 'not_reviewed')))}"/>
73 </div>
74 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(member.email,14)}"/> </div>
75 <div style="float:left">${member.full_name} (${_('owner')})</div>
76 <input type="hidden" value="${member.user_id}" name="review_members" />
77 %if not c.pull_request.is_closed():
78 <span class="delete_icon action_button" onclick="removeReviewer(${member.user_id})"></span>
79 %endif
80 </div>
81 </li>
82 %endfor
83 </ul>
84 </div>
85 %if not c.pull_request.is_closed():
86 <div class='ac'>
87 <div class="reviewer_ac">
88 ${h.text('user', class_='yui-ac-input')}
89 <span class="help-block">${_('Add reviewer to this pull request.')}</span>
90 <div id="reviewers_container"></div>
91 </div>
92 <div style="padding:0px 10px">
93 <span id="update_pull_request" class="ui-btn xsmall">${_('save')}</span>
94 </div>
95 </div>
96 %endif
97 </div>
98 </div>
84 </div> 99 </div>
85 <script> 100 <script>
86 var _USERS_AC_DATA = ${c.users_array|n}; 101 var _USERS_AC_DATA = ${c.users_array|n};
87 var _GROUPS_AC_DATA = ${c.users_groups_array|n}; 102 var _GROUPS_AC_DATA = ${c.users_groups_array|n};
88 AJAX_COMMENT_URL = "${url('pullrequest_comment',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}"; 103 AJAX_COMMENT_URL = "${url('pullrequest_comment',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}";
89 AJAX_COMMENT_DELETE_URL = "${url('pullrequest_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}"; 104 AJAX_COMMENT_DELETE_URL = "${url('pullrequest_comment_delete',repo_name=c.repo_name,comment_id='__COMMENT_ID__')}";
105 AJAX_UPDATE_PULLREQUEST = "${url('pullrequest_update',repo_name=c.repo_name,pull_request_id=c.pull_request.pull_request_id)}"
90 </script> 106 </script>
91 107
92 ## diff block 108 ## diff block
93 <%namespace name="diff_block" file="/changeset/diff_block.html"/> 109 <%namespace name="diff_block" file="/changeset/diff_block.html"/>
94 %for fid, change, f, stat in c.files: 110 %for fid, change, f, stat in c.files:
110 close_btn=True)} 126 close_btn=True)}
111 %endif 127 %endif
112 128
113 <script type="text/javascript"> 129 <script type="text/javascript">
114 YUE.onDOMReady(function(){ 130 YUE.onDOMReady(function(){
131 PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
115 132
116 YUE.on(YUQ('.show-inline-comments'),'change',function(e){ 133 YUE.on(YUQ('.show-inline-comments'),'change',function(e){
117 var show = 'none'; 134 var show = 'none';
118 var target = e.currentTarget; 135 var target = e.currentTarget;
119 if(target.checked){ 136 if(target.checked){
136 }); 153 });
137 154
138 // inject comments into they proper positions 155 // inject comments into they proper positions
139 var file_comments = YUQ('.inline-comment-placeholder'); 156 var file_comments = YUQ('.inline-comment-placeholder');
140 renderInlineComments(file_comments); 157 renderInlineComments(file_comments);
158
159 YUE.on(YUD.get('update_pull_request'),'click',function(e){
160
161 var reviewers_ids = [];
162 var ids = YUQ('#review_members input');
163 for(var i=0; i<ids.length;i++){
164 var id = ids[i].value
165 reviewers_ids.push(id);
166 }
167 updateReviewers(reviewers_ids);
168 })
141 }) 169 })
142 </script> 170 </script>
143 171
144 </div> 172 </div>
145 173