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
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
5444db29
Commit
5444db29
authored
Jun 15, 2016
by
Jacob Schatz
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'commits-ui' into 'master'
Updated commits UI Closes #14633 See merge request !4271
parents
5f22603b
1f192afa
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
140 additions
and
106 deletions
+140
-106
app/assets/stylesheets/pages/commits.scss
app/assets/stylesheets/pages/commits.scss
+79
-56
app/assets/stylesheets/pages/tree.scss
app/assets/stylesheets/pages/tree.scss
+1
-1
app/helpers/button_helper.rb
app/helpers/button_helper.rb
+9
-1
app/helpers/ci_status_helper.rb
app/helpers/ci_status_helper.rb
+4
-4
app/helpers/commits_helper.rb
app/helpers/commits_helper.rb
+16
-8
app/views/projects/commits/_commit.html.haml
app/views/projects/commits/_commit.html.haml
+17
-13
app/views/projects/commits/_commits.html.haml
app/views/projects/commits/_commits.html.haml
+5
-12
app/views/projects/commits/show.html.haml
app/views/projects/commits/show.html.haml
+4
-7
app/views/projects/merge_requests/show/_commits.html.haml
app/views/projects/merge_requests/show/_commits.html.haml
+2
-1
features/steps/project/source/browse_files.rb
features/steps/project/source/browse_files.rb
+3
-3
No files found.
app/assets/stylesheets/pages/commits.scss
View file @
5444db29
...
@@ -7,84 +7,111 @@
...
@@ -7,84 +7,111 @@
margin-right
:
9px
;
margin-right
:
9px
;
}
}
.lists-separator
{
.commit-header
{
margin
:
10px
0
;
padding
:
5px
10px
;
border-color
:
#ddd
;
background-color
:
$background-color
;
border-top
:
1px
solid
#eee
;
border-bottom
:
1px
solid
#eee
;
font-size
:
14px
;
&
:first-child
{
border-top-width
:
0
;
}
}
}
.commit
s-row
{
.commit
-row-title
{
ul
{
line-height
:
1
;
margin
:
0
;
margin-bottom
:
7px
;
li
.commit
{
.notes_count
{
padding
:
8px
0
;
float
:
right
;
}
margin-right
:
10px
;
}
.str-truncated
{
max-width
:
70%
;
}
}
.commits-row-date
{
.commit-row-message
{
font-size
:
15px
;
color
:
$gl-dark-link-color
;
line-height
:
20px
;
}
margin-bottom
:
5px
;
.text-expander
{
display
:
inline-block
;
background
:
$gray-light
;
color
:
$gl-placeholder-color
;
padding
:
0
5px
;
cursor
:
pointer
;
border
:
1px
solid
$border-gray-dark
;
border-radius
:
$border-radius-default
;
margin-left
:
5px
;
&
:hover
{
background-color
:
darken
(
$gray-light
,
10%
);
text-decoration
:
none
;
}
}
}
}
}
li
.commit
{
.commit-actions
{
list-style
:
none
;
@media
(
min-width
:
$screen-sm-min
)
{
float
:
right
;
margin-left
:
$gl-padding
;
margin-top
:
2px
;
font-size
:
0
;
}
.
commit-row-title
{
.
btn-transparent
{
font-size
:
$list-font-size
;
padding-left
:
0
;
line-height
:
20px
;
padding-right
:
0
;
margin-bottom
:
2px
;
}
.btn-clipboard
{
.btn
{
margin-top
:
-1px
;
&
:not
(
:first-child
)
{
margin-left
:
$gl-padding
;
}
}
}
}
.notes_count
{
.commit-short-id
{
float
:
righ
t
;
font-family
:
$monospace_fon
t
;
margin-right
:
10px
;
font-weight
:
600
;
}
}
.commit_short_id
{
.commit
{
min-width
:
65px
;
padding
:
10px
0
;
color
:
$gl-dark-link-color
;
font-family
:
$monospace_font
;
}
.str-truncated
{
@media
(
min-width
:
$screen-sm-min
)
{
max-width
:
70%
;
padding-left
:
46px
;
}
}
.commit-row-message
{
&
:not
(
:last-child
)
{
color
:
$gl-dark-link-color
;
border-bottom
:
1px
solid
#eee
;
}
&
:hover
{
a
,
text-decoration
:
underline
;
button
{
}
color
:
$gl-dark-link-color
;
}
vertical-align
:
baseline
;
}
.text-expander
{
.avatar
{
background
:
#eee
;
margin-left
:
-46px
;
color
:
#555
;
padding
:
0
5px
;
cursor
:
pointer
;
margin-left
:
4px
;
&
:hover
{
background-color
:
#ddd
;
}
}
}
}
.item-title
{
.item-title
{
display
:
inline-block
;
display
:
inline-block
;
max-width
:
70%
;
@media
(
min-width
:
$screen-sm-min
)
{
max-width
:
70%
;
}
}
}
.commit-row-description
{
.commit-row-description
{
font-size
:
14px
;
font-size
:
14px
;
border-left
:
1px
solid
#eee
;
border-left
:
1px
solid
#eee
;
padding
:
10px
15px
;
padding
:
10px
15px
;
margin
:
5px
0
10px
5px
;
margin
:
10px
0
;
background
:
#f9f9f9
;
background
:
#f9f9f9
;
display
:
none
;
display
:
none
;
...
@@ -102,7 +129,7 @@ li.commit {
...
@@ -102,7 +129,7 @@ li.commit {
.commit-row-info
{
.commit-row-info
{
color
:
$gl-gray
;
color
:
$gl-gray
;
line-height
:
24px
;
line-height
:
1
;
a
{
a
{
color
:
$gl-gray
;
color
:
$gl-gray
;
...
@@ -111,10 +138,6 @@ li.commit {
...
@@ -111,10 +138,6 @@ li.commit {
.avatar
{
.avatar
{
margin-right
:
8px
;
margin-right
:
8px
;
}
}
.committed_ago
{
display
:
inline-block
;
}
}
}
&
.inline-commit
{
&
.inline-commit
{
...
...
app/assets/stylesheets/pages/tree.scss
View file @
5444db29
...
@@ -101,7 +101,7 @@
...
@@ -101,7 +101,7 @@
margin
:
0
;
margin
:
0
;
.commit
{
.commit
{
padding
:
0
;
padding
:
0
0
0
55px
;
.commit-row-title
{
.commit-row-title
{
.commit-row-message
{
.commit-row-message
{
...
...
app/helpers/button_helper.rb
View file @
5444db29
...
@@ -17,7 +17,15 @@ module ButtonHelper
...
@@ -17,7 +17,15 @@ module ButtonHelper
def
clipboard_button
(
data
=
{})
def
clipboard_button
(
data
=
{})
content_tag
:button
,
content_tag
:button
,
icon
(
'clipboard'
),
icon
(
'clipboard'
),
class:
'btn btn-clipboard'
,
class:
"btn"
,
data:
data
,
type: :button
end
def
clipboard_button_with_class
(
data
=
{},
css_class:
'btn-clipboard'
)
content_tag
:button
,
icon
(
'clipboard'
),
class:
"btn
#{
css_class
}
"
,
data:
data
,
data:
data
,
type: :button
type: :button
end
end
...
...
app/helpers/ci_status_helper.rb
View file @
5444db29
...
@@ -38,10 +38,10 @@ module CiStatusHelper
...
@@ -38,10 +38,10 @@ module CiStatusHelper
icon
(
icon_name
+
' fw'
)
icon
(
icon_name
+
' fw'
)
end
end
def
render_commit_status
(
commit
,
tooltip_placement:
'auto left'
)
def
render_commit_status
(
commit
,
tooltip_placement:
'auto left'
,
cssclass:
''
)
project
=
commit
.
project
project
=
commit
.
project
path
=
builds_namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
)
path
=
builds_namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
)
render_status_with_link
(
'commit'
,
commit
.
status
,
path
,
tooltip_placement
)
render_status_with_link
(
'commit'
,
commit
.
status
,
path
,
tooltip_placement
,
cssclass:
cssclass
)
end
end
def
render_pipeline_status
(
pipeline
,
tooltip_placement:
'auto left'
)
def
render_pipeline_status
(
pipeline
,
tooltip_placement:
'auto left'
)
...
@@ -57,10 +57,10 @@ module CiStatusHelper
...
@@ -57,10 +57,10 @@ module CiStatusHelper
private
private
def
render_status_with_link
(
type
,
status
,
path
,
tooltip_placement
)
def
render_status_with_link
(
type
,
status
,
path
,
tooltip_placement
,
cssclass:
''
)
link_to
ci_icon_for_status
(
status
),
link_to
ci_icon_for_status
(
status
),
path
,
path
,
class:
"ci-status-link ci-status-icon-
#{
status
.
dasherize
}
"
,
class:
"ci-status-link ci-status-icon-
#{
status
.
dasherize
}
#{
cssclass
}
"
,
title:
"
#{
type
.
titleize
}
:
#{
ci_label_for_status
(
status
)
}
"
,
title:
"
#{
type
.
titleize
}
:
#{
ci_label_for_status
(
status
)
}
"
,
data:
{
toggle:
'tooltip'
,
placement:
tooltip_placement
}
data:
{
toggle:
'tooltip'
,
placement:
tooltip_placement
}
end
end
...
...
app/helpers/commits_helper.rb
View file @
5444db29
...
@@ -16,6 +16,16 @@ module CommitsHelper
...
@@ -16,6 +16,16 @@ module CommitsHelper
commit_person_link
(
commit
,
options
.
merge
(
source: :committer
))
commit_person_link
(
commit
,
options
.
merge
(
source: :committer
))
end
end
def
commit_author_avatar
(
commit
,
options
=
{})
options
=
options
.
merge
(
source: :author
)
user
=
commit
.
send
(
options
[
:source
])
source_email
=
clean
(
commit
.
send
"
#{
options
[
:source
]
}
_email"
.
to_sym
)
person_email
=
user
.
try
(
:email
)
||
source_email
image_tag
(
avatar_icon
(
person_email
,
options
[
:size
]),
class:
"avatar
#{
"s
#{
options
[
:size
]
}
"
if
options
[
:size
]
}
hidden-xs"
,
width:
options
[
:size
],
alt:
""
)
end
def
image_diff_class
(
diff
)
def
image_diff_class
(
diff
)
if
diff
.
deleted_file
if
diff
.
deleted_file
"deleted"
"deleted"
...
@@ -102,24 +112,24 @@ module CommitsHelper
...
@@ -102,24 +112,24 @@ module CommitsHelper
if
current_controller?
(
:projects
,
:commits
)
if
current_controller?
(
:projects
,
:commits
)
if
@repo
.
blob_at
(
commit
.
id
,
@path
)
if
@repo
.
blob_at
(
commit
.
id
,
@path
)
return
link_to
(
return
link_to
(
"Browse File
»
"
,
"Browse File"
,
namespace_project_blob_path
(
project
.
namespace
,
project
,
namespace_project_blob_path
(
project
.
namespace
,
project
,
tree_join
(
commit
.
id
,
@path
)),
tree_join
(
commit
.
id
,
@path
)),
class:
"
pull-righ
t"
class:
"
btn btn-defaul
t"
)
)
elsif
@path
.
present?
elsif
@path
.
present?
return
link_to
(
return
link_to
(
"Browse Directory
»
"
,
"Browse Directory"
,
namespace_project_tree_path
(
project
.
namespace
,
project
,
namespace_project_tree_path
(
project
.
namespace
,
project
,
tree_join
(
commit
.
id
,
@path
)),
tree_join
(
commit
.
id
,
@path
)),
class:
"
pull-righ
t"
class:
"
btn btn-defaul
t"
)
)
end
end
end
end
link_to
(
link_to
(
"Browse Files"
,
"Browse Files"
,
namespace_project_tree_path
(
project
.
namespace
,
project
,
commit
),
namespace_project_tree_path
(
project
.
namespace
,
project
,
commit
),
class:
"
pull-righ
t"
class:
"
btn btn-defaul
t"
)
)
end
end
...
@@ -187,12 +197,10 @@ module CommitsHelper
...
@@ -187,12 +197,10 @@ module CommitsHelper
source_email
=
clean
(
commit
.
send
"
#{
options
[
:source
]
}
_email"
.
to_sym
)
source_email
=
clean
(
commit
.
send
"
#{
options
[
:source
]
}
_email"
.
to_sym
)
person_name
=
user
.
try
(
:name
)
||
source_name
person_name
=
user
.
try
(
:name
)
||
source_name
person_email
=
user
.
try
(
:email
)
||
source_email
text
=
text
=
if
options
[
:avatar
]
if
options
[
:avatar
]
avatar
=
image_tag
(
avatar_icon
(
person_email
,
options
[
:size
]),
class:
"avatar
#{
"s
#{
options
[
:size
]
}
"
if
options
[
:size
]
}
"
,
width:
options
[
:size
],
alt:
""
)
%Q{<span class="commit-
#{
options
[
:source
]
}
-name">
#{
person_name
}
</span>}
%Q{
#{
avatar
}
<span class="commit-
#{
options
[
:source
]
}
-name">
#{
person_name
}
</span>}
else
else
person_name
person_name
end
end
...
...
app/views/projects/commits/_commit.html.haml
View file @
5444db29
...
@@ -9,26 +9,30 @@
...
@@ -9,26 +9,30 @@
=
cache
(
cache_key
)
do
=
cache
(
cache_key
)
do
%li
.commit.js-toggle-container
{
id:
"commit-#{commit.short_id}"
}
%li
.commit.js-toggle-container
{
id:
"commit-#{commit.short_id}"
}
=
commit_author_avatar
(
commit
,
size:
36
)
.commit-row-title
.commit-row-title
%span
.item-title
%span
.item-title
=
link_to_gfm
commit
.
title
,
namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
.
id
),
class:
"commit-row-message"
=
link_to_gfm
commit
.
title
,
namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
.
id
),
class:
"commit-row-message"
%span
.commit-row-message.visible-xs-inline
·
=
commit
.
short_id
-
if
commit
.
status
=
render_commit_status
(
commit
,
cssclass:
'visible-xs-inline'
)
-
if
commit
.
description?
-
if
commit
.
description?
%a
.text-expander.js-toggle-button
...
%a
.text-expander.
hidden-xs.
js-toggle-button
...
.
pull-right
.
commit-actions.hidden-xs
-
if
commit
.
status
-
if
commit
.
status
=
render_commit_status
(
commit
)
=
render_commit_status
(
commit
,
cssclass:
'btn btn-transparent'
)
=
clipboard_button
(
clipboard_text:
commit
.
id
)
=
clipboard_button_with_class
({
clipboard_text:
commit
.
id
},
css_class:
'btn-transparent'
)
=
link_to
commit
.
short_id
,
namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
),
class:
"commit_short_id"
=
link_to
commit
.
short_id
,
namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
),
class:
"commit-short-id btn btn-transparent"
=
link_to_browse_code
(
project
,
commit
)
-
if
commit
.
description?
-
if
commit
.
description?
.commit-row-description.js-toggle-content
%pre
.commit-row-description.js-toggle-content
%pre
=
preserve
(
markdown
(
escape_once
(
commit
.
description
),
pipeline: :single_line
,
author:
commit
.
author
))
=
preserve
(
markdown
(
escape_once
(
commit
.
description
),
pipeline: :single_line
,
author:
commit
.
author
))
.commit-row-info
.commit-row-info
by
=
commit_author_link
(
commit
,
avatar:
false
,
size:
24
)
=
commit_author_link
(
commit
,
avatar:
true
,
size:
24
)
authored
.committed_ago
#{
time_ago_with_tooltip
(
commit
.
committed_date
)
}
#{
time_ago_with_tooltip
(
commit
.
committed_date
)
}
=
link_to_browse_code
(
project
,
commit
)
app/views/projects/commits/_commits.html.haml
View file @
5444db29
...
@@ -4,18 +4,11 @@
...
@@ -4,18 +4,11 @@
-
commits
,
hidden
=
limited_commits
(
@commits
)
-
commits
,
hidden
=
limited_commits
(
@commits
)
-
commits
.
chunk
{
|
c
|
c
.
committed_date
.
in_time_zone
.
to_date
}.
each
do
|
day
,
commits
|
-
commits
.
chunk
{
|
c
|
c
.
committed_date
.
in_time_zone
.
to_date
}.
each
do
|
day
,
commits
|
.row.commits-row
%li
.commit-header
=
"
#{
day
.
strftime
(
'%d %b, %Y'
)
}
#{
pluralize
(
commits
.
count
,
'commit'
)
}
"
.col-md-2.hidden-xs.hidden-sm
%li
.commits-row
%h5
.commits-row-date
%ul
.list-unstyled.commit-list
%i
.fa.fa-calendar
=
render
commits
,
project:
project
%span
=
day
.
strftime
(
'%d %b, %Y'
)
.light
=
pluralize
(
commits
.
count
,
'commit'
)
.col-md-10.col-sm-12
%ul
.content-list
=
render
commits
,
project:
project
%hr
.lists-separator
-
if
hidden
>
0
-
if
hidden
>
0
.alert.alert-warning
%li
.alert.alert-warning
#{
number_with_delimiter
(
hidden
)
}
additional commits have been omitted to prevent performance issues.
#{
number_with_delimiter
(
hidden
)
}
additional commits have been omitted to prevent performance issues.
app/views/projects/commits/show.html.haml
View file @
5444db29
...
@@ -23,21 +23,18 @@
...
@@ -23,21 +23,18 @@
Create Merge Request
Create Merge Request
.control
.control
=
form_tag
(
namespace_project_commits_path
(
@project
.
namespace
,
@project
,
@id
),
method: :get
,
class:
'pull-left commits-search-form'
)
do
=
form_tag
(
namespace_project_commits_path
(
@project
.
namespace
,
@project
,
@id
),
method: :get
,
class:
'commits-search-form'
)
do
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Filter by commit message'
,
id:
'commits-search'
,
class:
'form-control search-text-input'
,
spellcheck:
false
}
=
search_field_tag
:search
,
params
[
:search
],
{
placeholder:
'Filter by commit message'
,
id:
'commits-search'
,
class:
'form-control search-text-input input-short'
,
spellcheck:
false
}
-
if
current_user
&&
current_user
.
private_token
-
if
current_user
&&
current_user
.
private_token
.control
.control
=
link_to
namespace_project_commits_path
(
@project
.
namespace
,
@project
,
@ref
,
{
format: :atom
,
private_token:
current_user
.
private_token
}),
title:
"Commits Feed"
,
class:
'btn'
do
=
link_to
namespace_project_commits_path
(
@project
.
namespace
,
@project
,
@ref
,
{
format: :atom
,
private_token:
current_user
.
private_token
}),
title:
"Commits Feed"
,
class:
'btn'
do
=
icon
(
"rss"
)
=
icon
(
"rss"
)
%ul
.breadcrumb.repo-breadcrumb
%ul
.breadcrumb.repo-breadcrumb
=
commits_breadcrumbs
=
commits_breadcrumbs
%div
{
id:
dom_id
(
@project
)}
%div
{
id:
dom_id
(
@project
)}
#commits-list
.content_list
=
render
"commits"
,
project:
@projec
t
%ol
#commits-list
.list-unstyled.content_lis
t
.clear
=
render
"commits"
,
project:
@project
=
spinner
=
spinner
:javascript
:javascript
...
...
app/views/projects/merge_requests/show/_commits.html.haml
View file @
5444db29
...
@@ -2,4 +2,5 @@
...
@@ -2,4 +2,5 @@
=
icon
(
"sort-amount-desc"
)
=
icon
(
"sort-amount-desc"
)
Most recent commits displayed first
Most recent commits displayed first
=
render
"projects/commits/commits"
,
project:
@merge_request
.
project
%ol
#commits-list
.list-unstyled
=
render
"projects/commits/commits"
,
project:
@merge_request
.
project
features/steps/project/source/browse_files.rb
View file @
5444db29
...
@@ -202,8 +202,8 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
...
@@ -202,8 +202,8 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
end
end
step
'I see Browse dir link'
do
step
'I see Browse dir link'
do
expect
(
page
).
to
have_link
'Browse Directory
»
'
expect
(
page
).
to
have_link
'Browse Directory'
expect
(
page
).
not_to
have_link
'Browse Code
»
'
expect
(
page
).
not_to
have_link
'Browse Code'
end
end
step
'I click on readme file'
do
step
'I click on readme file'
do
...
@@ -219,7 +219,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
...
@@ -219,7 +219,7 @@ class Spinach::Features::ProjectSourceBrowseFiles < Spinach::FeatureSteps
step
'I see Browse code link'
do
step
'I see Browse code link'
do
expect
(
page
).
to
have_link
'Browse Files'
expect
(
page
).
to
have_link
'Browse Files'
expect
(
page
).
not_to
have_link
'Browse Directory
»
'
expect
(
page
).
not_to
have_link
'Browse Directory'
end
end
step
'I click on Permalink'
do
step
'I click on Permalink'
do
...
...
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