Merge pull request #298 from warpc/265-activity_feed_messages
[Refs #265] Restyle comments and issues feeds messages, refactoring, fix bugs
This commit is contained in:
commit
79e56eec52
|
@ -15,8 +15,8 @@ class CommentsController < ApplicationController
|
|||
@comment = @commentable.comments.build(params[:comment]) if @commentable.class == Issue
|
||||
if @commentable.class == Grit::Commit
|
||||
@comment = Comment.new(params[:comment].merge(:commentable_id => @commentable.id.hex, :commentable_type => @commentable.class.name))
|
||||
@comment.project = @project
|
||||
end
|
||||
@comment.project = @project
|
||||
@comment.user_id = current_user.id
|
||||
if @comment.save
|
||||
flash[:notice] = I18n.t("flash.comment.saved")
|
||||
|
|
|
@ -19,7 +19,7 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
:user => recipient,
|
||||
:kind => 'new_issue_notification',
|
||||
:data => {:user_name => record.creator.name, :user_email => record.creator.email, :user_id => record.creator_id,:issue_serial_id => record.serial_id,
|
||||
:issue_title => record.title, :project_id => record.project.id, :project_name => record.project.name}
|
||||
:issue_title => record.title, :project_id => record.project.id, :project_name => record.project.name, :project_owner => record.project.owner.uname}
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -29,7 +29,7 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
:user => record.user,
|
||||
:kind => 'issue_assign_notification',
|
||||
:data => {:user_name => record.creator.name, :user_email => record.creator.email, :user_id => record.creator_id, :issue_serial_id => record.serial_id,
|
||||
:project_id => record.project.id, :issue_title => record.title, :project_name => record.project.name}
|
||||
:project_id => record.project.id, :issue_title => record.title, :project_name => record.project.name, :project_owner => record.project.owner.uname}
|
||||
)
|
||||
end
|
||||
|
||||
|
@ -42,8 +42,9 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
ActivityFeed.create(
|
||||
:user => subscribe.user,
|
||||
:kind => 'new_comment_notification',
|
||||
:data => {:user_name => record.user.name, :user_email => record.user.email, :user_id => record.user_id, :comment_body => record.body, :issue_title => record.commentable.title,
|
||||
:issue_serial_id => record.commentable.serial_id, :project_id => record.commentable.project.id, :comment_id => record.id}
|
||||
:data => {:user_name => record.user.name, :user_email => record.user.email, :user_id => record.user_id, :comment_body => record.body,
|
||||
:issue_title => record.commentable.title, :issue_serial_id => record.commentable.serial_id, :project_id => record.commentable.project.id,
|
||||
:comment_id => record.id, :project_name => record.project.name, :project_owner => record.project.owner.uname}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -51,12 +52,18 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
subscribes = Subscribe.comment_subscribes(record).where(:status => true)
|
||||
subscribes.each do |subscribe|
|
||||
next if record.own_comment?(subscribe.user)
|
||||
UserMailer.delay.new_comment_notification(record, subscribe.user) if subscribe.user.notifier.can_notify
|
||||
if subscribe.user.notifier.can_notify and
|
||||
( (subscribe.project.owner?(subscribe.user) && subscribe.user.notifier.new_comment_commit_repo_owner) or
|
||||
(subscribe.user.commentor?(record.commentable) && subscribe.user.notifier.new_comment_commit_commentor) or
|
||||
(subscribe.user.committer?(record.commentable) && subscribe.user.notifier.new_comment_commit_owner) )
|
||||
UserMailer.delay.new_comment_notification(record, subscribe.user)
|
||||
end
|
||||
ActivityFeed.create(
|
||||
:user => subscribe.user,
|
||||
:kind => 'new_comment_commit_notification',
|
||||
:data => {:user_name => record.user.name, :user_email => record.user.email, :user_id => record.user_id, :comment_body => record.body, :commit_message => record.commentable.message.encode_to_default,
|
||||
:commit_id => record.commentable.id, :project_id => record.project.id, :comment_id => record.id}
|
||||
:data => {:user_name => record.user.name, :user_email => record.user.email, :user_id => record.user_id, :comment_body => record.body,
|
||||
:commit_message => record.commentable.message.encode_to_default, :commit_id => record.commentable.id,
|
||||
:project_id => record.project.id, :comment_id => record.id, :project_name => record.project.name, :project_owner => record.project.owner.uname}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -73,11 +80,13 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
|
||||
if change_type == 'delete'
|
||||
kind = 'git_delete_branch_notification'
|
||||
options = {:project_id => record.project.id, :project_name => record.project.name, :branch_name => branch_name, :change_type => change_type}
|
||||
options = {:project_id => record.project.id, :project_name => record.project.name, :branch_name => branch_name,
|
||||
:change_type => change_type, :project_owner => record.project.owner.uname}
|
||||
else
|
||||
kind = 'git_new_push_notification'
|
||||
options = {:project_id => record.project.id, :project_name => record.project.name, :last_commits => last_commits, :branch_name => branch_name,
|
||||
:change_type => change_type, :user_email => record.project.git_repository.repo.log(branch_name, nil).first.author.email}
|
||||
:change_type => change_type, :user_email => record.project.git_repository.repo.log(branch_name, nil).first.author.email,
|
||||
:project_owner => record.project.owner.uname}
|
||||
options.merge!({:user_id => first_commiter.id, :user_name => first_commiter.name}) if first_commiter
|
||||
end
|
||||
|
||||
|
@ -100,7 +109,8 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
ActivityFeed.create(
|
||||
:user => User.find(recipient),#record.user,
|
||||
:kind => 'wiki_new_commit_notification',
|
||||
:data => {:user_id => actor.id, :user_name => actor.name, :user_email => actor.email, :project_id => project.id, :project_name => project_name, :commit_sha => commit_sha}
|
||||
:data => {:user_id => actor.id, :user_name => actor.name, :user_email => actor.email, :project_id => project.id,
|
||||
:project_name => project_name, :commit_sha => commit_sha, :project_owner => project.owner.uname}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -114,7 +124,8 @@ class ActivityFeedObserver < ActiveRecord::Observer
|
|||
ActivityFeed.create(
|
||||
:user => record.user,
|
||||
:kind => 'issue_assign_notification',
|
||||
:data => {:user_name => record.user.name, :user_email => record.user.email, :issue_serial_id => record.serial_id, :project_id => record.project.id, :issue_title => record.title}
|
||||
:data => {:user_name => record.user.name, :user_email => record.user.email, :issue_serial_id => record.serial_id, :issue_title => record.title,
|
||||
:project_id => record.project.id, :project_name => record.project.name, :project_owner => record.project.owner.uname}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,10 +19,7 @@ class Subscribe < ActiveRecord::Base
|
|||
def self.subscribed_to_commit?(project, user, commit)
|
||||
subscribe = user.subscribes.where(:subscribeable_id => commit.id.hex, :subscribeable_type => commit.class.name, :project_id => project.id).first
|
||||
return subscribe.subscribed? if subscribe # return status if already subscribe present
|
||||
# return status by settings
|
||||
(project.owner?(user) && user.notifier.new_comment_commit_repo_owner) or
|
||||
(user.commentor?(commit) && user.notifier.new_comment_commit_commentor) or
|
||||
(user.committer?(commit) && user.notifier.new_comment_commit_owner)
|
||||
true
|
||||
end
|
||||
|
||||
def self.subscribe_to_commit(options)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
.top
|
||||
%span= t('notifications.bodies.delete_branch', {:branch_name => branch_name, :project_name => project_name})
|
||||
= activity_feed.created_at
|
||||
.text
|
||||
%span
|
||||
= t('notifications.bodies.delete_branch', :branch_name => branch_name)
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
.fulltext
|
||||
= link_to(project_name, project_path(project_id))
|
||||
|
|
|
@ -4,12 +4,11 @@
|
|||
= image_tag(avatar_url_by_email(user_email, :small), :alt => 'avatar')
|
||||
.text
|
||||
%span
|
||||
= raw t("notifications.bodies.#{change_type}_branch", {:branch_name => branch_name})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to(project_name, project_path(project_id)))
|
||||
= raw t("notifications.bodies.#{change_type}_branch", {:branch_name => branch_name, :user_link => defined?(user_name) ? link_to(user_name, user_path(user_id)) : user_email})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
%br
|
||||
%span.subject
|
||||
- last_commits.each do |commit|
|
||||
= link_to commit[0], commit_path(project_id, commit[0])
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
.top
|
||||
.image
|
||||
= image_tag(avatar_url_by_email(activity_feed.user.email, :small), :alt => 'avatar')
|
||||
.text
|
||||
%span
|
||||
= raw t("notifications.bodies.issue_assign_notification", { :issue_link => link_to(issue_title, project_issue_path(project_id, issue_serial_id))})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to(project_name, project_path(project_id))) if defined? project_name
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
.text
|
||||
%span
|
||||
= raw t("notifications.bodies.new_comment_notification.title", :user_link => link_to(user_name, user_path(user_id)) )
|
||||
= raw t("notifications.bodies.new_comment_notification.commit_content", {:commit_link => link_to(commit_message, commit_path(project_id, commit_id))})
|
||||
= raw t("notifications.bodies.new_comment_notification.commit_content", {:commit_link => link_to(commit_message, commit_path(project_id, commit_id) + "#comment##{comment_id}")})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
%span.subject= link_to comment_body, commit_path(project_id, commit_id) + (defined?(comment_id) ? "#comment##{comment_id}" : '')
|
||||
%span.subject= comment_body
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
.text
|
||||
%span
|
||||
= raw t("notifications.bodies.new_comment_notification.title", {:user_link => link_to(user_name, user_path(user_id))})
|
||||
= raw t("notifications.bodies.new_comment_notification.content", {:issue_link => link_to(issue_title, project_issue_path(project_id, issue_serial_id))})
|
||||
= raw t("notifications.bodies.new_comment_notification.content", {:issue_link => link_to(issue_title, project_issue_path(project_id, issue_serial_id) + "#comment##{comment_id}")})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
%span.subject= link_to comment_body, project_issue_path(project_id, issue_serial_id) + (defined?(comment_id) ? "#comment##{comment_id}" : '')
|
||||
%span.subject= comment_body
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
= image_tag(avatar_url_by_email(user_email, :small), :alt => 'avatar')
|
||||
.text
|
||||
%span
|
||||
= raw t("notifications.bodies.new_issue_notification", { :user_link => link_to(activity_feed.user.uname, user_path(activity_feed.user.uname))})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to(project_name, project_path(project_id)))
|
||||
= raw t("notifications.bodies.new_issue_notification", { :user_link => link_to(user_name, user_path(user_id)), :issue_link => project_issue_path(project_id, issue_serial_id)})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
%span.subject= link_to(issue_title, project_issue_path(project_id, issue_serial_id))
|
||||
%span.subject= issue_title
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.text
|
||||
%span
|
||||
= raw t("notifications.bodies.wiki_new_commit_notification", {:user_link => user_name, :history_link => link_to("wiki", history_project_wiki_index_path(project_id))})
|
||||
= raw t("notifications.bodies.project", :project_link => link_to(project_name, project_path(project_id)))
|
||||
= raw t("notifications.bodies.project", :project_link => link_to("#{project_owner}/#{project_name}", project_path(project_id)) )
|
||||
.both
|
||||
%span.date= activity_feed.created_at
|
||||
.both
|
||||
|
|
|
@ -20,19 +20,20 @@ en:
|
|||
bodies:
|
||||
new_comment_notification:
|
||||
title: '%{user_link} has been added a new comment'
|
||||
content: in issue %{issue_link}.
|
||||
commit_content: in commit %{commit_link}.
|
||||
new_issue_notification: '%{user_link} has been added an issue'
|
||||
content: in issue %{issue_link}
|
||||
commit_content: in commit %{commit_link}
|
||||
new_issue_notification: '%{user_link} has been added a new <a href="%{issue_link}">issue</a>'
|
||||
ussue: issue
|
||||
new_user_notification:
|
||||
title: Hello, %{user_name}.
|
||||
content: You have been sign up to project «ROSA Build System» and now can sign in.
|
||||
email: ==Your email %{user_email}
|
||||
password: ==Your password %{user_password}
|
||||
issue_assign_notification: You have been assigned to issue %{issue_link}
|
||||
wiki_new_commit_notification: '%{user_link} has been updated wiki %{history_link}'
|
||||
wiki_new_commit_notification: '%{user_link} has been updated %{history_link}'
|
||||
invite_approve_notification: Invite to ABF
|
||||
project: in project %{project_link}.
|
||||
project: in project %{project_link}
|
||||
|
||||
delete_branch: Branch %{branch_name} has been deleted
|
||||
create_branch: created new branch %{branch_name}
|
||||
update_branch: pushed to branch %{branch_name}
|
||||
create_branch: '%{user_link} has been created a new branch %{branch_name}'
|
||||
update_branch: '%{user_link} has been pushed to branch %{branch_name}'
|
|
@ -20,19 +20,20 @@ ru:
|
|||
bodies:
|
||||
new_comment_notification:
|
||||
title: '%{user_link} добавил новый комментарий'
|
||||
content: в задаче %{issue_link}.
|
||||
commit_content: в коммите %{commit_link}.
|
||||
new_issue_notification: '%{user_link} добавил новую задачу'
|
||||
content: в задаче %{issue_link}
|
||||
commit_content: в коммите %{commit_link}
|
||||
new_issue_notification: '%{user_link} добавил новую <a href="%{issue_link}">задачу</a>'
|
||||
issue: задачу
|
||||
new_user_notification:
|
||||
title: Здравствуйте, %{user_name}.
|
||||
content: Вы зарегистрированы на проекте «ROSA Build System» и теперь можете войти в систему.
|
||||
email: ==Ваш email %{user_email}
|
||||
password: ==Ваш пароль %{user_password}
|
||||
issue_assign_notification: Вам была назначена задача %{issue_link}
|
||||
wiki_new_commit_notification: '%{user_link} обновил wiki %{history_link}'
|
||||
wiki_new_commit_notification: '%{user_link} обновил %{history_link}'
|
||||
invite_approve_notification: Приглашение в ABF
|
||||
project: в проекте %{project_link}.
|
||||
project: в проекте %{project_link}
|
||||
|
||||
delete_branch: Удалена ветка %{branch_name}
|
||||
create_branch: создал новую ветку %{branch_name}
|
||||
update_branch: внес изменения в ветку %{branch_name}
|
||||
create_branch: '%{user_link} создал новую ветку %{branch_name}'
|
||||
update_branch: '%{user_link} внес изменения в ветку %{branch_name}'
|
|
@ -0,0 +1,8 @@
|
|||
class TruncateActivityFeed < ActiveRecord::Migration
|
||||
def up
|
||||
ActivityFeed.destroy_all
|
||||
end
|
||||
|
||||
def down
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue