Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
e684480e
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,发现更多精彩内容 >>
提交
e684480e
编写于
4月 07, 2016
作者:
J
Jacob Schatz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Proper selecting multiple labels.
上级
19b9df2d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
62 addition
and
10 deletion
+62
-10
app/assets/javascripts/issues.js.coffee
app/assets/javascripts/issues.js.coffee
+41
-3
app/assets/javascripts/labels_select.js.coffee
app/assets/javascripts/labels_select.js.coffee
+7
-6
app/helpers/issuables_helper.rb
app/helpers/issuables_helper.rb
+13
-0
app/views/shared/issuable/_label_dropdown.html.haml
app/views/shared/issuable/_label_dropdown.html.haml
+1
-1
未找到文件。
app/assets/javascripts/issues.js.coffee
浏览文件 @
e684480e
...
@@ -49,11 +49,49 @@
...
@@ -49,11 +49,49 @@
Issues
.
filterResults
$
(
"#issue_search_form"
)
Issues
.
filterResults
$
(
"#issue_search_form"
)
,
500
)
,
500
)
filterResults
:
(
form
,
inputs
)
=>
filterResults
:
(
form
)
=>
console
.
log
(
'form'
,
form
)
# Assume for now there is only 1 multi select field
# Find the hidden inputs with square brackets
$multiInputs
=
form
.
find
(
'input[name$="[]"]'
)
if
$multiInputs
.
length
# get the name of one of them
multiInputName
=
$multiInputs
.
first
()
.
attr
(
'name'
)
# get the singular name by
# removing the square brackets from the name
singularName
=
multiInputName
.
replace
(
'[]'
,
''
)
# clone the form so we can mess around with it.
$clonedForm
=
form
.
clone
()
# get those inputs from the cloned form
$inputs
=
$clonedForm
.
find
(
"input[name='
#{
multiInputName
}
']"
)
# make a comma seperated list of labels
commaSeperated
=
$inputs
.
map
(
->
$
(
this
).
val
())
.
get
()
.
join
(
','
)
# append on a hidden input with the comma
# seperated values in it
$clonedForm
.
append
(
$
(
'<input />'
)
.
attr
(
'type'
,
'hidden'
)
.
attr
(
'name'
,
singularName
)
.
val
(
commaSeperated
)
)
# remove the multi inputs from the
# cloned form so they don't get serialized
$inputs
.
remove
()
# serialize the cloned form
formData
=
$clonedForm
.
serialize
()
else
formData
=
form
.
serialize
()
$
(
'.issues-holder, .merge-requests-holder'
).
css
(
"opacity"
,
'0.5'
)
$
(
'.issues-holder, .merge-requests-holder'
).
css
(
"opacity"
,
'0.5'
)
formAction
=
form
.
attr
(
'action'
)
formAction
=
form
.
attr
(
'action'
)
formData
=
form
.
serialize
()
issuesUrl
=
formAction
issuesUrl
=
formAction
issuesUrl
+=
(
"
#{
if
formAction
.
indexOf
(
"?"
)
<
0
then
'?'
else
'&'
}
"
)
issuesUrl
+=
(
"
#{
if
formAction
.
indexOf
(
"?"
)
<
0
then
'?'
else
'&'
}
"
)
issuesUrl
+=
formData
issuesUrl
+=
formData
...
...
app/assets/javascripts/labels_select.js.coffee
浏览文件 @
e684480e
...
@@ -6,7 +6,7 @@ class @LabelsSelect
...
@@ -6,7 +6,7 @@ class @LabelsSelect
labelUrl
=
$dropdown
.
data
(
'labels'
)
labelUrl
=
$dropdown
.
data
(
'labels'
)
issueUpdateURL
=
$dropdown
.
data
(
'issueUpdate'
)
issueUpdateURL
=
$dropdown
.
data
(
'issueUpdate'
)
selectedLabel
=
$dropdown
.
data
(
'selected'
)
selectedLabel
=
$dropdown
.
data
(
'selected'
)
if
selectedLabel
?
if
selectedLabel
?
and
not
$dropdown
.
hasClass
'js-multiselect'
selectedLabel
=
selectedLabel
.
split
(
','
)
selectedLabel
=
selectedLabel
.
split
(
','
)
newLabelField
=
$
(
'#new_label_name'
)
newLabelField
=
$
(
'#new_label_name'
)
newColorField
=
$
(
'#new_label_color'
)
newColorField
=
$
(
'#new_label_color'
)
...
@@ -246,7 +246,12 @@ class @LabelsSelect
...
@@ -246,7 +246,12 @@ class @LabelsSelect
selectedLabels
=
$dropdown
selectedLabels
=
$dropdown
.
closest
(
'form'
)
.
closest
(
'form'
)
.
find
(
"input[type='hidden'][name='
#{
$dropdown
.
data
(
'field-name'
)
}
']"
)
.
find
(
"input[type='hidden'][name='
#{
$dropdown
.
data
(
'field-name'
)
}
']"
)
Issues
.
filterResults
$dropdown
.
closest
(
'form'
),
selectedLabels
Issues
.
filterResults
(
$dropdown
.
closest
(
'form'
),
selectedLabels
,
$dropdown
.
data
(
'singularFieldName'
),
$dropdown
.
data
(
'fieldName'
)
)
else
if
$dropdown
.
hasClass
(
'js-filter-submit'
)
else
if
$dropdown
.
hasClass
(
'js-filter-submit'
)
$dropdown
.
closest
(
'form'
).
submit
()
$dropdown
.
closest
(
'form'
).
submit
()
else
else
...
@@ -257,18 +262,14 @@ class @LabelsSelect
...
@@ -257,18 +262,14 @@ class @LabelsSelect
page
=
$
(
'body'
).
data
'page'
page
=
$
(
'body'
).
data
'page'
isIssueIndex
=
page
is
'projects:issues:index'
isIssueIndex
=
page
is
'projects:issues:index'
isMRIndex
=
page
is
page
is
'projects:merge_requests:index'
isMRIndex
=
page
is
page
is
'projects:merge_requests:index'
console
.
log
'clicked'
if
$dropdown
.
hasClass
(
'js-filter-submit'
)
and
(
isIssueIndex
or
isMRIndex
)
if
$dropdown
.
hasClass
(
'js-filter-submit'
)
and
(
isIssueIndex
or
isMRIndex
)
if
not
$dropdown
.
hasClass
'js-multiselect'
if
not
$dropdown
.
hasClass
'js-multiselect'
selectedLabel
=
label
.
title
selectedLabel
=
label
.
title
Issues
.
filterResults
$dropdown
.
closest
(
'form'
)
Issues
.
filterResults
$dropdown
.
closest
(
'form'
)
else
if
$dropdown
.
hasClass
'js-filter-submit'
else
if
$dropdown
.
hasClass
'js-filter-submit'
console
.
log
'clicked else if'
$dropdown
.
closest
(
'form'
).
submit
()
$dropdown
.
closest
(
'form'
).
submit
()
else
else
console
.
log
'clicked else'
if
$dropdown
.
hasClass
'js-multiselect'
if
$dropdown
.
hasClass
'js-multiselect'
console
.
log
'clicked else --> if'
return
return
else
else
saveLabelData
()
saveLabelData
()
...
...
app/helpers/issuables_helper.rb
浏览文件 @
e684480e
...
@@ -16,6 +16,19 @@ module IssuablesHelper
...
@@ -16,6 +16,19 @@ module IssuablesHelper
base_issuable_scope
(
issuable
).
where
(
'iid > ?'
,
issuable
.
iid
).
last
base_issuable_scope
(
issuable
).
where
(
'iid > ?'
,
issuable
.
iid
).
last
end
end
def
multi_label_name
(
current_labels
,
default_label
)
if
current_labels
.
presence
if
current_labels
.
include?
','
labels
=
current_labels
.
split
(
','
)
"
#{
labels
[
0
]
}
+
#{
labels
.
count
-
1
}
more"
else
current_labels
end
else
default_label
end
end
def
issuable_json_path
(
issuable
)
def
issuable_json_path
(
issuable
)
project
=
issuable
.
project
project
=
issuable
.
project
...
...
app/views/shared/issuable/_label_dropdown.html.haml
浏览文件 @
e684480e
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
%button
.dropdown-menu-toggle.js-label-select.js-filter-submit.js-extra-options
{
type:
"button"
,
data:
{
toggle:
"dropdown"
,
field_name:
"label_name"
,
show_no:
"true"
,
show_any:
"true"
,
selected:
params
[
:label_name
],
project_id:
@project
.
try
(
:id
),
labels:
labels_filter_path
,
default_label:
"Label"
}}
%button
.dropdown-menu-toggle.js-label-select.js-filter-submit.js-extra-options
{
type:
"button"
,
data:
{
toggle:
"dropdown"
,
field_name:
"label_name"
,
show_no:
"true"
,
show_any:
"true"
,
selected:
params
[
:label_name
],
project_id:
@project
.
try
(
:id
),
labels:
labels_filter_path
,
default_label:
"Label"
}}
%button
.dropdown-menu-toggle.js-label-select.js-filter-submit.js-multiselect.js-extra-options
{
type:
"button"
,
data:
{
toggle:
"dropdown"
,
field_name:
"label_name[]"
,
show_no:
"true"
,
show_any:
"true"
,
selected:
params
[
:label_name
],
project_id:
@project
.
try
(
:id
),
labels:
labels_filter_path
,
default_label:
"Label"
}}
%button
.dropdown-menu-toggle.js-label-select.js-filter-submit.js-multiselect.js-extra-options
{
type:
"button"
,
data:
{
toggle:
"dropdown"
,
field_name:
"label_name[]"
,
show_no:
"true"
,
show_any:
"true"
,
selected:
params
[
:label_name
],
project_id:
@project
.
try
(
:id
),
labels:
labels_filter_path
,
default_label:
"Label"
}}
%span
.dropdown-toggle-text
%span
.dropdown-toggle-text
=
h
(
params
[
:label_name
].
presence
||
"Label"
)
=
h
(
multi_label_name
(
params
[
:label_name
],
"Label"
)
)
=
icon
(
'chevron-down'
)
=
icon
(
'chevron-down'
)
.dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable
.dropdown-menu.dropdown-select.dropdown-menu-paging.dropdown-menu-labels.dropdown-menu-selectable
.dropdown-page-one
.dropdown-page-one
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录