Mercurial > kallithea
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>