Merge branch 'dev_hjq' into szzh

guange_homework
huang 10 years ago
commit 04c7435228

@ -113,12 +113,8 @@ class IssuesController < ApplicationController
def show def show
# 当前用户查看指派给他的缺陷消息,则设置消息为已读 # 当前用户查看指派给他的缺陷消息,则设置消息为已读
query = @issue.forge_messages query = ForgeMessage.where("forge_message_type =? and user_id =? and forge_message_id =?", "Issue", User.current, @issue).first
query.each do |m| query.update_attribute(:viewed, true) unless query.nil?
if m.user_id == User.current.id
m.update_attribute(:viewed, true)
end
end
# 缺陷状态更新 # 缺陷状态更新
query_journals = @issue.journals query_journals = @issue.journals
query_journals.each do |query_journal| query_journals.each do |query_journal|

@ -112,10 +112,17 @@ class UsersController < ApplicationController
case params[:type] case params[:type]
when nil when nil
@message_alls = [] @message_alls = []
messages = MessageAll.where("user_id =?" ,@user).order("created_at desc") system_message_types = MessageAll.where("message_type =?", "SystemMessage").order("created_at desc")
messages = MessageAll.where("user_id =? and message_type !=?" ,@user, "SystemMessage").order("created_at desc")
messages.each do |message_all| messages.each do |message_all|
@message_alls << message_all.message @message_alls << message_all.message
end end
# 系统消息需要给每个人发送,之所以这样做,可以避免遍历系统所有用户
system_message_types.each do |system_message_type|
@message_alls << system_message_type.message
end
# 取出所有符合条件的按照创建时间排序
@message_alls = @message_alls.sort {|a,b| b.created_at <=> a.created_at}
when 'unviewed' when 'unviewed'
@message_alls = [] @message_alls = []
messages = MessageAll.where("user_id =?", @user).order("created_at desc") messages = MessageAll.where("user_id =?", @user).order("created_at desc")
@ -187,12 +194,8 @@ class UsersController < ApplicationController
message_new_time.onclick_time = Time.now message_new_time.onclick_time = Time.now
message_new_time.save message_new_time.save
else else
# 24小时内显示
contrast_time = Time.now - 86400
message_time.update_attributes(:onclick_time => Time.now) message_time.update_attributes(:onclick_time => Time.now)
end end
# 24小时内显示系统消息
@user_system_messages = SystemMessage.where("created_at >?", contrast_time).order("created_at desc")
end end
# 消息设置为已读 # 消息设置为已读

@ -5,4 +5,15 @@ class SystemMessage < ActiveRecord::Base
validates :subject, presence: true validates :subject, presence: true
# validates :description, presence: true # validates :description, presence: true
validates_length_of :description, maximum: 10000 validates_length_of :description, maximum: 10000
has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy
# 系统消息放置总消息列表
after_create :add_system_message
def add_system_message
if MessageAll.where("message_type = '#{self.class.to_s}' and message_id = '#{self.id}'").first.nil?
self.message_alls << MessageAll.new(:user_id => self.user_id)
end
end
end end

