Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
8e629a45
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
8e629a45
编写于
1月 16, 2018
作者:
P
Phil Hughes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed specs
上级
f8185187
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
111 addition
and
3 deletion
+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
未找到文件。
app/assets/javascripts/dispatcher.js
浏览文件 @
8e629a45
...
...
@@ -64,7 +64,7 @@ import Activities from './activities';
return
false
;
}
const
fail
=
(
e
)
=>
{
throw
e
;
Flash
(
'
Error loading dynamic module
'
);
}
const
fail
=
(
)
=>
Flash
(
'
Error loading dynamic module
'
);
const
callDefault
=
m
=>
m
.
default
();
path
=
page
.
split
(
'
:
'
);
...
...
app/assets/javascripts/projects/project_new.js
0 → 100644
浏览文件 @
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
浏览文件 @
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
$projectPath
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录