1、消息看过则不提示(方法实现)

2、添加消息新按钮
Branch_szzh
huang 10 years ago
parent ed8c4ac906
commit 9b98bdcf5c

@ -98,6 +98,11 @@ class UsersController < ApplicationController
# 用户消息 # 用户消息
def user_messages def user_messages
# 当前用户查看消息,则设置消息为已读
querys = @user.course_messages
if User.current.id == @user.id
querys.update_all(:viewed => true)
end
if @user.course_messages if @user.course_messages
if params[:type].nil? if params[:type].nil?
@user_course_messages = @user.course_messages @user_course_messages = @user.course_messages
@ -105,14 +110,14 @@ class UsersController < ApplicationController
else else
case params[:type] case params[:type]
when 'homework' when 'homework'
@user_course_messages = @user.course_messages @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "HomeworkCommon"}
#@user_course_messages = ForgeMessage.find_by_sql("select * from course_messages where user_id='#{@user.id}' and course_message_type = 'HomeworkCommon' order by created_at desc;") #@user_course_messages = ForgeMessage.find_by_sql("select * from course_messages where user_id='#{@user.id}' and course_message_type = 'HomeworkCommon' order by created_at desc;")
when 'message' when 'message'
@user_course_messages = @user.course_message_message @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "Message"}
when 'news' when 'news'
@user_course_messages = @user.course_message_new @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "News"}
when 'poll' when 'poll'
@user_course_messages = @user.course_message_poll @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "Poll"}
end end
end end
respond_to do |format| respond_to do |format|

@ -134,10 +134,6 @@ class User < Principal
# 虚拟转换 # 虚拟转换
has_many :new_jours, :as => :jour, :class_name => 'JournalsForMessage', :conditions => "status=1" has_many :new_jours, :as => :jour, :class_name => 'JournalsForMessage', :conditions => "status=1"
has_many :course_messages_homeworks, :class_name => 'ForgeMessage', :conditions => 'forge_message_type="HomeworkCommon"'
has_many :course_messages_polls, :class_name => 'ForgeMessage', :conditions => 'forge_message_type="Poll"'
has_many :course_messages_messages, :class_name => 'ForgeMessage', :conditions => 'forge_message_type="Message"'
has_many :course_messages_news, :class_name => 'ForgeMessage', :conditions => 'forge_message_type="News"'
has_many :issue_assigns, :class_name => 'ForgeMessage', :conditions => 'viewed=0 and forge_message_type="Issue"' has_many :issue_assigns, :class_name => 'ForgeMessage', :conditions => 'viewed=0 and forge_message_type="Issue"'
has_many :status_updates, :class_name => 'ForgeMessage', :conditions => 'viewed=0 and forge_message_type="Journal"' has_many :status_updates, :class_name => 'ForgeMessage', :conditions => 'viewed=0 and forge_message_type="Journal"'
# 邮件邀请状态 # 邮件邀请状态
@ -252,27 +248,15 @@ class User < Principal
# count = self.journals_for_messages(:conditions => ["status=? and is_readed = ? " ,1, 0]).count # count = self.journals_for_messages(:conditions => ["status=? and is_readed = ? " ,1, 0]).count
end end
def course_message_homework user
user.course_messages_homeworks
end
def course_message_poll
self.course_messages_polls
end
def course_message_new
self.course_messages_news
end
def course_message_message
self.course_messages_messages
end
# 查询指派给我的缺陷记录 # 查询指派给我的缺陷记录
def count_new_issue_assign_to def count_new_issue_assign_to
self.issue_assigns self.issue_assigns
end end
# 新消息统计
def count_new_message
count = CourseMessage.where("user_id =? and viewed =?", User.current.id, 0).count
end
# 查询指派给我的缺陷记录 # 查询指派给我的缺陷记录
def issue_status_update def issue_status_update
self.status_updates self.status_updates

