diff 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
line wrap: on
line diff
--- a/rhodecode/templates/pullrequests/pullrequest_show.html	Sun Jul 15 19:17:00 2012 +0200
+++ b/rhodecode/templates/pullrequests/pullrequest_show.html	Sun Jul 15 21:16:14 2012 +0200
@@ -35,32 +35,9 @@
       <div>${_('Created on')}: ${h.fmt_date(c.pull_request.created_on)}</div>
     </div>
 
-    ## REVIEWERS
     <div>
-      <div class="table" style="float:right;width:46%;clear:none">
-          <div id="body" class="diffblock">
-              <div style="white-space:pre-wrap;padding:5px">${_('Pull request reviewers')}</div>
-          </div>
-          <div style="border: 1px solid #CCC">
-            <div class="group_members_wrap">
-              <ul class="group_members">
-              %for user,status in c.pull_request_reviewers:
-                <li>
-                  <div class="group_member">
-                    <div style="float:left;padding:3px" 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(user.email,20)}"/> </div>
-                    <div style="float:left">${user.username}</div>
-                  </div>
-                </li>
-              %endfor
-              </ul>
-            </div>                
-          </div>
-      </div>
       ##DIFF
-      <div class="table" style="float:left;width:46%;clear:none">
+      <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>
@@ -81,12 +58,51 @@
               </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_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
@@ -112,6 +128,7 @@
 
     <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';
@@ -138,6 +155,17 @@
           // 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>