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 @@ -21,9 +21,6 @@ ${h.form(url('pullrequest', repo_name=c.repo_name), method='post', id='pull_request_form')}
- - - ##ORG
@@ -101,7 +98,7 @@
- +
${h.textarea('pullrequest_desc',size=30)} @@ -125,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__', @@ -136,8 +156,8 @@ other_ref_type='__org_ref_type__', other_ref='__org_ref__', as_form=True, - rev_start=request.GET.get('rev_start',''), - rev_end=request.GET.get('rev_end',''))}"; + merge=True, + )}"; var org_repo = YUQ('#pull_request_form #org_repo')[0].value; var org_ref = YUQ('#pull_request_form #org_ref')[0].value.split(':'); @@ -159,22 +179,10 @@ } 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',''); - 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; - 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, - _data.user.gravatar_link); - }) } ## refresh automatically when something changes (org_repo can't change) @@ -184,9 +192,7 @@ }); YUE.on('other_repo', 'change', function(e){ - var repo_name = e.currentTarget.value; - // replace the