@ -9,74 +9,60 @@
<div id="menu"> <div id="menu">
<ul class="menu"> <ul class="menu">
<% if User.current.logged? %> <% if User.current.logged? %>
<li> <li>
<%=link_to_user(User.current)%><!--<a href="javascript:void(0);" class="parent">用户名称</a>--> <%=link_to_user(User.current)%><!--<a href="javascript:void(0);" class="parent">用户名称</a>-->
<ul> <ul>
<% hidden_non_project = Setting.find_by_name("hidden_non_project") <% hidden_non_project = Setting.find_by_name("hidden_non_project")
visiable = hidden_non_project && hidden_non_project.value == "0"%> visiable = hidden_non_project && hidden_non_project.value == "0"%>
<% if @show_course == 1 && !visiable %> <% if @show_course == 1 && !visiable %>
<%# if User.current.user_extensions && [UserExtensions::TEACHER, UserExtensions::STUDENT].include?(User.current.user_extensions.identity) -%> <%# if User.current.user_extensions && [UserExtensions::TEACHER, UserExtensions::STUDENT].include?(User.current.user_extensions.identity) -%>
<% hasCourse=false %> <% hasCourse=false %>
<% User.current.courses.each do |course| %> <% User.current.courses.each do |course| %>
<% if !course_endTime_timeout?(course) %> <% if !course_endTime_timeout?(course) %>
<% hasCourse=true %> <% hasCourse=true %>
<% end %>
<% end %>
<% if hasCourse %>
<li>
<a href="<%= url_for(:controller => 'users', :action => 'user_courses', :id=>User.current.id, :host=>Setting.host_user) %>" class="parent">我的课程</a>
<ul>
<% User.current.courses.select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").each do |course| %>
<% if !course_endTime_timeout?(course) %>
<li title="<%=course.name%>"><a href="<%= url_for(:controller => 'courses', :action=>"show", :id=>course.id, :host=>Setting.host_course) %>"><%= course.name %></a>
<% end %>
<% end %>
</ul>
</li>
<% end %> <% end %>
<% end %> <%# end -%>
<% if hasCourse %> <% end %>
<% if User.current.projects.count>0 %>
<li> <li>
<a href="<%= url_for(:controller => 'users', :action => 'user_courses', :id=>User.current.id, :host=>Setting.host_user) %>" class="parent">我的课程</a> <a href="<%= url_for(:controller => 'users', :action => 'user_projects', :id=>User.current.id, :host=>Setting.host_user) %>" class="parent">我的项目</a>
<ul> <ul>
<% User.current.courses.select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").each do |course| %> <% User.current.projects.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").each do |project| %>
<% if !course_endTime_timeout?(course) %> <li title="<%=project.name%>">
<li title="<%=course.name%>"><a href="<%= url_for(:controller => 'courses', :action=>"show", :id=>course.id, :host=>Setting.host_course) %>"><%= course.name %></a> <a href="<%= url_for(:controller => 'projects', :action=>"show", :id=>project.id, :host=>Setting.host_name) %>">
<% end %> <%=project.name%>
</a>
</li>
<% end %> <% end %>
</ul> </ul>
</li> </li>
<% end %> <% end %>
<%# end -%> <li><a href="<%= url_for(:controller => 'my', :action => 'account') %>">编辑资料</a></li>
<% end %> </ul>
</li><!---level1 end--->
<% if User.current.projects.count>0 %> <!--消息提醒-->
<li> <div class="navHomepageNews">
<a href="<%= url_for(:controller => 'users', :action => 'user_projects', :id=>User.current.id, :host=>Setting.host_user) %>" class="parent">我的项目</a> <%= link_to image_tag("/images/news_icon_small.png" ), {:controller=> 'users', :action => 'user_messages', id: User.current.id, host: Setting.host_user} %>
<ul> <% if User.current.count_new_message >0 %>
<% User.current.projects.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").each do |project| %> <div class="newsActive"></div>
<li title="<%=project.name%>">
<a href="<%= url_for(:controller => 'projects', :action=>"show", :id=>project.id, :host=>Setting.host_name) %>">
<%=project.name%>
</a>
</li>
<% end %>
</ul>
</li>
<% end %> <% end %>
<li><a href="<%= url_for(:controller => 'my', :action => 'account') %>">编辑资料</a></li> </div>
<!--<li><a href="javascript:void(0);" class="parent">我的课程</a>--> <!--消息提醒end-->
<!--<ul>--> <!--<li ><a href="javascript:void(0);">退出</a></li>-->
<!--<li><a href="javascript:void(0);">新建课程</a></li>-->
<!--<li><a href="javascript:void(0);">我的课程0我的课程我的课程01我的课程011</a></li>-->
<!--<li><a href="javascript:void(0);">我的课程02</a></li>-->
<!--<li><a href="javascript:void(0);">我的课程02</a></li>-->
<!--</ul>&lt;!&ndash;-level3 end-&ndash;&gt;-->
<!--</li>&lt;!&ndash;-level2 end-&ndash;&gt;-->
<!--<li><a href="javascript:void(0);" class="parent">我的项目</a>-->
<!--<ul>-->
<!--<li><a href="javascript:void(0);">新建项目</a></li>-->
<!--<li><a href="javascript:void(0);">我的项目01</a></li>-->
<!--<li><a href="javascript:void(0);">我的项目0</a></li>-->
<!--<li><a href="javascript:void(0);">我的项目02</a></li>-->
<!--</ul>&lt;!&ndash;-level3 end-&ndash;&gt;-->
<!--</li>&lt;!&ndash;-level2 end-&ndash;&gt;-->
<!--<li><a href="javascript:void(0);">我的主页</a></li>-->
</ul>
</li><!---level1 end--->
<li style="padding:0 0; margin:0 0;display:inline;border-bottom: 0;">
<%=link_to l(:label_my_message)+'('+User.current.count_new_jour.to_s+')',
{:controller=> 'users', :action => 'user_messages', id: User.current.id, host: Setting.host_user},
{:class => 'my-message'} if User.current.logged?%>
</li>
<!--<li ><a href="javascript:void(0);">退出</a></li>-->
<% end %> <% end %>
</ul> </ul>
<%= render_menu :account_menu -%> <%= render_menu :account_menu -%>

