Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2012-06-12 18:43:16 +0400
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2012-06-12 18:43:16 +0400
commite0d1fba15e86771e7ecf820d1bec68aa5c0e9cb1 (patch)
tree8ca8e881bc3f5583df389b60570062f52a1fc28a /app
parent40af6e1ad2870f9c97a0354d80cd30871a546835 (diff)
Recent push event
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/common.scss13
-rw-r--r--app/assets/stylesheets/themes/ui_modern.scss11
-rw-r--r--app/controllers/merge_requests_controller.rb2
-rw-r--r--app/controllers/projects_controller.rb3
-rw-r--r--app/helpers/merge_requests_helper.rb11
-rw-r--r--app/roles/account.rb9
-rw-r--r--app/views/events/_event.html.haml13
-rw-r--r--app/views/events/_event_last_push.html.haml16
-rw-r--r--app/views/events/_event_push.html.haml1
-rw-r--r--app/views/projects/index.html.haml1
-rw-r--r--app/views/projects/show.html.haml1
11 files changed, 70 insertions, 11 deletions
diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss
index 5ce1b64c850..f7c24191c4f 100644
--- a/app/assets/stylesheets/common.scss
+++ b/app/assets/stylesheets/common.scss
@@ -733,3 +733,16 @@ li.note {
.chzn-container-active .chzn-single {
background:#fff;
}
+
+/**
+ * Push event widget
+ *
+ */
+.event_lp {
+ @extend .alert-info;
+ margin-bottom:15px;
+ padding:8px;
+ border-style: solid;
+ border-width: 1px;
+ @include border-radius(4px);
+}
diff --git a/app/assets/stylesheets/themes/ui_modern.scss b/app/assets/stylesheets/themes/ui_modern.scss
index d0f32a7f140..fc4aabae400 100644
--- a/app/assets/stylesheets/themes/ui_modern.scss
+++ b/app/assets/stylesheets/themes/ui_modern.scss
@@ -50,13 +50,12 @@
}
}
- .alert {
- &.alert-info {
- border-color:#FDA;
- background:#FED;
- color:#D70;
- }
+ .alert-info {
+ border-color:#FDA;
+ background:#FED;
+ color:#D70;
}
+
.progress .bar {
background:#D80;
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb
index c4bbc747dc7..54227fc2c80 100644
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/merge_requests_controller.rb
@@ -63,7 +63,7 @@ class MergeRequestsController < ApplicationController
end
def new
- @merge_request = @project.merge_requests.new
+ @merge_request = @project.merge_requests.new(params[:merge_request])
end
def edit
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 2da97098719..d049ce56f88 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -15,6 +15,8 @@ class ProjectsController < ApplicationController
@projects = @projects.page(params[:page]).per(40)
@events = Event.where(:project_id => current_user.projects.map(&:id)).recent.limit(20)
+ @last_push = current_user.recent_push
+
respond_to do |format|
format.html
format.atom { render :layout => false }
@@ -69,6 +71,7 @@ class ProjectsController < ApplicationController
respond_to do |format|
format.html do
if @project.repo_exists? && @project.has_commits?
+ @last_push = current_user.recent_push(@project.id)
render :show
else
render "projects/empty"
diff --git a/app/helpers/merge_requests_helper.rb b/app/helpers/merge_requests_helper.rb
index afdf65bd568..96e0ab4dd5a 100644
--- a/app/helpers/merge_requests_helper.rb
+++ b/app/helpers/merge_requests_helper.rb
@@ -20,4 +20,15 @@ module MergeRequestsHelper
merge_request.author_name
end
end
+
+ def new_mr_path_from_push_event(event)
+ new_project_merge_request_path(
+ event.project,
+ :merge_request => {
+ :source_branch => event.branch_name,
+ :target_branch => event.project.root_ref,
+ :title => event.branch_name.titleize
+ }
+ )
+ end
end
diff --git a/app/roles/account.rb b/app/roles/account.rb
index 62492b83b9b..8ff5c613e51 100644
--- a/app/roles/account.rb
+++ b/app/roles/account.rb
@@ -46,4 +46,13 @@ module Account
return 100 if projects_limit.zero?
(my_own_projects.count.to_f / projects_limit) * 100
end
+
+ def recent_push project_id = nil
+ # Get push events not earlier than 6 hours ago
+ events = recent_events.code_push.where("created_at > ?", Time.now - 6.hours)
+ events = events.where(:project_id => project_id) if project_id
+
+ # Take only latest one
+ events = events.recent.limit(1).first
+ end
end
diff --git a/app/views/events/_event.html.haml b/app/views/events/_event.html.haml
index 6321df6386c..b3db83c26dd 100644
--- a/app/views/events/_event.html.haml
+++ b/app/views/events/_event.html.haml
@@ -1,8 +1,13 @@
- if event.allowed?
- .event_feed
- - if event.issue?
+ - if event.issue?
+ .event_feed
= render "events/event_issue", :event => event
- - elsif event.merge_request?
+
+ - elsif event.merge_request?
+ .event_feed
= render "events/event_merge_request", :event => event
- - elsif event.push?
+
+ - elsif event.push?
+ .event_feed
= render "events/event_push", :event => event
+
diff --git a/app/views/events/_event_last_push.html.haml b/app/views/events/_event_last_push.html.haml
new file mode 100644
index 00000000000..95ae01bd49e
--- /dev/null
+++ b/app/views/events/_event_last_push.html.haml
@@ -0,0 +1,16 @@
+- if event && event.branch_name && event.project.merge_requests_enabled
+ .event_lp
+ %div
+ = image_tag gravatar_icon(event.author_email), :class => "avatar"
+ %span Your last push was to
+ = event.ref_type
+ = link_to project_commits_path(event.project, :ref => event.ref_name) do
+ %strong= event.ref_name
+ at
+ %strong= link_to event.project.name, event.project
+ %span.cgray
+ = time_ago_in_words(event.created_at)
+ ago.
+
+ = link_to new_mr_path_from_push_event(event), :title => "New Merge Request", :class => "btn small padded primary" do
+ Merge Request
diff --git a/app/views/events/_event_push.html.haml b/app/views/events/_event_push.html.haml
index 13ef0f8f839..3aadd226614 100644
--- a/app/views/events/_event_push.html.haml
+++ b/app/views/events/_event_push.html.haml
@@ -27,3 +27,4 @@
- else
- event.commits.each do |commit|
= render "events/commit", :commit => commit, :project => project
+
diff --git a/app/views/projects/index.html.haml b/app/views/projects/index.html.haml
index a8bc8ef31b3..3a77e39d645 100644
--- a/app/views/projects/index.html.haml
+++ b/app/views/projects/index.html.haml
@@ -14,6 +14,7 @@
- else
%h4.nothing_here_message Projects activity will be displayed here
.side
+ = render "events/event_last_push", :event => @last_push
.projects_box
%h5
Projects
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml
index 22fbd9d2e95..9ecbce38658 100644
--- a/app/views/projects/show.html.haml
+++ b/app/views/projects/show.html.haml
@@ -24,6 +24,7 @@
= link_to new_project_issue_path(@project), :title => "New Issue", :class => "btn small" do
Issue
+= render "events/event_last_push", :event => @last_push
- unless @events.blank?
%br
%h5.cgray