- <%= ma.forge_message.content.html_safe %>
+ <%= link_to ma.forge_message.content.html_safe, project_boards_path(ma.forge_message.project,
+ :parent_id => ma.forge_message.parent_id ? ma.forge_message.parent_id : ma.forge_message.id,
+ :topic_id => ma.forge_message.id), :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}",
+ :onmouseover => "message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))" %>
+
<% end %>
@@ -278,8 +504,14 @@
<% end %>
@@ -298,16 +530,28 @@
<% if ma.memo.parent_id.nil? %>
- <%= ma.memo.content.html_safe %>
+
+
标题:<%= ma.memo.subject %>
+ <% unless ma.memo.content.nil? %>
+
内容:
+
<%= ma.memo.content.html_safe %>
+ <% end %>
<% end %>
<%= time_tag(ma.memo.created_at).html_safe %>
@@ -330,7 +574,7 @@
:onmouseover =>"message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
-
+
<%= ma.journals_for_message.notes.html_safe %>
<%= time_tag(ma.journals_for_message.created_on).html_safe %>
@@ -338,30 +582,6 @@
<% end %>
<% end %>
- <%# 系统消息 %>
- <% if ma.class == SystemMessage %>
-
- -
-
-
- <%=image_tag("/images/logo.png",width:"30px", height: "30px",class: "mt3")%>
-
-
-
- - Trustie平台发布新消息:
- -
- <%= link_to ma.content.html_safe, user_message_path(User.current, :type => "system_messages"),
- :class => "#{params[:type]=="unviewed" ? "newsBlack" : "newsRed"}",
- :onmouseover =>"message_titile_show($(this),event);",
- :onmouseout => "message_titile_hide($(this));"
- %>
-
-
- <%= ma.content.html_safe%>
-
- - <%= time_tag(ma.created_at).html_safe %>
-
- <% end %>
<% end %>
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
@@ -377,15 +597,32 @@
diff --git a/app/views/users/user_system_messages.html.erb b/app/views/users/user_system_messages.html.erb
new file mode 100644
index 000000000..3b8bd9fb6
--- /dev/null
+++ b/app/views/users/user_system_messages.html.erb
@@ -0,0 +1,58 @@
+
+
+<% @sytem_messages.each do |system_message| %>
+
+
+
+ <%= image_tag("/images/logo.png", :width => "42", :height => "42",class: "mt3") %>
+
+
+
+ Trustie平台 发布了系统消息:
+ <%= system_message.subject.nil? ? "系统消息" : system_message.subject %>
+
+
+
+ <%= system_message.content.nil? ? system_message.description.html_safe : system_message.content.html_safe %>
+
+
+
截止时间:<%= format_time(system_message.created_at) %>
+
+
+
+
+<% end %>
+
+ <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
+
\ No newline at end of file
diff --git a/config/configuration.yml b/config/configuration.yml
index af68515eb..87a54a976 100644
--- a/config/configuration.yml
+++ b/config/configuration.yml
@@ -103,7 +103,7 @@ default:
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
- autologin_cookie_name: "autologin_trustie"
+ autologin_cookie_name:
autologin_cookie_path:
autologin_cookie_secure:
@@ -197,16 +197,10 @@ default:
#max_concurrent_ajax_uploads: 2
#pic_types: "bmp,jpeg,jpg,png,gif"
- repository_root_path: '/tmp/htdocs'
-
- judge_server: 'http://judge.trustie.net/'
-
# specific configuration options for production environment
# that overrides the default ones
production:
- judge_server: 'http://192.168.80.21:8080/'
- repository_root_path: '/home/pdl/redmine-2.3.2-0/apache2/htdocs'
- cookie_domain: ".trustie.net"
+ # CJK support
rmagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
email_delivery:
delivery_method: :smtp
diff --git a/config/locales/mailers/zh.yml b/config/locales/mailers/zh.yml
index 211f2e62d..c2dd5c7e0 100644
--- a/config/locales/mailers/zh.yml
+++ b/config/locales/mailers/zh.yml
@@ -24,3 +24,7 @@ zh:
mail_course_title_userin: "在课程"
mail_course_homework_active: "中发布了作业"
mail_attention: "请您关注!"
+ mail_homework_endtime: "作业截止时间快到了!"
+ mail_homework: "作业:"
+ mail_anonymous_comment_close: "作业匿评已经关闭!"
+ mail_anonymous_comment_open: "作业匿评已经开启!"
\ No newline at end of file
diff --git a/config/locales/projects/zh.yml b/config/locales/projects/zh.yml
index fe26aee1d..599b51c30 100644
--- a/config/locales/projects/zh.yml
+++ b/config/locales/projects/zh.yml
@@ -347,7 +347,7 @@ zh:
#
# 邀请
#
- label_invite_new_user: "发送邮件邀请新用户"
+ label_invite_new_user: "邀请用户加入项目"
label_invite_join: 邀请加入
label_invite_email_tips: 输入好友的邮箱地址,Trustie会自动为该好友注册平台账号!
notice_registed_error: 您输入的邮箱地址为空或者该邮箱已被注册!
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index d2fa502b9..69288d933 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -52,6 +52,8 @@ zh:
notice_not_authorized_archived_project: 要访问的项目已经归档。
notice_not_authorized_message: 您访问的消息不存在!
notice_email_sent: "邮件已发送至 %{value}"
+ notice_email_login_used: 无法自动为该邮箱注册新用户,该邮箱地址已经有人作为登录名使用!
+ notice_email_invited: 已经向该邮箱发送过邀请,正在等待对方的回复,三小时后您可以再次发送邀请!
notice_email_error: "发送邮件时发生错误 (%{value})"
notice_feeds_access_key_reseted: 您的RSS存取键已被重置。
notice_api_access_key_reseted: 您的API访问键已被重置。
diff --git a/config/routes.rb b/config/routes.rb
index 756f744ae..409a04b20 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -390,6 +390,7 @@ RedmineApp::Application.routes.draw do
match 'users/:id/user_projects', :to => 'users#user_projects', :via => :get
#消息
match 'users/:id/user_messages', :to => 'users#user_messages', :via => :get, :as => "user_message"
+ match 'users/:id/user_system_messages', :to => 'users#user_system_messages', :via => :get, :as => "user_system_messages"
#match 'users/:id/user_messages/:homework', :to => 'users#user_messages_homework', :via => :get, :as => "user_message_homewrok"
@@ -446,7 +447,7 @@ RedmineApp::Application.routes.draw do
get 'feedback', :action => 'feedback', :as => 'project_feedback'
get 'watcherlist', :action=> 'watcherlist'
- get 'invite_members', :action=> 'invite_members'
+ # get 'invite_members', :action=> 'invite_members'
get 'invite_members_by_mail', :action=> 'invite_members_by_mail'
# get 'dts_repos', :aciton => 'dts_repos'
get 'send_mail_to_member', :action => 'send_mail_to_member'
diff --git a/db/migrate/20150914063751_add_description_to_system_message.rb b/db/migrate/20150914063751_add_description_to_system_message.rb
new file mode 100644
index 000000000..9cc9e4172
--- /dev/null
+++ b/db/migrate/20150914063751_add_description_to_system_message.rb
@@ -0,0 +1,5 @@
+class AddDescriptionToSystemMessage < ActiveRecord::Migration
+ def change
+ add_column :system_messages, :description, :text
+ end
+end
diff --git a/db/migrate/20150915063302_add_mail_to_invite_list.rb b/db/migrate/20150915063302_add_mail_to_invite_list.rb
new file mode 100644
index 000000000..800b5abd4
--- /dev/null
+++ b/db/migrate/20150915063302_add_mail_to_invite_list.rb
@@ -0,0 +1,5 @@
+class AddMailToInviteList < ActiveRecord::Migration
+ def change
+ add_column :invite_lists, :mail, :string
+ end
+end
diff --git a/db/migrate/20150917081214_add_subject_to_system_message.rb b/db/migrate/20150917081214_add_subject_to_system_message.rb
new file mode 100644
index 000000000..69cdd2a63
--- /dev/null
+++ b/db/migrate/20150917081214_add_subject_to_system_message.rb
@@ -0,0 +1,5 @@
+class AddSubjectToSystemMessage < ActiveRecord::Migration
+ def change
+ add_column :system_messages, :subject, :string
+ end
+end
diff --git a/db/migrate/20150918063404_normal_homework_type.rb b/db/migrate/20150918063404_normal_homework_type.rb
new file mode 100644
index 000000000..0d70d94be
--- /dev/null
+++ b/db/migrate/20150918063404_normal_homework_type.rb
@@ -0,0 +1,9 @@
+class NormalHomeworkType < ActiveRecord::Migration
+ def up
+ HomeworkCommon.where("homework_type = 0").update_all(:homework_type => 1)
+ end
+
+ def down
+ HomeworkCommon.where("homework_type = 0").update_all(:homework_type => 1)
+ end
+end
diff --git a/db/migrate/20150918134804_add_secret_key_to_forge_message.rb b/db/migrate/20150918134804_add_secret_key_to_forge_message.rb
new file mode 100644
index 000000000..1de5a8ae9
--- /dev/null
+++ b/db/migrate/20150918134804_add_secret_key_to_forge_message.rb
@@ -0,0 +1,5 @@
+class AddSecretKeyToForgeMessage < ActiveRecord::Migration
+ def change
+ add_column :forge_messages, :secret_key, :string
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index a3c8277bb..90f814ea2 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20150917071652) do
+ActiveRecord::Schema.define(:version => 20150918134804) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -476,6 +476,13 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
+ create_table "discuss_demos", :force => true do |t|
+ t.string "title"
+ t.text "body"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
create_table "documents", :force => true do |t|
t.integer "project_id", :default => 0, :null => false
t.integer "category_id", :default => 0, :null => false
@@ -490,23 +497,26 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
add_index "documents", ["created_on"], :name => "index_documents_on_created_on"
add_index "documents", ["project_id"], :name => "documents_project_id"
- create_table "dts", :force => true do |t|
- t.string "IPLineCode"
- t.string "Description"
- t.string "Num"
- t.string "Variable"
- t.string "TraceInfo"
- t.string "Method"
+ create_table "dts", :primary_key => "Num", :force => true do |t|
+ t.string "Defect", :limit => 50
+ t.string "Category", :limit => 50
t.string "File"
- t.string "IPLine"
- t.string "Review"
- t.string "Category"
- t.string "Defect"
- t.string "PreConditions"
- t.string "StartLine"
+ t.string "Method"
+ t.string "Module", :limit => 20
+ t.string "Variable", :limit => 50
+ t.integer "StartLine"
+ t.integer "IPLine"
+ t.string "IPLineCode", :limit => 200
+ t.string "Judge", :limit => 15
+ t.integer "Review", :limit => 1
+ t.string "Description"
+ t.text "PreConditions", :limit => 2147483647
+ t.text "TraceInfo", :limit => 2147483647
+ t.text "Code", :limit => 2147483647
t.integer "project_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.integer "id", :null => false
end
create_table "enabled_modules", :force => true do |t|
@@ -565,6 +575,7 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
t.integer "viewed"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
+ t.string "secret_key"
end
create_table "forums", :force => true do |t|
@@ -609,11 +620,12 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
t.text "description"
t.date "publish_time"
t.date "end_time"
- t.integer "homework_type", :default => 1
+ t.integer "homework_type", :default => 1
t.string "late_penalty"
t.integer "course_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ t.integer "teacher_priority", :default => 1
end
create_table "homework_detail_manuals", :force => true do |t|
@@ -675,6 +687,7 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
+ t.string "mail"
end
create_table "issue_categories", :force => true do |t|
@@ -906,7 +919,6 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
t.datetime "created_on"
t.integer "comments_count", :default => 0, :null => false
t.integer "course_id"
- t.datetime "updated_on"
end
add_index "news", ["author_id"], :name => "index_news_on_author_id"
@@ -1352,8 +1364,10 @@ ActiveRecord::Schema.define(:version => 20150917071652) do
create_table "system_messages", :force => true do |t|
t.integer "user_id"
t.string "content"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ t.text "description"
+ t.string "subject"
end
create_table "taggings", :force => true do |t|
diff --git a/lib/tasks/homework_endtime.rake b/lib/tasks/homework_endtime.rake
index 9fef281a3..1a400dc32 100644
--- a/lib/tasks/homework_endtime.rake
+++ b/lib/tasks/homework_endtime.rake
@@ -10,6 +10,8 @@ namespace :homework_endtime do
if homework_common.end_time.day - Date.today.day < 2 && homework_common.end_time.year == Date.today.year
homework_common.course.student.each do |s|
homework_common.course_messages << CourseMessage.new(:user_id => s.student_id, :course_id => homework_common.course_id, :viewed => false, :status => true)
+ # 发送邮件通知
+ Mailer.homework_endtime__added(homework_common, s.student_id).deliver
end
end
end
diff --git a/public/javascripts/jQuery.autoMail.js b/public/javascripts/jQuery.autoMail.js
index bf3519561..949476fcc 100644
--- a/public/javascripts/jQuery.autoMail.js
+++ b/public/javascripts/jQuery.autoMail.js
@@ -17,137 +17,137 @@
focusColor: "#333"
//blurColor: "#999
};
- var settings = $.extend({}, defaults, options || {});
- //页面装载CSS样式
- if(settings.autoClass && $("#mailListAppendCss").size() === 0){
- $('').appendTo($("head"));
- }
- var cb = settings.boxClass, cl = settings.listClass, cf = settings.focusClass, cm = settings.markCalss; //插件的class变量
- var z = settings.zIndex, newArr = mailArr = settings.mailArr, hint = settings.textHint, text = settings.hintText, fc = settings.focusColor, bc = settings.blurColor;
+// var settings = $.extend({}, defaults, options || {});
+// //页面装载CSS样式
+// if(settings.autoClass && $("#mailListAppendCss").size() === 0){
+// $('').appendTo($("head"));
+// }
+// var cb = settings.boxClass, cl = settings.listClass, cf = settings.focusClass, cm = settings.markCalss; //插件的class变量
+// var z = settings.zIndex, newArr = mailArr = settings.mailArr, hint = settings.textHint, text = settings.hintText, fc = settings.focusColor, bc = settings.blurColor;
//创建邮件内部列表内容
- $.createHtml = function(str, arr, cur){
- var mailHtml = "";
- if($.isArray(arr)){
- $.each(arr, function(i, n){
- if(i === cur){
- mailHtml += '
'+str+'@'+arr[i]+'
';
- }else{
- mailHtml += '
'+str+'@'+arr[i]+'
';
- }
- });
- }
- return mailHtml;
- };
+// $.createHtml = function(str, arr, cur){
+// var mailHtml = "";
+// if($.isArray(arr)){
+// $.each(arr, function(i, n){
+// if(i === cur){
+// mailHtml += '
'+str+'@'+arr[i]+'
';
+// }else{
+// mailHtml += '
'+str+'@'+arr[i]+'
';
+// }
+// });
+// }
+// return mailHtml;
+// };
//一些全局变量
var index = -1, s;
- $(this).each(function(){
- var that = $(this), i = $(".justForJs").size();
- if(i > 0){ //只绑定一个文本框
- return;
- }
- var w = that.outerWidth(), h = that.outerHeight(); //获取当前对象(即文本框)的宽高
- //样式的初始化
- that.wrap('
')
- .before('
');
- var x = $("#mailListBox_" + i), liveValue; //列表框对象
- that.focus(function(){
- //父标签的层级
- $(this).css("color", fc).parent().css("z-index", z);
- //提示文字的显示与隐藏
- if(hint && text){
- var focus_v = $.trim($(this).val());
- if(focus_v === text){
- $(this).val("");
- }
- }
- //键盘事件
- $(this).keyup(function(e){
- s = v = $.trim($(this).val());
- if(/@/.test(v)){
- s = v.replace(/@.*/, "");
- }
- if(v.length > 0){
- //如果按键是上下键
- if(e.keyCode === 38){
- //向上
- if(index <= 0){
- index = newArr.length;
- }
- index--;
- }else if(e.keyCode === 40){
- //向下
- if(index >= newArr.length - 1){
- index = -1;
- }
- index++;
- }else if(e.keyCode === 13){
- //回车
- if(index > -1 && index < newArr.length){
- //如果当前有激活列表
- $(this).val($("#mailList_"+index).text());
- }
- }else{
- if(/@/.test(v)){
- index = -1;
- //获得@后面的值
- //s = v.replace(/@.*/, "");
- //创建新匹配数组
- var site = v.replace(/.*@/, "");
- newArr = $.map(mailArr, function(n){
- var reg = new RegExp(site);
- if(reg.test(n)){
- return n;
- }
- });
- }else{
- newArr = mailArr;
- }
- }
- x.html($.createHtml(s, newArr, index)).css("left", 0);
- if(e.keyCode === 13){
- //回车
- if(index > -1 && index < newArr.length){
- //如果当前有激活列表
- x.css("left", "-6000px");
- }
- }
- }else{
- x.css("left", "-6000px");
- }
- }).blur(function(){
- if(hint && text){
- var blur_v = $.trim($(this).val());
- if(blur_v === ""){
- $(this).val(text);
- }
- }
- $(this).css("color", bc).unbind("keyup").parent().css("z-index",0);
- x.css("left", "-6000px");
-
- }).keydown(function(event){
- if(event.keyCode == 13){
- return false;
- }
- });
- //鼠标经过列表项事件
- //鼠标经过
- $(".mailHover").on("mouseover", function(){
- index = Number($(this).attr("id").split("_")[1]);
- liveValue = $("#mailList_"+index).text();
- x.children("." + cf).removeClass(cf).addClass(cl);
- $(this).addClass(cf).removeClass(cl);
- });
- $(".mailHover").on("click", function(){
- $("#mail").val($(this).html());
- });
-
-
- });
-
- x.bind("mousedown", function(){
- that.val(liveValue);
- });
- });
+// $(this).each(function(){
+// var that = $(this), i = $(".justForJs").size();
+// if(i > 0){ //只绑定一个文本框
+// return;
+// }
+// var w = that.outerWidth(), h = that.outerHeight(); //获取当前对象(即文本框)的宽高
+// //样式的初始化
+// that.wrap('
')
+// .before('
');
+// var x = $("#mailListBox_" + i), liveValue; //列表框对象
+// that.focus(function(){
+// //父标签的层级
+// $(this).css("color", fc).parent().css("z-index", z);
+// //提示文字的显示与隐藏
+// if(hint && text){
+// var focus_v = $.trim($(this).val());
+// if(focus_v === text){
+// $(this).val("");
+// }
+// }
+// //键盘事件
+// $(this).keyup(function(e){
+// s = v = $.trim($(this).val());
+// if(/@/.test(v)){
+// s = v.replace(/@.*/, "");
+// }
+// if(v.length > 0){
+// //如果按键是上下键
+// if(e.keyCode === 38){
+// //向上
+// if(index <= 0){
+// index = newArr.length;
+// }
+// index--;
+// }else if(e.keyCode === 40){
+// //向下
+// if(index >= newArr.length - 1){
+// index = -1;
+// }
+// index++;
+// }else if(e.keyCode === 13){
+// //回车
+// if(index > -1 && index < newArr.length){
+// //如果当前有激活列表
+// $(this).val($("#mailList_"+index).text());
+// }
+// }else{
+// if(/@/.test(v)){
+// index = -1;
+// //获得@后面的值
+// //s = v.replace(/@.*/, "");
+// //创建新匹配数组
+// var site = v.replace(/.*@/, "");
+// newArr = $.map(mailArr, function(n){
+// var reg = new RegExp(site);
+// if(reg.test(n)){
+// return n;
+// }
+// });
+// }else{
+// newArr = mailArr;
+// }
+// }
+// x.html($.createHtml(s, newArr, index)).css("left", 0);
+// if(e.keyCode === 13){
+// //回车
+// if(index > -1 && index < newArr.length){
+// //如果当前有激活列表
+// x.css("left", "-6000px");
+// }
+// }
+// }else{
+// x.css("left", "-6000px");
+// }
+// }).blur(function(){
+// if(hint && text){
+// var blur_v = $.trim($(this).val());
+// if(blur_v === ""){
+// $(this).val(text);
+// }
+// }
+// $(this).css("color", bc).unbind("keyup").parent().css("z-index",0);
+// x.css("left", "-6000px");
+//
+// }).keydown(function(event){
+// if(event.keyCode == 13){
+// return false;
+// }
+// });
+// //鼠标经过列表项事件
+// //鼠标经过
+// $(".mailHover").on("mouseover", function(){
+// index = Number($(this).attr("id").split("_")[1]);
+// liveValue = $("#mailList_"+index).text();
+// x.children("." + cf).removeClass(cf).addClass(cl);
+// $(this).addClass(cf).removeClass(cl);
+// });
+// $(".mailHover").on("click", function(){
+// $("#mail").val($(this).html());
+// });
+//
+//
+// });
+//
+// x.bind("mousedown", function(){
+// that.val(liveValue);
+// });
+// });
};
})(jQuery);
\ No newline at end of file
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
index ac983479a..a08c7760b 100644
--- a/public/stylesheets/application.css
+++ b/public/stylesheets/application.css
@@ -9,6 +9,10 @@ h4, .wiki h3 {font-size: 13px;}
h4 {border-bottom: 1px dotted #bbb;}
li{list-style-type:none;}
/*huang*/
+
+.hwork_input_news{ border:1px solid #64bdd9; height:22px; width:594px; background:#fff; margin-bottom:10px; padding:5px;}
+.ml55{ margin-left:55px;}
+.fl {float:left;}
/*current position*/
.contest_count{
width: 20%;
@@ -2810,4 +2814,4 @@ img.school_avatar {
}
.admin_message_warn{font-size: 12px;color: red;}
-a.btn_message_free{ background:#15BCCF; display:block; text-align:center; color:#fff; padding:3px 0; width:60px; margin-bottom:10px;}
\ No newline at end of file
+a.btn_message_free{ background:#15BCCF; display:block; text-align:center; color:#fff; padding:3px 0; width:60px; margin-bottom:10px;margin-left: 58px;}
diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css
index c233bcbe8..144589d5b 100644
--- a/public/stylesheets/new_user.css
+++ b/public/stylesheets/new_user.css
@@ -68,6 +68,7 @@ h4{ font-size:14px; color:#3b3b3b;}
.ml10{ margin-left:10px;}
.ml15{ margin-left:15px;}
.ml20{ margin-left:20px;}
+.ml36{ margin-left:36px; }
.ml40{ margin-left:40px;}
.ml45{ margin-left:45px;}
.ml55{ margin-left:55px;}
@@ -473,7 +474,7 @@ a.homepageSearchIcon:hover {background:url(../images/nav_icon.png) -49px 3px no-
.homepageFollow {background:url(../images/homepage_icon.png) -10px -8px no-repeat; width:20px; height:20px; position:absolute; right:9px; top:9px;}
.homepageFollowCancel {background:url(../images/homepage_icon.png) -178px -8px no-repeat; width:20px; height:20px; position:absolute; right:9px; top:9px;}
.homepageEditProfile {width:16px; height:16px; border-radius:2px; background-color:#888888; position:absolute; right:5px; bottom:5px; font-size:12px; filter:alpha(opacity=50); -moz-opacity:0.5; opacity: 0.5;}
-.homepageEditProfileIcon {background:url(../images/homepage_icon.png) -14px -37px no-repeat; width:20px; height:20px; display:block;}
+.homepageEditProfileIcon {background:url(../images/homepage_icon2.png) -14px -37px no-repeat; width:20px; height:20px; display:block;}
.homepageImageName {font-size:16px; color:#484848; height:25px; float:left; font-weight: bold; max-width:90px;overflow: hidden; white-space:nowrap; text-overflow:ellipsis;}
.homepageImageSexMan {top:116px; left:5px; width:20px; height:20px; background:url(../images/homepage_icon.png) -10px -112px no-repeat; float:left;}
.homepageImageSexWomen {width: 20px;height: 20px;background: url(../images/homepage_icon.png) -10px -149px no-repeat;float: left;}
@@ -516,6 +517,7 @@ a.homepageMenuText {color:#484848; font-size:16px; margin-left:20px;}
.homepageNewsType {width:110px; padding-left: 5px; font-size:12px; color:#888888; display:block;}
.homepageNewsPubType {width:220px; font-size:12px; color:#888888; display: block;}
.homepageNewsContent {width:365px; max-width:365px; margin-right:10px; font-size:12px; color:#4b4b4b; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;max-height: 49px; }
+.homepageSystenMessageContent {width:291px; max-width:291px; margin-right:10px; font-size:12px; color:#4b4b4b; display:block; overflow:hidden;text-overflow:ellipsis;max-height: 49px; }
.homepageHomeworkContentWarn {width:110px; max-width:365px; margin-right:10px; font-size:12px; color:red; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;max-height: 49px; }
.homepageHomeworkContent {width:245px; max-width:365px; margin-right:10px; font-size:12px; color:#4b4b4b; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;max-height: 49px; }
@@ -553,7 +555,7 @@ a.homepagePostTypeAll {background:url(../images/homepage_icon.png) -185px -308px
a.postTypeGrey {color:#888888;}
a.postTypeGrey:hover {color:#269ac9;}
.homepagePostBrief {width:710px; margin:0px auto; position:relative;}
-.homepagePostPortrait {float:left; width:50px;}
+.homepagePostPortrait {float:left; width:42px;}
.homepagePostDes {float:left; width:645px; margin-left:15px;}
.homepagePostTo {font-size:14px; color:#484848; margin-bottom:5px;}
.homepagePostTitle {font-size:14px; color:#484848; margin-bottom:5px; font-weight:bold;}
@@ -990,8 +992,8 @@ img.ui-datepicker-trigger {
text-overflow: ellipsis;
margin-bottom: 3px;
}
-.message_title{border: 1px solid #D4D4D4;padding: 0.6em;margin-left: 1.4em;margin-right: 0.4em;border-radius: 4px;font-family: "Microsoft YaHei";background-size: 100% 100%;margin-bottom: 5px;background-color: #E8E8E8;}
-.message_title_red{border: 1px solid #D4D4D4;padding: 0.6em;margin-left: 1.4em;margin-right: 0.4em;border-radius: 4px;font-family: "Microsoft YaHei";background-size: 100% 100%;margin-bottom: 5px;background-color: #E8E8E8;color: red}
+.message_title{border: 1px solid #9C9C9C;padding: 0.6em;margin-left: 1.4em;margin-right: 0.4em;border-radius: 4px;font-family: "Microsoft YaHei";background-size: 100% 100%;margin-bottom: 5px;background-color: #fff; max-width:400px;word-wrap:break-word; word-break:break-all;}
+.message_title_red{border: 1px solid #484848;padding: 0.6em;margin-left: 1.4em;margin-right: 0.4em;border-radius: 4px;font-family: "Microsoft YaHei";background-size: 100% 100%;margin-bottom: 5px;background-color: #fff;background-image: -moz-linear-gradient(top, #fff, #E0E0E0);}
.description{display: none !important;}
.ispublic-label{display: none !important;}
@@ -1121,7 +1123,8 @@ a:hover.tijiao{ background:#0f99a9;}
#cboxPrevious{position:absolute; bottom:0px; left:0; color:#444;}
#cboxNext{position:absolute; bottom:0px; left:63px; color:#444;}
#cboxClose{position:absolute; bottom:0; right:0; display:block; color:#444;}
-
+.system_message_style {line-height: 19.1px; max-width: 681px;overflow:hidden; work-wrap: break-word; word-break: break-all;}
+.system_message_style img {max-width: 100%;}
/*20150906关联项目LB*/
a.RalationIcon{ background: url(../images/homepage_icon.png) -183px -396px no-repeat; width:70px; height:20px; display:block; padding-left:20px; color:#888888;}
a:hover.RalationIcon{background: url(../images/homepage_icon.png) -183px -428px no-repeat; color:#3598db;}
diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css
index a4eaa7f0a..bee965a90 100644
--- a/public/stylesheets/project.css
+++ b/public/stylesheets/project.css
@@ -51,6 +51,100 @@ a:hover.icon_removem{background:url(../images/img_floatbox.png) -22px -61px no-
a.btn_free{ background:#ff5722; display:block; text-align:center; color:#fff; padding:3px 0; width:80px; margin-bottom:10px;}
a:hover.btn_free{ background:#d63502;}
.status_inviter{color: #3CA5C6;font-weight: bold; font-size: 14px }
+/*邮件邀请新列表*/
+.section{background-color: #FFF;
+ border-width: 1px;
+ border-style: solid;
+ -moz-border-top-colors: none;
+ -moz-border-right-colors: none;
+ -moz-border-bottom-colors: none;
+ -moz-border-left-colors: none;
+ border-image: none;
+ border-color: #DAE1E8 #D3DDE5 #B6C8D8;
+ box-shadow: 0px 1px 0px 0px rgba(56, 61, 72, 0.09);
+ margin-bottom: 14px;
+ border-radius: 3px;
+ margin-top: 20px;}
+
+.section .section-header {
+ /*font-size: 24px;*/
+ font-weight: 200;
+ line-height: 32px;
+}
+
+.section .section-header div.desc {
+ font-size: 14px;
+ font-weight: bold;
+ line-height: 25px;
+ padding: 20px 15px;
+ color: #333;
+}
+
+.invitations-records {
+ border-top: 1px solid #DFE4E8;
+}
+
+.invitations-records table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+.invitations-records tr {
+ border-bottom: 1px solid #EAEDED;
+}
+.invitations-records td.email {
+ width: 178px;
+}
+.invitations-records td {
+ transition-property: background;
+ transition-duration: 0.3s;
+}
+.invitations-records td, .invitations-records th {
+ padding: 15px;
+ position: relative;
+}
+/*th, td {*/
+ /*text-align: left;*/
+ /*vertical-align: top;*/
+/*}*/
+.invitations-records td.email {
+ max-width: 200px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ width:200px;
+}
+.invitations-records td.text-name {
+ max-width: 200px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ width: 200px;
+}
+.invitations-records td.text-name span.unactive {
+ max-width: 200px;
+ color: #888;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ width: 200px;
+}
+.invitations-records td.text-status {
+ max-width: 290px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ color: #7CAD37;
+ font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
+}
+.invitations-records td.text-time {
+ max-width: 80px;
+ font-size: 12px;
+ color: #888;
+ display: block;
+ text-align: right;
+ width: 80px;
+}
/*成员邀请*/
.invi_search{ }
.invi_search_input{ border:1px solid #15bccf; width:180px; height:24px; color:#9b9b9b; padding-left:5px; margin-bottom:10px;}
diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css
index dc5ab607f..4f44a8b60 100644
--- a/public/stylesheets/public.css
+++ b/public/stylesheets/public.css
@@ -150,6 +150,7 @@ a:hover.c_orange{color: #d33503;}
a.c_lorange{color:#ff9900;}
a:hover.c_lorange{color:#fff;}
a.c_blue{ color:#15bccf;}
+a.c_eblue{color: #3784D3}
a.c_setting_blue{color: #0781B4}
a.c_dblue{ color:#09658c;}
a:hover.c_dblue{ color:#15bccf;}
diff --git a/spec/factories/system_messages.rb b/spec/factories/system_messages.rb
index 7bcc27422..a95505cfd 100644
--- a/spec/factories/system_messages.rb
+++ b/spec/factories/system_messages.rb
@@ -1,5 +1,5 @@
FactoryGirl.define do
- factory :system_message do
+ factory :system_messages do
id 1
user_id 1
content "MyString"