diff --git a/rhodecode/templates/pullrequests/pullrequest.html b/rhodecode/templates/pullrequests/pullrequest.html --- a/rhodecode/templates/pullrequests/pullrequest.html +++ b/rhodecode/templates/pullrequests/pullrequest.html @@ -161,12 +161,19 @@ ypjax(url,'pull_request_overview', function(data){ 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('other_repo_desc').innerHTML = other_repos_info[repo_name]['description']; - YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs']; - // select back the revision that was just compared - setSelectValue(YUD.get('other_ref'), rev_data['other_ref']); - // reset && add the reviewer based on selected repo YUD.get('review_members').innerHTML = ''; addReviewMember(_data.user.user_id, _data.user.firstname, _data.user.lastname, _data.user.username, @@ -182,8 +189,6 @@ YUE.on('other_repo', 'change', function(e){ var repo_name = e.currentTarget.value; - // replace the