Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
f8e27b92
Commit
f8e27b92
authored
Nov 02, 2012
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1902 from tsigo/breadcrumbs
Fix breadcrumb links on Commits page
parents
b4be3c73
e6018569
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
63 additions
and
30 deletions
+63
-30
app/assets/javascripts/tree.js.coffee
app/assets/javascripts/tree.js.coffee
+18
-20
app/decorators/tree_decorator.rb
app/decorators/tree_decorator.rb
+2
-2
app/helpers/tree_helper.rb
app/helpers/tree_helper.rb
+25
-0
app/views/commits/show.html.haml
app/views/commits/show.html.haml
+1
-8
features/project/commits/commits.feature
features/project/commits/commits.feature
+4
-0
features/steps/project/project_browse_commits.rb
features/steps/project/project_browse_commits.rb
+9
-0
features/steps/shared/paths.rb
features/steps/shared/paths.rb
+4
-0
No files found.
app/assets/javascripts/tree.js.coffee
View file @
f8e27b92
...
...
@@ -17,23 +17,21 @@ $ ->
"ajax:beforeSend"
:
->
$
(
'.tree_progress'
).
addClass
(
"loading"
)
"ajax:complete"
:
->
$
(
'.tree_progress'
).
removeClass
(
"loading"
)
# Maintain forward/back history while browsing the file tree
((
window
)
->
History
=
window
.
History
$
=
window
.
jQuery
document
=
window
.
document
# Check to see if History.js is enabled for our Browser
unless
History
.
enabled
return
false
$
->
$
(
'#tree-slider .tree-item-file-name a, .breadcrumb li > a'
).
live
'click'
,
(
e
)
->
History
.
pushState
(
null
,
null
,
$
(
@
).
attr
(
'href'
))
return
false
History
.
Adapter
.
bind
window
,
'statechange'
,
->
state
=
History
.
getState
()
window
.
ajaxGet
(
state
.
url
)
)(
window
)
# Maintain forward/back history while browsing the file tree
((
window
)
->
History
=
window
.
History
$
=
window
.
jQuery
document
=
window
.
document
# Check to see if History.js is enabled for our Browser
unless
History
.
enabled
return
false
$
(
'#tree-slider .tree-item-file-name a, .breadcrumb li > a'
).
live
'click'
,
(
e
)
->
History
.
pushState
(
null
,
null
,
$
(
@
).
attr
(
'href'
))
return
false
History
.
Adapter
.
bind
window
,
'statechange'
,
->
state
=
History
.
getState
()
window
.
ajaxGet
(
state
.
url
)
)(
window
)
app/decorators/tree_decorator.rb
View file @
f8e27b92
...
...
@@ -8,14 +8,14 @@ class TreeDecorator < ApplicationDecorator
#parts = parts[0...-1] if is_blob?
yield
(
h
.
link_to
(
".."
,
"#"
,
remote:
true
))
if
parts
.
count
>
max_links
yield
(
h
.
link_to
(
".."
,
"#"
))
if
parts
.
count
>
max_links
parts
.
each
do
|
part
|
part_path
=
File
.
join
(
part_path
,
part
)
unless
part_path
.
empty?
part_path
=
part
if
part_path
.
empty?
next
unless
parts
.
last
(
2
).
include?
(
part
)
if
parts
.
count
>
max_links
yield
(
h
.
link_to
(
h
.
truncate
(
part
,
length:
40
),
h
.
project_tree_path
(
project
,
h
.
tree_join
(
ref
,
part_path
))
,
remote:
true
))
yield
(
h
.
link_to
(
h
.
truncate
(
part
,
length:
40
),
h
.
project_tree_path
(
project
,
h
.
tree_join
(
ref
,
part_path
))))
end
end
end
...
...
app/helpers/tree_helper.rb
View file @
f8e27b92
...
...
@@ -67,4 +67,29 @@ module TreeHelper
can?
(
current_user
,
:push_code
,
@project
)
end
end
# Breadcrumb links for a Project and, if applicable, a tree path
def
breadcrumbs
return
unless
@project
&&
@ref
# Add the root project link and the arrow icon
crumbs
=
content_tag
(
:li
)
do
content_tag
(
:span
,
nil
,
class:
'arrow'
)
+
link_to
(
@project
.
name
,
project_commits_path
(
@project
,
@ref
))
end
if
@path
parts
=
@path
.
split
(
'/'
)
parts
.
each_with_index
do
|
part
,
i
|
crumbs
+=
content_tag
(
:span
,
'/'
,
class:
'divider'
)
crumbs
+=
content_tag
(
:li
)
do
# The text is just the individual part, but the link needs all the parts before it
link_to
part
,
project_commits_path
(
@project
,
tree_join
(
@ref
,
parts
[
0
..
i
].
join
(
'/'
)))
end
end
end
crumbs
.
html_safe
end
end
app/views/commits/show.html.haml
View file @
f8e27b92
...
...
@@ -2,14 +2,7 @@
-
if
@path
.
present?
%ul
.breadcrumb
%li
%span
.arrow
=
link_to
project_commits_path
(
@project
)
do
=
@project
.
name
%span
.divider
\/
%li
%a
{
href:
"#"
}=
@path
.
split
(
"/"
).
join
(
" / "
)
=
breadcrumbs
%div
{
id:
dom_id
(
@project
)}
#commits_list
=
render
"commits"
...
...
features/project/commits/commits.feature
View file @
f8e27b92
...
...
@@ -19,3 +19,7 @@ Feature: Project Browse commits
Given
I visit compare refs page
And
I fill compare fields with refs
Then
I see compared refs
Scenario
:
I
browse commits for a specific path
Given
I visit my project's commits page for a specific path
Then
I see breadcrumb links
features/steps/project/project_browse_commits.rb
View file @
f8e27b92
...
...
@@ -42,4 +42,13 @@ class ProjectBrowseCommits < Spinach::FeatureSteps
page
.
should
have_content
"Commits (1)"
page
.
should
have_content
"Showing 2 changed files"
end
Then
'I see breadcrumb links'
do
page
.
should
have_selector
(
'ul.breadcrumb'
)
page
.
should
have_selector
(
'ul.breadcrumb span.divider'
,
count:
3
)
page
.
should
have_selector
(
'ul.breadcrumb a'
,
count:
4
)
find
(
'ul.breadcrumb li:first a'
)[
'href'
].
should
match
(
/
#{
@project
.
path
}
\/commits\/master\z/
)
find
(
'ul.breadcrumb li:last a'
)[
'href'
].
should
match
(
%r{master/app/models/project
\.
rb
\z
}
)
end
end
features/steps/shared/paths.rb
View file @
f8e27b92
...
...
@@ -121,6 +121,10 @@ module SharedPaths
visit
project_commits_path
(
@project
,
@project
.
root_ref
,
{
limit:
5
})
end
Given
"I visit my project's commits page for a specific path"
do
visit
project_commits_path
(
@project
,
@project
.
root_ref
+
"/app/models/project.rb"
,
{
limit:
5
})
end
Given
"I visit my project's network page"
do
# Stub GraphCommit max_size to speed up test (10 commits vs. 650)
Gitlab
::
GraphCommit
.
stub
(
max_count:
10
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment