Mercurial > kallithea
changeset 2849:2b672f04bfd9 beta
fixed few issues with autoselection of revisions on pull requests
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 19 Sep 2012 00:38:21 +0200 |
parents | f3aee4585f39 |
children | 867820342329 |
files | rhodecode/controllers/pullrequests.py rhodecode/public/js/rhodecode.js rhodecode/templates/pullrequests/pullrequest.html |
diffstat | 3 files changed, 39 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/pullrequests.py Wed Sep 19 00:04:07 2012 +0200 +++ b/rhodecode/controllers/pullrequests.py Wed Sep 19 00:38:21 2012 +0200 @@ -81,6 +81,19 @@ return hist_l + def _get_default_rev(self, repo): + """ + Get's default revision to do compare on pull request + + :param repo: + """ + repo = repo.scm_instance + if 'default' in repo.branches: + return 'default' + else: + #if repo doesn't have default branch return first found + return repo.branches.keys()[0] + def show_all(self, repo_name): c.pull_requests = PullRequestModel().get_all(repo_name) c.repo_name = repo_name @@ -106,7 +119,8 @@ # add org repo to other so we can open pull request agains itself c.other_repos.extend(c.org_repos) - c.default_pull_request = org_repo.repo_name + c.default_pull_request = org_repo.repo_name # repo name pre-selected + c.default_pull_request_rev = self._get_default_rev(org_repo) # revision pre-selected c.default_revs = self._get_repo_refs(org_repo.scm_instance) #add orginal repo other_repos_info[org_repo.repo_name] = { @@ -130,6 +144,8 @@ #add parents of this fork also if org_repo.parent: c.default_pull_request = org_repo.parent.repo_name + c.default_pull_request_rev = self._get_default_rev(org_repo.parent) + c.default_revs = self._get_repo_refs(org_repo.parent.scm_instance) c.other_repos.append((org_repo.parent.repo_name, '%s/%s' % ( org_repo.parent.user.username, org_repo.parent.repo_name))
--- a/rhodecode/public/js/rhodecode.js Wed Sep 19 00:04:07 2012 +0200 +++ b/rhodecode/public/js/rhodecode.js Wed Sep 19 00:38:21 2012 +0200 @@ -86,7 +86,18 @@ } } - +var setSelectValue = function(select, val){ + var selection = YUD.get(select); + + // select element + for(var i=0;i<selection.options.length;i++){ + console.log(selection.options[i].innerHTML); + if (selection.options[i].innerHTML == val) { + selection.selectedIndex = i; + break; + } + } +} /**
--- a/rhodecode/templates/pullrequests/pullrequest.html Wed Sep 19 00:04:07 2012 +0200 +++ b/rhodecode/templates/pullrequests/pullrequest.html Wed Sep 19 00:38:21 2012 +0200 @@ -53,7 +53,7 @@ <img id="other_repo_gravatar" alt="gravatar" src=""/> </div> <span style="font-size: 20px"> - ${h.select('other_repo',c.default_pull_request ,c.other_repos,class_='refs')}:${h.select('other_ref','',c.default_revs,class_='refs')} + ${h.select('other_repo',c.default_pull_request ,c.other_repos,class_='refs')}:${h.select('other_ref',c.default_pull_request_rev,c.default_revs,class_='refs')} </span> <div id="other_repo_desc" style="padding:5px 3px 3px 42px;"></div> </div> @@ -146,25 +146,29 @@ as_form=True)}"; var select_refs = YUQ('#pull_request_form select.refs') - + var rev_data = {}; // gather the org/other ref and repo here for(var i=0;i<select_refs.length;i++){ var select_ref = select_refs[i]; var select_ref_data = select_ref.value.split(':'); var key = null; var val = null; + if(select_ref_data.length>1){ key = select_ref.name+"_type"; val = select_ref_data[0]; url = url.replace(key,val); - + rev_data[key] = val; + key = select_ref.name; val = select_ref_data[1]; url = url.replace(key,val); - + rev_data[key] = val; + }else{ key = select_ref.name; val = select_ref.value; url = url.replace(key,val); + rev_data[key] = val; } } @@ -182,6 +186,8 @@ YUD.get('other_repo_gravatar').src = other_repos_info[repo_name]['gravatar']; 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']); }) } YUE.on('refresh','click',function(e){