Merge branch 'develop' of https://git.trustie.net/jacknudt/trustieforge into develop
This commit is contained in:
commit
8c685f8978
|
@ -89,11 +89,15 @@ module Mobile
|
||||||
tip = 0 #0班级1项目
|
tip = 0 #0班级1项目
|
||||||
type = params[:type]
|
type = params[:type]
|
||||||
result = 1
|
result = 1
|
||||||
|
|
||||||
|
#0回复 1回复的回复
|
||||||
|
reply_type = params[:reply_type]
|
||||||
|
|
||||||
|
update_id = 0
|
||||||
|
|
||||||
if params[:content]!="" && current_user
|
if params[:content]!="" && current_user
|
||||||
case type
|
case type
|
||||||
when "HomeworkCommon"
|
when "HomeworkCommon"
|
||||||
homework_common = HomeworkCommon.find(params[:id])
|
|
||||||
|
|
||||||
#如果是私有的 并且不是成员则不能回复
|
#如果是私有的 并且不是成员则不能回复
|
||||||
# is_public = homework_common.course.is_public
|
# is_public = homework_common.course.is_public
|
||||||
# if is_public == 0 && !current_user.member_of_course?(homework_common.course)
|
# if is_public == 0 && !current_user.member_of_course?(homework_common.course)
|
||||||
|
@ -106,15 +110,29 @@ module Mobile
|
||||||
# result = 2
|
# result = 2
|
||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id])
|
if reply_type == nil || reply_type == 0
|
||||||
if (feedback.errors.empty?)
|
homework_common = HomeworkCommon.find(params[:id])
|
||||||
homework_common.update_column(:updated_at, Time.now)
|
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id])
|
||||||
result = 2
|
if (feedback.errors.empty?)
|
||||||
|
homework_common.update_column(:updated_at, Time.now)
|
||||||
|
result = 2
|
||||||
|
update_id = homework_common.id
|
||||||
|
end
|
||||||
|
else
|
||||||
|
#二级回复
|
||||||
|
reply = JournalsForMessage.find params[:id].to_i
|
||||||
|
homework_common = HomeworkCommon.find reply.jour_id
|
||||||
|
|
||||||
|
options = {:notes => params[:content], :reply_id => reply.user_id,:user_id => current_user.id,:m_parent_id => params[:id].to_i,:m_reply_id => params[:id].to_i}
|
||||||
|
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], reply.jour_id, options)
|
||||||
|
if (feedback.errors.empty?)
|
||||||
|
homework_common.update_column(:updated_at, Time.now)
|
||||||
|
result = 2
|
||||||
|
update_id = homework_common.id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
when "News"
|
when "News"
|
||||||
news = News.find(params[:id])
|
|
||||||
|
|
||||||
# if news.project
|
# if news.project
|
||||||
# if news.project.is_public == false && !current_user.member_of?(news.project)
|
# if news.project.is_public == false && !current_user.member_of?(news.project)
|
||||||
# status = -1
|
# status = -1
|
||||||
|
@ -126,19 +144,28 @@ module Mobile
|
||||||
# tip = 0
|
# tip = 0
|
||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
|
|
||||||
if status == 0
|
if status == 0
|
||||||
comment = Comment.new
|
if reply_type == nil || reply_type == 0
|
||||||
comment.comments = params[:content]
|
news = News.find(params[:id])
|
||||||
comment.author = current_user
|
comment = Comment.new
|
||||||
if news.comments << comment
|
comment.comments = params[:content]
|
||||||
result = 2
|
comment.author = current_user
|
||||||
|
if news.comments << comment
|
||||||
|
result = 2
|
||||||
|
update_id = news.id
|
||||||
|
end
|
||||||
|
else
|
||||||
|
#二级回复
|
||||||
|
comment = Comment.find(params[:id])
|
||||||
|
news = News.find comment.commented_id
|
||||||
|
new_comment = news.comments.build(:author_id => current_user.id, :reply_id => params[:id], :comments => params[:content], :parent_id => comment.id)
|
||||||
|
if new_comment.save
|
||||||
|
result = 2
|
||||||
|
update_id = news.id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
when "Message"
|
when "Message"
|
||||||
message = Message.find(params[:id])
|
|
||||||
board = Board.find(message.board_id)
|
|
||||||
|
|
||||||
# if message.project
|
# if message.project
|
||||||
# if message.project.is_public == false && !current_user.member_of?(message.project)
|
# if message.project.is_public == false && !current_user.member_of?(message.project)
|
||||||
# status = -1
|
# status = -1
|
||||||
|
@ -152,20 +179,26 @@ module Mobile
|
||||||
# end
|
# end
|
||||||
|
|
||||||
if status == 0
|
if status == 0
|
||||||
topic = message.root
|
# if reply_type == nil || reply_type == 0
|
||||||
reply = Message.new
|
message = Message.find(params[:id])
|
||||||
reply.author = current_user
|
board = Board.find(message.board_id)
|
||||||
reply.board = board
|
topic = message.root
|
||||||
reply.content = params[:content]
|
reply = Message.new
|
||||||
reply.parent_id = params[:id]
|
reply.author = current_user
|
||||||
reply.subject = "RE: #{topic.subject}"
|
reply.board = board
|
||||||
if topic.children << reply
|
reply.content = params[:content]
|
||||||
result = 2
|
reply.parent_id = params[:id]
|
||||||
end
|
reply.subject = "RE: #{topic.subject}"
|
||||||
|
if message.children << reply
|
||||||
|
result = 2
|
||||||
|
update_id = topic.id
|
||||||
|
end
|
||||||
|
# else
|
||||||
|
#二级回复
|
||||||
|
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
when "JournalsForMessage"
|
when "JournalsForMessage"
|
||||||
jour = JournalsForMessage.find params[:id]
|
|
||||||
|
|
||||||
# if jour.jour_type == "Project"
|
# if jour.jour_type == "Project"
|
||||||
# if jour.project.is_public == false && !current_user.member_of?(jour.project)
|
# if jour.project.is_public == false && !current_user.member_of?(jour.project)
|
||||||
# status = -1
|
# status = -1
|
||||||
|
@ -179,64 +212,108 @@ module Mobile
|
||||||
# end
|
# end
|
||||||
|
|
||||||
if status == 0
|
if status == 0
|
||||||
parent_id = params[:id]
|
# if reply_type == nil || reply_type == 0
|
||||||
author_id = current_user.id
|
jour = JournalsForMessage.find(params[:id]).root
|
||||||
reply_user_id = jour.user_id
|
parent_id = params[:id]
|
||||||
reply_id = params[:id]
|
author_id = current_user.id
|
||||||
content = params[:content]
|
reply_user_id = jour.user_id
|
||||||
options = {:user_id => author_id,
|
reply_id = params[:id]
|
||||||
:status => true,
|
content = params[:content]
|
||||||
:m_parent_id => parent_id,
|
options = {:user_id => author_id,
|
||||||
:m_reply_id => reply_id,
|
:status => true,
|
||||||
:reply_id => reply_user_id,
|
:m_parent_id => parent_id,
|
||||||
:notes => content,
|
:m_reply_id => reply_id,
|
||||||
:is_readed => false}
|
:reply_id => reply_user_id,
|
||||||
jfm = jour.user.add_jour(nil, nil, nil, options)
|
:notes => content,
|
||||||
if jfm.errors.empty?
|
:is_readed => false}
|
||||||
(JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now)
|
jfm = jour.user.add_jour(nil, nil, nil, options)
|
||||||
result = 2
|
if jfm.errors.empty?
|
||||||
end
|
(JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now)
|
||||||
|
result = 2
|
||||||
|
update_id = jour.id
|
||||||
|
end
|
||||||
|
# else
|
||||||
|
#二级回复
|
||||||
|
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
when 'Issue'
|
when 'Issue'
|
||||||
issue = Issue.find params[:id]
|
|
||||||
|
|
||||||
# if issue.project.is_public == false && !current_user.member_of?(issue.project)
|
# if issue.project.is_public == false && !current_user.member_of?(issue.project)
|
||||||
# status = -1
|
# status = -1
|
||||||
# tip = 1
|
# tip = 1
|
||||||
# end
|
# end
|
||||||
|
|
||||||
if status == 0
|
if status == 0
|
||||||
is_jour = Journal.new
|
if reply_type == nil || reply_type == 0
|
||||||
is_jour.user_id = current_user.id
|
issue = Issue.find params[:id]
|
||||||
is_jour.notes = params[:content]
|
is_jour = Journal.new
|
||||||
is_jour.journalized = issue
|
is_jour.user_id = current_user.id
|
||||||
if is_jour.save
|
is_jour.notes = params[:content]
|
||||||
result = 2
|
is_jour.journalized = issue
|
||||||
|
if is_jour.save
|
||||||
|
result = 2
|
||||||
|
update_id = issue.id
|
||||||
|
end
|
||||||
|
else
|
||||||
|
#二级回复
|
||||||
|
jour = Journal.find(params[:id])
|
||||||
|
issue = jour.journalized
|
||||||
|
is_jour = Journal.new
|
||||||
|
is_jour.user_id = current_user.id
|
||||||
|
is_jour.notes = params[:content]
|
||||||
|
is_jour.reply_id = params[:id]
|
||||||
|
is_jour.parent_id = params[:id]
|
||||||
|
is_jour.journalized = issue
|
||||||
|
if is_jour.save
|
||||||
|
result = 2
|
||||||
|
update_id = issue.id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
when 'BlogComment'
|
when 'BlogComment'
|
||||||
blog = BlogComment.find(params[:id]).root
|
if reply_type == nil || reply_type == 0
|
||||||
blogComment = BlogComment.new
|
blog = BlogComment.find(params[:id]).root
|
||||||
blogComment.author = current_user
|
blogComment = BlogComment.new
|
||||||
blogComment.blog = blog.blog
|
blogComment.author = current_user
|
||||||
blogComment.content = params[:content]
|
blogComment.blog = blog.blog
|
||||||
blogComment.title = "RE: #{blog.title}"
|
blogComment.content = params[:content]
|
||||||
if blog.children << blogComment
|
blogComment.title = "RE: #{blog.title}"
|
||||||
result = 2
|
if blog.children << blogComment
|
||||||
|
result = 2
|
||||||
|
update_id = blog.id
|
||||||
|
end
|
||||||
|
else
|
||||||
|
#二级回复
|
||||||
|
blog = BlogComment.find(params[:id]).root
|
||||||
|
blogComment = BlogComment.new
|
||||||
|
blogComment.author = current_user
|
||||||
|
blogComment.blog = blog.blog
|
||||||
|
blogComment.content = params[:content]
|
||||||
|
blogComment.title = "RE: #{blog.title}"
|
||||||
|
parent = BlogComment.find params[:id]
|
||||||
|
blogComment.parent_id = params[:id] #被回复的回复
|
||||||
|
blogComment.reply_id = parent.author.id #被回复者id
|
||||||
|
|
||||||
|
if parent.children << blogComment
|
||||||
|
result = 2
|
||||||
|
update_id = blog.id
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if result == 2
|
if result == 2
|
||||||
update_course_activity_api(type,params[:id])
|
update_course_activity_api(type,update_id)
|
||||||
update_user_activity_api(type,params[:id])
|
update_user_activity_api(type,update_id)
|
||||||
update_org_activity_api(type,params[:id])
|
update_org_activity_api(type,update_id)
|
||||||
update_forge_activity_api(type,params[:id])
|
update_forge_activity_api(type,update_id)
|
||||||
update_principal_activity_api(type,params[:id])
|
update_principal_activity_api(type,update_id)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
result = 3
|
result = 3
|
||||||
end
|
end
|
||||||
present :result, result
|
present :result, result
|
||||||
present :status, status
|
present :status, status
|
||||||
|
present :act_id, update_id
|
||||||
present :tip, tip
|
present :tip, tip
|
||||||
present :subscribe,subscribe
|
present :subscribe,subscribe
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,6 +4,61 @@ module Mobile
|
||||||
class Users < Grape::API
|
class Users < Grape::API
|
||||||
resource :users do
|
resource :users do
|
||||||
|
|
||||||
|
desc "我的资料"
|
||||||
|
params do
|
||||||
|
requires :token, type: String
|
||||||
|
end
|
||||||
|
|
||||||
|
get 'get_userinfo' do
|
||||||
|
authenticate!
|
||||||
|
present :data, current_user, with: Mobile::Entities::User
|
||||||
|
present :status, 0
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "上传头像"
|
||||||
|
params do
|
||||||
|
requires :token, type: String
|
||||||
|
requires :imgdata, type: String
|
||||||
|
end
|
||||||
|
|
||||||
|
post 'upload_head' do
|
||||||
|
authenticate!
|
||||||
|
#直接生成头像
|
||||||
|
dirPath = "public/images/avatars/User"
|
||||||
|
|
||||||
|
fileDir = dirPath + "/"+current_user.id.to_s
|
||||||
|
imgdata = Base64.decode64(params[:imgdata].split(",")[1])
|
||||||
|
if imgdata.length > 1024*1024
|
||||||
|
present :message,"上传图片不能超过1M"
|
||||||
|
present :status, -1
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
File.open(fileDir,'wb'){ |f| f.write(imgdata) }
|
||||||
|
present :status, 0
|
||||||
|
rescue
|
||||||
|
present :message,"上传失败"
|
||||||
|
present :status, -1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "解除绑定"
|
||||||
|
params do
|
||||||
|
requires :token, type: String
|
||||||
|
end
|
||||||
|
|
||||||
|
post 'user_unbind' do
|
||||||
|
authenticate!
|
||||||
|
|
||||||
|
user = current_user
|
||||||
|
uw = user.user_wechat
|
||||||
|
|
||||||
|
us = UsersService.new
|
||||||
|
us.wechat_unbind user.user_wechat
|
||||||
|
|
||||||
|
present :status, 0
|
||||||
|
end
|
||||||
|
|
||||||
desc "查询是否已绑定"
|
desc "查询是否已绑定"
|
||||||
params do
|
params do
|
||||||
requires :openid, type: String, desc: 'wechat openid'
|
requires :openid, type: String, desc: 'wechat openid'
|
||||||
|
@ -221,6 +276,73 @@ module Mobile
|
||||||
present :data,my_jours,with:Mobile::Entities::Jours
|
present :data,my_jours,with:Mobile::Entities::Jours
|
||||||
present :status,0
|
present :status,0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
desc "修改我的资料"
|
||||||
|
|
||||||
|
params do
|
||||||
|
requires :token, type: String
|
||||||
|
requires :lastname, type: String
|
||||||
|
requires :sex, type: Integer
|
||||||
|
requires :mail, type: String
|
||||||
|
end
|
||||||
|
|
||||||
|
post 'edit_userinfo' do
|
||||||
|
authenticate!
|
||||||
|
user = current_user
|
||||||
|
status = 0
|
||||||
|
message = ""
|
||||||
|
|
||||||
|
#昵称 不能超过30个字符
|
||||||
|
if params[:lastname].length > 30 then
|
||||||
|
message = "姓名不能超过30个字符!"
|
||||||
|
status = -1
|
||||||
|
end
|
||||||
|
|
||||||
|
if params[:mail].length > 60 then
|
||||||
|
message = "邮箱地址不能超过60个字符!"
|
||||||
|
status = -1
|
||||||
|
end
|
||||||
|
|
||||||
|
if !(params[:mail].match(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i))
|
||||||
|
message = "请输入正确的邮箱地址!"
|
||||||
|
status = -1
|
||||||
|
end
|
||||||
|
|
||||||
|
if status == 0
|
||||||
|
# 修改邮箱的时候同步修改到gitlab
|
||||||
|
if user.mail != params[:mail]
|
||||||
|
g = Gitlab.client
|
||||||
|
begin
|
||||||
|
g.edit_user(user.gid, :email => params[:mail])
|
||||||
|
rescue
|
||||||
|
Rails.logger.error "sync user's email of gitlab failed!"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
user.mail = params[:mail]
|
||||||
|
|
||||||
|
user.lastname = params[:lastname]
|
||||||
|
|
||||||
|
se = user.extensions
|
||||||
|
|
||||||
|
se.gender = params[:sex]
|
||||||
|
|
||||||
|
if user.save && se.save
|
||||||
|
status = 0
|
||||||
|
else
|
||||||
|
message = "该邮箱地址已被使用!"
|
||||||
|
status = -1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if status == 0
|
||||||
|
present :data, current_user, with: Mobile::Entities::User
|
||||||
|
present :status, 0
|
||||||
|
else
|
||||||
|
present :status, -1
|
||||||
|
present :message, message
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,15 +30,24 @@ module Mobile
|
||||||
u.nil? ? "" : u.show_name
|
u.nil? ? "" : u.show_name
|
||||||
when :roles_id
|
when :roles_id
|
||||||
u[:roles_id].nil? ? nil : u.roles_id
|
u[:roles_id].nil? ? nil : u.roles_id
|
||||||
|
when :login
|
||||||
|
u.login
|
||||||
|
when :lastname
|
||||||
|
u.lastname
|
||||||
|
when :mail
|
||||||
|
u.mail
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
expose :id
|
expose :id
|
||||||
#头像
|
#头像
|
||||||
|
user_expose :login
|
||||||
|
user_expose :lastname
|
||||||
|
#邮箱地址
|
||||||
|
user_expose :mail
|
||||||
expose :nickname
|
expose :nickname
|
||||||
#真名
|
#真名
|
||||||
user_expose :img_url
|
user_expose :img_url
|
||||||
|
@ -51,8 +60,6 @@ module Mobile
|
||||||
#我的二维码
|
#我的二维码
|
||||||
#工作单位
|
#工作单位
|
||||||
user_expose :work_unit
|
user_expose :work_unit
|
||||||
#邮箱地址
|
|
||||||
user_expose :mail
|
|
||||||
#地区
|
#地区
|
||||||
user_expose :location
|
user_expose :location
|
||||||
#签名
|
#签名
|
||||||
|
|
|
@ -410,11 +410,11 @@ class StudentWorkController < ApplicationController
|
||||||
#开放作品 || 老师 || 超级管理员 || 禁用匿评&&作业截止&&已提交作品 显示所有列表
|
#开放作品 || 老师 || 超级管理员 || 禁用匿评&&作业截止&&已提交作品 显示所有列表
|
||||||
if (@homework.is_open == 1 && @course.is_public == 1) || (@homework.is_open == 1 && @course.is_public == 0 && User.current.member_of_course?(@course)) || @is_teacher || User.current.admin? || (User.current.member_of_course?(@course) && @homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.has_committed.where(:user_id => User.current.id).empty?)
|
if (@homework.is_open == 1 && @course.is_public == 1) || (@homework.is_open == 1 && @course.is_public == 0 && User.current.member_of_course?(@course)) || @is_teacher || User.current.admin? || (User.current.member_of_course?(@course) && @homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.has_committed.where(:user_id => User.current.id).empty?)
|
||||||
if @order == 'lastname'
|
if @order == 'lastname'
|
||||||
@stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
|
@stundet_works = search_homework_member @homework.student_works.no_copy.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
|
||||||
elsif @order == 'student_id'
|
elsif @order == 'student_id'
|
||||||
@stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name
|
@stundet_works = search_homework_member @homework.student_works.no_copy.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name
|
||||||
else
|
else
|
||||||
@stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name
|
@stundet_works = search_homework_member @homework.student_works.no_copy.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}"),@name
|
||||||
end
|
end
|
||||||
@show_all = true
|
@show_all = true
|
||||||
elsif User.current.member_of_course?(@course)
|
elsif User.current.member_of_course?(@course)
|
||||||
|
@ -476,11 +476,11 @@ class StudentWorkController < ApplicationController
|
||||||
else
|
else
|
||||||
if (@homework.is_open == 1 &&@course.is_public == 1) || (@homework.is_open == 1 && @course.is_public == 0 && User.current.member_of_course?(@course)) || @is_teacher || User.current.admin? || (User.current.member_of_course?(@course) && @homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.has_committed.where(:user_id => User.current.id).empty?)
|
if (@homework.is_open == 1 &&@course.is_public == 1) || (@homework.is_open == 1 && @course.is_public == 0 && User.current.member_of_course?(@course)) || @is_teacher || User.current.admin? || (User.current.member_of_course?(@course) && @homework.anonymous_comment == 1 && Time.parse(@homework.end_time.to_s).strftime("%Y-%m-%d") < Time.now.strftime("%Y-%m-%d") && !@homework.student_works.has_committed.where(:user_id => User.current.id).empty?)
|
||||||
if @order == 'lastname'
|
if @order == 'lastname'
|
||||||
@stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
|
@stundet_works = search_homework_member @homework.student_works.no_copy.select("student_works.*,student_works.work_score as score").joins(:user).order("CONVERT(lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, login #{@b_sort}"),@name
|
||||||
elsif @order == 'student_id'
|
elsif @order == 'student_id'
|
||||||
@stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name
|
@stundet_works = search_homework_member @homework.student_works.no_copy.select("student_works.*,student_works.work_score as score").joins("join user_extensions on student_works.user_id = user_extensions.user_id").order("#{@order} #{@b_sort}"),@name
|
||||||
else
|
else
|
||||||
@stundet_works = search_homework_member @homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}"),@name
|
@stundet_works = search_homework_member @homework.student_works.no_copy.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}"),@name
|
||||||
end
|
end
|
||||||
@show_all = true
|
@show_all = true
|
||||||
elsif User.current.member_of_course?(@course)
|
elsif User.current.member_of_course?(@course)
|
||||||
|
@ -613,33 +613,21 @@ class StudentWorkController < ApplicationController
|
||||||
student_work.work_status = 1
|
student_work.work_status = 1
|
||||||
end
|
end
|
||||||
if student_work.save
|
if student_work.save
|
||||||
if @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 1
|
if @homework.homework_type == 3
|
||||||
@student_work_project.student_work_id = student_work.id
|
if @homework.homework_detail_group.base_on_project == 1
|
||||||
@student_work_project.save
|
@student_work_project.student_work_id = student_work.id
|
||||||
members = params[:group_member_ids].split(',')
|
@student_work_project.save
|
||||||
for i in 1 .. members.count-1
|
elsif @homework.homework_detail_group.base_on_project == 0
|
||||||
stu_project = StudentWorkProject.new
|
stu_project = StudentWorkProject.new(:homework_common_id => @homework.id, :student_work_id => student_work.id, :project_id => student_work.project_id, :user_id => student_work.user_id, :is_leader => 1)
|
||||||
stu_project.homework_common_id = @homework.id
|
|
||||||
stu_project.student_work_id = student_work.id
|
|
||||||
stu_project.project_id = @student_work_project.project_id
|
|
||||||
stu_project.user_id = members[i].to_i
|
|
||||||
stu_project.is_leader = 0
|
|
||||||
stu_project.save
|
stu_project.save
|
||||||
end
|
end
|
||||||
elsif @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 0
|
|
||||||
members = params[:group_member_ids].split(',')
|
members = params[:group_member_ids].split(',')
|
||||||
for i in 0 .. members.count-1
|
for i in 1 .. members.count-1
|
||||||
stu_project = StudentWorkProject.new
|
stu_work = StudentWork.new(:name => student_work.name, :description => student_work.description,:user_id =>members[i].to_i, :homework_common_id => @homework.id,:project_id => student_work.project_id, :late_penalty => student_work.late_penalty,:work_status => 3, :commit_time => student_work.commit_time)
|
||||||
stu_project.homework_common_id = @homework.id
|
if stu_work.save
|
||||||
stu_project.student_work_id = student_work.id
|
stu_project = StudentWorkProject.new(:homework_common_id => @homework.id, :student_work_id => student_work.id, :project_id => stu_work.project_id == 0 ? -1 : stu_work.project_id, :user_id => members[i].to_i, :is_leader => 0)
|
||||||
stu_project.project_id = -1
|
stu_project.save
|
||||||
stu_project.user_id = members[i].to_i
|
|
||||||
if i == 0
|
|
||||||
stu_project.is_leader = 1
|
|
||||||
else
|
|
||||||
stu_project.is_leader = 0
|
|
||||||
end
|
end
|
||||||
stu_project.save
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@homework.update_column(:updated_at, Time.now)
|
@homework.update_column(:updated_at, Time.now)
|
||||||
|
@ -687,20 +675,17 @@ class StudentWorkController < ApplicationController
|
||||||
if @homework.homework_type == 3
|
if @homework.homework_type == 3
|
||||||
@student_work_project = @homework.student_work_projects.where("user_id=?",User.current.id).first
|
@student_work_project = @homework.student_work_projects.where("user_id=?",User.current.id).first
|
||||||
student_work_projects = @homework.student_work_projects.where("student_work_id=? and is_leader =?",@work.id,0)
|
student_work_projects = @homework.student_work_projects.where("student_work_id=? and is_leader =?",@work.id,0)
|
||||||
|
user_ids = student_work_projects.empty? ? "(-1)" : "(" + student_work_projects.map{|stu|stu.user_id}.join(",") + ")"
|
||||||
|
student_works = @homework.student_works.where("user_id in #{user_ids}")
|
||||||
|
student_works.delete_all
|
||||||
student_work_projects.delete_all
|
student_work_projects.delete_all
|
||||||
members = params[:group_member_ids].split(',')
|
members = params[:group_member_ids].split(',')
|
||||||
for i in 1 .. members.count-1
|
for i in 1 .. members.count-1
|
||||||
stu_project = StudentWorkProject.new
|
stu_work = StudentWork.new(:name => @work.name, :description => @work.description,:user_id=> members[i].to_i, :homework_common_id => @homework.id, :project_id => @work.project_id, :late_penalty => @work.late_penalty,:work_status => 3, :commit_time => @work.commit_time)
|
||||||
stu_project.homework_common_id = @homework.id
|
if stu_work.save
|
||||||
stu_project.student_work_id = @work.id
|
stu_project = StudentWorkProject.new(:homework_common_id => @homework.id, :student_work_id => @work.id, :project_id => stu_work.project_id == 0 ? -1 : stu_work.project_id, :user_id => members[i].to_i, :is_leader => 0)
|
||||||
if @homework.homework_detail_group.base_on_project == 1
|
stu_project.save
|
||||||
stu_project.project_id = @student_work_project.project_id
|
|
||||||
else @homework.homework_detail_group.base_on_project == 0
|
|
||||||
stu_project.project_id = -1
|
|
||||||
end
|
end
|
||||||
stu_project.user_id = members[i].to_i
|
|
||||||
stu_project.is_leader = 0
|
|
||||||
stu_project.save
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -735,26 +720,25 @@ class StudentWorkController < ApplicationController
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
if @homework.homework_type == 3
|
if @homework.homework_type == 3
|
||||||
if @work.destroy
|
pros = @work.student_work_projects.where("is_leader = 0")
|
||||||
if @homework.homework_detail_group.base_on_project == 1
|
user_ids = pros.empty? ? "(-1)" : "(" + pros.map{|stu|stu.user_id}.join(",") + ")"
|
||||||
pros = @work.student_work_projects.where("is_leader = 0")
|
student_works = @homework.student_works.where("user_id in #{user_ids}")
|
||||||
pros.each do |pro|
|
student_works.delete_all
|
||||||
pro.destroy
|
pros.delete_all
|
||||||
end
|
|
||||||
project = @work.student_work_projects.where("is_leader = 1").first
|
project = @work.student_work_projects.where("is_leader = 1").first
|
||||||
project.update_attributes(:student_work_id => nil)
|
if @homework.homework_detail_group.base_on_project == 1
|
||||||
elsif @homework.homework_detail_group.base_on_project == 0
|
project.update_attributes(:student_work_id => nil)
|
||||||
@work.student_work_projects.each do |pro2|
|
else
|
||||||
pro2.destroy
|
project.destroy
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
@work.destroy
|
||||||
else
|
else
|
||||||
@work.attachments.destroy_all
|
@work.attachments.destroy_all
|
||||||
@work.student_works_scores.destroy_all
|
@work.student_works_scores.destroy_all
|
||||||
@work.course_messages.destroy_all
|
@work.course_messages.destroy_all
|
||||||
@work.student_work_tests.destroy_all
|
@work.student_work_tests.destroy_all
|
||||||
@work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0, :commit_time => nil,:final_score => nil,:teacher_score => nil,:student_score => nil,:teaching_asistant_score => nil,:system_score => 0,:work_score => nil)
|
@work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0, :commit_time => nil,:final_score => nil,:teacher_score => nil,:student_score => nil,:teaching_asistant_score => nil,:system_score => 0,:work_score => nil, :project_id => 0)
|
||||||
@work.update_column("work_score",nil)
|
@work.update_column("work_score",nil)
|
||||||
end
|
end
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
|
@ -786,22 +770,21 @@ class StudentWorkController < ApplicationController
|
||||||
|
|
||||||
def retry_work
|
def retry_work
|
||||||
if @homework.homework_type == 3
|
if @homework.homework_type == 3
|
||||||
if @work.destroy
|
pros = @work.student_work_projects.where("is_leader = 0")
|
||||||
if @homework.homework_detail_group.base_on_project == 1
|
user_ids = pros.empty? ? "(-1)" : "(" + pros.map{|stu|stu.user_id}.join(",") + ")"
|
||||||
pros = @work.student_work_projects.where("is_leader = 0")
|
student_works = @homework.student_works.where("user_id in #{user_ids}")
|
||||||
pros.each do |pro|
|
student_works.delete_all
|
||||||
pro.destroy
|
pros.delete_all
|
||||||
end
|
|
||||||
project = @work.student_work_projects.where("is_leader = 1").first
|
project = @work.student_work_projects.where("is_leader = 1").first
|
||||||
project.update_attributes(:student_work_id => nil)
|
if @homework.homework_detail_group.base_on_project == 1
|
||||||
elsif @homework.homework_detail_group.base_on_project == 0
|
project.update_attributes(:student_work_id => nil)
|
||||||
@work.student_work_projects.each do |pro2|
|
else
|
||||||
pro2.destroy
|
project.destroy
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elsif @homework.homework_type == 1
|
@work.destroy
|
||||||
@work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0, :commit_time => nil)
|
else
|
||||||
|
@work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0, :commit_time => nil, :project_id => 0)
|
||||||
@work.attachments.destroy_all
|
@work.attachments.destroy_all
|
||||||
@work.course_messages.destroy_all
|
@work.course_messages.destroy_all
|
||||||
end
|
end
|
||||||
|
@ -1096,9 +1079,13 @@ class StudentWorkController < ApplicationController
|
||||||
|
|
||||||
#创建作业的关联项目
|
#创建作业的关联项目
|
||||||
def student_work_project
|
def student_work_project
|
||||||
|
@work = @homework.student_works.where("user_id = #{User.current.id} and work_status = 0").first
|
||||||
|
if @work
|
||||||
|
@work.update_column('project_id', params[:projectName].to_i)
|
||||||
|
end
|
||||||
@project = StudentWorkProject.new
|
@project = StudentWorkProject.new
|
||||||
@project.homework_common_id = @homework.id
|
@project.homework_common_id = @homework.id
|
||||||
@project.project_id = (Project.find params[:projectName].to_i).id
|
@project.project_id = params[:projectName].to_i
|
||||||
@project.user_id = User.current.id
|
@project.user_id = User.current.id
|
||||||
@project.is_leader = 1
|
@project.is_leader = 1
|
||||||
if @project.save
|
if @project.save
|
||||||
|
@ -1139,7 +1126,7 @@ class StudentWorkController < ApplicationController
|
||||||
end
|
end
|
||||||
all_students = User.where("id in #{all_student_ids}")
|
all_students = User.where("id in #{all_student_ids}")
|
||||||
student_work_id = @homework.student_work_projects.where("user_id=? and student_work_id is not null",User.current.id).first.nil? ? -1 : @homework.student_work_projects.where("user_id=?",User.current.id).first.student_work_id
|
student_work_id = @homework.student_work_projects.where("user_id=? and student_work_id is not null",User.current.id).first.nil? ? -1 : @homework.student_work_projects.where("user_id=?",User.current.id).first.student_work_id
|
||||||
@commit_student_ids = @homework.student_work_projects.where("student_work_id != #{student_work_id}").map{|student| student.user_id}
|
@commit_student_ids = @homework.student_works.where("id != #{student_work_id}").map{|student| student.user_id}
|
||||||
@users = searchstudent_by_name all_students,name
|
@users = searchstudent_by_name all_students,name
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.js
|
format.js
|
||||||
|
@ -1147,6 +1134,10 @@ class StudentWorkController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def cancel_relate_project
|
def cancel_relate_project
|
||||||
|
@work = @homework.student_works.where("user_id = #{User.current.id} and work_status = 0").first
|
||||||
|
if @work
|
||||||
|
@work.update_column('project_id', 0)
|
||||||
|
end
|
||||||
relate_pro = StudentWorkProject.where("user_id = #{User.current.id} and homework_common_id = #{@homework.id}").first
|
relate_pro = StudentWorkProject.where("user_id = #{User.current.id} and homework_common_id = #{@homework.id}").first
|
||||||
if relate_pro.destroy
|
if relate_pro.destroy
|
||||||
@user_activity_id = params[:user_activity_id].to_i
|
@user_activity_id = params[:user_activity_id].to_i
|
||||||
|
@ -1586,6 +1577,10 @@ class StudentWorkController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if homework.homework_type == 3
|
||||||
|
student_works = group_student_works student_work, homework
|
||||||
|
student_works.update_all(:final_score => student_work.final_score,:teacher_score => student_work.teacher_score,:student_score => student_work.student_score,:teaching_asistant_score => student_work.teaching_asistant_score,:work_score => student_work.work_score)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -167,6 +167,27 @@ class WechatsController < ActionController::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
on :click, with: 'UNBIND' do |request, key|
|
||||||
|
uw = user_binded?(request[:FromUserName])
|
||||||
|
unless uw
|
||||||
|
request.reply.text "您还未绑定帐号"
|
||||||
|
else
|
||||||
|
#解除绑定
|
||||||
|
us = UsersService.new
|
||||||
|
us.wechat_unbind uw
|
||||||
|
|
||||||
|
tmpurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities'}&response_type=code&scope=snsapi_base&state=login&connect_redirect=1#wechat_redirect"
|
||||||
|
news = (1..1).each_with_object([]) { |n, memo| memo << { title: '重新绑定提醒',
|
||||||
|
content: "尊敬的用户,您已解除绑定。\n解除时间:#{format_time(Time.now)}\n点击进入重新绑定!"} }
|
||||||
|
request.reply.news(news) do |article, n, index| # article is return object
|
||||||
|
url = tmpurl
|
||||||
|
article.item title: "#{n[:title]}",
|
||||||
|
description: n[:content],
|
||||||
|
url: url
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def join_class_request(request)
|
def join_class_request(request)
|
||||||
openid = request[:FromUserName]
|
openid = request[:FromUserName]
|
||||||
wl = WechatLog.where("openid = '#{openid}' and request_raw like '%\"Event\":\"click\"%'").order('id desc').first
|
wl = WechatLog.where("openid = '#{openid}' and request_raw like '%\"Event\":\"click\"%'").order('id desc').first
|
||||||
|
|
|
@ -158,4 +158,11 @@ module StudentWorkHelper
|
||||||
end
|
end
|
||||||
return status
|
return status
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def group_student_works student_work, homework
|
||||||
|
pros = student_work.student_work_projects.where("is_leader = 0")
|
||||||
|
user_ids = pros.empty? ? "(-1)" : "(" + pros.map{|stu|stu.user_id}.join(",") + ")"
|
||||||
|
student_works = homework.student_works.where("user_id in #{user_ids}")
|
||||||
|
return student_works
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -1,4 +1,4 @@
|
||||||
#学生提交作品表
|
#学生提交作品表 #work_status :0 未提交 1 已提交 2 迟交 3 分组作品复制的组员作品
|
||||||
class StudentWork < ActiveRecord::Base
|
class StudentWork < ActiveRecord::Base
|
||||||
attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :system_score, :work_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time
|
attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :system_score, :work_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@ class StudentWork < ActiveRecord::Base
|
||||||
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
|
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
|
||||||
has_many :attachments, :dependent => :destroy
|
has_many :attachments, :dependent => :destroy
|
||||||
|
|
||||||
scope :has_committed, lambda{where("work_status != 0")}
|
scope :has_committed, lambda{where("work_status != 0 and work_status != 3")}
|
||||||
|
scope :no_copy, lambda{where("work_status != 3")}
|
||||||
|
|
||||||
before_destroy :delete_praise
|
before_destroy :delete_praise
|
||||||
before_save :set_program_score, :set_src
|
before_save :set_program_score, :set_src
|
||||||
|
@ -31,7 +32,7 @@ class StudentWork < ActiveRecord::Base
|
||||||
|
|
||||||
private
|
private
|
||||||
def set_program_score
|
def set_program_score
|
||||||
if homework_common.is_program_homework? #编程作业,学生提交作品后计算系统得分
|
if self.homework_common.is_program_homework? #编程作业,学生提交作品后计算系统得分
|
||||||
#根据最后一次测试计算得分
|
#根据最后一次测试计算得分
|
||||||
unless last_test
|
unless last_test
|
||||||
self.system_score = 0
|
self.system_score = 0
|
||||||
|
@ -169,6 +170,12 @@ class StudentWork < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if homework.homework_type == 3
|
||||||
|
pros = student_work.student_work_projects.where("is_leader = 0")
|
||||||
|
user_ids = pros.empty? ? "(-1)" : "(" + pros.map{|stu|stu.user_id}.join(",") + ")"
|
||||||
|
student_works = homework.student_works.where("user_id in #{user_ids}")
|
||||||
|
student_works.update_all(:final_score => student_work.final_score,:teacher_score => student_work.teacher_score,:student_score => student_work.student_score,:teaching_asistant_score => student_work.teaching_asistant_score,:work_score => student_work.work_score)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -941,46 +941,36 @@ class CoursesService
|
||||||
:description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation}
|
:description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def student_homework_score(groupid,course_id, nums, score_sort_by, sort_type = 'score')
|
||||||
def student_homework_score(groupid,course_id, nums, score_sort_by)
|
|
||||||
#teachers = find_course_teachers(@course)
|
|
||||||
#start_from = start_from * nums
|
|
||||||
sql_select = ""
|
sql_select = ""
|
||||||
if groupid == 0
|
if groupid == 0
|
||||||
if nums == 0
|
sql_select = "SELECT members.*,(
|
||||||
sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
|
SELECT SUM(student_works.work_score)
|
||||||
WHERE members.course_id = #{course_id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{course_id}) AND members.user_id = homework_attaches.user_id
|
FROM student_works,homework_commons
|
||||||
AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id}) GROUP BY members.user_id
|
WHERE student_works.homework_common_id = homework_commons.id
|
||||||
UNION all
|
AND homework_commons.course_id = course_id
|
||||||
SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{course_id} AND
|
AND student_works.user_id = members.user_id
|
||||||
students_for_courses.course_id = #{course_id} and members.user_id = students_for_courses.student_id AND
|
) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
|
||||||
members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id} )
|
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{course_id} AND ccs.user_id = members.user_id
|
||||||
)
|
) AS act_score
|
||||||
GROUP BY members.user_id ORDER BY score #{score_sort_by}"
|
FROM members
|
||||||
else
|
JOIN students_for_courses
|
||||||
sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
|
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
|
||||||
WHERE members.course_id = #{course_id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{course_id}) AND members.user_id = homework_attaches.user_id
|
WHERE members.course_id = #{course_id} ORDER BY #{sort_type} #{score_sort_by}"
|
||||||
AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id}) GROUP BY members.user_id
|
|
||||||
UNION all
|
|
||||||
SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{course_id} AND
|
|
||||||
students_for_courses.course_id = #{course_id} and members.user_id = students_for_courses.student_id AND
|
|
||||||
members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id} )
|
|
||||||
)
|
|
||||||
GROUP BY members.user_id ORDER BY score #{score_sort_by} " #limit #{start_from}, #{nums}"
|
|
||||||
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
sql_select = "SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
|
sql_select = "SELECT members.*,(
|
||||||
WHERE members.course_id = #{course_id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{course_id}) AND members.user_id = homework_attaches.user_id
|
SELECT SUM(student_works.work_score)
|
||||||
and members.course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id})
|
FROM student_works,homework_commons
|
||||||
GROUP BY members.user_id
|
WHERE student_works.homework_common_id = homework_commons.id
|
||||||
UNION all
|
AND homework_commons.course_id = #{course_id}
|
||||||
SELECT members.*, 0 as score FROM members,homework_attaches,students_for_courses WHERE members.course_id = #{course_id}
|
AND student_works.user_id = members.user_id
|
||||||
and members.course_group_id = #{groupid} AND
|
) AS score,(SELECT (message_num*2 + message_reply_num*1 + news_reply_num*1 + news_num*1 +
|
||||||
students_for_courses.course_id = #{course_id} and members.user_id = students_for_courses.student_id AND
|
resource_num*5 + journal_num*1 + homework_journal_num*1 ) FROM `course_contributor_scores` AS ccs WHERE ccs.course_id = #{course_id} AND ccs.user_id = members.user_id
|
||||||
members.user_id NOT IN (SELECT homework_attaches.user_id FROM homework_attaches WHERE homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{course_id} )
|
) AS act_score
|
||||||
)
|
FROM members
|
||||||
GROUP BY members.user_id ORDER BY score #{score_sort_by}"
|
JOIN students_for_courses
|
||||||
|
ON students_for_courses.student_id = members.user_id AND students_for_courses.course_id = members.course_id
|
||||||
|
WHERE members.course_id = #{course_id} AND members.course_group_id = #{groupid} ORDER BY #{sort_type} #{score_sort_by}"
|
||||||
end
|
end
|
||||||
sql = ActiveRecord::Base.connection()
|
sql = ActiveRecord::Base.connection()
|
||||||
homework_scores = Member.find_by_sql(sql_select)
|
homework_scores = Member.find_by_sql(sql_select)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#coding=utf-8
|
||||||
class UsersService
|
class UsersService
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
include AccountHelper
|
include AccountHelper
|
||||||
|
@ -319,8 +320,22 @@ class UsersService
|
||||||
my_jours_arr
|
my_jours_arr
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def wechat_unbind uw
|
||||||
|
user = uw.user
|
||||||
|
|
||||||
|
#发重新绑定的微信模版消息
|
||||||
|
|
||||||
|
type = "login"
|
||||||
|
title = "尊敬的用户,您已解除绑定。"
|
||||||
|
key1 = "个人原因"
|
||||||
|
remark = "点击进入重新绑定。"
|
||||||
|
|
||||||
|
ws = WechatService.new
|
||||||
|
ws.rebind_notice user.id, type, user.id, title, key1,format_time(Time.now), remark
|
||||||
|
|
||||||
|
uw.user_id = nil
|
||||||
|
uw.delete
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -445,4 +445,41 @@ class WechatService
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def rebind_notice(user_id, type, id, first, key1, key2,remark="")
|
||||||
|
uw = UserWechat.where(user_id: user_id).first
|
||||||
|
unless uw.nil?
|
||||||
|
data = {
|
||||||
|
touser:uw.openid,
|
||||||
|
template_id:Wechat.config.rebind_notice,
|
||||||
|
url:Wechat.config.auto_openid_url_1+Wechat.config.auto_openid_url_2+"login"+Wechat.config.auto_openid_url_3,
|
||||||
|
topcolor:"#FF0000",
|
||||||
|
data:{
|
||||||
|
first: {
|
||||||
|
value:first,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword1:{
|
||||||
|
value:key1,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
keyword2:{
|
||||||
|
value:key2,
|
||||||
|
color:"#707070"
|
||||||
|
},
|
||||||
|
remark:{
|
||||||
|
value:remark,
|
||||||
|
color:"#707070"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark
|
||||||
|
begin
|
||||||
|
req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data)
|
||||||
|
rescue Exception => e
|
||||||
|
Rails.logger.error "[rebind_notice] ===> #{e}"
|
||||||
|
end
|
||||||
|
Rails.logger.info "send over. #{req}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -62,9 +62,9 @@
|
||||||
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title='<%=strip_html(journal.notes) %>'>
|
<td style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title='<%=strip_html(journal.notes) %>'>
|
||||||
<%case journal.jour_type %>
|
<%case journal.jour_type %>
|
||||||
<% when 'Principal' %>
|
<% when 'Principal' %>
|
||||||
<%= link_to(strip_html(journal.notes), feedback_path(journal.jour_id)) %>
|
<%= link_to(journal.m_parent_id.nil? ? strip_html(journal.notes) : 'RE: ' + strip_html(journal.notes), feedback_path(journal.jour_id)) %>
|
||||||
<% when 'Course' %>
|
<% when 'Course' %>
|
||||||
<%= link_to(strip_html(journal.notes), course_feedback_path(journal.jour_id)) %>
|
<%= link_to(journal.m_parent_id.nil? ? strip_html(journal.notes) : 'RE: ' + strip_html(journal.notes), course_feedback_path(journal.jour_id)) %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</td>
|
</td>
|
||||||
<td class="center">
|
<td class="center">
|
||||||
|
|
|
@ -1,71 +1,71 @@
|
||||||
<table class="hwork-table-wrap" style="border-bottom:1px solid #eaeaea;">
|
<table class="hwork-table-wrap" style="border-bottom:1px solid #eaeaea;">
|
||||||
<tr class="b_grey hworkH30">
|
<tr class="b_grey hworkH30">
|
||||||
<th class="hworkList30 pl5 pr5"><span class="c_dark f14 fb">序号</span></th>
|
<th class="hworkList30 pl5 pr5"><span class="c_dark f14 fb">序号</span></th>
|
||||||
<th class="hworkList50"> </th>
|
<th class="hworkList50"> </th>
|
||||||
<th class="hworkList60"><span class="c_dark f14 fb">姓名</span></th>
|
<th class="hworkList60"><span class="c_dark f14 fb">姓名</span></th>
|
||||||
<th class="hworkList80"><span class="c_dark f14 fb">学号</span></th>
|
<th class="hworkList80"><span class="c_dark f14 fb">学号</span></th>
|
||||||
<th class="hworkList80"><span class="c_dark f14 fb">班级</span></th>
|
<th class="hworkList80"><span class="c_dark f14 fb">班级</span></th>
|
||||||
<th width="230"> </th>
|
<th width="230"> </th>
|
||||||
<th class="hworkList130">
|
<th class="hworkList130">
|
||||||
<%= link_to "时间",'',:class => "c_dark f14 fb" ,:remote => true%>
|
<%= link_to "时间",'',:class => "c_dark f14 fb" ,:remote => true%>
|
||||||
</th>
|
</th>
|
||||||
<th class="hworkList50">
|
<th class="hworkList50">
|
||||||
<%= link_to "成绩",'',:class => "c_dark f14 fb",:remote => true%>
|
<%= link_to "成绩",'',:class => "c_dark f14 fb",:remote => true%>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<% @exercise_users_list.each_with_index do |exercise, index|%>
|
<% @exercise_users_list.each_with_index do |exercise, index|%>
|
||||||
<tr class="hworkListRow" id="student_work_<%= exercise.id%>">
|
<tr class="hworkListRow" id="student_work_<%= exercise.id%>">
|
||||||
<td class="pl5 pr5" style="text-align:center;"><%=index + 1 %></td>
|
<td class="pl5 pr5" style="text-align:center;"><%=index + 1 %></td>
|
||||||
<td class="hworkPortrait pr10 float-none">
|
<td class="hworkPortrait pr10 float-none">
|
||||||
<%= link_to(image_tag(url_to_avatar(exercise.user),:width =>"40",:height => "40",:style => "display:block;", :class => "mt15"),user_activities_path(exercise.user)) %>
|
<%= link_to(image_tag(url_to_avatar(exercise.user),:width =>"40",:height => "40",:style => "display:block;", :class => "mt15"),user_activities_path(exercise.user)) %>
|
||||||
</td>
|
</td>
|
||||||
<td class="hworkStName student_work_<%= exercise.id%>" title="姓名" id="student_name_<%= exercise.id%>" style="cursor:pointer;">
|
<td class="hworkStName student_work_<%= exercise.id%>" title="姓名" id="student_name_<%= exercise.id%>" style="cursor:pointer;">
|
||||||
<%=exercise.user.show_name %>
|
<%=exercise.user.show_name %>
|
||||||
</td>
|
</td>
|
||||||
<td class="hworkStID student_work_<%= exercise.id%> pl15 pr10 float-none" title="学号" id="student_id_<%= exercise.id%>" style="cursor:pointer;">
|
<td class="hworkStID student_work_<%= exercise.id%> pl15 pr10 float-none" title="学号" id="student_id_<%= exercise.id%>" style="cursor:pointer;">
|
||||||
<span class="hidden fl" style="width:80px;"><%= exercise.user.user_extensions.nil? ? "--" : exercise.user.user_extensions.student_id%></span>
|
<span class="hidden fl" style="width:55px;"><%= exercise.user.user_extensions.nil? ? "--" : exercise.user.user_extensions.student_id%></span>
|
||||||
</td>
|
</td>
|
||||||
<td class="hworkStID student_work_<%= exercise.id%> float-none" title="班级" id="student_class_<%= exercise.id%>" style="cursor:pointer;">
|
<td class="hworkStID student_work_<%= exercise.id%> float-none" title="班级" id="student_class_<%= exercise.id%>" style="cursor:pointer;">
|
||||||
--
|
--
|
||||||
</td>
|
</td>
|
||||||
<td width="230"> </td>
|
<td width="230"> </td>
|
||||||
<td class="hworkList130 c_grey">
|
<td class="hworkList130 c_grey">
|
||||||
<% if exercise.created_at%>
|
<% if exercise.created_at%>
|
||||||
<%= Time.parse(format_time(exercise.created_at)).strftime("%m-%d %H:%M")%>
|
<%= Time.parse(format_time(exercise.created_at)).strftime("%m-%d %H:%M")%>
|
||||||
<% if @exercise.end_time <= exercise.created_at %>
|
<% if @exercise.end_time <= exercise.created_at %>
|
||||||
<span class="c_red">[未答]</span>
|
<span class="c_red">[未答]</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</td>
|
</td>
|
||||||
<td class="hworkList50 <%= score_color exercise.score%> student_final_scor_info">
|
<td class="hworkList50 <%= score_color exercise.score%> student_final_scor_info">
|
||||||
<%= exercise.score.nil? ? "--" : format("%.1f",exercise.score)%>
|
<%= exercise.score.nil? ? "--" : format("%.1f",exercise.score)%>
|
||||||
</td>
|
</td>
|
||||||
<td><div style="position:relative;"><div class="hworkTip" style="display: none" id="work_click_<%= exercise.id%>"><em></em><span></span><font class="fontGrey2">点击查看详情</font></div></div></td>
|
<td><div style="position:relative;"><div class="hworkTip" style="display: none" id="work_click_<%= exercise.id%>"><em></em><span></span><font class="fontGrey2">点击查看详情</font></div></div></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(".student_work_<%= exercise.id%>").mouseenter(function(){
|
$(".student_work_<%= exercise.id%>").mouseenter(function(){
|
||||||
$("#work_click_<%= exercise.id%>").show();
|
$("#work_click_<%= exercise.id%>").show();
|
||||||
}).mouseleave(function(){
|
}).mouseleave(function(){
|
||||||
$("#work_click_<%= exercise.id%>").hide();
|
$("#work_click_<%= exercise.id%>").hide();
|
||||||
}).mouse;
|
}).mouse;
|
||||||
$(function(){
|
$(function(){
|
||||||
<% if Time.parse(h(@exercise.end_time)).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S") %>
|
<% if Time.parse(h(@exercise.end_time)).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S") %>
|
||||||
$("#student_name_<%= exercise.id%>,#student_id_<%= exercise.id%>,#student_class_<%= exercise.id%>").on('click',function() {
|
$("#student_name_<%= exercise.id%>,#student_id_<%= exercise.id%>,#student_class_<%= exercise.id%>").on('click',function() {
|
||||||
window.location.href = '<%=show_student_result_exercise_path(@exercise,:user_id => exercise.user_id) %>';
|
window.location.href = '<%=show_student_result_exercise_path(@exercise,:user_id => exercise.user_id) %>';
|
||||||
});
|
});
|
||||||
<% else %>
|
<% else %>
|
||||||
//$("#show_student_result_div_<%#= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
//$("#show_student_result_div_<%#= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
||||||
$("#student_name_<%= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
$("#student_name_<%= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
||||||
$("#student_id_<%= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
$("#student_id_<%= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
||||||
$("#student_class_<%= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
$("#student_class_<%= exercise.id%>").attr("title","截止日期未到,暂不能查看学生答题结果");
|
||||||
<% end %>
|
<% end %>
|
||||||
});
|
});
|
||||||
/*function show_result(id) {
|
/*function show_result(id) {
|
||||||
window.location.href = '<%#=show_student_result_exercise_path(@exercise,:user_id => exercise.user.id) %>';
|
window.location.href = '<%#=show_student_result_exercise_path(@exercise,:user_id => exercise.user.id) %>';
|
||||||
}*/
|
}*/
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<% end%>
|
<% end%>
|
||||||
</table>
|
</table>
|
|
@ -41,9 +41,9 @@
|
||||||
<div style="width:1000px; margin: 5px auto;">
|
<div style="width:1000px; margin: 5px auto;">
|
||||||
<p class="sy_cgrey">
|
<p class="sy_cgrey">
|
||||||
位置:
|
位置:
|
||||||
<%= link_to User.current, user_path(User.current.id), :class => 'sy_cgrey', :target => '_blank' %>
|
<%= link_to @syllabus.user.show_name, user_path(@syllabus.user), :class => 'sy_cgrey', :target => '_blank' %>
|
||||||
>
|
>
|
||||||
<%= link_to '课程', user_courselist_user_path(User.current.id), :class => "sy_cgrey", :target => '_blank' %>
|
<%= link_to '课程', user_courselist_user_path(@syllabus.user), :class => "sy_cgrey", :target => '_blank' %>
|
||||||
>
|
>
|
||||||
<%= link_to @syllabus.title, syllabus_path(@syllabus.id), :class => "sy_cgrey" %>
|
<%= link_to @syllabus.title, syllabus_path(@syllabus.id), :class => "sy_cgrey" %>
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -26,7 +26,11 @@
|
||||||
<%= link_to student_work.user.show_name,"javascript:void(0)" ,:title => student_work.user.show_name, :class => "StudentName break_word"%>
|
<%= link_to student_work.user.show_name,"javascript:void(0)" ,:title => student_work.user.show_name, :class => "StudentName break_word"%>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<% if student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? %>
|
<% if student_work.project_id == 0 || student_work.project_id.nil?%>
|
||||||
|
<td class="<%=@homework.anonymous_comment == 1 ? 'hworkPrName2' : 'hworkPrName'%> student_work_<%= student_work.id%>" title="该项目是私有的">
|
||||||
|
--
|
||||||
|
</td>
|
||||||
|
<% elsif student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? %>
|
||||||
<td class="<%=@homework.anonymous_comment == 1 ? 'hworkPrName2' : 'hworkPrName'%> student_work_<%= student_work.id%>" title="项目名称">
|
<td class="<%=@homework.anonymous_comment == 1 ? 'hworkPrName2' : 'hworkPrName'%> student_work_<%= student_work.id%>" title="项目名称">
|
||||||
<%= link_to( student_work.project.name, project_path(student_work.project.id))%>
|
<%= link_to( student_work.project.name, project_path(student_work.project.id))%>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -26,7 +26,11 @@
|
||||||
<%= link_to student_work.user.show_name,"javascript:void(0)" ,:title => student_work.user.show_name, :class => "linkGrey f14 StudentName break_word"%>
|
<%= link_to student_work.user.show_name,"javascript:void(0)" ,:title => student_work.user.show_name, :class => "linkGrey f14 StudentName break_word"%>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<% if student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? %>
|
<% if student_work.project_id == 0 || student_work.project_id.nil?%>
|
||||||
|
<td class="hworkPrName float-none mr10 student_work_<%= student_work.id%>" title="项目名称">
|
||||||
|
--
|
||||||
|
</td>
|
||||||
|
<% elsif student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? %>
|
||||||
<td class="hworkPrName float-none mr10 student_work_<%= student_work.id%>" title="项目名称">
|
<td class="hworkPrName float-none mr10 student_work_<%= student_work.id%>" title="项目名称">
|
||||||
<%= link_to( student_work.project.name, project_path(student_work.project.id))%>
|
<%= link_to( student_work.project.name, project_path(student_work.project.id))%>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -46,13 +46,16 @@
|
||||||
<% if @homework.homework_detail_group.base_on_project == 1 %>
|
<% if @homework.homework_detail_group.base_on_project == 1 %>
|
||||||
<li>
|
<li>
|
||||||
<span class="tit_fb"> 关联项目:</span>
|
<span class="tit_fb"> 关联项目:</span>
|
||||||
<% if work.project.is_public || User.current.member_of?(work.project) || User.current.admin? %>
|
<% if work.project_id == 0 || work.project_id.nil? %>
|
||||||
|
<span>暂无</span>
|
||||||
|
<% elsif work.project.is_public || User.current.member_of?(work.project) || User.current.admin? %>
|
||||||
<%= link_to( work.project.name, project_path(work.project.id), :class => "linkBlue" )%>
|
<%= link_to( work.project.name, project_path(work.project.id), :class => "linkBlue" )%>
|
||||||
|
<span class="ml5">(综合评分:<font class="c_red"><%=static_project_score(work.project.project_score).to_i %></font>)</span>
|
||||||
<% else %>
|
<% else %>
|
||||||
<span title ="该项目是私有的"><%=work.project.name %></span>
|
<span title ="该项目是私有的"><%=work.project.name %></span>
|
||||||
|
<span class="ml5">(综合评分:<font class="c_red"><%=static_project_score(work.project.project_score).to_i %></font>)</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
<%#= link_to( work.project.name, project_path(work.project.id), :class => "linkBlue" )%>
|
<%#= link_to( work.project.name, project_path(work.project.id), :class => "linkBlue" )%>
|
||||||
<span class="ml5">(综合评分:<font class="c_red"><%=static_project_score(work.project.project_score).to_i %></font>)</span>
|
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end%>
|
<% end%>
|
||||||
|
|
|
@ -1,27 +1,29 @@
|
||||||
<div class="project_r_h02">
|
<div class="project_r_h02">
|
||||||
<h2 class="project_h2">新建课程</h2>
|
<h2 class="project_h2">新建课程</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="hwork_new">
|
<div class="hwork_new">
|
||||||
<ul>
|
<ul>
|
||||||
<%= labelled_form_for @syllabus do |f| %>
|
<%= labelled_form_for @syllabus do |f| %>
|
||||||
<li class="ml45">
|
<li class="ml45">
|
||||||
<label><span class="c_red">*</span> 课程名称 :</label>
|
<label><span class="c_red">*</span> 课程名称 :</label>
|
||||||
<input type="text" name="title" id="new_syllabus_name" class="name_input" placeholder="例如:软件工程" maxlength="100" onkeyup="regex_syllabus_name();">
|
<input type="text" name="title" id="new_syllabus_name" class="name_input" placeholder="例如:软件工程" maxlength="100" onkeyup="regex_syllabus_name();">
|
||||||
<span class="c_red" id="new_syllabus_name_notice" style="display: none;">课程名称不能为空且至少有两个字符</span>
|
<span class="c_red" id="new_syllabus_name_notice" style="display: none;">课程名称不能为空且至少有两个字符</span>
|
||||||
</li>
|
</li>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<li class="ml45">
|
<li class="ml125 fontGrey3"><span class="success-icon mr25">正确示例:软件工程</span><span class="error-icon">错误示例:2016软件工程</span></li>
|
||||||
<label><span class="c_white">*</span> <%= l(:label_tags_course_eng_name)%> :</label>
|
<li class="ml125 mt10 mb10 fontGrey2">课程是针对一个具体的学科方向开展的教学内容与进程安排<br/>本质上,一门课程就是一个教学计划</li>
|
||||||
<input type="text" name="eng_name" id="new_syllabus_eng_name" placeholder="例如:Software Engineering" class="name_input" maxlength="100">
|
<li class="ml45">
|
||||||
<!--<span class="c_red" id="new_course_class_period_notice" style="display: none;"></span>-->
|
<label><span class="c_white">*</span> <%= l(:label_tags_course_eng_name)%> :</label>
|
||||||
</li>
|
<input type="text" name="eng_name" id="new_syllabus_eng_name" placeholder="例如:Software Engineering" class="name_input" maxlength="100">
|
||||||
<div class="cl"></div>
|
<!--<span class="c_red" id="new_course_class_period_notice" style="display: none;"></span>-->
|
||||||
<li class=" ml90" >
|
</li>
|
||||||
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_syllabus();" >提交</a>
|
<div class="cl"></div>
|
||||||
<%= link_to "取消",user_activities_path(User.current.id),:class => "grey_btn fl c_white ml10"%>
|
<li class=" ml55" >
|
||||||
<div class="cl"></div>
|
<a href="javascript:void(0)" class="blue_btn fl c_white" onclick="submit_new_syllabus();" >提交</a>
|
||||||
</li>
|
<%= link_to "取消",user_activities_path(User.current.id),:class => "grey_btn fl c_white ml10"%>
|
||||||
<% end%>
|
<div class="cl"></div>
|
||||||
</ul>
|
</li>
|
||||||
</div><!--talknew end-->
|
<% end%>
|
||||||
|
</ul>
|
||||||
|
</div><!--talknew end-->
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
|
@ -30,3 +30,7 @@ button:
|
||||||
type: "click"
|
type: "click"
|
||||||
name: "联系我们"
|
name: "联系我们"
|
||||||
key: "FEEDBACK"
|
key: "FEEDBACK"
|
||||||
|
-
|
||||||
|
type: "view"
|
||||||
|
name: "个人资料"
|
||||||
|
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=edit_userinfo#wechat_redirect"
|
||||||
|
|
|
@ -30,3 +30,7 @@ button:
|
||||||
type: "click"
|
type: "click"
|
||||||
name: "联系我们"
|
name: "联系我们"
|
||||||
key: "FEEDBACK"
|
key: "FEEDBACK"
|
||||||
|
-
|
||||||
|
type: "view"
|
||||||
|
name: "个人资料"
|
||||||
|
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=edit_userinfo#wechat_redirect"
|
||||||
|
|
|
@ -26,6 +26,7 @@ default: &default
|
||||||
join_project_notice: "TtXvy0XMIQyCgpnXHhoB8t-x0QIfy-78gAJXsGf9afg"
|
join_project_notice: "TtXvy0XMIQyCgpnXHhoB8t-x0QIfy-78gAJXsGf9afg"
|
||||||
project_issue_notice: "HP8JejOnkzmvFopTarc0l1Tp4bU9qnxzdH27x3186lI"
|
project_issue_notice: "HP8JejOnkzmvFopTarc0l1Tp4bU9qnxzdH27x3186lI"
|
||||||
at_notice: "U3kqzgriCaqkPI9qX0NDQOInJ5hiwHCz6wgTsPysSx4"
|
at_notice: "U3kqzgriCaqkPI9qX0NDQOInJ5hiwHCz6wgTsPysSx4"
|
||||||
|
rebind_notice: "OYsiECfqUlHKlzF_X-pz_xsGh_vAAUunX0jYRdHlyFU"
|
||||||
|
|
||||||
auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities"
|
auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities"
|
||||||
auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="
|
auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="
|
||||||
|
|
|
@ -26,6 +26,7 @@ default: &default
|
||||||
join_project_notice: "3KnMQEMUCmQWkB5JvzrpmguEwnN8bvUHUdpOTudxv_M"
|
join_project_notice: "3KnMQEMUCmQWkB5JvzrpmguEwnN8bvUHUdpOTudxv_M"
|
||||||
project_issue_notice: "HAF2aCta7BtnaOd_cotGvU4tErGWwCd9I9aiClFN7w8"
|
project_issue_notice: "HAF2aCta7BtnaOd_cotGvU4tErGWwCd9I9aiClFN7w8"
|
||||||
at_notice: "p4HfyZQuF8O5bP_44RbbJS30SGojLJAuZEqp34iB4JU"
|
at_notice: "p4HfyZQuF8O5bP_44RbbJS30SGojLJAuZEqp34iB4JU"
|
||||||
|
rebind_notice: "B97nOiW9cscB_d078I3k0jaPLHeJThTKUuxMoUnWZ2U"
|
||||||
|
|
||||||
auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities"
|
auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities"
|
||||||
auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="
|
auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
class GroupHomeworkCopyWork < ActiveRecord::Migration
|
||||||
|
def up
|
||||||
|
homeworks = HomeworkCommon.where("homework_type = 3")
|
||||||
|
count = homeworks.count / 30 + 2
|
||||||
|
transaction do
|
||||||
|
for i in 1 ... count do i
|
||||||
|
homeworks.page(i).per(30).each do |homework|
|
||||||
|
homework.student_works.each do |stu|
|
||||||
|
stu.student_work_projects.each do |stu_pro|
|
||||||
|
if stu_pro.is_leader == 0
|
||||||
|
new_stu = StudentWork.new(:name => stu.name, :description => stu.description, :homework_common_id =>homework.id, :user_id => stu_pro.user_id, :final_score => stu.final_score, :teacher_score => stu.teacher_score, :student_score => stu.student_score, :teaching_asistant_score => stu.teaching_asistant_score,
|
||||||
|
:project_id => stu.project_id, :late_penalty => stu.late_penalty,:absence_penalty => stu.absence_penalty,:work_score => stu.work_score,:work_status => 3,:commit_time => stu.commit_time)
|
||||||
|
new_stu.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20160830090214) do
|
ActiveRecord::Schema.define(:version => 20160905084821) do
|
||||||
|
|
||||||
create_table "activities", :force => true do |t|
|
create_table "activities", :force => true do |t|
|
||||||
t.integer "act_id", :null => false
|
t.integer "act_id", :null => false
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
<script src="/javascripts/wechat/directives/input_focus.js"></script>
|
<script src="/javascripts/wechat/directives/input_focus.js"></script>
|
||||||
<script src="/javascripts/wechat/directives/at_delete_link.js"></script>
|
<script src="/javascripts/wechat/directives/at_delete_link.js"></script>
|
||||||
<script src="/javascripts/wechat/directives/iphone_recognize.js"></script>
|
<script src="/javascripts/wechat/directives/iphone_recognize.js"></script>
|
||||||
<script src="/javascripts/wechat/directives/submit_start.js"></script>
|
<script src="/javascripts/wechat/directives/multi_reply.js"></script>
|
||||||
<script src="/javascripts/wechat/controllers/reg.js"></script>
|
<script src="/javascripts/wechat/controllers/reg.js"></script>
|
||||||
<script src="/javascripts/wechat/controllers/login.js"></script>
|
<script src="/javascripts/wechat/controllers/login.js"></script>
|
||||||
<script src="/javascripts/wechat/controllers/activity.js"></script>
|
<script src="/javascripts/wechat/controllers/activity.js"></script>
|
||||||
|
|
|
@ -73,7 +73,17 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,blog)" class="fr mr25 f13 reply-icons multi-hide" >
|
||||||
|
<img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(blog)" ng-blur="inputblur(blog)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -82,13 +92,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ng-if="!blog.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!blog.notshow" ng-if="!blog.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="{{replytip}}" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="blog.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(blog,0)" ng-disabled="blog.disabled" ng-hide="blog.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="blog.disabled" ng-hide="!blog.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -71,7 +71,17 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,discussion)" class="fr mr25 f13 reply-icons multi-hide">
|
||||||
|
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(discussion)" ng-blur="inputblur(discussion)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="has_more">
|
<div ng-if="has_more">
|
||||||
|
@ -79,13 +89,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!discussion.notshow" ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="discussion.comment" placeholder="输入回复内容~" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(discussion,0)" ng-disabled="discussion.disabled" ng-hide="discussion.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="discussion.disabled" ng-hide="!discussion.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -86,7 +86,17 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,news)" class="fr mr25 f13 reply-icons multi-hide">
|
||||||
|
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(news)" ng-blur="inputblur(news)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="has_more">
|
<div ng-if="has_more">
|
||||||
|
@ -94,13 +104,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!news.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="news.comment" placeholder="输入回复内容~" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(news,0)" ng-disabled="news.disabled" ng-hide="news.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="news.disabled" ng-hide="!news.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<div class="post-container">
|
||||||
|
<div loading-spinner></div>
|
||||||
|
<div class="blue-title">编辑资料</div>
|
||||||
|
<div class="blank-row mt10">
|
||||||
|
<div class="upload-input-container img-circle fl ml10 mt4">
|
||||||
|
<!--<input class="upload-input" accept="image/*" multiple="" type="file">-->
|
||||||
|
<!--<input class="upload-input" type="file" capture="camera" accept="image/*" load-head>-->
|
||||||
|
<img ng-src="{{replaceUrl(user.img_url)}}" width="30" class="fl img-circle" style="position:absolute;" />
|
||||||
|
</div>
|
||||||
|
<span class="fl ml25">{{user.login}}</span><span ng-click="unbind()" class="fr f13 mr10 c-blue">解除绑定</span><div class="cl"></div></div>
|
||||||
|
|
||||||
|
<form name="regFrm" novalidate>
|
||||||
|
|
||||||
|
<div class="course-list-row f13 c-grey3 mt10"><span class="fl ml15 c-grey3">姓名</span><input class="new-class-input ml25" ng-model="lastname" placeholder="请输入您的姓名全称" maxlength="30" /></div>
|
||||||
|
<div class="course-list-row f13 c-grey3 mt10" style="height:auto;">
|
||||||
|
<div class="mt5" style="line-height:20px">
|
||||||
|
<span class="ml15 c-grey3">性别</span>
|
||||||
|
<span class="ml25">男</span>
|
||||||
|
<span class="login-box fr mr10 mt2" ng-click="sex=0" ng-class="['login-box', 'fr', 'mr10', 'img-circle', {'checked': sex==0}]"></span>
|
||||||
|
</div>
|
||||||
|
<div class="mb5 mt5" style="line-height:20px;">
|
||||||
|
<span class="ml15 c-grey3"></span>
|
||||||
|
<span class="ml55">女</span>
|
||||||
|
<span class="login-box fr mr10 mt2" ng-click="sex=1" ng-class="['login-box', 'fr', 'mr10', 'img-circle', {'checked': sex==1}]"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="course-list-row f13 c-grey3 mt10">
|
||||||
|
<span class="fl ml15 c-grey3">邮箱</span>
|
||||||
|
<input class="new-class-input ml25" type="email" name="email" ng-model="mail" placeholder="请输入您的邮箱地址" maxlength="60" />
|
||||||
|
<div ng-show="regFrm.$submitted || regFrm.email.$touched">
|
||||||
|
<span class="f12 c-red fl ml15" ng-show="regFrm.email.$error.required">电子邮箱地址不能为空</span>
|
||||||
|
<span class="f12 c-red fl ml15" ng-show="regFrm.email.$error.email">电子邮箱地址不合法</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-tab-wrap mt10">
|
||||||
|
<a ng-click="cancel()" class="weixin-tab c-grey border-top">取消</a>
|
||||||
|
<a ng-click="confirm(regFrm)" ng-class="[{'btn-disabled':!regFrm.$valid} ]" class="weixin-tab link-blue2 border-top">确定</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<my-alert message="alertService_1.message" title="alertService_1.title" visible="alertService_1.visible" cb="alertService_1.cb"></my-alert>
|
||||||
|
<my-alert2 message="alertService_2.message" title="alertService_2.title" visible="alertService_2.visible" cb="alertService_2.cb"></my-alert2>
|
||||||
|
</div>
|
|
@ -75,7 +75,17 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,homework)" class="fr mr25 f13 reply-icons multi-hide">
|
||||||
|
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(homework)" ng-blur="inputblur(homework)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="has_more">
|
<div ng-if="has_more">
|
||||||
|
@ -83,13 +93,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!homework.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="{{replytip}}" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="homework.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(homework,0)" ng-disabled="homework.disabled" ng-hide="homework.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="homework.disabled" ng-hide="!homework.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -92,7 +92,17 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,issue)" class="fr mr25 f13 reply-icons multi-hide">
|
||||||
|
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(issue)" ng-blur="inputblur(issue)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="has_more">
|
<div ng-if="has_more">
|
||||||
|
@ -100,13 +110,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!issue.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="issue.comment" placeholder="输入回复内容~" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(issue,0)" ng-disabled="issue.disabled" ng-hide="issue.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="issue.disabled" ng-hide="!issue.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -70,7 +70,17 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,message)" class="fr mr25 f13 reply-icons multi-hide">
|
||||||
|
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(message)" ng-blur="inputblur(message)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="has_more">
|
<div ng-if="has_more">
|
||||||
|
@ -78,13 +88,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!message.notshow" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="message.comment" placeholder="输入回复内容~" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(message,0)" ng-disabled="message.disabled" ng-hide="message.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="message.disabled" ng-hide="!message.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -71,20 +71,30 @@
|
||||||
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.praise_count && !journal.has_praise" ng-click="addPraise(journal);"><img src="/images/wechat/w_praise.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
<div ng-if="journal.has_praise" ng-click="decreasePraise(journal);"><img src="/images/wechat/w_praised.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span>{{journal.praise_count}}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div ng-click="clickReply(journal.act_id,discussion)" class="fr mr25 f13 reply-icons multi-hide">
|
||||||
|
<a><img src="/images/wechat/w_reply.png" width="20" style="vertical-align:top; margin-top:2px;" class="mr5" /><span style="vertical-align:top;">回复</span></a>
|
||||||
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
<div ng-show="journal.showinput" class="post-input-container multi-input-container ml40 mb10">
|
||||||
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
|
<textarea ng-focus="inputfocus(discussion)" ng-blur="inputblur(discussion)" input-auto type="text" class="post-reply-input" ng-model="journal.comment" placeholder="{{replytip}}" /></textarea>
|
||||||
|
<button ng-click="addReply(journal,1);journal.showinput = false;" ng-disabled="journal.disabled" ng-hide="journal.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
|
<button ng-disabled="journal.disabled" ng-hide="!journal.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="has_more">
|
<div ng-if="has_more">
|
||||||
<div id="more_reply" class="more-events mt10" ng-click="showMoreReply(0,discussion);">更多</div>
|
<div id="more_reply" class="more-events mt10" ng-click="showMoreReply(0,discussion);">更多</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
<div ng-show="!discussion.notshow" ng-if="!discussion.locked" id="post_input_1" class="post-input-wrap post-box-shadow" iphone-recognize>
|
||||||
<div class="post-reply-row border-bottom-none">
|
<div class="post-reply-row border-bottom-none">
|
||||||
<div class="post-input-container">
|
<div class="post-input-container">
|
||||||
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
<div class="copy-input-container"><textarea class="copy-input"></textarea></div>
|
||||||
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="formData.comment" placeholder="输入回复内容~" /></textarea>
|
<textarea input-auto type="text" class="post-reply-input" id="postInput1" ng-model="discussion.comment" placeholder="输入回复内容~" /></textarea>
|
||||||
<button ng-click="addReply(formData)" ng-disabled="formData.disabled" ng-hide="formData.disabled" class="post-reply-submit fr border-radius">提交</button>
|
<button ng-click="addReply(discussion,0)" ng-disabled="discussion.disabled" ng-hide="discussion.disabled" class="post-reply-submit fr border-radius">提交</button>
|
||||||
<button ng-disabled="formData.disabled" ng-hide="!formData.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
<button ng-disabled="discussion.disabled" ng-hide="!discussion.disabled" class="post-reply-submit bg-grey fr border-radius">提交</button>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
app.controller('EditUserInfoController', ['$scope', 'config','$http', 'auth','$location','$routeParams','alertService','rms','common','$timeout','wx', function($scope, config, $http, auth, $location, $routeParams,alertService,rms,common,$timeout,wx){
|
||||||
|
// common.checkLogin();
|
||||||
|
|
||||||
|
$scope.replaceUrl = function(url){
|
||||||
|
return url;
|
||||||
|
};
|
||||||
|
|
||||||
|
var vm = $scope;
|
||||||
|
|
||||||
|
//单弹框
|
||||||
|
vm.alertService_1 = alertService.create();
|
||||||
|
|
||||||
|
//双弹框
|
||||||
|
vm.alertService_2 = alertService.create();
|
||||||
|
|
||||||
|
vm.getuserinfo = function(){
|
||||||
|
$http.get(config.apiUrl + 'users/get_userinfo?token='+auth.token()).then(
|
||||||
|
function(response) {
|
||||||
|
console.log(response.data);
|
||||||
|
vm.user = response.data.data;
|
||||||
|
vm.lastname = vm.user.lastname;
|
||||||
|
vm.mail = vm.user.mail;
|
||||||
|
vm.sex = vm.user.gender;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.getuserinfo();
|
||||||
|
|
||||||
|
vm.unbind = function(){
|
||||||
|
vm.alertService_2.showMessage('提示', '是否确认解除绑定', function() {
|
||||||
|
$http.post(config.apiUrl + "users/user_unbind",
|
||||||
|
{token: auth.token()}
|
||||||
|
).then(function (response) {
|
||||||
|
if (response.data.status == 0) {
|
||||||
|
vm.alertService_1.showMessage('提示', '解除绑定成功', function () {
|
||||||
|
wx.closeWindow();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
vm.alertService_1.showMessage('提示', response.data.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.cancel = function(){
|
||||||
|
vm.alertService_2.showMessage('提示', '是否确认取消', function() {
|
||||||
|
wx.closeWindow();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.confirm = function(frm){
|
||||||
|
frm.$setSubmitted();
|
||||||
|
|
||||||
|
console.log(frm);
|
||||||
|
if (!frm.$valid) {
|
||||||
|
console.log(frm.$error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(vm.lastname == ""){
|
||||||
|
vm.alertService_1.showMessage('提示', '姓名不能为空');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(vm.mail == ""){
|
||||||
|
vm.alertService_1.showMessage('提示', '邮箱不能为空');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(!(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i.test(vm.mail))){
|
||||||
|
// vm.alertService_1.showMessage('提示', '邮箱不合法');
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
$http.post(config.apiUrl + "users/edit_userinfo",
|
||||||
|
{token: auth.token(),lastname: vm.lastname, sex: vm.sex, mail: vm.mail}
|
||||||
|
).then(function(response){
|
||||||
|
if(response.data.status == 0)
|
||||||
|
{
|
||||||
|
vm.alertService_1.showMessage('提示', '修改成功',function(){
|
||||||
|
wx.closeWindow();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
vm.alertService_1.showMessage('提示', response.data.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
}]);
|
|
@ -1,19 +1,40 @@
|
||||||
app.directive('inputAuto',function(){
|
//app.directive('inputAuto',function(){
|
||||||
return{
|
// return{
|
||||||
restrict: 'A',
|
// restrict: 'A',
|
||||||
scope: {},
|
// scope: {},
|
||||||
link: function(scope, element){
|
// link: function(scope, element){
|
||||||
var copyContainer = element.parent().children().children().eq(0);
|
// var copyContainer = element.parent().children().children().eq(0);
|
||||||
var sendButton = element.next();
|
// var sendButton = element.next();
|
||||||
element.on('input',function(){
|
// element.on('input',function(){
|
||||||
//console.log(sendButton);
|
// //console.log(sendButton);
|
||||||
copyContainer.html(element[0].value);
|
// copyContainer.html(element[0].value);
|
||||||
var textHeight = copyContainer[0].scrollHeight-10;
|
// var textHeight = copyContainer[0].scrollHeight-10;
|
||||||
element.css('height', textHeight + 'px');
|
// element.css('height', textHeight + 'px');
|
||||||
});
|
// });
|
||||||
sendButton.on('click',function(){
|
// sendButton.on('click',function(){
|
||||||
element.css('height','18px');
|
// element.css('height','18px');
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
});
|
//});
|
||||||
|
|
||||||
|
app.directive('inputAuto',["$timeout",function(timer){
|
||||||
|
return{
|
||||||
|
restrict: 'A',
|
||||||
|
scope: {},
|
||||||
|
link: function(scope, element){
|
||||||
|
timer(function(){
|
||||||
|
$(".post-reply-input").bind("input",function(){
|
||||||
|
var copyInput = $(this).prev().children();
|
||||||
|
var sendButton = $(this).next();
|
||||||
|
copyInput.html($(this).val());
|
||||||
|
var textHeight = copyInput[0].scrollHeight-10;
|
||||||
|
$(this).css("height",textHeight + "px");
|
||||||
|
sendButton.click(function(){
|
||||||
|
$(this).prev().css("height","18px");
|
||||||
|
})
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]);
|
|
@ -0,0 +1,35 @@
|
||||||
|
app.directive('loadHead',['$http','config','auth','$location','alertService',function($http,config,auth,$location,alertService){
|
||||||
|
return{
|
||||||
|
restrict: 'A',
|
||||||
|
scope: {},
|
||||||
|
link: function (scope, element, attrs) {
|
||||||
|
element.bind('change', function(){
|
||||||
|
var file = event.target.files[0];
|
||||||
|
//判断类型是不是图片
|
||||||
|
if (!/image\/\w+/.test(file.type)) {
|
||||||
|
alert("非图片");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
reader.onload = function (e) {
|
||||||
|
// alert(this.result);//base64
|
||||||
|
|
||||||
|
$http.post(config.apiUrl + "users/upload_head",
|
||||||
|
{token: auth.token(),imgdata:this.result}
|
||||||
|
).then(function (response) {
|
||||||
|
if(response.data.status == 0){
|
||||||
|
scope.$parent.alertService_1.showMessage('提示',"上传成功",function(){
|
||||||
|
scope.$parent.getuserinfo();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
scope.$parent.alertService_1.showMessage('提示',response.data.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]);
|
|
@ -0,0 +1,42 @@
|
||||||
|
/**
|
||||||
|
* Created by ttang on 2016/9/5.
|
||||||
|
*/
|
||||||
|
app.directive('multiReply',["$timeout",function(timer){
|
||||||
|
return{
|
||||||
|
restrict: 'A',
|
||||||
|
scope: {},
|
||||||
|
link: function(scope, element){
|
||||||
|
timer(function(){
|
||||||
|
$(".reply-icons").each(function(){
|
||||||
|
$(this).toggle(function(){
|
||||||
|
$(this).next().next().removeClass("undis");
|
||||||
|
$(this).next().next().focus();
|
||||||
|
},function(){
|
||||||
|
$(this).next().next().addClass("undis");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// $(".reply-icons").live("click",function(){
|
||||||
|
// if($(this).hasClass("multi-hide")){
|
||||||
|
// $(".multi-input-container").addClass("undis");
|
||||||
|
// $(".reply-icons").addClass("multi-hide");
|
||||||
|
// $(this).next().next().removeClass("undis");
|
||||||
|
// $(this).next().next().focus();
|
||||||
|
// $(this).removeClass("multi-hide");
|
||||||
|
// $(".post-reply-input").val("");
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// $(this).addClass("multi-hide");
|
||||||
|
// $(".post-input-container").addClass("undis");
|
||||||
|
// $(".post-reply-input").val("");
|
||||||
|
// $("#post_input_1, #post_input_1 .post-input-container").show();
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// $(".post-reply-submit,#more_reply").click(function(){
|
||||||
|
// $(".reply-icons").addClass("multi-hide");
|
||||||
|
// $(".post-input-container").addClass("undis");
|
||||||
|
// $("#post_input_1, #post_input_1 .post-input-container").show();
|
||||||
|
// });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}]);
|
|
@ -1,17 +0,0 @@
|
||||||
/**
|
|
||||||
* Created by ttang on 2016/8/31.
|
|
||||||
*/
|
|
||||||
app.directive('submitStart',["$timeout",function(timer){
|
|
||||||
return{
|
|
||||||
restrict: 'A',
|
|
||||||
scope: {},
|
|
||||||
link: function(scope, element){
|
|
||||||
timer(function(){
|
|
||||||
$("#manageDelete,.login-box").click(function(){
|
|
||||||
element.removeClass("bg-grey c-white");
|
|
||||||
element.addClass("link-blue2");
|
|
||||||
});
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}]);
|
|
|
@ -94,7 +94,7 @@ app.factory('rms', function(){
|
||||||
});
|
});
|
||||||
|
|
||||||
app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$location', function($http, auth, $routeParams,rms,config,wx,$location){
|
app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$location', function($http, auth, $routeParams,rms,config,wx,$location){
|
||||||
var addCommonReply = function(id, type, data,args, cb){
|
var addCommonReply = function(id, type, data,args,reply_type, cb){
|
||||||
//先判断有没有绑定
|
//先判断有没有绑定
|
||||||
// $http.post(
|
// $http.post(
|
||||||
// '/wechat/is_bind',
|
// '/wechat/is_bind',
|
||||||
|
@ -111,12 +111,12 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
|
||||||
}
|
}
|
||||||
|
|
||||||
var temp = data.comment.replace(/\n/g,'<br/>');
|
var temp = data.comment.replace(/\n/g,'<br/>');
|
||||||
temp = temp.replace(/^\:[a-z0-9_]+\:$/g, "[表情]");
|
|
||||||
|
|
||||||
var userInfo = {
|
var userInfo = {
|
||||||
type: type,
|
type: type,
|
||||||
content: temp,
|
content: temp,
|
||||||
token: auth.token()
|
token: auth.token(),
|
||||||
|
reply_type:reply_type
|
||||||
};
|
};
|
||||||
//回复按钮禁用
|
//回复按钮禁用
|
||||||
data.disabled = true;
|
data.disabled = true;
|
||||||
|
@ -146,24 +146,26 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
|
||||||
cb(response.data.subscribe);
|
cb(response.data.subscribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var act_id = response.data.act_id;
|
||||||
|
|
||||||
//保证内外回复数一致
|
//保证内外回复数一致
|
||||||
activities = rms.get("activities") || [];
|
activities = rms.get("activities") || [];
|
||||||
course_activities = rms.get("course_activities") || [];
|
course_activities = rms.get("course_activities") || [];
|
||||||
project_activities = rms.get("project_activities") || [];
|
project_activities = rms.get("project_activities") || [];
|
||||||
for(var i in activities){
|
for(var i in activities){
|
||||||
if(activities[i].act_id == id){
|
if(activities[i].act_id == act_id){
|
||||||
activities[i].reply_count += 1;
|
activities[i].reply_count += 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(var i in course_activities){
|
for(var i in course_activities){
|
||||||
if(course_activities[i].act_id == id){
|
if(course_activities[i].act_id == act_id){
|
||||||
course_activities[i].reply_count += 1;
|
course_activities[i].reply_count += 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(var i in project_activities){
|
for(var i in project_activities){
|
||||||
if(project_activities[i].act_id == id){
|
if(project_activities[i].act_id == act_id){
|
||||||
project_activities[i].reply_count += 1;
|
project_activities[i].reply_count += 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -222,7 +224,7 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
|
||||||
|
|
||||||
var init = function(args){
|
var init = function(args){
|
||||||
args.scope.replytip = "输入回复内容~";
|
args.scope.replytip = "输入回复内容~";
|
||||||
args.scope.formData = {comment: ''};
|
// args.scope.formData = {comment: ''};
|
||||||
var loadData = function(id,replytype,page){
|
var loadData = function(id,replytype,page){
|
||||||
loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
|
loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
|
||||||
console.log(response.data);
|
console.log(response.data);
|
||||||
|
@ -304,10 +306,10 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
|
||||||
};
|
};
|
||||||
|
|
||||||
loadData(args.id,0,0);
|
loadData(args.id,0,0);
|
||||||
args.scope.addReply = function(data){
|
args.scope.addReply = function(data,reply_type){
|
||||||
console.log(data.comment);
|
console.log(data.comment);
|
||||||
addCommonReply(args.id, args.replyType, data,args, function(subscribe){
|
addCommonReply(data.act_id, args.replyType, data,args,reply_type, function(subscribe){
|
||||||
args.scope.formData = {comment: ''};
|
// args.scope.formData = {comment: ''};
|
||||||
if(subscribe == 0){
|
if(subscribe == 0){
|
||||||
$location.path("/login_tip");
|
$location.path("/login_tip");
|
||||||
return;
|
return;
|
||||||
|
@ -322,6 +324,27 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
args.scope.inputfocus = function(data){
|
||||||
|
data.notshow = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
args.scope.inputblur = function(data){
|
||||||
|
data.notshow = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
args.scope.clickReply = function(act_id,data) {
|
||||||
|
allchidren = data.all_children;
|
||||||
|
for(var i in allchidren){
|
||||||
|
if(allchidren[i].act_id != act_id ){
|
||||||
|
allchidren[i].showinput = false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
allchidren[i].showinput = !allchidren[i].showinput;
|
||||||
|
data.notshow = allchidren[i].showinput;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
|
// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
|
||||||
args.scope.addPraise = function(act){
|
args.scope.addPraise = function(act){
|
||||||
activities = rms.get("activities") || [];
|
activities = rms.get("activities") || [];
|
||||||
|
|
|
@ -51,6 +51,7 @@ app.config(['$routeProvider',"$httpProvider", "$locationProvider",'config', func
|
||||||
.when('/review_project_member', makeRoute('review_project_member.html', 'ReviewProjectMemberController'))
|
.when('/review_project_member', makeRoute('review_project_member.html', 'ReviewProjectMemberController'))
|
||||||
.when('/project_publishnote', makeRoute('project_publishnote.html', 'ProjectPublishNoteController'))
|
.when('/project_publishnote', makeRoute('project_publishnote.html', 'ProjectPublishNoteController'))
|
||||||
.when('/login_tip', makeRoute('login_tip.html', 'LoginTipController'))
|
.when('/login_tip', makeRoute('login_tip.html', 'LoginTipController'))
|
||||||
|
.when('/edit_userinfo', makeRoute('edit_userinfo.html', 'EditUserInfoController'))
|
||||||
.otherwise({
|
.otherwise({
|
||||||
redirectTo: '/activites'
|
redirectTo: '/activites'
|
||||||
});
|
});
|
||||||
|
|
|
@ -607,4 +607,8 @@ a:hover.sy_btn_blue{ background: #2788d0;}
|
||||||
.is_public_checkbox{margin-left: 15px;margin-right: 10px;}
|
.is_public_checkbox{margin-left: 15px;margin-right: 10px;}
|
||||||
.author_name{color: #3ca5c6 !important;}
|
.author_name{color: #3ca5c6 !important;}
|
||||||
.ke-container-default{max-width: 100%;}
|
.ke-container-default{max-width: 100%;}
|
||||||
.borderRadius {border-radius:5px;}
|
.borderRadius {border-radius:5px;}
|
||||||
|
|
||||||
|
/*状态提示图标*/
|
||||||
|
.success-icon {background:url("/images/icons_ziliao.png") 0 -28px no-repeat; padding-left:25px;}
|
||||||
|
.error-icon {background:url("/images/icons_ziliao.png") 0 -56px no-repeat; padding-left:25px;}
|
|
@ -566,9 +566,9 @@ a:hover.sy_btn_orange{
|
||||||
a.sy_class_ltitle{display: block; font-size: 14px; width: 185px; color:#888; }
|
a.sy_class_ltitle{display: block; font-size: 14px; width: 185px; color:#888; }
|
||||||
a:hover.sy_class_ltitle{ color:#333;}
|
a:hover.sy_class_ltitle{ color:#333;}
|
||||||
.sy_cir_grey{
|
.sy_cir_grey{
|
||||||
font-size:12px;
|
font-size:11px;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
background: #dbdbdb;
|
background: #eee;
|
||||||
-webkit-border-radius: 15px;
|
-webkit-border-radius: 15px;
|
||||||
-moz-border-radius: 15px;
|
-moz-border-radius: 15px;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
|
|
|
@ -257,4 +257,9 @@ a.underline {text-decoration:underline;}
|
||||||
|
|
||||||
/*发布帖子,通知*/
|
/*发布帖子,通知*/
|
||||||
.full-width-wrap {padding:5px 15px; background-color:#fff; border-top:1px solid #ddd; border-bottom:1px solid #ddd;}
|
.full-width-wrap {padding:5px 15px; background-color:#fff; border-top:1px solid #ddd; border-bottom:1px solid #ddd;}
|
||||||
.full-width-textarea {width:100%; height:180px; line-height:18px; max-height:180px; border:none; resize:none; font-size:13px; color:#555; overflow-y:auto;}
|
.full-width-textarea {width:100%; height:180px; line-height:18px; max-height:180px; border:none; resize:none; font-size:13px; color:#555; overflow-y:auto;}
|
||||||
|
|
||||||
|
/*资料修改*/
|
||||||
|
.blank-row {width:100%; height:38px; line-height:38px; vertical-align:middle;}
|
||||||
|
.upload-input-container {width:30px; height:30px; border:1px solid #ddd; position:relative;}
|
||||||
|
.upload-input {width:30px; height:30px; position:absolute; z-index:1; opacity:0;}
|
Loading…
Reference in New Issue