Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
8e629a45
Commit
8e629a45
authored
Jan 16, 2018
by
Phil Hughes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed specs
parent
f8185187
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
111 additions
and
3 deletions
+111
-3
app/assets/javascripts/dispatcher.js
app/assets/javascripts/dispatcher.js
+1
-1
app/assets/javascripts/projects/project_new.js
app/assets/javascripts/projects/project_new.js
+108
-0
spec/javascripts/projects/project_new_spec.js
spec/javascripts/projects/project_new_spec.js
+2
-2
No files found.
app/assets/javascripts/dispatcher.js
View file @
8e629a45
...
@@ -64,7 +64,7 @@ import Activities from './activities';
...
@@ -64,7 +64,7 @@ import Activities from './activities';
return
false
;
return
false
;
}
}
const
fail
=
(
e
)
=>
{
throw
e
;
Flash
(
'
Error loading dynamic module
'
);
}
const
fail
=
(
)
=>
Flash
(
'
Error loading dynamic module
'
);
const
callDefault
=
m
=>
m
.
default
();
const
callDefault
=
m
=>
m
.
default
();
path
=
page
.
split
(
'
:
'
);
path
=
page
.
split
(
'
:
'
);
...
...
app/assets/javascripts/projects/project_new.js
0 → 100644
View file @
8e629a45
let
hasUserDefinedProjectPath
=
false
;
const
deriveProjectPathFromUrl
=
(
$projectImportUrl
)
=>
{
const
$currentProjectPath
=
$projectImportUrl
.
parents
(
'
.toggle-import-form
'
).
find
(
'
#project_path
'
);
if
(
hasUserDefinedProjectPath
)
{
return
;
}
let
importUrl
=
$projectImportUrl
.
val
().
trim
();
if
(
importUrl
.
length
===
0
)
{
return
;
}
/*
\/?: remove trailing slash
(\.git\/?)?: remove trailing .git (with optional trailing slash)
(\?.*)?: remove query string
(#.*)?: remove fragment identifier
*/
importUrl
=
importUrl
.
replace
(
/
\/?(\.
git
\/?)?(\?
.*
)?(
#.*
)?
$/
,
''
);
// extract everything after the last slash
const
pathMatch
=
/
\/([^/]
+
)
$/
.
exec
(
importUrl
);
if
(
pathMatch
)
{
$currentProjectPath
.
val
(
pathMatch
[
1
]);
}
};
const
bindEvents
=
()
=>
{
const
$newProjectForm
=
$
(
'
#new_project
'
);
const
$projectImportUrl
=
$
(
'
#project_import_url
'
);
const
$projectPath
=
$
(
'
#project_path
'
);
const
$useTemplateBtn
=
$
(
'
.template-button > input
'
);
const
$projectFieldsForm
=
$
(
'
.project-fields-form
'
);
const
$selectedTemplateText
=
$
(
'
.selected-template
'
);
const
$changeTemplateBtn
=
$
(
'
.change-template
'
);
const
$selectedIcon
=
$
(
'
.selected-icon svg
'
);
const
$templateProjectNameInput
=
$
(
'
#template-project-name #project_path
'
);
if
(
$newProjectForm
.
length
!==
1
)
{
return
;
}
$
(
'
.how_to_import_link
'
).
on
(
'
click
'
,
(
e
)
=>
{
e
.
preventDefault
();
$
(
e
.
currentTarget
).
next
(
'
.modal
'
).
show
();
});
$
(
'
.modal-header .close
'
).
on
(
'
click
'
,
()
=>
{
$
(
'
.modal
'
).
hide
();
});
$
(
'
.btn_import_gitlab_project
'
).
on
(
'
click
'
,
()
=>
{
const
importHref
=
$
(
'
a.btn_import_gitlab_project
'
).
attr
(
'
href
'
);
$
(
'
.btn_import_gitlab_project
'
).
attr
(
'
href
'
,
`
${
importHref
}
?namespace_id=
${
$
(
'
#project_namespace_id
'
).
val
()}
&path=
${
$projectPath
.
val
()}
`
);
});
function
chooseTemplate
()
{
$
(
'
.template-option
'
).
hide
();
$projectFieldsForm
.
addClass
(
'
selected
'
);
$selectedIcon
.
removeClass
(
'
active
'
);
const
value
=
$
(
this
).
val
();
const
templates
=
{
rails
:
{
text
:
'
Ruby on Rails
'
,
icon
:
'
.selected-icon .icon-rails
'
,
},
express
:
{
text
:
'
NodeJS Express
'
,
icon
:
'
.selected-icon .icon-node-express
'
,
},
spring
:
{
text
:
'
Spring
'
,
icon
:
'
.selected-icon .icon-java-spring
'
,
},
};
const
selectedTemplate
=
templates
[
value
];
$selectedTemplateText
.
text
(
selectedTemplate
.
text
);
$
(
selectedTemplate
.
icon
).
addClass
(
'
active
'
);
$templateProjectNameInput
.
focus
();
}
$useTemplateBtn
.
on
(
'
change
'
,
chooseTemplate
);
$changeTemplateBtn
.
on
(
'
click
'
,
()
=>
{
$
(
'
.template-option
'
).
show
();
$projectFieldsForm
.
removeClass
(
'
selected
'
);
$useTemplateBtn
.
prop
(
'
checked
'
,
false
);
});
$newProjectForm
.
on
(
'
submit
'
,
()
=>
{
$projectPath
.
val
(
$projectPath
.
val
().
trim
());
});
$projectPath
.
on
(
'
keyup
'
,
()
=>
{
hasUserDefinedProjectPath
=
$projectPath
.
val
().
trim
().
length
>
0
;
});
$projectImportUrl
.
keyup
(()
=>
deriveProjectPathFromUrl
(
$projectImportUrl
));
};
document
.
addEventListener
(
'
DOMContentLoaded
'
,
bindEvents
);
export
default
{
bindEvents
,
deriveProjectPathFromUrl
,
};
spec/javascripts/projects/project_new_spec.js
View file @
8e629a45
import
projectNew
from
'
~/p
ages/projects/shared
/project_new
'
;
import
projectNew
from
'
~/p
rojects
/project_new
'
;
describe
(
'
New Project
'
,
()
=>
{
f
describe
(
'
New Project
'
,
()
=>
{
let
$projectImportUrl
;
let
$projectImportUrl
;
let
$projectPath
;
let
$projectPath
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment