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' %>
-
<%= link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user), :target => '_blank' %>
diff --git a/app/views/users/user_messages_unviewed.js.erb b/app/views/users/user_messages_unviewed.js.erb
new file mode 100644
index 000000000..1019050c9
--- /dev/null
+++ b/app/views/users/user_messages_unviewed.js.erb
@@ -0,0 +1 @@
+$("#user_messages_list").html("<%=escape_javascript(render :partial => 'layouts/show_messages_list', :locals => {:messages => @message_alls}) %>");
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 9abaef0ae..ed936115a 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -538,6 +538,7 @@ RedmineApp::Application.routes.draw do
get 'new_user_commit_homework'
get 'reply_to'
get 'show_all_replies'
+ get 'user_messages_unviewed'
post "user_commit_homework"
post 'user_select_homework'
end
diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css
index 1edb4ff80..0d00f604d 100644
--- a/public/stylesheets/new_user.css
+++ b/public/stylesheets/new_user.css
@@ -1625,6 +1625,6 @@ ul.wlist li a:hover{ background:#15bccf; color:#fff; text-decoration:none;}
.shadowbox_news_list a{ color:#999;}
.shadowbox_news_list li{ height:40px; border-bottom:1px dashed #ebebeb; line-height:40px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis; padding:0 10px;}
.shadowbox_news_list li:hover{ background-color:#eee;}
-a.shadowbox_news_user{ color:#3b94d6;}
+span.shadowbox_news_user{ color:#3b94d6;}
a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; color:#3b94d6; text-align:center;border-top:1px solid #eee;}
diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css
index c28560506..b0f4df679 100644
--- a/public/stylesheets/public.css
+++ b/public/stylesheets/public.css
@@ -1153,5 +1153,5 @@ a.st_down{ display: block; width:8px; float:left; height:13px; background:url(..
.shadowbox_news_list a{ color:#999;}
.shadowbox_news_list li{ height:40px; border-bottom:1px dashed #ebebeb; line-height:40px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis; padding:0 10px;}
.shadowbox_news_list li:hover{ background-color:#eee;}
-a.shadowbox_news_user{ color:#3b94d6;}
+span.shadowbox_news_user{ color:#3b94d6;}
a.shadowbox_news_all{ display:block; width:305px; height:40px; line-height:40px; color:#3b94d6; text-align:center;border-top:1px solid #eee;}