Commit e0d1fba15e86771e7ecf820d1bec68aa5c0e9cb1
1 parent
40af6e1a
Exists in
master
and in
4 other branches
Recent push event
Showing
11 changed files
with
70 additions
and
11 deletions
Show diff stats
app/assets/stylesheets/common.scss
@@ -733,3 +733,16 @@ li.note { | @@ -733,3 +733,16 @@ li.note { | ||
733 | .chzn-container-active .chzn-single { | 733 | .chzn-container-active .chzn-single { |
734 | background:#fff; | 734 | background:#fff; |
735 | } | 735 | } |
736 | + | ||
737 | +/** | ||
738 | + * Push event widget | ||
739 | + * | ||
740 | + */ | ||
741 | +.event_lp { | ||
742 | + @extend .alert-info; | ||
743 | + margin-bottom:15px; | ||
744 | + padding:8px; | ||
745 | + border-style: solid; | ||
746 | + border-width: 1px; | ||
747 | + @include border-radius(4px); | ||
748 | +} |
app/assets/stylesheets/themes/ui_modern.scss
@@ -50,13 +50,12 @@ | @@ -50,13 +50,12 @@ | ||
50 | } | 50 | } |
51 | } | 51 | } |
52 | 52 | ||
53 | - .alert { | ||
54 | - &.alert-info { | ||
55 | - border-color:#FDA; | ||
56 | - background:#FED; | ||
57 | - color:#D70; | ||
58 | - } | 53 | + .alert-info { |
54 | + border-color:#FDA; | ||
55 | + background:#FED; | ||
56 | + color:#D70; | ||
59 | } | 57 | } |
58 | + | ||
60 | 59 | ||
61 | .progress .bar { | 60 | .progress .bar { |
62 | background:#D80; | 61 | background:#D80; |
app/controllers/merge_requests_controller.rb
@@ -63,7 +63,7 @@ class MergeRequestsController < ApplicationController | @@ -63,7 +63,7 @@ class MergeRequestsController < ApplicationController | ||
63 | end | 63 | end |
64 | 64 | ||
65 | def new | 65 | def new |
66 | - @merge_request = @project.merge_requests.new | 66 | + @merge_request = @project.merge_requests.new(params[:merge_request]) |
67 | end | 67 | end |
68 | 68 | ||
69 | def edit | 69 | def edit |
app/controllers/projects_controller.rb
@@ -15,6 +15,8 @@ class ProjectsController < ApplicationController | @@ -15,6 +15,8 @@ class ProjectsController < ApplicationController | ||
15 | @projects = @projects.page(params[:page]).per(40) | 15 | @projects = @projects.page(params[:page]).per(40) |
16 | @events = Event.where(:project_id => current_user.projects.map(&:id)).recent.limit(20) | 16 | @events = Event.where(:project_id => current_user.projects.map(&:id)).recent.limit(20) |
17 | 17 | ||
18 | + @last_push = current_user.recent_push | ||
19 | + | ||
18 | respond_to do |format| | 20 | respond_to do |format| |
19 | format.html | 21 | format.html |
20 | format.atom { render :layout => false } | 22 | format.atom { render :layout => false } |
@@ -69,6 +71,7 @@ class ProjectsController < ApplicationController | @@ -69,6 +71,7 @@ class ProjectsController < ApplicationController | ||
69 | respond_to do |format| | 71 | respond_to do |format| |
70 | format.html do | 72 | format.html do |
71 | if @project.repo_exists? && @project.has_commits? | 73 | if @project.repo_exists? && @project.has_commits? |
74 | + @last_push = current_user.recent_push(@project.id) | ||
72 | render :show | 75 | render :show |
73 | else | 76 | else |
74 | render "projects/empty" | 77 | render "projects/empty" |
app/helpers/merge_requests_helper.rb
@@ -20,4 +20,15 @@ module MergeRequestsHelper | @@ -20,4 +20,15 @@ module MergeRequestsHelper | ||
20 | merge_request.author_name | 20 | merge_request.author_name |
21 | end | 21 | end |
22 | end | 22 | end |
23 | + | ||
24 | + def new_mr_path_from_push_event(event) | ||
25 | + new_project_merge_request_path( | ||
26 | + event.project, | ||
27 | + :merge_request => { | ||
28 | + :source_branch => event.branch_name, | ||
29 | + :target_branch => event.project.root_ref, | ||
30 | + :title => event.branch_name.titleize | ||
31 | + } | ||
32 | + ) | ||
33 | + end | ||
23 | end | 34 | end |
app/roles/account.rb
@@ -46,4 +46,13 @@ module Account | @@ -46,4 +46,13 @@ module Account | ||
46 | return 100 if projects_limit.zero? | 46 | return 100 if projects_limit.zero? |
47 | (my_own_projects.count.to_f / projects_limit) * 100 | 47 | (my_own_projects.count.to_f / projects_limit) * 100 |
48 | end | 48 | end |
49 | + | ||
50 | + def recent_push project_id = nil | ||
51 | + # Get push events not earlier than 6 hours ago | ||
52 | + events = recent_events.code_push.where("created_at > ?", Time.now - 6.hours) | ||
53 | + events = events.where(:project_id => project_id) if project_id | ||
54 | + | ||
55 | + # Take only latest one | ||
56 | + events = events.recent.limit(1).first | ||
57 | + end | ||
49 | end | 58 | end |
app/views/events/_event.html.haml
1 | - if event.allowed? | 1 | - if event.allowed? |
2 | - .event_feed | ||
3 | - - if event.issue? | 2 | + - if event.issue? |
3 | + .event_feed | ||
4 | = render "events/event_issue", :event => event | 4 | = render "events/event_issue", :event => event |
5 | - - elsif event.merge_request? | 5 | + |
6 | + - elsif event.merge_request? | ||
7 | + .event_feed | ||
6 | = render "events/event_merge_request", :event => event | 8 | = render "events/event_merge_request", :event => event |
7 | - - elsif event.push? | 9 | + |
10 | + - elsif event.push? | ||
11 | + .event_feed | ||
8 | = render "events/event_push", :event => event | 12 | = render "events/event_push", :event => event |
13 | + |
@@ -0,0 +1,16 @@ | @@ -0,0 +1,16 @@ | ||
1 | +- if event && event.branch_name && event.project.merge_requests_enabled | ||
2 | + .event_lp | ||
3 | + %div | ||
4 | + = image_tag gravatar_icon(event.author_email), :class => "avatar" | ||
5 | + %span Your last push was to | ||
6 | + = event.ref_type | ||
7 | + = link_to project_commits_path(event.project, :ref => event.ref_name) do | ||
8 | + %strong= event.ref_name | ||
9 | + at | ||
10 | + %strong= link_to event.project.name, event.project | ||
11 | + %span.cgray | ||
12 | + = time_ago_in_words(event.created_at) | ||
13 | + ago. | ||
14 | + | ||
15 | + = link_to new_mr_path_from_push_event(event), :title => "New Merge Request", :class => "btn small padded primary" do | ||
16 | + Merge Request |
app/views/events/_event_push.html.haml
app/views/projects/index.html.haml
@@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||
14 | - else | 14 | - else |
15 | %h4.nothing_here_message Projects activity will be displayed here | 15 | %h4.nothing_here_message Projects activity will be displayed here |
16 | .side | 16 | .side |
17 | + = render "events/event_last_push", :event => @last_push | ||
17 | .projects_box | 18 | .projects_box |
18 | %h5 | 19 | %h5 |
19 | Projects | 20 | Projects |
app/views/projects/show.html.haml
@@ -24,6 +24,7 @@ | @@ -24,6 +24,7 @@ | ||
24 | = link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do | 24 | = link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do |
25 | Issue | 25 | Issue |
26 | 26 | ||
27 | += render "events/event_last_push", :event => @last_push | ||
27 | - unless @events.blank? | 28 | - unless @events.blank? |
28 | %br | 29 | %br |
29 | %h5.cgray | 30 | %h5.cgray |