Changeset - ba2cbb642c3e
[Not reviewed]
beta
0 1 0
Mads Kiilerich - 13 years ago 2013-03-06 15:40:58
madski@unity3d.com
Grafted from: 81fbf1de7492
pullrequest: separate js actions for 'update preview' from 'destination repo changed'
1 file changed with 27 insertions and 25 deletions:
0 comments (0 inline, 0 general)
rhodecode/templates/pullrequests/pullrequest.html
Show inline comments
 
@@ -113,26 +113,49 @@
 
    </div>
 
    ${h.end_form()}
 

	
 
</div>
 

	
 
<script type="text/javascript">
 
  var _USERS_AC_DATA = ${c.users_array|n};
 
  var _GROUPS_AC_DATA = ${c.users_groups_array|n};
 
  PullRequestAutoComplete('user', 'reviewers_container', _USERS_AC_DATA, _GROUPS_AC_DATA);
 

	
 
  var other_repos_info = ${c.other_repos_info|n};
 

	
 
  var otherrepoChanged = function(){
 
      var sel_box = YUQ('#pull_request_form #other_repo')[0];
 
      var repo_name = sel_box.options[sel_box.selectedIndex].value;
 

	
 
      YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description'];
 
      // replace options of other_ref with the ones for the current other_repo
 
      var other_ref_selector = YUD.get('other_ref');
 
      var new_select = YUD.createElementFromMarkup(other_repos_info[repo_name]['revs']);
 
      var new_selectedIndex = new_select.selectedIndex;
 
      other_ref_selector.innerHTML = ""; // clear old options
 
      while (new_select.length > 0){ // children will be popped when appened to other_ref_selector
 
          other_ref_selector.appendChild(new_select.children[0]);
 
      }
 
      // browsers lost track of selected when appendChild was used
 
      other_ref_selector.selectedIndex = new_selectedIndex;
 

	
 
      // reset && add the reviewer based on selected repo
 
      var _data = other_repos_info[repo_name];
 
      YUD.get('review_members').innerHTML = '';
 
      addReviewMember(_data.user.user_id, _data.user.firstname,
 
                      _data.user.lastname, _data.user.username,
 
                      _data.user.gravatar_link);
 
  }
 

	
 
  var loadPreview = function(){
 
      YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','none');
 
      //url template
 
      var url = "${h.url('compare_url',
 
                         repo_name='__other_repo__',
 
                         org_ref_type='__other_ref_type__',
 
                         org_ref='__other_ref__',
 
                         other_repo='__org_repo__',
 
                         other_ref_type='__org_ref_type__',
 
                         other_ref='__org_ref__',
 
                         as_form=True,
 
                         merge=True,
 
                         )}";
 
      var org_repo = YUQ('#pull_request_form #org_repo')[0].value;
 
@@ -151,57 +174,36 @@
 
          'other_ref_type': 'rev',
 
      }; // gather the org/other ref and repo here
 

	
 
      for (k in rev_data){
 
          url = url.replace('__'+k+'__',rev_data[k]);
 
      }
 

	
 
      YUD.get('pull_request_overview').innerHTML = "${_('Loading ...')}";
 
      ypjax(url,'pull_request_overview');
 

	
 
      YUD.get('pull_request_overview_url').href = url; // shouldn't have as_form ... but ...
 
      YUD.setStyle(YUD.get('pull_request_overview_url').parentElement,'display','');
 

	
 
      var sel_box = YUQ('#pull_request_form #other_repo')[0];
 
      var repo_name = sel_box.options[sel_box.selectedIndex].value;
 

	
 
      YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description'];
 
      // replace options of other_ref with the ones for the current other_repo
 
      var other_ref_selector = YUD.get('other_ref');
 
      var new_select = YUD.createElementFromMarkup(other_repos_info[repo_name]['revs']);
 
      var new_selectedIndex = new_select.selectedIndex;
 
      other_ref_selector.innerHTML = ""; // clear old options
 
      while (new_select.length > 0){ // children will be popped when appened to other_ref_selector
 
          other_ref_selector.appendChild(new_select.children[0]);
 
      }
 
      // browsers lost track of selected when appendChild was used
 
      other_ref_selector.selectedIndex = new_selectedIndex;
 

	
 
      // reset && add the reviewer based on selected repo
 
      var _data = other_repos_info[repo_name];
 
      YUD.get('review_members').innerHTML = '';
 
      addReviewMember(_data.user.user_id, _data.user.firstname,
 
                      _data.user.lastname, _data.user.username,
 
                      _data.user.gravatar_link);
 
  }
 

	
 
  ## refresh automatically when something changes (org_repo can't change)
 

	
 
  YUE.on('org_ref', 'change', function(e){
 
     loadPreview();
 
  });
 

	
 
  YUE.on('other_repo', 'change', function(e){
 
      var repo_name = e.currentTarget.value;
 
      otherrepoChanged();
 
      loadPreview();
 
  });
 

	
 
  YUE.on('other_ref', 'change', function(e){
 
     loadPreview();
 
  });
 

	
 
  otherrepoChanged();
 
  //lazy load overview after 0.5s
 
  setTimeout(loadPreview, 500)
 
  setTimeout(loadPreview, 500);
 

	
 
</script>
 

	
 
</%def>
0 comments (0 inline, 0 general)