@ -44,11 +44,11 @@
} }
function verifyFirstName() { function verifyLastName() {
var first_name = $.trim($('#first_name').val()); var last_name = $.trim($('#last_name').val());
if(first_name.length > 30) if(last_name.length > 30)
{ {
$("#valid_email").text("用户名字过长,最长为30个字符"); $("#valid_email").text("用户姓氏过长,最长为30个字符");
return false; return false;
} }
else else
@ -59,11 +59,11 @@
} }
function verifyLastName() { function verifyFirstName() {
var last_name = $.trim($('#last_name').val()); var first_name = $.trim($('#first_name').val());
if(last_name.length > 30) if(first_name.length > 30)
{ {
$("#valid_email").text("用户姓氏过长,最长为30个字符"); $("#valid_email").text("用户名字过长,最长为30个字符");
return false; return false;
} }
else else
@ -76,7 +76,7 @@
function senderEmail(obj) function senderEmail(obj)
{ {
if(verifyAddress()) if(verifyAddress() && verifyFirstName() && verifyLastName() )
{ {
obj.parent().submit(); obj.parent().submit();
} }
@ -110,13 +110,13 @@
<%= text_field_tag 'mail', '', :class => "fb_item fl", :placeholder => l(:label_input_email), :onkeyup => "this.value=this.value.replace(' ','')", :style => "ime-mode:disabled;", :onblur => "verifyAddress(this);" %> <%= text_field_tag 'mail', '', :class => "fb_item fl", :placeholder => l(:label_input_email), :onkeyup => "this.value=this.value.replace(' ','')", :style => "ime-mode:disabled;", :onblur => "verifyAddress(this);" %>
</li> </li>
<li> <li>
<%= text_field_tag 'first_name', '', :class => "fb_item_first_name fl", :placeholder => l(:label_input_email_lastname), :onkeyup => "this.value=this.value.replace(' ','')", :style => "ime-mode:disabled;", :onblur => "verifyLastName(this);" %> <%= text_field_tag 'last_name', '', :class => "fb_item_first_name fl", :placeholder => l(:label_input_email_lastname), :onkeyup => "this.value=this.value.replace(' ','')", :style => "ime-mode:disabled;", :onblur => "verifyLastName(this);" %>
</li> </li>
<li> <li>
<%= text_field_tag 'last_name', '', :class => "fb_item_last_name fl", :placeholder => l(:label_input_email_firstname), :onkeyup => "this.value=this.value.replace(' ','')", :style => "ime-mode:disabled;", :onblur => "verifyFirstName(this);" %> <%= text_field_tag 'first_name', '', :class => "fb_item_last_name fl", :placeholder => l(:label_input_email_firstname), :onkeyup => "this.value=this.value.replace(' ','')", :style => "ime-mode:disabled;", :onblur => "verifyFirstName(this);" %>
</li> </li>
<li> <li>
<select class="fb_item_gender fl" id="gender" name="gender"><option value="0">男</option><option value="1">女</option></select> <select class="fb_item_gender fl" id="gender" name="gender"><option value="">性别</option><option value="0">男</option><option value="1">女</option></select>
</li> </li>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>

@ -0,0 +1,30 @@
<% if ma.class == SystemMessage %>
<%# @user_system_messages.each do |usm| %>
<ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl">
<a href="javascript:void(0);"><div class="navHomepageLogo fl"><%= image_tag("/images/logo.png", width: "30px", height: "30px", class: "mt3") %></div></a>
</li>
<li class="homepageNewsPubType fl">
<span class="newsBlue homepageNewsPublisher">Trustie平台</span><span class="homepageNewsType fl">发布新消息:</span>
</li>
<span style="color: red;float: left">【系统消息】</span>
<li class="homepageSystenMessageContent fl">
<%= link_to ma.subject.blank? ? (ma.content.nil? ? ma.description.html_safe : ma.content.html_safe) : ma.subject, user_system_messages_path(User.current),
:id => "content_link_#{ma.id}",
:onmouseover =>"message_titile_show($(this),event);",
:onmouseout => "message_titile_hide($(this));"
%>
</li>
<div style="display:none;" class="message_title_red system_message_style">
<% unless ma.subject.blank? %>
<p><strong>标题:</strong><%= ma.subject %></p>
<% end %>
<% if (!ma.description.blank?) || (!ma.content.blank?) %>
<div class="fl"><strong>内容:</strong></div><div class="ml36"><%= ma.description.nil? ? ma.content.html_safe : ma.description.html_safe %></div>
<% end %>
</div>
<li class="homepageNewsTime fl"><%= time_tag(ma.created_at).html_safe %> </li>
</ul>
<%# end %>
<% end %>

@ -41,40 +41,13 @@
<% end %> <% end %>
</div> </div>
<% end %> <% end %>
<%# 系统消息 %>
<% if params[:type] != 'system_messages' %>
<% @user_system_messages.each do |usm| %>
<ul class="homepageNewsList fl">
<li class="homepageNewsPortrait fl">
<a href="javascript:void(0);"><div class="navHomepageLogo fl"><%= image_tag("/images/logo.png", width: "30px", height: "30px", class: "mt3") %></div></a>
</li>
<li class="homepageNewsPubType fl">
<span class="newsBlue homepageNewsPublisher">Trustie平台</span><span class="homepageNewsType fl">发布新消息:</span>
</li>
<span style="color: red;float: left">【系统消息】</span>
<li class="homepageSystenMessageContent fl">
<%= link_to usm.subject.blank? ? (usm.content.nil? ? usm.description.html_safe : usm.content.html_safe) : usm.subject, user_system_messages_path(User.current),
:id => "content_link_#{usm.id}",
:onmouseover =>"message_titile_show($(this),event);",
:onmouseout => "message_titile_hide($(this));"
%>
</li>
<div style="display:none;" class="message_title_red system_message_style">
<% unless usm.subject.blank? %>
<p><strong>标题:</strong><%= usm.subject %></p>
<% end %>
<% if (!usm.description.blank?) || (!usm.content.blank?) %>
<div class="fl"><strong>内容:</strong></div><div class="ml36"><%= usm.description.nil? ? usm.content.html_safe : usm.description.html_safe %></div>
<% end %>
</div>
<li class="homepageNewsTime fl"><%= time_tag(usm.created_at).html_safe %> </li>
</ul>
<% end %>
<% end %>
<!--总消息列表--> <!--总消息列表-->
<% unless @message_alls.nil? %> <% unless @message_alls.nil? %>
<% @message_alls.each do |ma| %> <% @message_alls.each do |ma| %>
<%# 系统消息 %>
<%= render :partial => 'users/user_message_system', :locals => {:ma => ma} %>
<%# 课程消息 %> <%# 课程消息 %>
<%= render :partial => 'users/user_message_course', :locals => {:ma => ma} %> <%= render :partial => 'users/user_message_course', :locals => {:ma => ma} %>

@ -2025,8 +2025,8 @@ zh:
label_end_time: 截止时间 label_end_time: 截止时间
label_send_email: 确定发送 label_send_email: 确定发送
label_input_email: 请输入邮箱地址(必填) label_input_email: 请输入邮箱地址(必填)
label_input_email_firstname: 请输入用户名字(非必填) label_input_email_firstname: 请输入用户名字(可选)
label_input_email_lastname: 请输入用户姓氏(非必填) label_input_email_lastname: 请输入用户姓氏(可选)
label_input_email_gender: 请输入用户性别 label_input_email_gender: 请输入用户性别
#api end #api end

@ -47,7 +47,7 @@ a:hover.box_close{background:url(../images/img_floatbox.png) -22px 0 no-repeat;}
.fb_item{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:5px; padding-left:5px; width:200px;} .fb_item{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:5px; padding-left:5px; width:200px;}
.fb_item_first_name{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:5px; padding-left:5px; width:150px;margin-left: 10px;} .fb_item_first_name{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:5px; padding-left:5px; width:150px;margin-left: 10px;}
.fb_item_last_name{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:5px; padding-left:5px; width:150px;margin-left: 10px;} .fb_item_last_name{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:5px; padding-left:5px; width:150px;margin-left: 10px;}
.fb_item_gender{ color:#919191; border:1px solid #919191; height:29px; margin-bottom:5px; padding-left:5px; width:48px;margin-left: 10px;} .fb_item_gender{ color:#919191; border:1px solid #919191; height:29px; margin-bottom:5px; padding-left:5px; width:58px;margin-left: 10px;}
a.icon_addm{ background:url(../images/img_floatbox.png) 0 -33px no-repeat; width:16px; height:16px; display:block; margin:5px 0 0 5px;} a.icon_addm{ background:url(../images/img_floatbox.png) 0 -33px no-repeat; width:16px; height:16px; display:block; margin:5px 0 0 5px;}
a:hover.icon_addm{background:url(../images/img_floatbox.png) 0 -61px no-repeat; } a:hover.icon_addm{background:url(../images/img_floatbox.png) 0 -61px no-repeat; }
a.icon_removem{ background:url(../images/img_floatbox.png) -22px -33px no-repeat;width:16px; height:16px; display:block; margin:5px 0 0 5px} a.icon_removem{ background:url(../images/img_floatbox.png) -22px -33px no-repeat;width:16px; height:16px; display:block; margin:5px 0 0 5px}

Loading…
Cancel
Save