diff --git a/public/assets/js/phpci.js b/public/assets/js/phpci.js index ef909388..ab52973a 100644 --- a/public/assets/js/phpci.js +++ b/public/assets/js/phpci.js @@ -91,7 +91,7 @@ var PHPCIConfirmDialog = Class.extend({ * @var {bool} Determines whether the dialog has been confirmed */ confirmed: false, - + /** * @param {PHPCIConfirmDialogOptions} options */ @@ -241,28 +241,35 @@ function setupProjectForm() { $('.github-container').hide(); - $('#element-reference').change(function() - { - var el = $(this); - var val = el.val(); + $('#element-reference').change(function() + { + var el = $(this); + var val = el.val(); + var type = $('#element-type').val(); + var acceptable = { + 'github': { + 'ssh': /git\@github\.com\:([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, + 'git': /git\:\/\/github.com\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, + 'http': /https\:\/\/github\.com\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)(\.git)?/ + }, + 'bitbucket': { + 'ssh': /git\@bitbucket\.org\:([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, + 'http': /https\:\/\/[a-zA-Z0-9_\-]+\@bitbucket.org\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, + 'anon': /https\:\/\/bitbucket.org\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)(\.git)?/ + } - var acceptable = { - 'github_ssh': /git\@github\.com\:([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, - 'github_git': /git\:\/\/github.com\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, - 'github_http': /https\:\/\/github\.com\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)(\.git)?/, - 'bb_ssh': /git\@bitbucket\.org\:([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, - 'bb_http': /https\:\/\/[a-zA-Z0-9_\-]+\@bitbucket.org\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)\.git/, - 'bb_anon': /https\:\/\/bitbucket.org\/([a-zA-Z0-9_\-]+\/[a-zA-Z0-9_\-]+)(\.git)?/ - }; + }; - for(var i in acceptable) { - if(val.match(acceptable[i])) { - el.val(val.replace(acceptable[i], '$1')); - } - } - }); + if( acceptable[type] !== undefined ) { + for(var i in acceptable[type]) { + if(val.match(acceptable[type][i])) { + el.val(val.replace(acceptable[type][i], '$1')); + } + } + } + }); - $('#element-type').change(function() { + $('#element-type').change(function() { if ($(this).val() == 'github') { $('#loading').show(); @@ -272,7 +279,7 @@ function setupProjectForm() success: function (data) { $('#loading').hide(); - if (data.repos) { + if (data && data.repos) { $('#element-github').empty(); for (var i in data.repos) { @@ -288,32 +295,33 @@ function setupProjectForm() } else { $('.github-container').slideUp(); } - }); + $('#element-reference').trigger('change'); + }); - $('#element-github').change(function() - { - var val = $('#element-github').val(); + $('#element-github').change(function() + { + var val = $('#element-github').val(); - if(val != 'choose') { - $('#element-type').val('github'); - $('#element-reference').val(val); + if(val != 'choose') { + $('#element-type').val('github'); + $('#element-reference').val(val); - $('label[for=element-reference]').hide(); - $('label[for=element-type]').hide(); - $('#element-reference').hide(); - $('#element-type').hide(); - $('#element-token').val(window.github_token); - $('#element-title').val(val); - } - else { - $('label[for=element-reference]').show(); - $('label[for=element-type]').show(); - $('#element-reference').show(); - $('#element-type').show(); - $('#element-reference').val(''); - $('#element-token').val(''); - } - }); + $('label[for=element-reference]').hide(); + $('label[for=element-type]').hide(); + $('#element-reference').hide(); + $('#element-type').hide(); + $('#element-token').val(window.github_token); + $('#element-title').val(val); + } + else { + $('label[for=element-reference]').show(); + $('label[for=element-type]').show(); + $('#element-reference').show(); + $('#element-type').show(); + $('#element-reference').val(''); + $('#element-token').val(''); + } + }); } var PHPCIObject = Class.extend({