Skip to content
Snippets Groups Projects
Commit 0d6b9e30 authored by Jose Ivan Vargas Lopez's avatar Jose Ivan Vargas Lopez
Browse files

Fix import project url not updating project name

parent e5a9b9a1
No related branches found
No related tags found
No related merge requests found
let hasUserDefinedProjectPath = false;
 
const deriveProjectPathFromUrl = ($projectImportUrl, $projectPath) => {
const deriveProjectPathFromUrl = ($projectImportUrl) => {
const $currentProjectPath = $projectImportUrl.parents('.toggle-import-form').find('#project_path');
if (hasUserDefinedProjectPath) {
return;
}
Loading
Loading
@@ -21,7 +22,7 @@ const deriveProjectPathFromUrl = ($projectImportUrl, $projectPath) => {
// extract everything after the last slash
const pathMatch = /\/([^/]+)$/.exec(importUrl);
if (pathMatch) {
$projectPath.val(pathMatch[1]);
$currentProjectPath.val(pathMatch[1]);
}
};
 
Loading
Loading
@@ -96,7 +97,7 @@ const bindEvents = () => {
hasUserDefinedProjectPath = $projectPath.val().trim().length > 0;
});
 
$projectImportUrl.keyup(() => deriveProjectPathFromUrl($projectImportUrl, $projectPath));
$projectImportUrl.keyup(() => deriveProjectPathFromUrl($projectImportUrl));
};
 
document.addEventListener('DOMContentLoaded', bindEvents);
Loading
Loading
---
title: Fix import project url not updating project name
merge_request: 16120
author:
type: fixed
Loading
Loading
@@ -6,8 +6,12 @@ describe('New Project', () => {
 
beforeEach(() => {
setFixtures(`
<input id="project_import_url" />
<input id="project_path" />
<div class='toggle-import-form'>
<div class='import-url-data'>
<input id="project_import_url" />
<input id="project_path" />
</div>
</div>
`);
 
$projectImportUrl = $('#project_import_url');
Loading
Loading
@@ -25,7 +29,7 @@ describe('New Project', () => {
it('does not change project path for disabled $projectImportUrl', () => {
$projectImportUrl.attr('disabled', true);
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual(dummyImportUrl);
});
Loading
Loading
@@ -38,7 +42,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);
 
expect($projectPath.val()).toEqual(dummyImportUrl);
});
Loading
Loading
@@ -46,7 +50,7 @@ describe('New Project', () => {
it('does not change project path for empty $projectImportUrl', () => {
$projectImportUrl.val('');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual(dummyImportUrl);
});
Loading
Loading
@@ -54,7 +58,7 @@ describe('New Project', () => {
it('does not change project path for whitespace $projectImportUrl', () => {
$projectImportUrl.val(' ');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual(dummyImportUrl);
});
Loading
Loading
@@ -62,7 +66,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);
 
expect($projectPath.val()).toEqual(dummyImportUrl);
});
Loading
Loading
@@ -70,7 +74,7 @@ describe('New Project', () => {
it('changes project path to last $projectImportUrl component', () => {
$projectImportUrl.val('/this/is/last');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual('last');
});
Loading
Loading
@@ -78,7 +82,7 @@ describe('New Project', () => {
it('ignores trailing slashes in $projectImportUrl', () => {
$projectImportUrl.val('/has/trailing/slash/');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual('slash');
});
Loading
Loading
@@ -86,7 +90,7 @@ describe('New Project', () => {
it('ignores fragment identifier in $projectImportUrl', () => {
$projectImportUrl.val('/this/has/a#fragment-identifier/');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual('a');
});
Loading
Loading
@@ -94,7 +98,7 @@ describe('New Project', () => {
it('ignores query string in $projectImportUrl', () => {
$projectImportUrl.val('/url/with?query=string');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual('with');
});
Loading
Loading
@@ -102,7 +106,7 @@ describe('New Project', () => {
it('ignores trailing .git in $projectImportUrl', () => {
$projectImportUrl.val('/repository.git');
 
projectNew.deriveProjectPathFromUrl($projectImportUrl, $projectPath);
projectNew.deriveProjectPathFromUrl($projectImportUrl);
 
expect($projectPath.val()).toEqual('repository');
});
Loading
Loading
@@ -110,7 +114,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);
 
expect($projectPath.val()).toEqual('project');
});
Loading
Loading
@@ -118,7 +122,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);
 
expect($projectPath.val()).toEqual('gitlab-ce');
});
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment