Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
3d6573fd
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,发现更多精彩内容 >>
提交
3d6573fd
编写于
3月 18, 2016
作者:
P
Phil Hughes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated to fix issues risen during feedback
Correctly updates the on-screen CI text feedback
上级
33aeaf6a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
53 addition
and
67 deletion
+53
-67
app/assets/javascripts/lib/notify.js.coffee
app/assets/javascripts/lib/notify.js.coffee
+8
-12
app/assets/javascripts/merge_request_widget.js.coffee
app/assets/javascripts/merge_request_widget.js.coffee
+19
-17
app/views/projects/merge_requests/widget/_heading.html.haml
app/views/projects/merge_requests/widget/_heading.html.haml
+21
-34
app/views/projects/merge_requests/widget/_show.html.haml
app/views/projects/merge_requests/widget/_show.html.haml
+5
-4
未找到文件。
app/assets/javascripts/lib/notify.js.coffee
浏览文件 @
3d6573fd
((
w
)
->
notificationGranted
=
(
message
,
opts
,
onclick
)
->
notification
=
new
Notification
(
message
,
opts
)
if
onclick
notification
.
onclick
=
onclick
notifyPermissions
=
->
if
'Notification'
of
window
Notification
.
requestPermission
()
notifyMe
=
(
message
,
body
,
icon
,
onclick
)
->
notification
=
undefined
opts
=
body
:
body
icon
:
icon
...
...
@@ -13,22 +18,13 @@
# do nothing
else
if
Notification
.
permission
==
'granted'
# If it's okay let's create a notification
notification
=
new
Notification
(
message
,
opts
)
if
onclick
notification
.
onclick
=
onclick
notificationGranted
message
,
opts
,
onclick
else
if
Notification
.
permission
!=
'denied'
Notification
.
requestPermission
(
permission
)
->
# If the user accepts, let's create a notification
if
permission
==
'granted'
notification
=
new
Notification
(
message
,
opts
)
if
onclick
notification
.
onclick
=
onclick
return
return
notificationGranted
message
,
opts
,
onclick
w
.
notify
=
notifyMe
w
.
notifyPermissions
=
notifyPermissions
return
)
window
app/assets/javascripts/merge_request_widget.js.coffee
浏览文件 @
3d6573fd
...
...
@@ -2,8 +2,8 @@ class @MergeRequestWidget
# Initialize MergeRequestWidget behavior
#
# check_enable - Boolean, whether to check automerge status
#
url_to_automerge_check
- String, URL to use to check automerge status
#
url_to_ci_check
- String, URL to use to check CI status
#
merge_check_url
- String, URL to use to check automerge status
#
ci_status_url
- String, URL to use to check CI status
#
constructor
:
(
@
opts
)
->
...
...
@@ -31,7 +31,7 @@ class @MergeRequestWidget
dataType
:
'json'
getMergeStatus
:
->
$
.
get
@
opts
.
url_to_automerge_check
,
(
data
)
->
$
.
get
@
opts
.
merge_check_url
,
(
data
)
->
$
(
'.mr-state-widget'
).
replaceWith
(
data
)
ciLabelForStatus
:
(
status
)
->
...
...
@@ -41,26 +41,28 @@ class @MergeRequestWidget
status
getCIStatus
:
->
urlToCICheck
=
@
opts
.
url_to_ci_check
_this
=
@
@
fetchBuildStatusInterval
=
setInterval
(
=>
return
if
not
@
readyForCICheck
$
.
getJSON
urlToCICheck
,
(
data
)
=>
$
.
getJSON
@
opts
.
ci_status_url
,
(
data
)
=>
@
readyForCICheck
=
true
if
@
firstCICheck
@
firstCICheck
=
false
@
opts
.
current_status
=
data
.
status
@
opts
.
ci_status
=
data
.
status
if
data
.
status
isnt
@
opts
.
ci_status
@
showCIState
data
.
status
if
data
.
coverage
@
showCICoverage
data
.
coverage
if
data
.
status
isnt
@
opts
.
current_status
message
=
@
opts
.
ci_message
.
replace
(
'{{status}}'
,
@
ciLabelForStatus
(
data
.
status
))
message
=
message
.
replace
(
'{{sha}}'
,
data
.
sha
)
message
=
message
.
replace
(
'{{title}}'
,
data
.
title
)
notify
(
"Build
#{
_this
.
ciLabelForStatus
(
data
.
status
)
}
"
,
"Build
#{
@
ciLabelForStatus
(
data
.
status
)
}
"
,
message
,
@
opts
.
gitlab_icon
,
->
...
...
@@ -68,19 +70,19 @@ class @MergeRequestWidget
Turbolinks
.
visit
_this
.
opts
.
builds_path
)
@
opts
.
c
urrent
_status
=
data
.
status
@
opts
.
c
i
_status
=
data
.
status
@
readyForCICheck
=
false
),
5000
getCiStatus
:
->
$
.
get
@
opts
.
url_to_ci_check
,
(
data
)
=>
this
.
showCiState
data
.
status
getCIState
:
->
$
(
'.ci-widget-fetching'
).
show
()
$
.
getJSON
@
opts
.
ci_status_url
,
(
data
)
=>
@
showCIState
data
.
status
if
data
.
coverage
this
.
showCiCoverage
data
.
coverage
,
'json'
@
showCICoverage
data
.
coverage
showC
i
State
:
(
state
)
->
showC
I
State
:
(
state
)
->
$
(
'.ci_widget'
).
hide
()
allowed_states
=
[
"failed"
,
"canceled"
,
"running"
,
"pending"
,
"success"
,
"skipped"
,
"not_found"
]
if
state
in
allowed_states
...
...
@@ -94,7 +96,7 @@ class @MergeRequestWidget
$
(
'.ci_widget.ci-error'
).
show
()
@
setMergeButtonClass
(
'btn-danger'
)
showC
i
Coverage
:
(
coverage
)
->
showC
I
Coverage
:
(
coverage
)
->
text
=
'Coverage '
+
coverage
+
'%'
$
(
'.ci_widget:visible .ci-coverage'
).
text
(
text
)
...
...
app/views/projects/merge_requests/widget/_heading.html.haml
浏览文件 @
3d6573fd
-
if
@ci_commit
.mr-widget-heading
.ci_widget
{
class:
"ci-#{@ci_commit.status}"
}
=
ci_status_icon
(
@ci_commit
)
%span
Build
%span
.ci-status-label
=
ci_status_label
(
@ci_commit
)
for
=
succeed
"."
do
=
link_to
@ci_commit
.
short_sha
,
namespace_project_commit_path
(
@merge_request
.
source_project
.
namespace
,
@merge_request
.
source_project
,
@ci_commit
.
sha
),
class:
"monospace"
%span
.ci-coverage
=
link_to
"View details"
,
builds_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
),
class:
"js-show-tab"
,
data:
{
action:
'builds'
}
-
elsif
@merge_request
.
has_ci?
-
# Compatibility with old CI integrations (ex jenkins) when you request status from CI server via AJAX
-
# Remove in later versions when services like Jenkins will set CI status via Commit status API
-
if
@ci_commit
or
@merge_request
.
has_ci?
.mr-widget-heading
-
if
@merge_request
.
has_ci?
.ci_widget.ci-widget-fetching
=
icon
(
'spinner spin'
)
%span
Checking CI status for
#{
@merge_request
.
last_commit_short_sha
}
…
-
%w[success skipped canceled failed running pending]
.
each
do
|
status
|
.ci_widget
{
class:
"ci-#{status}"
,
style:
"display:none"
}
.ci_widget
{
class:
"ci-#{status}"
,
style:
(
"display:none"
unless
status
==
@ci_commit
.
status
)
}
=
ci_icon_for_status
(
status
)
%span
CI build
...
...
@@ -27,22 +16,20 @@
=
succeed
"."
do
=
link_to
commit
.
short_id
,
namespace_project_commit_path
(
@merge_request
.
source_project
.
namespace
,
@merge_request
.
source_project
,
commit
),
class:
"monospace"
%span
.ci-coverage
-
if
details_path
=
ci_build_details_path
(
@merge_request
)
-
if
details_path
=
builds_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
=
link_to
"View details"
,
details_path
,
:"data-no-turbolink"
=>
"data-no-turbolink"
-
if
@merge_request
.
has_ci?
-
# Compatibility with old CI integrations (ex jenkins) when you request status from CI server via AJAX
-
# Remove in later versions when services like Jenkins will set CI status via Commit status API
.ci_widget.ci-not_found
{
style:
"display:none"
}
=
icon
(
"times-circle"
)
Could not find CI status for
#{
@merge_request
.
last_commit_short_sha
}
.
.ci_widget
=
icon
(
"spinner spin"
)
Checking CI status for
#{
@merge_request
.
last_commit_short_sha
}
…
.ci_widget.ci-not_found
{
style:
"display:none"
}
=
icon
(
"times-circle"
)
Could not find CI status for
#{
@merge_request
.
last_commit_short_sha
}
.
.ci_widget.ci-error
{
style:
"display:none"
}
=
icon
(
"times-circle"
)
Could not connect to the CI server. Please check your settings and try again.
.ci_widget.ci-error
{
style:
"display:none"
}
=
icon
(
"times-circle"
)
Could not connect to the CI server. Please check your settings and try again.
:javascript
$
(
function
()
{
merge_request_widget
.
getCiStatus
();
});
:javascript
$
(
function
()
{
merge_request_widget
.
getCIState
();
});
app/views/projects/merge_requests/widget/_show.html.haml
浏览文件 @
3d6573fd
...
...
@@ -10,12 +10,13 @@
:javascript
var
merge_request_widget
;
var
opts
=
{
url_to_automerge_check
:
"
#{
merge_check_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
}
"
,
merge_check_url
:
"
#{
merge_check_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
}
"
,
check_enable
:
#{
@merge_request
.
unchecked?
?
"true"
:
"false"
}
,
url_to_ci_check
:
"
#{
ci_status_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
}
"
,
ci_status_url
:
"
#{
ci_status_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
}
"
,
gitlab_icon
:
"
#{
asset_path
'gitlab_logo.png'
}
"
,
current_status
:
""
,
ci_message
:
"
Build {{status}} for {{title}}
\n
{{sha}}
"
,
ci_status
:
""
,
ci_message
:
"
Build {{status}} for
\"
{{title}}
\"
"
,
ci_enable
:
#{
@project
.
ci_service
?
"true"
:
"false"
}
,
builds_path
:
"
#{
builds_namespace_project_merge_request_path
(
@project
.
namespace
,
@project
,
@merge_request
)
}
"
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录