summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Ivan Vargas <jvargas@gitlab.com>2017-12-14 12:13:39 -0600
committerJose Ivan Vargas <jvargas@gitlab.com>2017-12-14 12:13:39 -0600
commitda7a0c3ee7a3a698cd29296201a126f9a823a4b1 (patch)
treebb6af622b2e1a3dcc8a28d743e738695fe915f7a
parent26484cf125c49465ba32c9a95f9655c4e4a8fbdf (diff)
downloadgitlab-ce-40607-importing-project-by-url-should-default-project-name.tar.gz
Fix projectPath input not updating when adding urls to the import project page40607-importing-project-by-url-should-default-project-name
-rw-r--r--app/assets/javascripts/projects/project_new.js10
-rw-r--r--changelogs/unreleased/40607-importing-project-by-url-should-default-project-name.yml6
-rw-r--r--spec/javascripts/projects/project_new_spec.js26
3 files changed, 27 insertions, 15 deletions
diff --git a/app/assets/javascripts/projects/project_new.js b/app/assets/javascripts/projects/project_new.js
index 3ecc0c2a6e5..d180feeceae 100644
--- a/app/assets/javascripts/projects/project_new.js
+++ b/app/assets/javascripts/projects/project_new.js
@@ -1,6 +1,6 @@
let hasUserDefinedProjectPath = false;
-const deriveProjectPathFromUrl = ($projectImportUrl, $projectPath) => {
+const deriveProjectPathFromUrl = ($projectImportUrl, projectPath) => {
if (hasUserDefinedProjectPath) {
return;
}
@@ -21,7 +21,11 @@ const deriveProjectPathFromUrl = ($projectImportUrl, $projectPath) => {
// extract everything after the last slash
const pathMatch = /\/([^/]+)$/.exec(importUrl);
if (pathMatch) {
- $projectPath.val(pathMatch[1]);
+ const projectPathInputs = document.querySelectorAll(projectPath);
+ projectPathInputs.forEach((el) => {
+ const input = el;
+ input.value = pathMatch[1];
+ });
}
};
@@ -96,7 +100,7 @@ const bindEvents = () => {
hasUserDefinedProjectPath = $projectPath.val().trim().length > 0;
});
- $projectImportUrl.keyup(() => deriveProjectPathFromUrl($projectImportUrl, $projectPath));
+ $projectImportUrl.keyup(() => deriveProjectPathFromUrl($projectImportUrl, '#project_path'));
};
document.addEventListener('DOMContentLoaded', bindEvents);
diff --git a/changelogs/unreleased/40607-importing-project-by-url-should-default-project-name.yml b/changelogs/unreleased/40607-importing-project-by-url-should-default-project-name.yml
new file mode 100644
index 00000000000..badc95dcc97
--- /dev/null
+++ b/changelogs/unreleased/40607-importing-project-by-url-should-default-project-name.yml
@@ -0,0 +1,6 @@
+---
+title: Fix projectPath input not updating when adding a URL to the import project
+ page
+merge_request: 40607
+author:
+type: fixed
diff --git a/spec/javascripts/projects/project_new_spec.js b/spec/javascripts/projects/project_new_spec.js
index 850768f0e4f..facfa907a7e 100644
--- a/spec/javascripts/projects/project_new_spec.js
+++ b/spec/javascripts/projects/project_new_spec.js
@@ -3,6 +3,7 @@ import projectNew from '~/projects/project_new';
describe('New Project', () => {
let $projectImportUrl;
let $projectPath;
+ let projectPathSelector;
beforeEach(() => {
setFixtures(`
@@ -12,6 +13,7 @@ describe('New Project', () => {
$projectImportUrl = $('#project_import_url');
$projectPath = $('#project_path');
+ projectPathSelector = '#project_path';
});
describe('deriveProjectPathFromUrl', () => {
@@ -25,7 +27,7 @@ describe('New Project', () => {
it('does not change project path for disabled $projectImportUrl', () => {
$projectImportUrl.attr('disabled', true);
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual(dummyImportUrl);
});
@@ -38,7 +40,7 @@ describe('New Project', () => {
it('does not change project path if it is set by user', () => {
$projectPath.keyup();
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual(dummyImportUrl);
});
@@ -46,7 +48,7 @@ describe('New Project', () => {
it('does not change project path for empty $projectImportUrl', () => {
$projectImportUrl.val('');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual(dummyImportUrl);
});
@@ -54,7 +56,7 @@ describe('New Project', () => {
it('does not change project path for whitespace $projectImportUrl', () => {
$projectImportUrl.val(' ');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual(dummyImportUrl);
});
@@ -62,7 +64,7 @@ describe('New Project', () => {
it('does not change project path for $projectImportUrl without slashes', () => {
$projectImportUrl.val('has-no-slash');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual(dummyImportUrl);
});
@@ -70,7 +72,7 @@ describe('New Project', () => {
it('changes project path to last $projectImportUrl component', () => {
$projectImportUrl.val('/this/is/last');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('last');
});
@@ -78,7 +80,7 @@ describe('New Project', () => {
it('ignores trailing slashes in $projectImportUrl', () => {
$projectImportUrl.val('/has/trailing/slash/');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('slash');
});
@@ -86,7 +88,7 @@ describe('New Project', () => {
it('ignores fragment identifier in $projectImportUrl', () => {
$projectImportUrl.val('/this/has/a#fragment-identifier/');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('a');
});
@@ -94,7 +96,7 @@ describe('New Project', () => {
it('ignores query string in $projectImportUrl', () => {
$projectImportUrl.val('/url/with?query=string');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('with');
});
@@ -102,7 +104,7 @@ describe('New Project', () => {
it('ignores trailing .git in $projectImportUrl', () => {
$projectImportUrl.val('/repository.git');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('repository');
});
@@ -110,7 +112,7 @@ describe('New Project', () => {
it('changes project path for HTTPS URL in $projectImportUrl', () => {
$projectImportUrl.val('https://username:password@gitlab.company.com/group/project.git');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('project');
});
@@ -118,7 +120,7 @@ describe('New Project', () => {
it('changes project path for SSH URL in $projectImportUrl', () => {
$projectImportUrl.val('git@gitlab.com:gitlab-org/gitlab-ce.git');
- projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
+ projectNew.deriveProjectPathFromUrl($projectImportUrl, projectPathSelector);
expect($projectPath.val()).toEqual('gitlab-ce');
});