Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
7c519821
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,体验更适合开发者的 AI 搜索 >>
提交
7c519821
编写于
4月 05, 2017
作者:
L
Luke "Jared" Bennett
提交者:
Jacob Schatz
4月 05, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
MR empty state
上级
a40e357f
变更
20
隐藏空白更改
内联
并排
Showing
20 changed file
with
213 addition
and
40 deletion
+213
-40
app/assets/stylesheets/framework/blocks.scss
app/assets/stylesheets/framework/blocks.scss
+4
-0
app/controllers/groups/application_controller.rb
app/controllers/groups/application_controller.rb
+1
-0
app/views/groups/merge_requests.html.haml
app/views/groups/merge_requests.html.haml
+17
-13
app/views/projects/merge_requests/_merge_requests.html.haml
app/views/projects/merge_requests/_merge_requests.html.haml
+4
-4
app/views/projects/merge_requests/index.html.haml
app/views/projects/merge_requests/index.html.haml
+14
-11
app/views/shared/_merge_requests.html.haml
app/views/shared/_merge_requests.html.haml
+1
-1
app/views/shared/empty_states/_merge_requests.html.haml
app/views/shared/empty_states/_merge_requests.html.haml
+22
-0
app/views/shared/empty_states/icons/_merge_requests.svg
app/views/shared/empty_states/icons/_merge_requests.svg
+1
-0
changelogs/unreleased/20841-getting-started-better-empty-state-for-merge-requests-view.yml
...ng-started-better-empty-state-for-merge-requests-view.yml
+4
-0
features/dashboard/dashboard.feature
features/dashboard/dashboard.feature
+2
-1
features/project/issues/issues.feature
features/project/issues/issues.feature
+4
-2
features/steps/project/fork.rb
features/steps/project/fork.rb
+1
-2
features/steps/project/forked_merge_requests.rb
features/steps/project/forked_merge_requests.rb
+1
-1
features/steps/project/merge_requests.rb
features/steps/project/merge_requests.rb
+1
-1
features/steps/shared/project.rb
features/steps/shared/project.rb
+4
-0
spec/features/dashboard/merge_requests_spec.rb
spec/features/dashboard/merge_requests_spec.rb
+32
-0
spec/features/groups/empty_states_spec.rb
spec/features/groups/empty_states_spec.rb
+70
-0
spec/features/merge_requests/create_new_mr_spec.rb
spec/features/merge_requests/create_new_mr_spec.rb
+4
-4
spec/features/projects/merge_requests/list_spec.rb
spec/features/projects/merge_requests/list_spec.rb
+24
-0
spec/features/search_spec.rb
spec/features/search_spec.rb
+2
-0
未找到文件。
app/assets/stylesheets/framework/blocks.scss
浏览文件 @
7c519821
...
...
@@ -292,6 +292,10 @@
}
@media
(
min-width
:
$screen-xs-max
)
{
&
.merge-requests
.text-content
{
margin-top
:
40px
;
}
&
.labels
.text-content
{
margin-top
:
70px
;
}
...
...
app/controllers/groups/application_controller.rb
浏览文件 @
7c519821
...
...
@@ -10,6 +10,7 @@ class Groups::ApplicationController < ApplicationController
unless
@group
id
=
params
[
:group_id
]
||
params
[
:id
]
@group
=
Group
.
find_by_full_path
(
id
)
@group_merge_requests
=
MergeRequestsFinder
.
new
(
current_user
,
group_id:
@group
.
id
).
execute
unless
@group
&&
can?
(
current_user
,
:read_group
,
@group
)
@group
=
nil
...
...
app/views/groups/merge_requests.html.haml
浏览文件 @
7c519821
-
page_title
"Merge Requests"
.top-area
=
render
'shared/issuable/nav'
,
type: :merge_requests
-
if
current_user
.nav-controls
=
render
'shared/new_project_item_select'
,
path:
'merge_requests/new'
,
label:
"New Merge Request"
-
if
@group_merge_requests
.
empty?
=
render
'shared/empty_states/merge_requests'
,
project_select_button:
true
-
else
.top-area
=
render
'shared/issuable/nav'
,
type: :merge_requests
-
if
current_user
.nav-controls
=
render
'shared/new_project_item_select'
,
path:
'merge_requests/new'
,
label:
"New merge request"
=
render
'shared/issuable/filter'
,
type: :merge_requests
=
render
'shared/issuable/filter'
,
type: :merge_requests
.row-content-block.second-block
Only merge requests from
%strong
=
@group
.
name
group are listed here.
-
if
current_user
To see all merge requests you should visit
#{
link_to
'dashboard'
,
merge_requests_dashboard_path
}
page.
.row-content-block.second-block
Only merge requests from
%strong
=
@group
.
name
group are listed here.
-
if
current_user
To see all merge requests you should visit
#{
link_to
'dashboard'
,
merge_requests_dashboard_path
}
page.
=
render
'shared/merge_requests'
.prepend-top-default
=
render
'shared/merge_requests'
app/views/projects/merge_requests/_merge_requests.html.haml
浏览文件 @
7c519821
%ul
.content-list.mr-list.issuable-list
=
render
@merge_requests
-
if
@merge_requests
.
blank?
%li
.nothing-here-block
No merge requests to show
-
if
@merge_requests
.
exists?
=
render
@merge_requests
-
else
=
render
'shared/empty_states/merge_requests'
-
if
@merge_requests
.
present?
=
paginate
@merge_requests
,
theme:
"gitlab"
app/views/projects/merge_requests/index.html.haml
浏览文件 @
7c519821
...
...
@@ -7,16 +7,19 @@
-
content_for
:page_specific_javascripts
do
=
page_specific_javascript_bundle_tag
(
'filtered_search'
)
%div
{
class:
container_class
}
.top-area
=
render
'shared/issuable/nav'
,
type: :merge_requests
.nav-controls
-
merge_project
=
can?
(
current_user
,
:create_merge_request
,
@project
)
?
@project
:
(
current_user
&&
current_user
.
fork_of
(
@project
))
-
if
merge_project
=
link_to
new_namespace_project_merge_request_path
(
merge_project
.
namespace
,
merge_project
),
class:
"btn btn-new"
,
title:
"New Merge Request"
do
New Merge Request
-
if
@project
.
merge_requests
.
exists?
%div
{
class:
container_class
}
.top-area
=
render
'shared/issuable/nav'
,
type: :merge_requests
.nav-controls
-
merge_project
=
can?
(
current_user
,
:create_merge_request
,
@project
)
?
@project
:
(
current_user
&&
current_user
.
fork_of
(
@project
))
-
if
merge_project
=
link_to
new_namespace_project_merge_request_path
(
merge_project
.
namespace
,
merge_project
),
class:
"btn btn-new"
,
title:
"New merge request"
do
New merge request
=
render
'shared/issuable/search_bar'
,
type: :merge_requests
=
render
'shared/issuable/search_bar'
,
type: :merge_requests
.merge-requests-holder
=
render
'merge_requests'
.merge-requests-holder
=
render
'merge_requests'
-
else
=
render
'shared/empty_states/merge_requests'
,
button_path:
new_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
)
app/views/shared/_merge_requests.html.haml
浏览文件 @
7c519821
...
...
@@ -6,4 +6,4 @@
=
paginate
@merge_requests
,
theme:
"gitlab"
-
else
.nothing-here-block
No merge requests to show
=
render
'shared/empty_states/merge_requests'
app/views/shared/empty_states/_merge_requests.html.haml
0 → 100644
浏览文件 @
7c519821
-
button_path
=
local_assigns
.
fetch
(
:button_path
,
false
)
-
project_select_button
=
local_assigns
.
fetch
(
:project_select_button
,
false
)
-
has_button
=
button_path
||
project_select_button
.row.empty-state.merge-requests
.col-xs-12
{
class:
"#{'col-sm-6 pull-right' if has_button}"
}
.svg-content
=
render
'shared/empty_states/icons/merge_requests.svg'
.col-xs-12
{
class:
"#{'col-sm-6' if has_button}"
}
.text-content
-
if
has_button
%h4
Merge requests are a place to propose changes you've made to a project and discuss those changes with others.
%p
Interested parties can even contribute by pushing commits if they want to.
-
if
project_select_button
=
render
'shared/new_project_item_select'
,
path:
'merge_requests/new'
,
label:
'New merge request'
-
else
=
link_to
'New merge request'
,
button_path
,
class:
'btn btn-new'
,
title:
'New merge request'
,
id:
'new_merge_request_link'
-
else
%h4
.text-center
There are no merge requests to show.
app/views/shared/empty_states/icons/_merge_requests.svg
0 → 100644
浏览文件 @
7c519821
<svg
xmlns=
"http://www.w3.org/2000/svg"
viewBox=
"755 221 385 225"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
><defs><rect
id=
"a"
width=
"278"
height=
"179"
rx=
"10"
/><mask
id=
"d"
width=
"278"
height=
"179"
x=
"0"
y=
"0"
fill=
"#fff"
><use
xlink:href=
"#a"
/></mask><path
id=
"b"
d=
"M13.6 49H57c5.5 0 10-4.5 10-10V10c0-5.5-4.5-10-10-10H10C4.5 0 0 4.5 0 10v42c0 5.5 3.2 7 7.2 3l6.4-6z"
/><mask
id=
"e"
width=
"67"
height=
"57.2"
x=
"0"
y=
"0"
fill=
"#fff"
><use
xlink:href=
"#b"
/></mask><path
id=
"c"
d=
"M13.6 49H57c5.5 0 10-4.5 10-10V10c0-5.5-4.5-10-10-10H10C4.5 0 0 4.5 0 10v42c0 5.5 3.2 7 7.2 3l6.4-6z"
/><mask
id=
"f"
width=
"67"
height=
"57.2"
x=
"0"
y=
"0"
fill=
"#fff"
><use
xlink:href=
"#c"
/></mask></defs><g
fill=
"none"
fill-rule=
"evenodd"
><g
fill=
"#F9F9F9"
transform=
"translate(752 227)"
><rect
width=
"120"
height=
"22"
x=
"30"
rx=
"11"
/><rect
width=
"132"
height=
"22"
y=
"44"
rx=
"11"
/><rect
width=
"190"
height=
"22"
x=
"208"
y=
"66"
rx=
"11"
/><rect
width=
"158"
height=
"22"
x=
"129"
y=
"197"
rx=
"11"
/><rect
width=
"158"
height=
"22"
x=
"66"
y=
"154"
rx=
"11"
/><rect
width=
"350"
height=
"22"
x=
"31"
y=
"110"
rx=
"11"
/><path
d=
"M153 22H21h21.5c6 0 11 5 11 11s-5 11-11 11H21h132-36.5c-6 0-11-5-11-11s5-11 11-11H153zm252 66H288h36.5c6 0 11 5 11 11s-5 11-11 11H288h117-36.5c-6 0-11-5-11-11s5-11 11-11H405zm-244 44H44h36.5c6 0 11 5 11 11s-5 11-11 11H44h117-36.5c-6 0-11-5-11-11s5-11 11-11H161zm75 44H119h21.5c6 0 11 5 11 11s-5 11-11 11H119h117-51.5c-6 0-11-5-11-11s5-11 11-11H236z"
/></g><g
transform=
"translate(812 240)"
><use
fill=
"#FFF"
stroke=
"#EEE"
stroke-width=
"8"
mask=
"url(#d)"
xlink:href=
"#a"
/><path
fill=
"#EEE"
d=
"M4 29h271v4H4z"
/><g
transform=
"translate(34 60)"
><rect
width=
"6"
height=
"2"
y=
"1"
fill=
"#B5A7DD"
rx=
"1"
/><rect
width=
"15"
height=
"4"
x=
"15"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"72"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"39"
y=
"22"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"53"
y=
"11"
fill=
"#FC6D26"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"48"
fill=
"#FC6D26"
opacity=
".5"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"15"
y=
"22"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"29"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"34"
fill=
"#FC6D26"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"15"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"6"
height=
"2"
y=
"12"
fill=
"#B5A7DD"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"23"
fill=
"#B5A7DD"
rx=
"1"
/></g><g
transform=
"translate(34 93)"
><rect
width=
"6"
height=
"2"
y=
"1"
fill=
"#B5A7DD"
rx=
"1"
/><rect
width=
"15"
height=
"4"
x=
"15"
fill=
"#FC6D26"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"72"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"39"
y=
"22"
fill=
"#FC6D26"
opacity=
".5"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"53"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"48"
fill=
"#FC6D26"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"15"
y=
"22"
fill=
"#FC6D26"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"29"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"34"
fill=
"#FC6D26"
opacity=
".5"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"15"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"6"
height=
"2"
y=
"12"
fill=
"#B5A7DD"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"23"
fill=
"#B5A7DD"
rx=
"1"
/></g><g
transform=
"translate(34 126)"
><rect
width=
"6"
height=
"2"
y=
"1"
fill=
"#B5A7DD"
rx=
"1"
/><rect
width=
"15"
height=
"4"
x=
"15"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"72"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"39"
y=
"22"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"53"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"48"
fill=
"#FC6D26"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"15"
y=
"22"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"29"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"34"
fill=
"#FC6D26"
opacity=
".5"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"15"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"6"
height=
"2"
y=
"12"
fill=
"#B5A7DD"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"23"
fill=
"#B5A7DD"
rx=
"1"
/></g><g
transform=
"translate(157 59)"
><rect
width=
"6"
height=
"2"
y=
"1"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"15"
height=
"4"
x=
"15"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"72"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"39"
y=
"22"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"53"
y=
"11"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"48"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"15"
y=
"22"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"29"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"34"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"15"
y=
"11"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"6"
height=
"2"
y=
"12"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"23"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"34"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"15"
height=
"4"
x=
"15"
y=
"33"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"58"
y=
"22"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"39"
y=
"55"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"29"
y=
"44"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"48"
y=
"33"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"15"
y=
"55"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"34"
y=
"33"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"15"
y=
"44"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"48"
y=
"44"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"62"
y=
"44"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"77"
y=
"22"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"6"
height=
"2"
y=
"45"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"56"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"67"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"15"
height=
"4"
x=
"15"
y=
"66"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"39"
y=
"88"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"15"
height=
"4"
x=
"53"
y=
"77"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"15"
y=
"88"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"20"
height=
"4"
x=
"29"
y=
"77"
fill=
"#6B4FBB"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"34"
y=
"66"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"72"
y=
"77"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"10"
height=
"4"
x=
"15"
y=
"77"
fill=
"#EEE"
rx=
"2"
/><rect
width=
"6"
height=
"2"
y=
"78"
fill=
"#FDE5D8"
rx=
"1"
/><rect
width=
"6"
height=
"2"
y=
"89"
fill=
"#FDE5D8"
rx=
"1"
/></g></g><g
transform=
"translate(1057 221)"
><use
fill=
"#FFF"
stroke=
"#FDE5D8"
stroke-width=
"8"
mask=
"url(#e)"
xlink:href=
"#b"
/><rect
width=
"29"
height=
"3"
x=
"14"
y=
"14"
fill=
"#FDB692"
rx=
"1.5"
/><rect
width=
"39"
height=
"3"
x=
"14"
y=
"23"
fill=
"#FDB692"
rx=
"1.5"
/><rect
width=
"29"
height=
"3"
x=
"14"
y=
"32"
fill=
"#FDB692"
rx=
"1.5"
/></g><g
transform=
"translate(1046 285)"
><circle
cx=
"16"
cy=
"15"
r=
"15"
fill=
"#FFF7F4"
stroke=
"#FC6D26"
stroke-width=
"3"
/><path
stroke=
"#FC6D26"
stroke-width=
"2"
d=
"M0 14h1c5 0 9.2-2.7 11.4-6.7M14 1V0"
/><path
stroke=
"#FC6D26"
stroke-width=
"2"
d=
"M7.8 3c3 4.3 7.8 7 13.2 7 3.3 0 6.3-1 9-2.7"
/><circle
cx=
"10.5"
cy=
"17.5"
r=
"1.5"
fill=
"#FC6D26"
/><circle
cx=
"21.5"
cy=
"17.5"
r=
"1.5"
fill=
"#FC6D26"
/></g><g
transform=
"translate(825 370)"
><circle
cx=
"15"
cy=
"16"
r=
"15"
fill=
"#F4F1FA"
stroke=
"#6B4FBB"
stroke-width=
"3"
/><path
fill=
"#6B4FBB"
d=
"M25 7h2.7C25 2.8 20.4 0 15 0 9.6 0 5 2.8 2.3 7H5l2.5-3L10 7l2.5-3L15 7l2.5-3L20 7l2.5-3L25 7z"
/><circle
cx=
"9.5"
cy=
"17.5"
r=
"1.5"
fill=
"#6B4FBB"
/><circle
cx=
"20.5"
cy=
"17.5"
r=
"1.5"
fill=
"#6B4FBB"
/></g><g
transform=
"matrix(-1 0 0 1 840 306)"
><use
fill=
"#FFF"
stroke=
"#E2DCF2"
stroke-width=
"8"
mask=
"url(#f)"
xlink:href=
"#c"
/><rect
width=
"29"
height=
"3"
x=
"24"
y=
"14"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"1.5"
/><rect
width=
"19"
height=
"3"
x=
"34"
y=
"23"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"1.5"
/><rect
width=
"19"
height=
"3"
x=
"34"
y=
"32"
fill=
"#6B4FBB"
opacity=
".5"
rx=
"1.5"
/></g></g></svg>
changelogs/unreleased/20841-getting-started-better-empty-state-for-merge-requests-view.yml
0 → 100644
浏览文件 @
7c519821
---
title
:
Added merge requests empty state
merge_request
:
7342
author
:
features/dashboard/dashboard.feature
浏览文件 @
7c519821
...
...
@@ -63,7 +63,8 @@ Feature: Dashboard
@javascript
Scenario
:
Visiting Project's merge requests after sorting
Given
I visit dashboard merge requests page
Given
project
"Shop"
has a
"Bugfix MR"
merge request open
And
I visit dashboard merge requests page
And
I sort the list by
"Oldest updated"
And
I visit project
"Shop"
merge requests page
Then
The list should be sorted by
"Oldest updated"
features/project/issues/issues.feature
浏览文件 @
7c519821
...
...
@@ -56,14 +56,16 @@ Feature: Project Issues
@javascript
Scenario
:
Visiting Merge Requests after being sorted the list
Given
I visit project
"Shop"
issues page
Given
project
"Shop"
has a
"Bugfix MR"
merge request open
And
I visit project
"Shop"
issues page
And
I sort the list by
"Oldest updated"
And
I visit project
"Shop"
merge requests page
Then
The list should be sorted by
"Oldest updated"
@javascript
Scenario
:
Visiting Merge Requests from a differente Project after sorting
Given
I visit project
"Shop"
merge requests page
Given
project
"Shop"
has a
"Bugfix MR"
merge request open
And
I visit project
"Shop"
merge requests page
And
I sort the list by
"Oldest updated"
And
I visit dashboard merge requests page
Then
The list should be sorted by
"Oldest updated"
...
...
features/steps/project/fork.rb
浏览文件 @
7c519821
...
...
@@ -42,8 +42,7 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps
end
step
'I click link "New merge request"'
do
expect
(
page
).
to
have_content
(
/new merge request/i
)
click_link
"New Merge Request"
page
.
has_link?
(
'New Merge Request'
)
?
click_link
(
"New Merge Request"
)
:
click_link
(
'New merge request'
)
end
step
'I should see the new merge request page for my namespace'
do
...
...
features/steps/project/forked_merge_requests.rb
浏览文件 @
7c519821
...
...
@@ -16,7 +16,7 @@ class Spinach::Features::ProjectForkedMergeRequests < Spinach::FeatureSteps
end
step
'I click link "New Merge Request"'
do
click_link
"New Merge Request"
page
.
has_link?
(
'New Merge Request'
)
?
click_link
(
"New Merge Request"
)
:
click_link
(
'New merge request'
)
end
step
'I should see merge request "Merge Request On Forked Project"'
do
...
...
features/steps/project/merge_requests.rb
浏览文件 @
7c519821
...
...
@@ -14,7 +14,7 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
end
step
'I click link "New Merge Request"'
do
click_link
"New Merge Request"
page
.
has_link?
(
'New Merge Request'
)
?
click_link
(
"New Merge Request"
)
:
click_link
(
'New merge request'
)
end
step
'I click link "Bug NS-04"'
do
...
...
features/steps/shared/project.rb
浏览文件 @
7c519821
...
...
@@ -273,6 +273,10 @@ module SharedProject
@project
.
update
(
public_builds:
false
)
end
step
'project "Shop" has a "Bugfix MR" merge request open'
do
create
(
:merge_request
,
title:
"Bugfix MR"
,
target_project:
project
,
source_project:
project
,
author:
project
.
users
.
first
)
end
def
user_owns_project
(
user_name
:,
project_name
:,
visibility: :private
)
user
=
user_exists
(
user_name
,
username:
user_name
.
gsub
(
/\s/
,
''
).
underscore
)
project
=
Project
.
find_by
(
name:
project_name
)
...
...
spec/features/dashboard/merge_requests_spec.rb
0 → 100644
浏览文件 @
7c519821
require
'spec_helper'
describe
'Dashboard Merge Requests'
do
let
(
:current_user
)
{
create
:user
}
let
(
:project
)
do
create
(
:empty_project
)
do
|
project
|
project
.
add_master
(
current_user
)
end
end
before
do
login_as
(
current_user
)
end
it
'should show an empty state'
do
visit
merge_requests_dashboard_path
(
assignee_id:
current_user
.
id
)
expect
(
page
).
to
have_selector
(
'.empty-state'
)
end
context
'if there are merge requests'
do
before
do
create
(
:merge_request
,
assignee:
current_user
,
source_project:
project
)
visit
merge_requests_dashboard_path
(
assignee_id:
current_user
.
id
)
end
it
'should not show an empty state'
do
expect
(
page
).
not_to
have_selector
(
'.empty-state'
)
end
end
end
spec/features/groups/empty_states_spec.rb
0 → 100644
浏览文件 @
7c519821
require
'spec_helper'
feature
'Groups Merge Requests Empty States'
do
let
(
:group
)
{
create
(
:group
)
}
let
(
:user
)
{
create
(
:group_member
,
:developer
,
user:
create
(
:user
),
group:
group
).
user
}
before
do
login_as
(
user
)
end
context
'group has a project'
do
let
(
:project
)
{
create
(
:empty_project
,
namespace:
group
)
}
before
do
project
.
add_master
(
user
)
end
context
'the project has a merge request'
do
before
do
create
(
:merge_request
,
source_project:
project
)
visit
merge_requests_group_path
(
group
)
end
it
'should not display an empty state'
do
expect
(
page
).
not_to
have_selector
(
'.empty-state'
)
end
end
context
'the project has no merge requests'
,
:js
do
before
do
visit
merge_requests_group_path
(
group
)
end
it
'should display an empty state'
do
expect
(
page
).
to
have_selector
(
'.empty-state'
)
end
it
'should show a new merge request button'
do
within
'.empty-state'
do
expect
(
page
).
to
have_content
(
'New merge request'
)
end
end
it
'the new merge request button opens a project dropdown'
do
within
'.empty-state'
do
find
(
'.new-project-item-select-button'
).
click
end
expect
(
page
).
to
have_selector
(
'.ajax-project-dropdown'
)
end
end
end
context
'group without a project'
do
before
do
visit
merge_requests_group_path
(
group
)
end
it
'should display an empty state'
do
expect
(
page
).
to
have_selector
(
'.empty-state'
)
end
it
'should not show a new merge request button'
do
within
'.empty-state'
do
expect
(
page
).
not_to
have_link
(
'New merge request'
)
end
end
end
end
spec/features/merge_requests/create_new_mr_spec.rb
浏览文件 @
7c519821
...
...
@@ -15,7 +15,7 @@ feature 'Create New Merge Request', feature: true, js: true do
it
'selects the source branch sha when a tag with the same name exists'
do
visit
namespace_project_merge_requests_path
(
project
.
namespace
,
project
)
click_link
'New
Merge R
equest'
click_link
'New
merge r
equest'
expect
(
page
).
to
have_content
(
'Source branch'
)
expect
(
page
).
to
have_content
(
'Target branch'
)
...
...
@@ -27,8 +27,8 @@ feature 'Create New Merge Request', feature: true, js: true do
it
'selects the target branch sha when a tag with the same name exists'
do
visit
namespace_project_merge_requests_path
(
project
.
namespace
,
project
)
click_link
'New
Merge R
equest'
click_link
'New
merge r
equest'
expect
(
page
).
to
have_content
(
'Source branch'
)
expect
(
page
).
to
have_content
(
'Target branch'
)
...
...
@@ -42,7 +42,7 @@ feature 'Create New Merge Request', feature: true, js: true do
it
'generates a diff for an orphaned branch'
do
visit
namespace_project_merge_requests_path
(
project
.
namespace
,
project
)
click_link
'New Merge Request'
page
.
has_link?
(
'New Merge Request'
)
?
click_link
(
"New Merge Request"
)
:
click_link
(
'New merge request'
)
expect
(
page
).
to
have_content
(
'Source branch'
)
expect
(
page
).
to
have_content
(
'Target branch'
)
...
...
spec/features/projects/merge_requests/list_spec.rb
浏览文件 @
7c519821
...
...
@@ -17,4 +17,28 @@ feature 'Merge Requests List' do
expect
(
page
).
not_to
have_selector
(
'.js-new-board-list'
)
end
it
'should show an empty state'
do
visit
namespace_project_merge_requests_path
(
project
.
namespace
,
project
)
expect
(
page
).
to
have_selector
(
'.empty-state'
)
end
it
'empty state should have a create merge request button'
do
visit
namespace_project_merge_requests_path
(
project
.
namespace
,
project
)
expect
(
page
).
to
have_link
'New merge request'
,
href:
new_namespace_project_merge_request_path
(
project
.
namespace
,
project
)
end
context
'if there are merge requests'
do
before
do
create
(
:merge_request
,
assignee:
user
,
source_project:
project
)
visit
namespace_project_merge_requests_path
(
project
.
namespace
,
project
)
end
it
'should not show an empty state'
do
expect
(
page
).
not_to
have_selector
(
'.empty-state'
)
end
end
end
spec/features/search_spec.rb
浏览文件 @
7c519821
...
...
@@ -164,6 +164,8 @@ describe "Search", feature: true do
end
context
'click the links in the category search dropdown'
,
js:
true
do
let!
(
:merge_request
)
{
create
(
:merge_request
,
source_project:
project
,
author:
user
,
assignee:
user
)
}
before
do
page
.
find
(
'#search'
).
click
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录