Commit 93bc1ff10866956f3d6edf60a1b2db280544be04
Exists in
master
and in
4 other branches
Merge branch 'master' into fix-messages-for-deleted-things
Showing
20 changed files
with
103 additions
and
114 deletions
Show diff stats
app/assets/stylesheets/gitlab_bootstrap/lists.scss
... | ... | @@ -13,7 +13,10 @@ ul { |
13 | 13 | border-bottom: 1px solid rgba(0, 0, 0, 0.05); |
14 | 14 | |
15 | 15 | &.smoke { background-color:#f5f5f5; } |
16 | - &:hover { background:$hover; } | |
16 | + &:hover { | |
17 | + background:$hover; | |
18 | + border-bottom:1px solid #ADF; | |
19 | + } | |
17 | 20 | &:last-child { border:none } |
18 | 21 | .author { color: #999; } |
19 | 22 | ... | ... |
app/assets/stylesheets/sections/events.scss
... | ... | @@ -5,32 +5,23 @@ |
5 | 5 | .event_label { |
6 | 6 | &.pushed { |
7 | 7 | padding:0 2px; |
8 | - @extend .alert; | |
9 | - @extend .alert-info; | |
10 | 8 | } |
11 | 9 | |
12 | 10 | &.opened { |
13 | 11 | padding:0 2px; |
14 | - @extend .alert; | |
15 | - @extend .alert-success; | |
16 | 12 | } |
17 | 13 | |
18 | 14 | &.closed { |
19 | 15 | padding:0 2px; |
20 | - @extend .alert; | |
21 | - @extend .alert-error; | |
22 | 16 | } |
23 | 17 | |
24 | 18 | &.merged { |
25 | 19 | padding:0 2px; |
26 | - @extend .alert; | |
27 | - @extend .alert-success; | |
28 | 20 | } |
29 | 21 | |
30 | 22 | &.left, |
31 | 23 | &.joined { |
32 | 24 | padding:0 2px; |
33 | - @extend .alert; | |
34 | 25 | float:none; |
35 | 26 | } |
36 | 27 | } | ... | ... |
app/assets/stylesheets/sections/tree.scss
1 | -#tree-holder { | |
2 | - #tree-content-holder { | |
1 | +.tree-holder { | |
2 | + .tree-content-holder { | |
3 | 3 | float:left; |
4 | 4 | width:100%; |
5 | 5 | } |
6 | - #tree-readme-holder { | |
7 | - float:left; | |
8 | - width:100%; | |
9 | - .readme { | |
10 | - border:1px solid #ccc; | |
11 | - padding:12px; | |
12 | - background: #F7F7F7; | |
13 | - | |
14 | - pre { | |
15 | - overflow: auto; | |
16 | - } | |
17 | - } | |
18 | - } | |
19 | 6 | |
20 | 7 | .tree_progress { |
21 | 8 | display:none; |
... | ... | @@ -25,7 +12,7 @@ |
25 | 12 | } |
26 | 13 | } |
27 | 14 | |
28 | - #tree-slider { | |
15 | + .tree-table { | |
29 | 16 | @include border-radius(0); |
30 | 17 | .tree-item { |
31 | 18 | &:hover { |
... | ... | @@ -55,8 +42,7 @@ |
55 | 42 | } |
56 | 43 | } |
57 | 44 | |
58 | - | |
59 | - #tree-slider { | |
45 | + .tree-table { | |
60 | 46 | td { |
61 | 47 | background:#fafafa; |
62 | 48 | } |
... | ... | @@ -72,5 +58,4 @@ |
72 | 58 | text-decoration: underline; |
73 | 59 | } |
74 | 60 | } |
75 | - | |
76 | 61 | } | ... | ... |
... | ... | @@ -0,0 +1,36 @@ |
1 | +module EventsHelper | |
2 | + def link_to_author(event) | |
3 | + project = event.project | |
4 | + tm = project.team_member_by_id(event.author_id) | |
5 | + | |
6 | + if tm | |
7 | + link_to event.author_name, project_team_member_path(project, tm) | |
8 | + else | |
9 | + event.author_name | |
10 | + end | |
11 | + end | |
12 | + | |
13 | + def event_action_name(event) | |
14 | + target = if event.target_type | |
15 | + event.target_type.titleize.downcase | |
16 | + else | |
17 | + 'project' | |
18 | + end | |
19 | + | |
20 | + [event.action_name, target].join(" ") | |
21 | + end | |
22 | + | |
23 | + def event_image event | |
24 | + event_image_path = if event.push? | |
25 | + "event_push.png" | |
26 | + elsif event.merged? | |
27 | + "event_mr_merged.png" | |
28 | + end | |
29 | + | |
30 | + return nil unless event_image_path | |
31 | + | |
32 | + content_tag :div, class: 'event_icon' do | |
33 | + image_tag event_image_path | |
34 | + end | |
35 | + end | |
36 | +end | ... | ... |
app/helpers/issues_helper.rb
app/helpers/projects_helper.rb
app/models/event.rb
app/views/events/_event.html.haml
1 | 1 | - if event.allowed? |
2 | 2 | %div.event-item |
3 | - - if event.issue? | |
4 | - = render "events/event_issue", event: event | |
3 | + = event_image(event) | |
4 | + = image_tag gravatar_icon(event.author_email), class: "avatar" | |
5 | 5 | |
6 | - - elsif event.merge_request? | |
7 | - = render "events/event_merge_request", event: event | |
8 | - | |
9 | - - elsif event.push? | |
10 | - = render "events/event_push", event: event | |
11 | - | |
12 | - - elsif event.membership_changed? | |
13 | - = render "events/event_membership_changed", event: event | |
6 | + - if event.push? | |
7 | + = render "events/event/push", event: event | |
8 | + - else | |
9 | + = render "events/event/common", event: event | |
14 | 10 | |
11 | + .clearfix | |
15 | 12 | %span.cgray.right |
16 | 13 | = time_ago_in_words(event.created_at) |
17 | 14 | ago. | ... | ... |
app/views/events/_event_issue.html.haml
... | ... | @@ -1,8 +0,0 @@ |
1 | -= image_tag gravatar_icon(event.author_email), class: "avatar" | |
2 | -.event-title | |
3 | - %strong.author_name #{event.author_name} | |
4 | - %span.event_label{class: event.action_name} #{event.action_name} issue | |
5 | - = link_to project_issue_path(event.project, event.issue) do | |
6 | - %strong= truncate event.issue_title | |
7 | - at | |
8 | - %strong= link_to event.project.name, event.project |
app/views/events/_event_membership_changed.html.haml
... | ... | @@ -1,9 +0,0 @@ |
1 | -= image_tag gravatar_icon(event.author_email), class: "avatar" | |
2 | -.event-title | |
3 | - %strong.author_name #{event.author_name} | |
4 | - %span.event_label{class: event.action_name} #{event.action_name} project | |
5 | - %strong= link_to event.project_name, event.project | |
6 | - %span.cgray | |
7 | - = time_ago_in_words(event.created_at) | |
8 | - ago. | |
9 | - |
app/views/events/_event_merge_request.html.haml
... | ... | @@ -1,16 +0,0 @@ |
1 | -- if event.action_name == "merged" | |
2 | - .event_icon= image_tag "event_mr_merged.png" | |
3 | -= image_tag gravatar_icon(event.author_email), class: "avatar" | |
4 | -.event-title | |
5 | - %strong.author_name #{event.author_name} | |
6 | - %span.event_label{class: event.action_name} #{event.action_name} merge request | |
7 | - = link_to project_merge_request_path(event.project, event.merge_request) do | |
8 | - %strong= truncate event.merge_request_title | |
9 | - at | |
10 | - %strong= link_to event.project.name, event.project | |
11 | -.event-body | |
12 | - .event-info | |
13 | - %span= event.merge_request.source_branch | |
14 | - → | |
15 | - %span= event.merge_request.target_branch | |
16 | - |
app/views/events/_event_push.html.haml
... | ... | @@ -1,30 +0,0 @@ |
1 | -%div | |
2 | - .event_icon= image_tag "event_push.png" | |
3 | - = image_tag gravatar_icon(event.author_email), class: "avatar" | |
4 | - | |
5 | - .event-title | |
6 | - %strong.author_name #{event.author_name} | |
7 | - %span.event_label.pushed #{event.push_action_name} #{event.ref_type} | |
8 | - - if event.rm_ref? | |
9 | - %strong= event.ref_name | |
10 | - - else | |
11 | - = link_to project_commits_path(event.project, event.ref_name) do | |
12 | - %strong= event.ref_name | |
13 | - at | |
14 | - %strong= link_to event.project.name, event.project | |
15 | - | |
16 | - - if event.push_with_commits? | |
17 | - - project = event.project | |
18 | - .event-body | |
19 | - %ul.unstyled.event_commits | |
20 | - - few_commits = event.commits[0...2] | |
21 | - - few_commits.each do |commit| | |
22 | - = render "events/commit", commit: commit, project: project | |
23 | - | |
24 | - - if event.commits_count > 1 | |
25 | - %li.commits-stat | |
26 | - - if event.commits_count > 2 | |
27 | - %span ... and #{event.commits_count - 2} more commits. | |
28 | - = link_to project_compare_path(event.project, from: event.parent_commit.id, to: event.last_commit.id) do | |
29 | - %strong Compare → #{event.parent_commit.id[0..7]}...#{event.last_commit.id[0..7]} | |
30 | - .clearfix |
... | ... | @@ -0,0 +1,25 @@ |
1 | +.event-title | |
2 | + %span.author_name= link_to_author event | |
3 | + %span.event_label.pushed #{event.push_action_name} #{event.ref_type} | |
4 | + - if event.rm_ref? | |
5 | + %strong= event.ref_name | |
6 | + - else | |
7 | + = link_to project_commits_path(event.project, event.ref_name) do | |
8 | + %strong= event.ref_name | |
9 | + at | |
10 | + %strong= link_to event.project.name, event.project | |
11 | + | |
12 | +- if event.push_with_commits? | |
13 | + - project = event.project | |
14 | + .event-body | |
15 | + %ul.unstyled.event_commits | |
16 | + - few_commits = event.commits[0...2] | |
17 | + - few_commits.each do |commit| | |
18 | + = render "events/commit", commit: commit, project: project | |
19 | + | |
20 | + - if event.commits_count > 1 | |
21 | + %li.commits-stat | |
22 | + - if event.commits_count > 2 | |
23 | + %span ... and #{event.commits_count - 2} more commits. | |
24 | + = link_to project_compare_path(event.project, from: event.parent_commit.id, to: event.last_commit.id) do | |
25 | + %strong Compare → #{event.parent_commit.id[0..7]}...#{event.last_commit.id[0..7]} | ... | ... |
app/views/notes/_common_form.html.haml
... | ... | @@ -41,7 +41,7 @@ |
41 | 41 | $(function(){ |
42 | 42 | var names = #{@project.users.pluck(:name)}, emoji = ['+1', '-1']; |
43 | 43 | var emoji = $.map(emoji, function(value, i) {return {key:value + ':', name:value}}); |
44 | - $('#note_note'). | |
44 | + $('#note_note, .per_line_form .line-note-text'). | |
45 | 45 | atWho('@', { data: names }). |
46 | 46 | atWho(':', { |
47 | 47 | data: emoji, | ... | ... |
app/views/tree/_tree.html.haml
... | ... | @@ -8,12 +8,12 @@ |
8 | 8 | %li= link |
9 | 9 | .clear |
10 | 10 | %div.tree_progress |
11 | -#tree-content-holder | |
11 | +%div#tree-content-holder.tree-content-holder | |
12 | 12 | - if tree.is_blob? |
13 | 13 | = render partial: "tree/tree_file", locals: { name: tree.name, content: tree.data, file: tree } |
14 | 14 | - else |
15 | 15 | - contents = tree.contents |
16 | - %table#tree-slider{class: "table_#{@hex_path}" } | |
16 | + %table#tree-slider{class: "table_#{@hex_path} tree-table" } | |
17 | 17 | %thead |
18 | 18 | %th Name |
19 | 19 | %th Last Update | ... | ... |
app/views/tree/show.html.haml
doc/installation.md
features/dashboard/dashboard.feature
... | ... | @@ -18,10 +18,10 @@ Feature: Dashboard |
18 | 18 | Scenario: I should see User joined Project event |
19 | 19 | Given user with name "John Doe" joined project "Shop" |
20 | 20 | When I visit dashboard page |
21 | - Then I should see "John Doe joined project Shop" event | |
21 | + Then I should see "John Doe joined project at Shop" event | |
22 | 22 | |
23 | 23 | Scenario: I should see User left Project event |
24 | 24 | Given user with name "John Doe" joined project "Shop" |
25 | 25 | And user with name "John Doe" left project "Shop" |
26 | 26 | When I visit dashboard page |
27 | - Then I should see "John Doe left project Shop" event | |
27 | + Then I should see "John Doe left project at Shop" event | ... | ... |
features/steps/dashboard/dashboard.rb
... | ... | @@ -41,8 +41,8 @@ class Dashboard < Spinach::FeatureSteps |
41 | 41 | ) |
42 | 42 | end |
43 | 43 | |
44 | - Then 'I should see "John Doe joined project Shop" event' do | |
45 | - page.should have_content "John Doe joined project Shop" | |
44 | + Then 'I should see "John Doe joined project at Shop" event' do | |
45 | + page.should have_content "John Doe joined project at Shop" | |
46 | 46 | end |
47 | 47 | |
48 | 48 | And 'user with name "John Doe" left project "Shop"' do |
... | ... | @@ -55,8 +55,8 @@ class Dashboard < Spinach::FeatureSteps |
55 | 55 | ) |
56 | 56 | end |
57 | 57 | |
58 | - Then 'I should see "John Doe left project Shop" event' do | |
59 | - page.should have_content "John Doe left project Shop" | |
58 | + Then 'I should see "John Doe left project at Shop" event' do | |
59 | + page.should have_content "John Doe left project at Shop" | |
60 | 60 | end |
61 | 61 | |
62 | 62 | And 'I own project "Shop"' do | ... | ... |