From 2f2ad38cdf7d9dcc0a2ba21f962e3c5cea02762d Mon Sep 17 00:00:00 2001 From: ouyangxuhua Date: Fri, 16 Oct 2015 09:30:44 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=94=A8=E6=88=B7=E8=A2=AB=E6=8B=89=E5=85=A5?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=EF=BC=8C=E5=8F=91=E9=80=81=E7=9B=B8=E5=BA=94?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=BB=99=E8=AF=A5=E7=94=A8=E6=88=B7=EF=BC=9B?= =?UTF-8?q?=202.=E7=94=A8=E6=88=B7=E8=A2=AB=E7=A7=BB=E5=87=BA=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=EF=BC=8C=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E7=BB=99?= =?UTF-8?q?=E8=AF=A5=E7=94=A8=E6=88=B7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/members_controller.rb | 7 +++- app/controllers/projects_controller.rb | 8 ++++ app/views/users/_user_message_forge.html.erb | 42 ++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 6271a6832..6bb61e6a1 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -81,8 +81,12 @@ class MembersController < ApplicationController user_ids.each do |user_id| members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id) user_grades << UserGrade.new(:user_id => user_id, :project_id => @project.id) - ## added by nie + #给新成员发送加入项目的消息,发送者id放在ForgeMessage的forge_message_id字段中, + #forge_message_type设置为JoinProject + forge_join = ForgeMessage.new(:user_id =>user_id, :forge_message_id=>User.current.id,:project_id => @project.id,:forge_message_type=>"JoinProject", :viewed => false) + forge_join.save + ## added by nie if (params[:membership][:role_ids]) role = Role.find(params[:membership][:role_ids][0]) project_info << ProjectInfo.new(:user_id => user_id, :project_id => @project.id) if role.allowed_to?(:is_manager) @@ -301,6 +305,7 @@ class MembersController < ApplicationController grade.destroy end end + ForgeMessage.create(:user_id => @member.user_id, :project_id => @project.id, :forge_message_type => "RemoveFromProject", :viewed => false, :forge_message_id => User.current.id) end respond_to do |format| format.html { redirect_to_settings_in_projects } diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 90974b376..d26e465ba 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -534,6 +534,14 @@ class ProjectsController < ApplicationController project_invite_messages.each do |project_invite_message| project_invite_message.update_attribute(:viewed, true) end + #更新被加入项目消息的viewed字段 + join_project_messages = ForgeMessage.where("user_id =? and project_id =? and forge_message_type=?", user, project, "JoinProject") + join_project_messages.each do |join_project| + join_project.update_attribute(:viewed, true) + end + #更新被移出项目消息的viewed字段 + remove_project_messages = ForgeMessage.where("user_id =? and project_id =? and forge_message_type=?", user, project, "RemoveFromProject") + remove_project_messages.update_all(:viewed => true) end def message_invite(message_id, key) diff --git a/app/views/users/_user_message_forge.html.erb b/app/views/users/_user_message_forge.html.erb index b93122bd2..653771f2a 100644 --- a/app/views/users/_user_message_forge.html.erb +++ b/app/views/users/_user_message_forge.html.erb @@ -20,6 +20,48 @@
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> + + <% if ma.forge_message_type == "JoinProject" %> + + <% end %> + + <% if ma.forge_message_type == "RemoveFromProject" %> + + <% end %> <% if ma.forge_message_type == "ProjectInvite" %> <% inviter = User.find(ma.forge_message_id) %>