diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb
index 9b090de9a..6f173b7c2 100644
--- a/app/controllers/messages_controller.rb
+++ b/app/controllers/messages_controller.rb
@@ -169,6 +169,11 @@ class MessagesController < ApplicationController
course_activity.updated_at = Time.now
course_activity.save
end
+ forge_activity = ForgeActivity.where("forge_act_type='Message' and forge_act_id=#{@topic.id}").first
+ if forge_activity
+ forge_activity.updated_at = Time.now
+ forge_activity.save
+ end
user_activity = UserActivity.where("act_type='Message' and act_id =#{@topic.id}").first
if user_activity
user_activity.updated_at = Time.now
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 715f56d3d..200bd4d69 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -320,9 +320,20 @@ class ProjectsController < ApplicationController
@activity.scope_select {|t| !has["show_#{t}"].nil?}
=end
+ @page = params[:page] ? params[:page].to_i + 1 : 0
# 根据私密性,取出符合条件的所有数据
if User.current.member_of?(@project) || User.current.admin?
- @events_pages = ForgeActivity.where("project_id = ? and forge_act_type != ?",@project, "Document" ).order("created_at desc").page(params['page'|| 1]).per(20);
+ case params[:type]
+ when nil
+ @events_pages = ForgeActivity.where("project_id = ? and forge_act_type in ('Issue', 'Message','News', 'ProjectCreateInfo')",@project).order("updated_at desc").limit(10).offset(@page * 10)
+ when 'issue'
+ @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Issue'",@project).order("updated_at desc").limit(10).offset(@page * 10)
+ when 'news'
+ @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'News'",@project).order("updated_at desc").limit(10).offset(@page * 10)
+ when 'message'
+ @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Message'",@project).order("updated_at desc").limit(10).offset(@page * 10)
+ end
+
#events = @activity.events(@date_from, @date_to)
else
@events_pages = ForgeActivity.includes(:project).where("forge_activities.project_id = ? and projects.is_public
diff --git a/app/models/forge_activity.rb b/app/models/forge_activity.rb
index bb5f30442..115575289 100644
--- a/app/models/forge_activity.rb
+++ b/app/models/forge_activity.rb
@@ -48,8 +48,10 @@ class ForgeActivity < ActiveRecord::Base
def add_org_activity
if self.forge_act_type == 'Message' && !self.forge_act.parent_id.nil?
org_activity = OrgActivity.where("org_act_type = 'Message' and org_act_id = #{self.forge_act.parent.id}").first
- org_activity.created_at = self.created_at
- org_activity.save
+ if org_activity
+ org_activity.created_at = self.created_at
+ org_activity.save
+ end
else
OrgActivity.create(:user_id => self.user_id,
:org_act_id => self.forge_act_id,
diff --git a/app/views/comments/create.js.erb b/app/views/comments/create.js.erb
index ea904a63f..b0354b53f 100644
--- a/app/views/comments/create.js.erb
+++ b/app/views/comments/create.js.erb
@@ -1,3 +1,6 @@
+<% if @course %>
$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
-
+<% else %>
+$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'projects/project_news', :locals => {:activity => @news,:user_activity_id =>@user_activity_id}) %>");
+<% end %>
init_activity_KindEditor_data('<%= @user_activity_id%>',"","87%");
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 9e9bd688f..1d68c9fa0 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -12,7 +12,7 @@
<%= favicon %>
<%= javascript_heads %>
<%= heads_for_theme %>
- <%= stylesheet_link_tag 'public', 'pleft', 'project','prettify','jquery/jquery-ui-1.9.2','header','repository' %>
+ <%= stylesheet_link_tag 'public', 'pleft', 'project','courses','prettify','jquery/jquery-ui-1.9.2','header','repository' %>
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move','attachments' %>
<%= call_hook :view_layouts_base_html_head %>
diff --git a/app/views/projects/_attachment_acts.html.erb b/app/views/projects/_attachment_acts.html.erb
new file mode 100644
index 000000000..2baa8791a
--- /dev/null
+++ b/app/views/projects/_attachment_acts.html.erb
@@ -0,0 +1,35 @@
+
+
+
+ <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+
+ <% if activity.try(:author).try(:realname) == ' ' %>
+ <%= link_to activity.try(:author), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% end %> TO
+ <%= link_to activity.project.name.to_s+" | 项目附件", project_news_index_path(activity.project), :class => "newsBlue ml15" %>
+
+
+ <%= link_to format_activity_title("#{l(:label_attachment)}: #{activity.filename}"), {:controller => 'attachments', :action => 'show', :id => activity.id}, :class => "problem_tit fl fb" %>
+ <%#= link_to activity.title.to_s, news_path(activity), :class => "postGrey" %>
+
+
+
+ 发布时间:<%= format_time(activity.created_on) %>
+
+
<%= textAreailizable act, :description %>
+
+
+ <%#= activity.description.html_safe %>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/_project_activities.html.erb b/app/views/projects/_project_activities.html.erb
new file mode 100644
index 000000000..f97646d3c
--- /dev/null
+++ b/app/views/projects/_project_activities.html.erb
@@ -0,0 +1,102 @@
+<%= javascript_include_tag "/assets/kindeditor/kindeditor", '/assets/kindeditor/pasteimg', "init_activity_KindEditor" %>
+
+<% unless forge_acts.empty? %>
+ <% forge_acts.each do |activity| -%>
+
+
+ <% case activity.forge_act_type %>
+ <% when "ProjectCreateInfo" %>
+ <%= render :partial => 'projects/project_create', :locals => {:activity => activity, :user_activity_id => activity.id} %>
+
+ <% when "Issue" %>
+ <%= render :partial => 'users/project_issue', :locals => {:activity => activity.forge_act, :user_activity_id => activity.id} %>
+
+
+ <% when "Message" %>
+ <%= render :partial => 'users/project_message', :locals => {:activity => activity.forge_act,:user_activity_id =>activity.id} %>
+
+ <% when "News" %>
+ <% if !activity.forge_act.nil? and activity.forge_act.project %>
+ <%= render :partial => 'projects/project_news', :locals => {:activity=>activity.forge_act, :user_activity_id=>activity.id} %>
+ <% end %>
+
+ <% when "Attachment" %>
+ <%= render :partial => 'projects/attachment_acts', :locals => {:activity => activity.forge_act, :user_activity_id => activity.id } %>
+
+
+
+
+
+
+
+
+ <%#= link_to format_activity_title("#{l(:label_attachment)}: #{act.filename}"), {:controller => 'attachments', :action => 'show', :id => act.id}, :class => "problem_tit fl fb" %>
+
+
+
+
+
+
+
+
+ <% end %>
+ <% end %>
+<% end %>
+
+<% if forge_acts.count == 10 %>
+ 展开更多<%= link_to "", project_path(@project.id, :type => type, :page => page), :id => "more_forge_activities_link", :remote => "true", :class => "none" %>
+<% end %>
+
+
\ No newline at end of file
diff --git a/app/views/projects/_project_create.html.erb b/app/views/projects/_project_create.html.erb
new file mode 100644
index 000000000..d966d8e18
--- /dev/null
+++ b/app/views/projects/_project_create.html.erb
@@ -0,0 +1,38 @@
+<% project = Project.find(activity.project_id) %>
+<% user = User.find(project.user_id)%>
+
+
+
+ <%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %>
+
+
+
+ <% if user.try(:realname) == ' ' %>
+ <%= link_to user, user_path(user), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to user.try(:realname), user_path(user), :class => "newsBlue mr15" %>
+ <% end %>
+ TO
+ <%= link_to project.to_s+" | 项目", project_path(project.id,:host=>Setting.host_course), :class => "newsBlue ml15" %>
+
+
+ <%= link_to project.name, project_path(project.id,:host=>Setting.host_course), :class => "postGrey" %>
+
+
+ 创建时间:<%= format_time(project.created_on) %>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/_project_news.html.erb b/app/views/projects/_project_news.html.erb
new file mode 100644
index 000000000..919abc11e
--- /dev/null
+++ b/app/views/projects/_project_news.html.erb
@@ -0,0 +1,106 @@
+
+
+
+ <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+
+ <% if activity.try(:author).try(:realname) == ' ' %>
+ <%= link_to activity.try(:author), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% else %>
+ <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "newsBlue mr15" %>
+ <% end %> TO
+ <%= link_to activity.project.name.to_s+" | 项目新闻", project_news_index_path(activity.project), :class => "newsBlue ml15" %>
+
+
+ <%= link_to activity.title.to_s, news_path(activity), :class => "postGrey" %>
+
+ <% if activity.sticky == 1%>
+
置顶
+ <% end%>
+
+
+ 发布时间:<%= format_time(activity.created_on) %>
+
+
+
+ <%= activity.description.html_safe %>
+
+
+
+
+
+
+
+
+
+ <% count=activity.comments.count %>
+
+
+
+
+ 回复(<%= count %>)
+
+
<%#= format_date(activity.updated_on) %>
+ <%if count>3 %>
+
+ <% end %>
+
+
+ <% replies_all_i = 0 %>
+ <% if count > 0 %>
+
+
+ <% activity.comments.reorder("created_on desc").each do |comment| %>
+
+ <% replies_all_i = replies_all_i + 1 %>
+
+
+ <%= link_to image_tag(url_to_avatar(comment.author), :width => "33", :height => "33"), user_path(comment.author_id), :alt => "用户头像" %>
+
+
+
+ <% if comment.try(:author).try(:realname) == ' ' %>
+ <%= link_to comment.try(:author), user_path(comment.author_id), :class => "newsBlue mr10 f14" %>
+ <% else %>
+ <%= link_to comment.try(:author).try(:realname), user_path(comment.author_id), :class => "newsBlue mr10 f14" %>
+ <% end %>
+ <%= format_time(comment.created_on) %>
+
+
+
+
+
+ <% end %>
+
+
+ <% end %>
+
+
+
<%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %>
+
+
+ <%= form_for('new_form',:url => {:controller => 'comments', :action => 'create', :id => activity},:method => "post", :remote => true) do |f|%>
+
+
+
+
发送
+
+
+ <% end%>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/show.html.erb b/app/views/projects/show.html.erb
index a3a2845f8..a58aeb281 100644
--- a/app/views/projects/show.html.erb
+++ b/app/views/projects/show.html.erb
@@ -1,114 +1,33 @@
-<%= javascript_include_tag "jquery.infinitescroll.js" %>
-
-
<%= l(:label_activity) %>
-
-
-<% unless @events_pages.empty? %>
- <% @events_pages.each do |e| -%>
-
- <% if e.forge_act_type == "ProjectCreateInfo"%>
-
-
<%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %>
-
- <%= link_to e.user, user_path(e.user), :class => "problem_name c_orange fl" %>
<%= l(:label_project_create) %> :
- <%= link_to e.project.name,{} ,:class => "problem_tit fl fb" %>
-
<%= l :label_create_time %> :<%= format_time(e.project.created_on) %>
-
-
-
- <% end %>
- <% next if e.forge_act_type.safe_constantize.nil?
- act = e.forge_act;
- next if act.nil? %>
-
- <% if e.forge_act_type == "Issue" %>
-
-
- <% elsif e.forge_act_type == "Journal" %>
-
-
- <% elsif e.forge_act_type == "Message" %>
-
-
<%= image_tag(url_to_avatar(e.user), :width => "42", :height => "42") %>
-
+ <%= render :partial => "project_activities", :locals => {:forge_acts => @events_pages, :page => 0, :type => @type} %>
+
\ No newline at end of file
diff --git a/app/views/projects/show.js.erb b/app/views/projects/show.js.erb
new file mode 100644
index 000000000..384c111d1
--- /dev/null
+++ b/app/views/projects/show.js.erb
@@ -0,0 +1 @@
+$("#show_more_forge_activities").replaceWith("<%= escape_javascript( render :partial => 'projects/project_activities',:locals => {:forge_acts => @events_pages, :page => @page,:type => @type} )%>");