diff --git a/app/controllers/course_second_categories_controller.rb b/app/controllers/course_second_categories_controller.rb
index af368a8dc..e5c3366cd 100644
--- a/app/controllers/course_second_categories_controller.rb
+++ b/app/controllers/course_second_categories_controller.rb
@@ -8,7 +8,7 @@ class CourseSecondCategoriesController < ApplicationController
tip_exception("毕设子目录不能重命名") if @category.category_type == "graduation"
tip_exception("名称不能为空") if params[:name].blank?
tip_exception("已存在同名子目录") if @course_module.course_second_categories.exists?(name: params[:name].strip)
- @category.update_attributes(name: params[:name].strip)
+ @category.update_attributes!(name: params[:name].strip)
normal_status(0, "更新成功")
end
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index f5830adff..230e7f387 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -906,7 +906,6 @@ class CoursesController < ApplicationController
CourseAddStudentCreateWorksJob.perform_later(course.id, [current_user.id])
StudentJoinCourseNotifyJob.perform_later(current_user.id, course.id)
- logger.info("#####################{course.id}")
end
end
@@ -927,14 +926,18 @@ class CoursesController < ApplicationController
role = course_message.content == 2 ? '7' : '9' # 7:老师 9:助教
ApplyTeacherRoleJoinCourseNotifyJob.perform_later(current_user.id, course.id, role)
+ teacher_role = 1
+ message = "#{course_message.content == 2 ? '教师' : '助教'}申请已提交,请等待审核"
end
end
end
- if current_user.student_of_course?(course) || current_user.teacher_of_course?(course)
- render json: { status: 0, message: "成功", course_id: course.id}
+ if teacher_role && current_user.student_of_course?(course)
+ render json: { status: 0, message: message, course_id: course.id}
+ elsif current_user.student_of_course?(course)
+ render json: { status: 0, message: "加入成功", course_id: course.id}
else
- normal_status("申请已提交,请等待审核")
+ normal_status(message)
end
rescue => e
uid_logger(e.message)
diff --git a/app/controllers/stages_controller.rb b/app/controllers/stages_controller.rb
index c62832365..3967554aa 100644
--- a/app/controllers/stages_controller.rb
+++ b/app/controllers/stages_controller.rb
@@ -39,7 +39,7 @@ class StagesController < ApplicationController
def update
ActiveRecord::Base.transaction do
begin
- @stage.update_attributes(stage_params)
+ @stage.update_attributes!(stage_params)
@stage.stage_shixuns.destroy_all
unless params[:shixun_id].blank?
params[:shixun_id].each do |shixun_id|
@@ -50,7 +50,7 @@ class StagesController < ApplicationController
@subject.update_attributes(updated_at: Time.now)
rescue Exception => e
uid_logger_error(e.message)
- tip_exception("章节更新失败")
+ tip_exception(e.message)
raise ActiveRecord::Rollback
end
end
diff --git a/app/controllers/subjects_controller.rb b/app/controllers/subjects_controller.rb
index cc0e06a38..5cbb2a462 100644
--- a/app/controllers/subjects_controller.rb
+++ b/app/controllers/subjects_controller.rb
@@ -207,7 +207,7 @@ class SubjectsController < ApplicationController
end
rescue Exception => e
uid_logger(e.message)
- tip_exception("发送失败")
+ tip_exception(e.message)
raise ActiveRecord::Rollback
end
end
diff --git a/app/models/stage.rb b/app/models/stage.rb
index d255cddeb..db7b5c0b3 100644
--- a/app/models/stage.rb
+++ b/app/models/stage.rb
@@ -6,6 +6,6 @@ class Stage < ApplicationRecord
has_many :stage_shixuns, -> { order("stage_shixuns.position ASC") }, dependent: :destroy
has_many :shixuns, :through => :stage_shixuns
- validates :name, length: { maximum: 30 }
+ validates :name, length: { maximum: 60 }
validates :description, length: { maximum: 300 }
end
diff --git a/public/react/src/common/components/Cropper.js b/public/react/src/common/components/Cropper.js
index 632950434..3ce30a8b5 100644
--- a/public/react/src/common/components/Cropper.js
+++ b/public/react/src/common/components/Cropper.js
@@ -102,7 +102,7 @@ class Cropper extends Component {
setTimeout(() => {
const image = document.getElementById(this.props.imageId || '__image');
this.cropper = new window.Cropper(image, this.options);
- }, 1000)
+ }, 1200)
}
renew = (image) => {
diff --git a/public/react/src/modules/courses/busyWork/UseBank.js b/public/react/src/modules/courses/busyWork/UseBank.js
index 671a09fff..ca65e74be 100644
--- a/public/react/src/modules/courses/busyWork/UseBank.js
+++ b/public/react/src/modules/courses/busyWork/UseBank.js
@@ -194,7 +194,7 @@ class UseBank extends Component{
display: -webkit-flex;
}
.setImgW .edu-nodata-img{
- width:218px !important;
+ width: 170px !important;
}
.bankwidth{
width:24% !important;
diff --git a/public/react/src/modules/login/EducoderLogin.js b/public/react/src/modules/login/EducoderLogin.js
index 713593100..eed3a9add 100644
--- a/public/react/src/modules/login/EducoderLogin.js
+++ b/public/react/src/modules/login/EducoderLogin.js
@@ -148,7 +148,7 @@ class EducoderLogin extends Component {
"align-items": "center",
"width": "100%"
}}>
-
+
this.gohome()} src={educodernet}/>
diff --git a/public/react/src/modules/user/FindPasswordComponent.js b/public/react/src/modules/user/FindPasswordComponent.js
index 19b5a7388..22fcd97de 100644
--- a/public/react/src/modules/user/FindPasswordComponent.js
+++ b/public/react/src/modules/user/FindPasswordComponent.js
@@ -424,10 +424,56 @@ class LoginRegisterComponent extends Component {
})
return
}
- this.setState({
- Phonenumberisnotcosytdhk:undefined,
- })
- this.Emailphonenumberverification(e.target.value)
+ console.log(e.target.value.length);
+ if (e.target.value.length === 0) {
+ this.setState({
+ Phonenumberisnotco: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ return;
+ }
+ // var telephone = $("#telephoneAdd.tianjia_phone").val();
+ var regph = /^[1][3,4,5,6,7,8][0-9]{9}$/;
+ // var email = $("#add_email.tianjia_email").val();
+ var regemail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
+
+ // [1]手机号开头必须是1 [3,4,5,6,7,8] 第二位是3-8中的一个 [0-9]{9} 后边9位可以是0-9的任意数字。
+ var stringdata = undefined;
+ if (!regph.test(e.target.value)) {
+ stringdata = "手机号格式不正确";
+ this.setState({
+ Phonenumberisnotco: stringdata,
+ Phonenumberisnotcobool: false,
+ })
+ } else {
+ this.setState({
+ Phonenumberisnotco: undefined,
+ Phonenumberisnotcobool: true,
+ })
+ return
+ }
+
+ if (!regemail.test(e.target.value)) {
+ if ((e.target.value.indexOf("@") != -1) === true) {
+ stringdata = "邮箱格式不正确";
+ } else {
+ stringdata = "手机号格式不正确";
+
+ }
+ this.setState({
+ Phonenumberisnotco: stringdata,
+ Phonenumberisnotcobool: false,
+ })
+ return
+ } else {
+ this.setState({
+ Phonenumberisnotco: undefined,
+ Phonenumberisnotcobool: true,
+ })
+ this.Emailphonenumberverification(e.target.value)
+ return
+ }
+ this.Emailphonenumberverification(e.target.value)
}
}
diff --git a/public/react/src/modules/user/LoginRegisterComponent.js b/public/react/src/modules/user/LoginRegisterComponent.js
index b27fe8cec..dcbaf4730 100644
--- a/public/react/src/modules/user/LoginRegisterComponent.js
+++ b/public/react/src/modules/user/LoginRegisterComponent.js
@@ -402,6 +402,7 @@ class LoginRegisterComponent extends Component {
type: 1,
}
}).then((result) => {
+ debugger
//验证有问题{"status":1,"message":"success"}
// console.log(result);
// this.setState({dragOk: true})
@@ -409,12 +410,12 @@ class LoginRegisterComponent extends Component {
if(result){
if(result.data.status===-2){
if (id === 1) {
- console.log(value.length);
if(result.data.message==="该手机号码或邮箱已被注册"){
this.setState({
Phonenumberisnotco: undefined,
Phonenumberisnotcobool: false,
dragOk:true,
+
})
}else {
this.setState({
@@ -436,7 +437,6 @@ class LoginRegisterComponent extends Component {
}
}else {
if (id === 1) {
- console.log(value.length);
this.setState({
Phonenumberisnotco: undefined,
Phonenumberisnotcobool: false,
@@ -585,13 +585,116 @@ class LoginRegisterComponent extends Component {
}
//失去焦点判断
inputOnBlur = (e, id) => {
- this.isCorrectname(e.target.value, id);
+ // this.isCorrectname(e.target.value, id);
// this.Emailphonenumberverification(e.target.value, id);
+ if (e.target.value.length === 0) {
+ this.setState({
+ Phonenumberisnotco: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ return;
+ }
+ // var telephone = $("#telephoneAdd.tianjia_phone").val();
+ var regph = /^[1][3,4,5,6,7,8][0-9]{9}$/;
+ // var email = $("#add_email.tianjia_email").val();
+ var regemail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
+
+ // [1]手机号开头必须是1 [3,4,5,6,7,8] 第二位是3-8中的一个 [0-9]{9} 后边9位可以是0-9的任意数字。
+ var stringdata = undefined;
+ if (!regph.test(e.target.value)) {
+ stringdata = "手机号格式不正确";
+ this.setState({
+ Phonenumberisnotco: stringdata,
+ Phonenumberisnotcobool: true,
+ dragOk:false,
+ Whethertoverify:this.state.Whethertoverify===true?false:true,
+ })
+ } else {
+ this.setState({
+ Phonenumberisnotco: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ return
+ }
+
+ if (!regemail.test(e.target.value)) {
+ if ((e.target.value.indexOf("@") != -1) === true) {
+ stringdata = "邮箱格式不正确";
+ } else {
+ stringdata = "手机号格式不正确";
+
+ }
+ this.setState({
+ Phonenumberisnotco: stringdata,
+ Phonenumberisnotcobool: true,
+ dragOk:false,
+ Whethertoverify:this.state.Whethertoverify===true?false:true,
+ })
+ return
+ } else {
+ this.setState({
+ Phonenumberisnotco: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ this.Emailphonenumberverification(e.target.value, 1);
+ return
+ }
+ this.Emailphonenumberverification(e.target.value, 1);
}
inputOnBlurzhuche = (e, id) => {
- if(this.state.pciphone===false) {
+ if (e.target.value.length === 0) {
+ this.setState({
+ Phonenumberisnotcos: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ return;
+ }
+ // var telephone = $("#telephoneAdd.tianjia_phone").val();
+ var regph = /^[1][3,4,5,6,7,8][0-9]{9}$/;
+ // var email = $("#add_email.tianjia_email").val();
+ var regemail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
+
+ // [1]手机号开头必须是1 [3,4,5,6,7,8] 第二位是3-8中的一个 [0-9]{9} 后边9位可以是0-9的任意数字。
+ var stringdata = undefined;
+ if (!regph.test(e.target.value)) {
+ stringdata = "手机号格式不正确";
+ this.setState({
+ Phonenumberisnotcos: stringdata,
+ Phonenumberisnotcobool: true,
+ dragOk:false,
+ Whethertoverify:this.state.Whethertoverify===true?false:true,
+ })
+ } else {
+ this.setState({
+ Phonenumberisnotcos: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ return
+ }
+
+ if (!regemail.test(e.target.value)) {
+ if ((e.target.value.indexOf("@") != -1) === true) {
+ stringdata = "邮箱格式不正确";
+ } else {
+ stringdata = "手机号格式不正确";
+
+ }
+ this.setState({
+ Phonenumberisnotcos: stringdata,
+ Phonenumberisnotcobool: true,
+ dragOk:false,
+ Whethertoverify:this.state.Whethertoverify===true?false:true,
+ })
+ return
+ } else {
+ this.setState({
+ Phonenumberisnotcos: undefined,
+ Phonenumberisnotcobool: false,
+ })
+ this.Emailphonenumberverification(e.target.value, id);
+ return
+ }
this.Emailphonenumberverification(e.target.value, id);
- }
}
//获取登入密码
passwordonChange = (e) => {
diff --git a/public/react/src/modules/user/account/ChangeHeaderPicModal.js b/public/react/src/modules/user/account/ChangeHeaderPicModal.js
index abb3d0e12..cef643094 100644
--- a/public/react/src/modules/user/account/ChangeHeaderPicModal.js
+++ b/public/react/src/modules/user/account/ChangeHeaderPicModal.js
@@ -105,11 +105,16 @@ class ChangeHeaderPicModal extends Component{
.then((response) => {
// {"status":0,"message":"success","avatar_url":"avatars/User/15739"}
if (response.data.status == 0) {
- // this.props.getBasicInfo()
- this.props.fetchUser()
- // 头像更新后会触发AccountPage的DidUpdate,然后会调用getBasicInfo
- this.props.showNotification && this.props.showNotification("修改头像成功")
- this.setVisible(false)
+ // this.props.getBasicInfo()
+ // https://www.trustie.net/issues/22461
+ if ( this.props.current_user.image_url.indexOf('avatars/User/b') != -1
+ || this.props.current_user.image_url.indexOf('avatars/User/g') != -1 ) {
+ this.setTimeout(() => {
+ this.doAfterUpdated()
+ }, 1000)
+ } else {
+ this.doAfterUpdated();
+ }
}
})
.catch(function (error) {
@@ -117,6 +122,12 @@ class ChangeHeaderPicModal extends Component{
});
});
}
+ doAfterUpdated = () => {
+ this.props.fetchUser()
+ // 头像更新后会触发AccountPage的DidUpdate,然后会调用getBasicInfo
+ this.props.showNotification && this.props.showNotification("修改头像成功")
+ this.setVisible(false)
+ }
render(){
const { course_lists } = this.state