Processing with note events. reformated dashboard for more events to handle
This commit is contained in:
parent
678e5355a3
commit
f2db188dbe
|
@ -31,7 +31,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
.event-item {
|
.event-item {
|
||||||
min-height: 40px;
|
|
||||||
border-bottom: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
||||||
.event-title {
|
.event-title {
|
||||||
color: #333;
|
color: #333;
|
||||||
|
@ -50,14 +49,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.avatar {
|
.avatar {
|
||||||
width: 32px;
|
position: relative;
|
||||||
|
top: -3px;
|
||||||
}
|
}
|
||||||
.event_icon {
|
.event_icon {
|
||||||
|
position: relative;
|
||||||
float: right;
|
float: right;
|
||||||
border: 1px solid #EEE;
|
border: 1px solid #EEE;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
@include border-radius(5px);
|
@include border-radius(5px);
|
||||||
background: #F9F9F9;
|
background: #F9F9F9;
|
||||||
|
margin-left: 10px;
|
||||||
|
top: -6px;
|
||||||
img {
|
img {
|
||||||
width: 20px;
|
width: 20px;
|
||||||
}
|
}
|
||||||
|
@ -71,7 +74,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
padding: 15px 5px;
|
padding: 16px 5px;
|
||||||
&:last-child { border:none }
|
&:last-child { border:none }
|
||||||
.wll:hover { background:none }
|
.wll:hover { background:none }
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ class MilestonesController < ProjectResourceController
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@milestone = @project.milestones.new(params[:milestone])
|
@milestone = @project.milestones.new(params[:milestone])
|
||||||
@milestone.author_id = current_user.id
|
@milestone.author_id_of_changes = current_user.id
|
||||||
|
|
||||||
if @milestone.save
|
if @milestone.save
|
||||||
redirect_to project_milestone_path(@project, @milestone)
|
redirect_to project_milestone_path(@project, @milestone)
|
||||||
|
@ -53,8 +53,7 @@ class MilestonesController < ProjectResourceController
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@milestone.author_id = current_user.id
|
@milestone.update_attributes(params[:milestone].merge(author_id_of_changes: current_user.id))
|
||||||
@milestone.update_attributes(params[:milestone])
|
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.js
|
format.js
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
class Event < ActiveRecord::Base
|
class Event < ActiveRecord::Base
|
||||||
|
include NoteEvent
|
||||||
include PushEvent
|
include PushEvent
|
||||||
|
|
||||||
attr_accessible :project, :action, :data, :author_id, :project_id,
|
attr_accessible :project, :action, :data, :author_id, :project_id,
|
||||||
|
@ -58,12 +59,14 @@ class Event < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Next events currently enabled for system
|
def proper?
|
||||||
# - push
|
if push?
|
||||||
# - new issue
|
true
|
||||||
# - merge request
|
elsif membership_changed?
|
||||||
def allowed?
|
true
|
||||||
push? || issue? || merge_request? || membership_changed? || note? || milestone?
|
else
|
||||||
|
(issue? || merge_request? || note? || milestone?) && target
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def project_name
|
def project_name
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
class Milestone < ActiveRecord::Base
|
class Milestone < ActiveRecord::Base
|
||||||
attr_accessible :title, :description, :due_date, :closed
|
attr_accessible :title, :description, :due_date, :closed
|
||||||
attr_accessor :author_id
|
attr_accessor :author_id, :author_id_of_changes
|
||||||
|
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
has_many :issues
|
has_many :issues
|
||||||
|
|
|
@ -2,17 +2,26 @@ class ActivityObserver < ActiveRecord::Observer
|
||||||
observe :issue, :merge_request, :note, :milestone
|
observe :issue, :merge_request, :note, :milestone
|
||||||
|
|
||||||
def after_create(record)
|
def after_create(record)
|
||||||
|
event_author_id = record.author_id || record.author_id_of_changes
|
||||||
|
|
||||||
|
# Skip status notes
|
||||||
|
if record.kind_of?(Note) && record.note.include?("_Status changed to ")
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
if event_author_id
|
||||||
Event.create(
|
Event.create(
|
||||||
project: record.project,
|
project: record.project,
|
||||||
target_id: record.id,
|
target_id: record.id,
|
||||||
target_type: record.class.name,
|
target_type: record.class.name,
|
||||||
action: Event.determine_action(record),
|
action: Event.determine_action(record),
|
||||||
author_id: record.author_id
|
author_id: event_author_id
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def after_save(record)
|
def after_save(record)
|
||||||
if record.changed.include?("closed")
|
if record.changed.include?("closed") && record.author_id_of_changes
|
||||||
Event.create(
|
Event.create(
|
||||||
project: record.project,
|
project: record.project,
|
||||||
target_id: record.id,
|
target_id: record.id,
|
||||||
|
|
21
app/roles/note_event.rb
Normal file
21
app/roles/note_event.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
module NoteEvent
|
||||||
|
def note_commit_id
|
||||||
|
target.noteable_id
|
||||||
|
end
|
||||||
|
|
||||||
|
def note_short_commit_id
|
||||||
|
note_commit_id[0..8]
|
||||||
|
end
|
||||||
|
|
||||||
|
def note_commit?
|
||||||
|
target.noteable_type == "Commit"
|
||||||
|
end
|
||||||
|
|
||||||
|
def note_target
|
||||||
|
target.noteable
|
||||||
|
end
|
||||||
|
|
||||||
|
def note_target_id
|
||||||
|
target.noteable_id
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,17 +1,15 @@
|
||||||
- if event.allowed?
|
- if event.proper?
|
||||||
%div.event-item
|
%div.event-item
|
||||||
= event_image(event)
|
%span.cgray.right
|
||||||
|
#{time_ago_in_words(event.created_at)} ago.
|
||||||
|
|
||||||
= image_tag gravatar_icon(event.author_email), class: "avatar s24"
|
= image_tag gravatar_icon(event.author_email), class: "avatar s24"
|
||||||
|
|
||||||
- if event.push?
|
- if event.push?
|
||||||
= render "events/event/push", event: event
|
= render "events/event/push", event: event
|
||||||
- if event.note?
|
.clearfix
|
||||||
|
- elsif event.note?
|
||||||
= render "events/event/note", event: event
|
= render "events/event/note", event: event
|
||||||
- else
|
- else
|
||||||
= render "events/event/common", event: event
|
= render "events/event/common", event: event
|
||||||
|
|
||||||
.clearfix
|
|
||||||
%span.cgray.right
|
|
||||||
= time_ago_in_words(event.created_at)
|
|
||||||
ago.
|
|
||||||
.clearfix
|
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
.event-title
|
.event-title
|
||||||
%span.author_name= link_to_author event
|
%span.author_name= link_to_author event
|
||||||
%span.event_label commented on #{event.target.noteable_type_name}
|
%span.event_label commented on #{event.target.noteable_type_name}
|
||||||
- if event.target and event.target.noteable_id
|
- if event.target and event.note_target
|
||||||
= link_to [event.project, event.target.noteable] do
|
- if event.note_commit?
|
||||||
%strong= truncate event.target.noteable_id
|
= link_to event.note_short_commit_id, project_commit_path(event.project, event.note_commit_id), class: "commit_short_id"
|
||||||
|
- else
|
||||||
|
= link_to [event.project, event.note_target] do
|
||||||
|
%strong= truncate event.note_target_id
|
||||||
|
|
||||||
- else
|
- else
|
||||||
%strong (deleted)
|
%strong (deleted)
|
||||||
at
|
at
|
||||||
|
@ -13,4 +17,7 @@
|
||||||
= event.project_name
|
= event.project_name
|
||||||
|
|
||||||
.event-body
|
.event-body
|
||||||
%p.hint= truncate event.target.note, length: 70
|
%span.hint
|
||||||
|
|
||||||
|
%i.icon-comment
|
||||||
|
= truncate event.target.note, length: 70
|
||||||
|
|
Loading…
Reference in a new issue