1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Handle more repo clone error cases

This commit is contained in:
Nick O'Leary 2018-02-01 10:42:14 +00:00
parent 4117961236
commit d0d93d7070
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
2 changed files with 28 additions and 1 deletions

View File

@ -889,12 +889,18 @@ RED.projects = (function() {
row = $('<div class="hide form-row projects-dialog-screen-create-row projects-dialog-screen-create-row-clone"></div>').appendTo(container); row = $('<div class="hide form-row projects-dialog-screen-create-row projects-dialog-screen-create-row-clone"></div>').appendTo(container);
$('<label for="projects-dialog-screen-create-project-repo">Git repository URL</label>').appendTo(row); $('<label for="projects-dialog-screen-create-project-repo">Git repository URL</label>').appendTo(row);
projectRepoInput = $('<input id="projects-dialog-screen-create-project-repo" type="text" placeholder="https://git.example.com/path/my-project.git"></input>').appendTo(row); projectRepoInput = $('<input id="projects-dialog-screen-create-project-repo" type="text" placeholder="https://git.example.com/path/my-project.git"></input>').appendTo(row);
$('<label class="projects-edit-form-sublabel"><small>https://, ssh:// or file://</small></label>').appendTo(row); $('<label id="projects-dialog-screen-create-project-repo-label" class="projects-edit-form-sublabel"><small>https://, ssh:// or file://</small></label>').appendTo(row);
var projectRepoChanged = false; var projectRepoChanged = false;
var lastProjectRepo = "";
projectRepoInput.on("change keyup paste",function() { projectRepoInput.on("change keyup paste",function() {
projectRepoChanged = true; projectRepoChanged = true;
var repo = $(this).val(); var repo = $(this).val();
if (lastProjectRepo !== repo) {
$("#projects-dialog-screen-create-project-repo-label small").text("https://, ssh:// or file://");
}
lastProjectRepo = repo;
var m = /\/([^/]+?)(?:\.git)?$/.exec(repo); var m = /\/([^/]+?)(?:\.git)?$/.exec(repo);
if (m) { if (m) {
var projectName = projectNameInput.val(); var projectName = projectNameInput.val();
@ -1069,6 +1075,14 @@ RED.projects = (function() {
}) })
} }
$(".projects-dialog-screen-create-row-auth-error").hide();
projectRepoUserInput.removeClass("input-error");
projectRepoPasswordInput.removeClass("input-error");
projectRepoSSHKeySelect.removeClass("input-error");
projectRepoPassphrase.removeClass("input-error");
RED.deploy.setDeployInflight(true); RED.deploy.setDeployInflight(true);
RED.projects.settings.switchProject(projectData.name); RED.projects.settings.switchProject(projectData.name);
@ -1089,6 +1103,15 @@ RED.projects = (function() {
}, },
'git_connection_failed': function(error) { 'git_connection_failed': function(error) {
projectRepoInput.addClass("input-error"); projectRepoInput.addClass("input-error");
$("#projects-dialog-screen-create-project-repo-label small").text("Connection failed");
},
'git_not_a_repository': function(error) {
projectRepoInput.addClass("input-error");
$("#projects-dialog-screen-create-project-repo-label small").text("Not a git repository");
},
'git_repository_not_found': function(error) {
projectRepoInput.addClass("input-error");
$("#projects-dialog-screen-create-project-repo-label small").text("Repository not found");
}, },
'git_auth_failed': function(error) { 'git_auth_failed': function(error) {
$(".projects-dialog-screen-create-row-auth-error").show(); $(".projects-dialog-screen-create-row-auth-error").show();

View File

@ -63,6 +63,10 @@ function runGitCommand(args,cwd,env) {
err.code = "git_delete_branch_unmerged"; err.code = "git_delete_branch_unmerged";
} else if (/remote .* already exists/.test(stderr)) { } else if (/remote .* already exists/.test(stderr)) {
err.code = "git_remote_already_exists"; err.code = "git_remote_already_exists";
} else if (/does not appear to be a git repository/.test(stderr)) {
err.code = "git_not_a_repository";
} else if (/Repository not found/i.test(stderr)) {
err.code = "git_repository_not_found";
} }
return reject(err); return reject(err);
} }