summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-12-14 19:33:33 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2012-12-14 19:33:33 +0200
commit678e5355a3e43aa2a13d109fe5d75de231eef413 (patch)
tree8ef7a4574d6cd85d1c9e2090da529da44941cf3a /app
parent190e483fb4b5edb6d8dfa71b67dc52da402ddab9 (diff)
downloadgitlab-ce-678e5355a3e43aa2a13d109fe5d75de231eef413.tar.gz
Create events on comments and milestone
Diffstat (limited to 'app')
-rw-r--r--app/controllers/milestones_controller.rb2
-rw-r--r--app/models/event.rb10
-rw-r--r--app/models/milestone.rb1
-rw-r--r--app/models/note.rb8
-rw-r--r--app/observers/activity_observer.rb4
-rw-r--r--app/views/events/_event.html.haml2
-rw-r--r--app/views/events/event/_note.html.haml16
7 files changed, 40 insertions, 3 deletions
diff --git a/app/controllers/milestones_controller.rb b/app/controllers/milestones_controller.rb
index 276317d1c2d..fb3bdf4a3dd 100644
--- a/app/controllers/milestones_controller.rb
+++ b/app/controllers/milestones_controller.rb
@@ -43,6 +43,7 @@ class MilestonesController < ProjectResourceController
def create
@milestone = @project.milestones.new(params[:milestone])
+ @milestone.author_id = current_user.id
if @milestone.save
redirect_to project_milestone_path(@project, @milestone)
@@ -52,6 +53,7 @@ class MilestonesController < ProjectResourceController
end
def update
+ @milestone.author_id = current_user.id
@milestone.update_attributes(params[:milestone])
respond_to do |format|
diff --git a/app/models/event.rb b/app/models/event.rb
index 2b92783ceac..ee1998e5d4f 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -63,7 +63,7 @@ class Event < ActiveRecord::Base
# - new issue
# - merge request
def allowed?
- push? || issue? || merge_request? || membership_changed?
+ push? || issue? || merge_request? || membership_changed? || note? || milestone?
end
def project_name
@@ -94,6 +94,14 @@ class Event < ActiveRecord::Base
action == self.class::Reopened
end
+ def milestone?
+ target_type == "Milestone"
+ end
+
+ def note?
+ target_type == "Note"
+ end
+
def issue?
target_type == "Issue"
end
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index e700cc2f2f7..9e3c2bb5df6 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -14,6 +14,7 @@
class Milestone < ActiveRecord::Base
attr_accessible :title, :description, :due_date, :closed
+ attr_accessor :author_id
belongs_to :project
has_many :issues
diff --git a/app/models/note.rb b/app/models/note.rb
index da15a173566..219ed9b9332 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -121,4 +121,12 @@ class Note < ActiveRecord::Base
def downvote?
note.start_with?('-1') || note.start_with?(':-1:')
end
+
+ def noteable_type_name
+ if noteable_type.present?
+ noteable_type.downcase
+ else
+ "wall"
+ end
+ end
end
diff --git a/app/observers/activity_observer.rb b/app/observers/activity_observer.rb
index 48351bac667..fa39bbfbd34 100644
--- a/app/observers/activity_observer.rb
+++ b/app/observers/activity_observer.rb
@@ -1,5 +1,5 @@
class ActivityObserver < ActiveRecord::Observer
- observe :issue, :merge_request
+ observe :issue, :merge_request, :note, :milestone
def after_create(record)
Event.create(
@@ -12,7 +12,7 @@ class ActivityObserver < ActiveRecord::Observer
end
def after_save(record)
- if record.changed.include?("closed")
+ if record.changed.include?("closed")
Event.create(
project: record.project,
target_id: record.id,
diff --git a/app/views/events/_event.html.haml b/app/views/events/_event.html.haml
index 2446b764e4d..9625e1e20de 100644
--- a/app/views/events/_event.html.haml
+++ b/app/views/events/_event.html.haml
@@ -5,6 +5,8 @@
- if event.push?
= render "events/event/push", event: event
+ - if event.note?
+ = render "events/event/note", event: event
- else
= render "events/event/common", event: event
diff --git a/app/views/events/event/_note.html.haml b/app/views/events/event/_note.html.haml
new file mode 100644
index 00000000000..5dddef1f1ac
--- /dev/null
+++ b/app/views/events/event/_note.html.haml
@@ -0,0 +1,16 @@
+.event-title
+ %span.author_name= link_to_author event
+ %span.event_label commented on #{event.target.noteable_type_name}
+ - if event.target and event.target.noteable_id
+ = link_to [event.project, event.target.noteable] do
+ %strong= truncate event.target.noteable_id
+ - else
+ %strong (deleted)
+ at
+ - if event.project
+ = link_to_project event.project
+ - else
+ = event.project_name
+
+.event-body
+ %p.hint= truncate event.target.note, length: 70