diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 4cb838b8c..e201d8611 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -123,6 +123,20 @@ class UsersController < ApplicationController end + #未读消息弹窗 + def user_messages_unviewed + @message_alls = [] + messages = MessageAll.where("user_id =?", User.current.id).includes(:message).order("created_at desc") + onclick_time = User.current.onclick_time.onclick_time + messages.each do |message_all| + # 未读的消息存放在数组 + if (message_all.message_type != "SystemMessage"&& !message_all.message.nil? && message_all.message.viewed == 0) || (message_all.message_type == "SystemMessage"&& !message_all.message.nil? && message_all.message.created_at > onclick_time) + @message_alls << message_all.message + break if @message_alls.length == 5 + end + end + end + # 用户消息 # 说明: homework 发布作业;message:讨论区; news:新闻; poll:问卷;works_reviewers:作品评阅;works_reply:作品回复,exercise:课程测验 # issue:问题;journal:缺陷状态更新; forum:公共贴吧: user_feedback: 用户留言; new_reply:新闻回复(comment) diff --git a/app/models/user.rb b/app/models/user.rb index a07f2421f..44ef54c95 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -370,10 +370,6 @@ class User < Principal messages_count = course_count + forge_count + user_feedback_count + user_memo_count + system_messages_count + at_count + org_count end - def user_messages_unviewed - - end - # 查询指派给我的缺陷记录 def issue_status_update self.status_updates diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index e3fad5c6a..7ba0a23be 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -85,20 +85,7 @@ <% end %> <%#= link_to User.current.count_new_message, user_message_path(User.current), :class => "homepageNewsIcon" %>
- -

未读消息

- - <%= link_to '查看全部', user_message_path(User.current), :class => "shadowbox_news_all", :target =>"_Blank" %> - + <%=render :partial => 'layouts/message_loading' %>
@@ -111,10 +98,14 @@ $("#navHomepageSearchType").hide(); }); - $("#user_messages").mouseover(function(){ + $("#user_messages").mouseenter(function(){ $("#user_messages_list").show(); - }).mouseout(function(){ + $.get('<%=user_messages_unviewed_users_path %>'); + $("#ajax-indicator").hide(); + }).mouseleave(function(){ $("#user_messages_list").hide(); + $("#user_messages_list").html("<%=escape_javascript(render :partial => 'layouts/message_loading') %>"); + }); $("#navHomepageProfile").mouseenter(function(){ diff --git a/app/views/layouts/_message_loading.html.erb b/app/views/layouts/_message_loading.html.erb new file mode 100644 index 000000000..aae55205c --- /dev/null +++ b/app/views/layouts/_message_loading.html.erb @@ -0,0 +1,6 @@ + +
+ + 正在加载中,请稍后... +
+
\ No newline at end of file diff --git a/app/views/layouts/_show_messages_list.html.erb b/app/views/layouts/_show_messages_list.html.erb new file mode 100644 index 000000000..27e1d8896 --- /dev/null +++ b/app/views/layouts/_show_messages_list.html.erb @@ -0,0 +1,74 @@ + +

未读消息

+ +<%= link_to '查看全部', user_message_path(User.current), :class => "shadowbox_news_all", :target =>"_Blank" %> \ No newline at end of file diff --git a/app/views/users/_user_message_course.html.erb b/app/views/users/_user_message_course.html.erb index 60d5b6ed8..0c18dbcc3 100644 --- a/app/views/users/_user_message_course.html.erb +++ b/app/views/users/_user_message_course.html.erb @@ -259,7 +259,7 @@ '您申请引用作业"'+HomeworkCommon.find(ma.course_message_id).name+'"的申请已通过' : '您申请引用作业"'+HomeworkCommon.find(ma.course_message_id).name+'"的申请被拒绝' %> - <% if User.current.member_of_course?(ma.course_message.course) || User.current.admin? || ma.course_message.is_open == 1 %> + <% if User.current.member_of_course?(ma.course_message.course) || User.current.admin? || (ma.course_message.is_open == 1 && ma.course_message.course.is_public == 1) %> <%= link_to link_str, student_work_index_path(:homework => ma.course_message.id), :title => link_str,:class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey "}", :target => '_blank' %> <% else %> <%=link_str %> @@ -399,7 +399,7 @@
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> - <% elsif ma.course_message.jour_type == 'HomeworkCommon' %> + <% elsif ma.course_message.jour_type == 'HomeworkCommon' %>