@ -23,7 +23,7 @@
<% @user_course_messages.each do |ucm| %> <% @user_course_messages.each do |ucm| %>
<% if ucm.course_message_type == "News" %> <% if ucm.course_message_type == "News" %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><img src="images/newsPortrait.png" width="35" height="35" /></a></li> <li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><%= image_tag(url_to_avatar(ucm.course_message.author), :width => "30", :height => "30") %></a></li>
<li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.author %></a></li> <li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.author %></a></li>
<li class="homepageNewsType fl">发布通知</li> <li class="homepageNewsType fl">发布通知</li>
<li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey"> <li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey">
@ -33,7 +33,7 @@
<% end %> <% end %>
<% if ucm.course_message_type == "HomeworkCommon" %> <% if ucm.course_message_type == "HomeworkCommon" %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><img src="images/newsPortrait.png" width="35" height="35" /></a></li> <li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><%= image_tag(url_to_avatar(ucm.course_message.user), :width => "30", :height => "30") %></a></li>
<li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.user %></a></li> <li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.user %></a></li>
<li class="homepageNewsType fl">发布作业</li> <li class="homepageNewsType fl">发布作业</li>
<li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey"> <li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey">
@ -43,7 +43,7 @@
<% end %> <% end %>
<% if ucm.course_message_type == "Poll" %> <% if ucm.course_message_type == "Poll" %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><img src="images/newsPortrait.png" width="35" height="35" /></a></li> <li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><%= image_tag(url_to_avatar(ucm.course_message.user), :width => "30", :height => "30") %></a></li>
<li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.user %></a></li> <li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.user %></a></li>
<li class="homepageNewsType fl">发布问卷</li> <li class="homepageNewsType fl">发布问卷</li>
<li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey"> <li class="homepageNewsContent fl"><a href="javascript:void(0);" class="newsGrey">
@ -53,7 +53,7 @@
<% end %> <% end %>
<% if ucm.course_message_type == "Message" %> <% if ucm.course_message_type == "Message" %>
<ul class="homepageNewsList fl"> <ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><img src="images/newsPortrait.png" width="35" height="35" /></a></li> <li class="homepageNewsPortrait fl"><a href="javascript:void(0);"><%= image_tag(url_to_avatar(ucm.course_message.author), :width => "30", :height => "30") %></a></li>
<li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.author %></a></li> <li class="homepageNewsPublisher fl"><a href="javascript:void(0);" class="newsBlue"><%= ucm.course_message.author %></a></li>
<% if ucm.course_message.parent_id.nil? %> <% if ucm.course_message.parent_id.nil? %>
<li class="homepageNewsType fl">发布帖子</li> <li class="homepageNewsType fl">发布帖子</li>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -597,6 +597,9 @@ a.newsGrey {color:#4b4b4b;}
a.newsGrey:hover {color:#000000;} a.newsGrey:hover {color:#000000;}
a.newsBlue {color:#15bccf;} a.newsBlue {color:#15bccf;}
a.newsBlue:hover {color:#0781b4;} a.newsBlue:hover {color:#0781b4;}
a.resourcesGrey {font-size:12px; color:#888888;}
a.resourcesGrey:hover {font-size:12px; color:#15bccf;}
/***** Flash & error messages ****/ /***** Flash & error messages ****/
#errorExplanation, div.flash, .nodata, .warning, .conflict { #errorExplanation, div.flash, .nodata, .warning, .conflict {
@ -641,4 +644,8 @@ div.flash.warning, .conflict {
#errorExplanation h2, #errorExplanation p { display: none; } #errorExplanation h2, #errorExplanation p { display: none; }
.conflict-details {font-size:80%;} .conflict-details {font-size:80%;}
/***** end Flash & error messages ****/ /***** end Flash & error messages ****/
/*消息铃铛样式*/
.navHomepageNews {width:30px; display:block; float:right; margin-top:4px; position:relative; margin-right: 8px;}
.newsActive {width:6px; height:6px; border-radius:50%; border:2px solid #ffffff; background-color:#ff0000; position:absolute; left:20px; top:8px;z-index:999}

Loading…
Cancel
Save