changeset 3514:ba2cbb642c3e beta

pullrequest: separate js actions for 'update preview' from 'destination repo changed'
author Mads Kiilerich <madski@unity3d.com>
date Wed, 06 Mar 2013 15:40:58 +0100
parents a2a61978752f
children 5b3313a5c6fc
files rhodecode/templates/pullrequests/pullrequest.html
diffstat 1 files changed, 27 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/templates/pullrequests/pullrequest.html	Thu Mar 07 19:06:21 2013 +0100
+++ b/rhodecode/templates/pullrequests/pullrequest.html	Wed Mar 06 15:40:58 2013 +0100
@@ -122,8 +122,31 @@
 
   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__',
@@ -160,28 +183,6 @@
 
       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)
@@ -191,7 +192,7 @@
   });
 
   YUE.on('other_repo', 'change', function(e){
-      var repo_name = e.currentTarget.value;
+      otherrepoChanged();
       loadPreview();
   });
 
@@ -199,8 +200,9 @@
      loadPreview();
   });
 
+  otherrepoChanged();
   //lazy load overview after 0.5s
-  setTimeout(loadPreview, 500)
+  setTimeout(loadPreview, 500);
 
 </script>