Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
2c9894d4
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 搜索 >>
提交
2c9894d4
编写于
4月 12, 2016
作者:
J
Jacob Schatz
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'project-title-dropdown' into 'master'
Project dropdown in header uses new dropdown See merge request !3339
上级
6f4b4fd9
1ac6bdb5
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
82 addition
and
37 deletion
+82
-37
CHANGELOG
CHANGELOG
+1
-0
app/assets/javascripts/gl_dropdown.js.coffee
app/assets/javascripts/gl_dropdown.js.coffee
+3
-1
app/assets/javascripts/project_select.js.coffee
app/assets/javascripts/project_select.js.coffee
+32
-0
app/assets/stylesheets/framework/header.scss
app/assets/stylesheets/framework/header.scss
+5
-0
app/helpers/projects_helper.rb
app/helpers/projects_helper.rb
+5
-12
app/views/layouts/header/_default.html.haml
app/views/layouts/header/_default.html.haml
+2
-0
app/views/layouts/project.html.haml
app/views/layouts/project.html.haml
+8
-0
spec/features/projects_spec.rb
spec/features/projects_spec.rb
+1
-2
spec/javascripts/fixtures/project_title.html.haml
spec/javascripts/fixtures/project_title.html.haml
+20
-7
spec/javascripts/project_title_spec.js.coffee
spec/javascripts/project_title_spec.js.coffee
+5
-15
未找到文件。
CHANGELOG
浏览文件 @
2c9894d4
...
...
@@ -46,6 +46,7 @@ v 8.7.0 (unreleased)
v 8.6.6
- Fix error on language detection when repository has no HEAD (e.g., master branch). !3654 (Jeroen Bobbeldijk)
- Project switcher uses new dropdown styling
v 8.6.5
- Fix importing from GitHub Enterprise. !3529
...
...
app/assets/javascripts/gl_dropdown.js.coffee
浏览文件 @
2c9894d4
...
...
@@ -122,7 +122,9 @@ class GitLabDropdown
FILTER_INPUT
=
'.dropdown-input .dropdown-input-field'
constructor
:
(
@
el
,
@
options
)
->
@
dropdown
=
$
(
@
el
).
parent
()
self
=
@
selector
=
$
(
@
el
).
data
"target"
@
dropdown
=
if
selector
?
then
$
(
selector
)
else
$
(
@
el
).
parent
()
# Set Defaults
{
...
...
app/assets/javascripts/project_select.js.coffee
浏览文件 @
2c9894d4
class
@
ProjectSelect
constructor
:
->
$
(
'.js-projects-dropdown-toggle'
).
each
(
i
,
dropdown
)
->
$dropdown
=
$
(
dropdown
)
$dropdown
.
glDropdown
(
filterable
:
true
filterRemote
:
true
search
:
fields
:
[
'name_with_namespace'
]
data
:
(
term
,
callback
)
->
finalCallback
=
(
projects
)
->
callback
projects
if
@
includeGroups
projectsCallback
=
(
projects
)
->
groupsCallback
=
(
groups
)
->
data
=
groups
.
concat
(
projects
)
finalCallback
(
data
)
Api
.
groups
term
,
false
,
groupsCallback
else
projectsCallback
=
finalCallback
if
@
groupId
Api
.
groupProjects
@
groupId
,
term
,
projectsCallback
else
Api
.
projects
term
,
@
orderBy
,
projectsCallback
url
:
(
project
)
->
project
.
web_url
text
:
(
project
)
->
project
.
name_with_namespace
)
$
(
'.ajax-project-select'
).
each
(
i
,
select
)
->
@
groupId
=
$
(
select
).
data
(
'group-id'
)
@
includeGroups
=
$
(
select
).
data
(
'include-groups'
)
...
...
app/assets/stylesheets/framework/header.scss
浏览文件 @
2c9894d4
...
...
@@ -69,6 +69,7 @@ header {
}
.header-content
{
position
:
relative
;
height
:
$header-height
;
padding-right
:
20px
;
...
...
@@ -76,6 +77,10 @@ header {
padding-right
:
0
;
}
.dropdown-menu
{
margin-top
:
-5px
;
}
.title
{
margin
:
0
;
font-size
:
19px
;
...
...
app/helpers/projects_helper.rb
浏览文件 @
2c9894d4
...
...
@@ -65,21 +65,14 @@ module ProjectsHelper
link_to
(
simple_sanitize
(
owner
.
name
),
user_path
(
owner
))
end
project_link
=
link_to
project_path
(
project
),
{
class:
"project-item-select-holder"
}
do
link_output
=
simple_sanitize
(
project
.
name
)
project_link
=
link_to
simple_sanitize
(
project
.
name
),
project_path
(
project
),
{
class:
"project-item-select-holder"
}
if
current_user
link_output
+=
project_select_tag
:project_path
,
class:
"project-item-select js-projects-dropdown"
,
data:
{
include_groups:
false
,
order_by:
'last_activity_at'
}
end
link_output
if
current_user
project_link
<<
icon
(
"chevron-down"
,
class:
"dropdown-toggle-caret js-projects-dropdown-toggle"
,
data:
{
target:
".js-dropdown-menu-projects"
,
toggle:
"dropdown"
})
end
project_link
+=
icon
"chevron-down"
,
class:
"dropdown-toggle-caret js-projects-dropdown-toggle"
if
current_user
full_title
=
namespace_link
+
' / '
+
project_link
full_title
+=
' · '
.
html_safe
+
link_to
(
simple_sanitize
(
name
),
url
)
if
name
full_title
=
"
#{
namespace_link
}
/
#{
project_link
}
"
.
html_safe
full_title
<<
' · '
.
html_safe
<<
link_to
(
simple_sanitize
(
name
),
url
)
if
name
full_title
end
...
...
app/views/layouts/header/_default.html.haml
浏览文件 @
2c9894d4
...
...
@@ -45,6 +45,8 @@
%h1
.title
=
title
=
yield
:header_content
=
render
'shared/outdated_browser'
-
if
@project
&&
!
@project
.
empty_repo?
...
...
app/views/layouts/project.html.haml
浏览文件 @
2c9894d4
...
...
@@ -17,4 +17,12 @@
-
content_for
:scripts_body
do
=
render
"layouts/init_auto_complete"
if
current_user
-
content_for
:header_content
do
.js-dropdown-menu-projects
.dropdown-menu.dropdown-select.dropdown-menu-projects
=
dropdown_title
(
"Go to a project"
)
=
dropdown_filter
(
"Search your projects"
)
=
dropdown_content
=
dropdown_loading
=
render
template:
"layouts/application"
spec/features/projects_spec.rb
浏览文件 @
2c9894d4
...
...
@@ -100,8 +100,7 @@ feature 'Project', feature: true do
it
'click toggle and show dropdown'
,
js:
true
do
find
(
'.js-projects-dropdown-toggle'
).
click
wait_for_ajax
expect
(
page
).
to
have_css
(
'.select2-results li'
,
count:
1
)
expect
(
page
).
to
have_css
(
'.dropdown-menu-projects .dropdown-content li'
,
count:
1
)
end
end
...
...
spec/javascripts/fixtures/project_title.html.haml
浏览文件 @
2c9894d4
%h1
.title
%a
GitLab Org
%a
.project-item-select-holder
{
href:
"/gitlab-org/gitlab-test"
}
GitLab Test
%input
#project_path
.project-item-select.js-projects-dropdown.ajax-project-select
{
type:
"hidden"
,
name:
"project_path"
,
"data-include-groups"
=>
"false"
}
%i
.fa.chevron-down.dropdown-toggle-caret.js-projects-dropdown-toggle
.header-content
%h1
.title
%a
GitLab Org
%a
.project-item-select-holder
{
href:
"/gitlab-org/gitlab-test"
}
GitLab Test
%i
.fa.chevron-down.dropdown-toggle-caret.js-projects-dropdown-toggle
{
"data-toggle"
=>
"dropdown"
,
"data-target"
=>
".header-content"
}
.js-dropdown-menu-projects
.dropdown-menu.dropdown-select.dropdown-menu-projects
.dropdown-title
%span
Go to a project
%button
.dropdown-title-button.dropdown-menu-close
{
"aria-label"
=>
"Close"
,
type:
"button"
}
%i
.fa.fa-times.dropdown-menu-close-icon
.dropdown-input
%input
.dropdown-input-field
{
id:
""
,
placeholder:
"Search your projects"
,
type:
"search"
,
value:
""
}
%i
.fa.fa-search.dropdown-input-search
%i
.fa.fa-times.dropdown-input-clear.js-dropdown-input-clear
{
role:
"button"
}
.dropdown-content
.dropdown-loading
%i
.fa.fa-spinner.fa-spin
spec/javascripts/project_title_spec.js.coffee
浏览文件 @
2c9894d4
#= require bootstrap
#= require select2
#= require gl_dropdown
#= require api
#= require project_select
#= require project
...
...
@@ -14,9 +16,6 @@ describe 'Project Title', ->
fixture
.
load
(
'project_title.html'
)
@
project
=
new
Project
()
spyOn
(
@
project
,
'changeProject'
).
and
.
callFake
(
url
)
->
window
.
current_project_url
=
url
describe
'project list'
,
->
beforeEach
=>
@
projects_data
=
fixture
.
load
(
'projects.json'
)[
0
]
...
...
@@ -29,18 +28,9 @@ describe 'Project Title', ->
it
'to show on toggle click'
,
=>
$
(
'.js-projects-dropdown-toggle'
).
click
()
expect
(
$
(
'.title .select2-container'
).
hasClass
(
'select2-dropdown-open'
)).
toBe
(
true
)
expect
(
$
(
'.ajax-project-dropdown li'
).
length
).
toBe
(
@
projects_data
.
length
)
expect
(
$
(
'.header-content'
).
hasClass
(
'open'
)).
toBe
(
true
)
it
'hide dropdown'
,
->
$
(
"#select2-drop-mask"
).
click
()
expect
(
$
(
'.title .select2-container'
).
hasClass
(
'select2-dropdown-open'
)).
toBe
(
false
)
it
'change project when clicking item'
,
->
$
(
'.js-projects-dropdown-toggle'
).
click
()
$
(
'.ajax-project-dropdown li:nth-child(2)'
).
trigger
(
'mouseup'
)
$
(
".dropdown-menu-close-icon"
).
click
()
expect
(
$
(
'.title .select2-container'
).
hasClass
(
'select2-dropdown-open'
)).
toBe
(
false
)
expect
(
window
.
current_project_url
).
toBe
(
'http://localhost:3000/h5bp/html5-boilerplate'
)
expect
(
$
(
'.header-content'
).
hasClass
(
'open'
)).
toBe
(
false
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录