# HG changeset patch # User Marcin Lulek # Date 2018-02-12 15:37:57 # Node ID 1d84c2ba683c706b54b17d6e7900ddb689315b7a # Parent 2597b57444b46b2c413eaca27a84e4e67125bf7a pull-requests: fixed cases with default expected refs are closed or unavailable. - for Mercurial with closed default branch a compare across forks can fail. - fixes #5436 diff --git a/rhodecode/public/js/src/rhodecode/pullrequests.js b/rhodecode/public/js/src/rhodecode/pullrequests.js --- a/rhodecode/public/js/src/rhodecode/pullrequests.js +++ b/rhodecode/public/js/src/rhodecode/pullrequests.js @@ -217,6 +217,12 @@ ReviewersController = function () { prButtonLock(true, null, 'reviewers'); $('#user').hide(); // hide user autocomplete before load + if (sourceRef.length !== 3 || targetRef.length !== 3) { + // don't load defaults in case we're missing some refs... + $('.calculate-reviewers').hide(); + return + } + var url = pyroutes.url('repo_default_reviewers_data', { 'repo_name': templateContext.repo_name, diff --git a/rhodecode/templates/pullrequests/pullrequest.mako b/rhodecode/templates/pullrequests/pullrequest.mako --- a/rhodecode/templates/pullrequests/pullrequest.mako +++ b/rhodecode/templates/pullrequests/pullrequest.mako @@ -202,9 +202,13 @@ // translate our select2 id into a text, it's a mapping to show // simple label when selecting by internal ID. var id, refData; - if (selectedRef === undefined) { + if (selectedRef === undefined || selectedRef === null) { id = element.val(); refData = element.val().split(':'); + + if (refData.length !== 3){ + refData = ["", "", ""] + } } else { id = selectedRef; refData = selectedRef.split(':'); @@ -216,7 +220,6 @@ } var data = {id: id, text: text}; - callback(data); }; }; @@ -415,8 +418,10 @@ }; }; - var initTargetRefs = function(refsData, selectedRef){ + var initTargetRefs = function(refsData, selectedRef) { + Select2Box($targetRef, { + placeholder: "${_('Select commit reference')}", query: function(query) { queryTargetRefs(refsData, query); }, @@ -518,7 +523,9 @@ % if c.default_source_ref: // in case we have a pre-selected value, use it now $sourceRef.select2('val', '${c.default_source_ref}'); + // diff preview load loadRepoRefDiffPreview(); + // default reviewers reviewersController.loadDefaultReviewers( sourceRepo(), sourceRef(), targetRepo(), targetRef()); % endif