From aff978fe14fc2d9da42d23a4a73e53593a6cf71d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Wed, 26 Feb 2020 13:37:24 +0800
Subject: [PATCH 1/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=B7=E6=96=B0?=
 =?UTF-8?q?=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/modules/courses/boards/TopicDetail.js | 49 +++++++++++--------
 .../modules/courses/common/courseMessage.css  |  8 +++
 2 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/public/react/src/modules/courses/boards/TopicDetail.js b/public/react/src/modules/courses/boards/TopicDetail.js
index f4df177c7..483dafe18 100644
--- a/public/react/src/modules/courses/boards/TopicDetail.js
+++ b/public/react/src/modules/courses/boards/TopicDetail.js
@@ -1,29 +1,15 @@
 import React, { Component } from 'react';
-import { Redirect } from 'react-router';
-
-import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
-
-import PropTypes from 'prop-types';
-
-import classNames from 'classnames'
-
 import axios from 'axios'
-
 import moment from 'moment'
-
 import Comments from '../../comment/Comments'
-
-import update from 'immutability-helper'
-import RewardDialog from '../../common/RewardDialog';
 import {ImageLayerOfCommentHOC} from '../../page/layers/ImageLayerOfCommentHOC'
-
 import MemoDetailMDEditor from '../../forums/MemoDetailMDEditor'
 import { RouteHOC } from './common.js'
 import '../../forums/Post.css'
 import '../../forums/RightSection.css'
 import './TopicDetail.css'
 import '../common/courseMessage.css'
-import { Pagination, Tooltip } from 'antd'
+import { Pagination, Tooltip,Button } from 'antd'
 import { bytesToSize, ConditionToolTip, markdownToHTML, MarkdownToHtml , setImagesUrl } from 'educoder'
 import SendToCourseModal from '../coursesPublic/modal/SendToCourseModal'
 import CBreadcrumb from '../common/CBreadcrumb'
@@ -32,7 +18,8 @@ import { generateComments, generateChildComments, _findById, handleContentBefore
   , handleDeleteComment, handleCommentPraise, handleHiddenComment } from '../common/CommentsHelper'
 
 const $ = window.$
-const REPLY_PAGE_COUNT = 10
+const REPLY_PAGE_COUNT = 10;
+let setTime;
 function urlStringify(params) {
   let noParams = true;
   let paramsUrl = '';
@@ -57,7 +44,8 @@ class TopicDetail extends Component {
         pageCount: 1,
         comments: [],
         goldRewardDialogOpen: false,
-        author:undefined
+        author:undefined,
+        commentstype:false
       }
     }
     componentDidMount() {
@@ -512,11 +500,26 @@ class TopicDetail extends Component {
       }
     }
 
+  startcomments=()=>{
+    setTime = setInterval( ()=> {
+        this.fetchReplies()
+      }, 5000);
+      this.setState({
+        commentstype:true
+      })
+    }
+
+  clearcomments=()=>{
+    clearInterval(setTime);
+    this.setState({
+      commentstype:false
+    })
+  }
 
   	render() {
   		const { match, history } = this.props
       const { recommend_shixun, current_user,author_info } = this.props;
-      const { memo, comments, hasMoreComments, goldRewardDialogOpen, pageCount, total_count , author } = this.state;
+      const { memo, comments, hasMoreComments, commentstype, pageCount, total_count , author } = this.state;
       const messageId = match.params.topicId
       if (this.state.memoLoading || !current_user) {
         return <div className="edu-back-white" id="forum_index_list"></div>
@@ -560,7 +563,7 @@ class TopicDetail extends Component {
             ref="sendToCourseModal"
             {...this.props}
             moduleName="帖子"
-            selectedMessageIds={[messageId]}
+            seletedMessageIds={[messageId]}
           ></SendToCourseModal>
           <div className="clearfix">
         		<div id="forum_list" className="forum_table mh650">
@@ -690,9 +693,15 @@ class TopicDetail extends Component {
                   */}
                     <div className="padding20  memoReplies commentsDelegateParent comments_hideSecondReplyUserHeader"
                         style={{ display: (comments && !!comments.length) ? 'block' : 'none', paddingBottom: '0px' }}>
-                      <div className="replies_count">
+                      <div className="replies_count commentstypetop">
+                        {this.props.isAdmin()===true? <span className="commentstypebutton font-16 ">
+                          {this.state.commentstype===false?<Button type="primary" onClick={()=>this.startcomments()}>开启刷新评论</Button>
+                            :<Button type="danger" onClick={()=>this.clearcomments()}>停止刷新</Button>}
+                        </span>:""}
+
                         <span className="labal font-16">全部回复</span>
                         <span className="count font-16">({memo.total_replies_count})</span>
+
                       </div>
 
                       <Comments comments={comments} user={current_user}
diff --git a/public/react/src/modules/courses/common/courseMessage.css b/public/react/src/modules/courses/common/courseMessage.css
index f258c8ee9..c5602e5db 100644
--- a/public/react/src/modules/courses/common/courseMessage.css
+++ b/public/react/src/modules/courses/common/courseMessage.css
@@ -56,4 +56,12 @@
 
 .panel-comment_item .comment_content {
   margin-top: 4px;
+}
+
+.commentstypetop{
+  position: relative;
+}
+.commentstypebutton{
+  position: absolute;
+  right: 0px;
 }
\ No newline at end of file

From 205bd17700d77741bf6fba5b18158cb90d9d1704 Mon Sep 17 00:00:00 2001
From: anke1460 <zuosjob@gmail.com>
Date: Wed, 26 Feb 2020 14:38:24 +0800
Subject: [PATCH 2/5] =?UTF-8?q?sso=E7=99=BB=E5=BD=95=E5=90=8E=E9=87=8D?=
 =?UTF-8?q?=E5=AE=9A=E5=90=91url?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/controllers/oauth/cas_controller.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/controllers/oauth/cas_controller.rb b/app/controllers/oauth/cas_controller.rb
index d5abc8cbe..d1fa95470 100644
--- a/app/controllers/oauth/cas_controller.rb
+++ b/app/controllers/oauth/cas_controller.rb
@@ -3,7 +3,7 @@ class Oauth::CasController < Oauth::BaseController
     user, is_new_user = Oauth::CreateORFindCasUserService.call(current_user, auth_hash)
     successful_authentication(user)
 
-    render_ok(new_user: is_new_user)
+    redirect_to root_url
   end
 
 

From bd08905c2d1cb7f172100aa7de2f91995964586e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Wed, 26 Feb 2020 14:38:47 +0800
Subject: [PATCH 3/5] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 public/react/src/modules/tpm/NewHeader.js             | 1 +
 public/react/src/modules/tpm/newshixuns/Newshixuns.js | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js
index 351cb80ff..b341e2d52 100644
--- a/public/react/src/modules/tpm/NewHeader.js
+++ b/public/react/src/modules/tpm/NewHeader.js
@@ -1229,6 +1229,7 @@ submittojoinclass=(value)=>{
               </a>
               <ul className="edu-menu-list" style={{top:'60px'}}>
                 {/*<span className="bor-bottom-greyE currentName task-hide">{user.username}</span>*/}
+								<li><Link to={`/users/${this.props.current_user.login}/courses`}>我的个人主页</Link></li>
 								{coursestypes===true?"":<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`}>{this.props.user&&this.props.user.main_site===false?"我的课堂":"我的翻转课堂"}</Link></li>}
                 {/* p 老师  l 学生 */}
 								{shixuntype===true?"":<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训项目</Link></li>}
diff --git a/public/react/src/modules/tpm/newshixuns/Newshixuns.js b/public/react/src/modules/tpm/newshixuns/Newshixuns.js
index 071b19a5f..361ed3248 100644
--- a/public/react/src/modules/tpm/newshixuns/Newshixuns.js
+++ b/public/react/src/modules/tpm/newshixuns/Newshixuns.js
@@ -49,7 +49,7 @@ class Newshixuns extends Component {
           this.setState({
             newshixunlist: response.data
           });
-          this.contentMdRef.current.setValue(!response.data.sample[0][1] ? "" : response.data.sample[0][1]);
+          // this.contentMdRef.current.setValue(!response.data.sample[0][1] ? "" : response.data.sample[0][1]);
         }
       }
     }).catch((error) => {

From 674ca582da6d5942c3379f732572e373ab9aefa9 Mon Sep 17 00:00:00 2001
From: anke1460 <zuosjob@gmail.com>
Date: Wed, 26 Feb 2020 14:40:42 +0800
Subject: [PATCH 4/5] =?UTF-8?q?sso=E7=BB=91=E5=AE=9A=E8=B4=A6=E5=8F=B7?=
 =?UTF-8?q?=E6=97=B6=E5=8E=BB=E6=8E=89=E6=98=B5=E7=A7=B0=E5=88=9B=E5=BB=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/services/oauth/create_or_find_cas_user_service.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/services/oauth/create_or_find_cas_user_service.rb b/app/services/oauth/create_or_find_cas_user_service.rb
index 0b6715471..761f9da58 100644
--- a/app/services/oauth/create_or_find_cas_user_service.rb
+++ b/app/services/oauth/create_or_find_cas_user_service.rb
@@ -14,7 +14,7 @@ class Oauth::CreateORFindCasUserService < ApplicationService
 
     return [open_user.user, false] if open_user.persisted?
 
-    @user = User.new(login: User.generate_login('C'), type: 'User', status: User::STATUS_ACTIVE, nickname: @params['comsys_name'], lastname: @params['comsys_name'])
+    @user = User.new(login: User.generate_login('C'), type: 'User', status: User::STATUS_ACTIVE, lastname: @params['comsys_name'])
 
     ActiveRecord::Base.transaction do
       @user.save!

From 8f994b9f5e30141eddb348a4b28ad83e10dc171c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Wed, 26 Feb 2020 18:39:58 +0800
Subject: [PATCH 5/5] =?UTF-8?q?=E7=BF=BB=E8=BD=AC=E8=AF=BE=E5=A0=82-?=
 =?UTF-8?q?=E3=80=8B=E6=95=99=E5=AD=A6=E8=AF=BE=E5=A0=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 public/react/src/common/util/ShareUtil.js     | 16 ++++++-------
 .../Competition_teams/Competitionteams.js     |  2 +-
 .../Competition_teams/Competitionteams.js     |  2 +-
 .../courses/coursesHome/CoursesHome.js        |  4 ++--
 .../src/modules/courses/new/CoursesNew.js     |  2 +-
 .../src/modules/courses/new/Goldsubject.js    |  2 +-
 public/react/src/modules/tpm/NewHeader.js     | 10 ++++----
 public/react/src/modules/tpm/TPMIndexHOC.js   |  2 +-
 .../src/modules/user/usersInfo/InfosBanner.js | 24 +++++++++----------
 public/react/src/search/SearchPage.js         |  2 +-
 10 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/public/react/src/common/util/ShareUtil.js b/public/react/src/common/util/ShareUtil.js
index bd34e2edb..a85c37c4a 100644
--- a/public/react/src/common/util/ShareUtil.js
+++ b/public/react/src/common/util/ShareUtil.js
@@ -60,17 +60,17 @@ function requestForSignatrue (callback) {
 /**
     实践课程	平台提供涵盖基础入门、案例实践和创新应用的完整实训项目体系,通过由浅入深的实训路径,帮助学生快速提升实战能力。
     实训项目	覆盖不同专业的IT实验和实训,每周更新,无需配置本机实验环境,随时随地开启企业级真实实训。
-    翻转课堂	自动评测实训任务,支持技能统计,提供教学活动分析报告,减轻教师和助教的辅导压力,免去作业发布和批改的困扰,实时了解学生学习情况,全面提升教师施教效率和水平。
+ 教学课堂	自动评测实训任务,支持技能统计,提供教学活动分析报告,减轻教师和助教的辅导压力,免去作业发布和批改的困扰,实时了解学生学习情况,全面提升教师施教效率和水平。
     单个课程和实训	获取课程/实训的简介	该课程或者实训展示的缩略图
 
  */
-export function configShareForIndex (path) {  
+export function configShareForIndex (path) {
     requestForSignatrue(() => {
         var shareData = {
             title: 'EduCoder - 首页',
             desc: 'Educoder是一个面向计算机类的互联网IT教育和实战平台,提供企业级工程实训,以实现工程化专业教学的自动化和智能化。高校和企业人员可以在此开展计算机实践性教学活动,将传统的知识传授和时兴的工程实战一体化。',
             link: host + (path || ''),
-            imgUrl: window.__testImageUrl 
+            imgUrl: window.__testImageUrl
                 || host + '/react/build/images/share_logo_icon.jpg'
         };
         share(shareData)
@@ -83,7 +83,7 @@ export function configShareForPaths () {
             title: 'EduCoder - 实践课程',
             desc: '平台提供涵盖基础入门、案例实践和创新应用的完整实训项目体系,通过由浅入深的实训路径,帮助学生快速提升实战能力。',
             link: `${host}/paths`,
-            imgUrl: window.__testImageUrl 
+            imgUrl: window.__testImageUrl
                 || host + '/react/build/images/share_logo_icon.jpg'
         };
         share(shareData)
@@ -97,7 +97,7 @@ export function configShareForShixuns () {
             title: 'EduCoder - 实训项目',
             desc: '覆盖不同专业的IT实验和实训,每周更新,无需配置本机实验环境,随时随地开启企业级真实实训。',
             link: `${host}/shixuns`,
-            imgUrl: window.__testImageUrl 
+            imgUrl: window.__testImageUrl
                 || host + '/react/build/images/share_logo_icon.jpg'
         };
         share(shareData)
@@ -108,10 +108,10 @@ export function configShareForCourses () {
         console.log('configShareForCourses', host)
 
         var shareData = {
-            title: 'EduCoder - 翻转课堂',
+            title: 'EduCoder - 教学课堂',
             desc: '自动评测实训任务,支持技能统计,提供教学活动分析报告,减轻教师和助教的辅导压力,免去作业发布和批改的困扰,实时了解学生学习情况,全面提升教师施教效率和水平。',
             link: `${host}/courses`,
-            imgUrl: window.__testImageUrl 
+            imgUrl: window.__testImageUrl
                 || host + '/react/build/images/share_logo_icon.jpg'
         };
         share(shareData)
@@ -127,7 +127,7 @@ export function configShareForCustom (title, desc, imgUrl, path) {
             title: title,
             desc: desc,
             link: path ? `${host}/${path}` : _url,
-            imgUrl: imgUrl || window.__testImageUrl 
+            imgUrl: imgUrl || window.__testImageUrl
                 || host + '/react/build/images/share_logo_icon.jpg'
         };
         share(shareData)
diff --git a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js
index be6c2e68d..ef9cf58ce 100644
--- a/public/react/src/modules/competitions/Competition_teams/Competitionteams.js
+++ b/public/react/src/modules/competitions/Competition_teams/Competitionteams.js
@@ -250,7 +250,7 @@ class Competitionteams extends Component{
 						<Content className={"teamsLayoutContent"}>
 							<Table className="teamsLayoutTable" columns={shixuncolumns} dataSource={this.state.shixundata} bordered pagination={false}/>
 						</Content>
-						<Content className={"teamsLayoutitle mt40"}>翻转课堂</Content>
+						<Content className={"teamsLayoutitle mt40"}>教学课堂</Content>
 						<Content className={"teamsLayoutContents"}>
 							<Table className="teamsLayoutTable" columns={coursecolumns} dataSource={this.state.coursedata} bordered pagination={false}/>
 						</Content>
diff --git a/public/react/src/modules/courses/competitions/Competition_teams/Competitionteams.js b/public/react/src/modules/courses/competitions/Competition_teams/Competitionteams.js
index be6c2e68d..ef9cf58ce 100644
--- a/public/react/src/modules/courses/competitions/Competition_teams/Competitionteams.js
+++ b/public/react/src/modules/courses/competitions/Competition_teams/Competitionteams.js
@@ -250,7 +250,7 @@ class Competitionteams extends Component{
 						<Content className={"teamsLayoutContent"}>
 							<Table className="teamsLayoutTable" columns={shixuncolumns} dataSource={this.state.shixundata} bordered pagination={false}/>
 						</Content>
-						<Content className={"teamsLayoutitle mt40"}>翻转课堂</Content>
+						<Content className={"teamsLayoutitle mt40"}>教学课堂</Content>
 						<Content className={"teamsLayoutContents"}>
 							<Table className="teamsLayoutTable" columns={coursecolumns} dataSource={this.state.coursedata} bordered pagination={false}/>
 						</Content>
diff --git a/public/react/src/modules/courses/coursesHome/CoursesHome.js b/public/react/src/modules/courses/coursesHome/CoursesHome.js
index f6b6d7303..21f7b33bc 100644
--- a/public/react/src/modules/courses/coursesHome/CoursesHome.js
+++ b/public/react/src/modules/courses/coursesHome/CoursesHome.js
@@ -55,7 +55,7 @@ class CoursesHome extends Component{
   }
 
   componentDidMount(){
-		document.title="翻转课堂";
+		document.title="教学课堂";
 		const upsystem=`/users/system_update.json`;
 		axios.get(upsystem).then((response)=>{
 			let updata=response.data;
@@ -159,7 +159,7 @@ class CoursesHome extends Component{
                    onClick={ () => this.changeStatus("created_at")}>最新</a>
                 <a className={ order == "visits" ? "fl mr20 font-16 bestChoose active" : "fl mr20 font-16 bestChoose"}
                    onClick={ () => this.changeStatus("visits")}>最热</a>
-              {this.props.user&&this.props.user.user_identity==="学生"?"":<span className={  "fr font-16 bestChoose color-blue"  }  onClick={(url)=>this.getUser("/courses/new")}>+新建翻转课堂</span>}
+              {this.props.user&&this.props.user.user_identity==="学生"?"":<span className={  "fr font-16 bestChoose color-blue"  }  onClick={(url)=>this.getUser("/courses/new")}>+新建教学课堂</span>}
 
                 {/*<div className="fr mr5 search-new">*/}
                     {/*/!* <Search*/}
diff --git a/public/react/src/modules/courses/new/CoursesNew.js b/public/react/src/modules/courses/new/CoursesNew.js
index 79ae7501f..873b1d9d7 100644
--- a/public/react/src/modules/courses/new/CoursesNew.js
+++ b/public/react/src/modules/courses/new/CoursesNew.js
@@ -690,7 +690,7 @@ class CoursesNew extends Component {
                                 <a className="btn colorgrey fl hovercolorblue "
 																	 href={this.props.match.params.coursesId === undefined ?"/courses":this.props.current_user&&this.props.current_user.first_category_url}
 																>
-																	{this.props.match.params.coursesId === undefined ?"翻转课堂":dataname}
+																	{this.props.match.params.coursesId === undefined ?"教学课堂":dataname}
                                 </a>
                                 <span className="color-grey-9 fl ml3 mr3">&gt;</span>
                                 <span className="fl cdefault">{this.props.match.params.coursesId === undefined ?"新建课堂":"编辑课堂"}</span>
diff --git a/public/react/src/modules/courses/new/Goldsubject.js b/public/react/src/modules/courses/new/Goldsubject.js
index 006f3f44f..23e098f80 100644
--- a/public/react/src/modules/courses/new/Goldsubject.js
+++ b/public/react/src/modules/courses/new/Goldsubject.js
@@ -721,7 +721,7 @@ class Goldsubject extends Component {
 							{/*</Breadcrumb>*/}
 							<p className="clearfix mb20 mt10">
 								<a className="btn colorgrey fl hovercolorblue " href={Whethertocreateanewclassroom===true?"/courses":this.props.current_user&&this.props.current_user.first_category_url}
-								>{Whethertocreateanewclassroom===true?"翻转课堂":name}</a>
+								>{Whethertocreateanewclassroom===true?"教学课堂":name}</a>
 								<span className="color-grey-9 fl ml3 mr3">&gt;</span>
 								<span className="fl cdefault">{Whethertocreateanewclassroom===true?"新建课堂":"编辑课堂"}</span>
 							</p>
diff --git a/public/react/src/modules/tpm/NewHeader.js b/public/react/src/modules/tpm/NewHeader.js
index b341e2d52..17bd92001 100644
--- a/public/react/src/modules/tpm/NewHeader.js
+++ b/public/react/src/modules/tpm/NewHeader.js
@@ -1097,7 +1097,7 @@ submittojoinclass=(value)=>{
 										{/*<li><a href={this.props.Headertop===undefined?"":'/courses'}>课堂</a></li>*/}
 										<li className={`${coursestype === true ? 'pr active' : 'pr'}`}>
 											{/*<a href={this.props.Headertop===undefined?"":this.props.Headertop.course_url}>课堂</a>*/}
-											<Link to={this.props.Headertop===undefined?"":'/courses'}>翻转课堂</Link>
+											<Link to={this.props.Headertop===undefined?"":'/courses'}>教学课堂</Link>
 										</li>
 										<li className={`${activeShixuns === true ? 'pr active' : 'pr'}`}>
 											<Link to="/shixuns">实训项目</Link>
@@ -1183,7 +1183,7 @@ submittojoinclass=(value)=>{
 							onBlur={(e)=>this.hideshowSearchOpen(e)}	onMouseLeave={()=>this.setevaluatinghides()}>
 							<Search
 								id={"HeaderSearchs"}
-								placeholder="实践课程/翻转课堂/实训项目/交流问答"
+								placeholder="实践课程/教学课堂/实训项目/交流问答"
 								onInput={()=>this.onKeywordSearchKeyDowns()}
 								onSearch={(value) => this.onKeywordSearchKeyDown(value)}
 								// onPressEnter={this.onKeywordSearchKeyDown}
@@ -1230,7 +1230,7 @@ submittojoinclass=(value)=>{
               <ul className="edu-menu-list" style={{top:'60px'}}>
                 {/*<span className="bor-bottom-greyE currentName task-hide">{user.username}</span>*/}
 								<li><Link to={`/users/${this.props.current_user.login}/courses`}>我的个人主页</Link></li>
-								{coursestypes===true?"":<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`}>{this.props.user&&this.props.user.main_site===false?"我的课堂":"我的翻转课堂"}</Link></li>}
+								{coursestypes===true?"":<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`}>{this.props.user&&this.props.user.main_site===false?"我的课堂":"我的教学课堂"}</Link></li>}
                 {/* p 老师  l 学生 */}
 								{shixuntype===true?"":<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训项目</Link></li>}
 								{pathstype===true?"":<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>{this.props.user&&this.props.user.main_site===false?"我的课程":"我的实践课程"}</Link></li>}
@@ -1282,7 +1282,7 @@ submittojoinclass=(value)=>{
                 <div className="overPart"></div>
                 <ul className={coursestypes===true&&this.props.user&&this.props.user.main_site===false?"fl headwith100b edu-txt-center pr ul-leftline":"fl with50 edu-txt-center pr ul-leftline"}>
 									{this.props.current_user&&this.props.current_user.user_identity==="学生"?"":coursestypes===false?
-										<li><a  onClick={(url)=>this.getUser("/courses/new")}>{this.props.user&&this.props.user.main_site===false?"新建课堂":"新建翻转课堂"}</a></li>:""
+										<li><a  onClick={(url)=>this.getUser("/courses/new")}>{this.props.user&&this.props.user.main_site===false?"新建课堂":"新建教学课堂"}</a></li>:""
 									}
 									{shixuntype===true?"":
 										<li><a onClick={(url)=>this.getUser("/shixuns/new","newshixuns")}>新建实训项目</a></li>
@@ -1296,7 +1296,7 @@ submittojoinclass=(value)=>{
 								{coursestypes===true&&this.props.user&&this.props.user.main_site===false?"":<ul className="fl with50 edu-txt-center">
 
                   {coursestypes===true?"":<li>
-                    <a onClick={this.tojoinclass}>{this.props.user&&this.props.user.main_site===false?"加入课堂":"加入翻转课堂"}</a>
+                    <a onClick={this.tojoinclass}>{this.props.user&&this.props.user.main_site===false?"加入课堂":"加入教学课堂"}</a>
                   </li>}
 
                   {Addcoursestypes===true?<Addcourses
diff --git a/public/react/src/modules/tpm/TPMIndexHOC.js b/public/react/src/modules/tpm/TPMIndexHOC.js
index 00123045b..9ba60c27a 100644
--- a/public/react/src/modules/tpm/TPMIndexHOC.js
+++ b/public/react/src/modules/tpm/TPMIndexHOC.js
@@ -163,7 +163,7 @@ export function TPMIndexHOC(WrappedComponent) {
             }else if(this.props.match.path==="/paths"){
             document.title="实践课程";
             }else if(this.props.match.path==="/courses"){
-            document.title="翻转课堂";
+            document.title="教学课堂";
           }
 
 				// if(this.props.match.path==="/"){
diff --git a/public/react/src/modules/user/usersInfo/InfosBanner.js b/public/react/src/modules/user/usersInfo/InfosBanner.js
index 16b70895f..face6e094 100644
--- a/public/react/src/modules/user/usersInfo/InfosBanner.js
+++ b/public/react/src/modules/user/usersInfo/InfosBanner.js
@@ -15,7 +15,7 @@ class InfosBanner extends Component{
     super(props);
   }
   render(){
-    let { 
+    let {
       data ,
       id,
       login,
@@ -87,27 +87,27 @@ class InfosBanner extends Component{
               <div class="fl headtab mt20">
                 <span>{is_current ? "我":"TA"}的经验值</span>
                 <a style={{"cursor":"default"}}>{data && data.experience}</a>
-              </div> 
+              </div>
               <div class="fl headtab mt20 pr leftTransform pl20">
                 <span>{is_current ? "我":"TA"}的金币</span>
                 <a style={{"cursor":"default"}}>{data && data.grade}</a>
-              </div> 
+              </div>
               {
-                is_current ? 
+                is_current ?
                 <span className="fl mt35 ml60">
                   {
-                    data && data.attendance_signed ? 
+                    data && data.attendance_signed ?
                     <span className="user_default_btn user_grey_btn font-18">已签到</span>
                     :
                     <a herf="javascript:void(0);" onClick={this.props.signFor} className="user_default_btn user_yellow_btn fl font-18">签到</a>
                   }
-                </span> 
+                </span>
                 :
                 <span className="fl mt35 ml60">
-                  <LinkAfterLogin 
-                    {...this.props} 
-                    {...this.state} 
-                    className="user_default_btn user_yellow_btn fl font-18" 
+                  <LinkAfterLogin
+                    {...this.props}
+                    {...this.state}
+                    className="user_default_btn user_yellow_btn fl font-18"
                     to={`/messages/${login}/message_detail?target_ids=${id}`}
                   >
                   私信
@@ -120,7 +120,7 @@ class InfosBanner extends Component{
 						{coursestypes===true?"":<li className={`${moduleName == 'courses' ||moduleName == undefined ? 'active' : '' }`}>
               <Link
                 onClick={() => this.setState({moduleName: 'courses'})}
-                to={`/users/${username}/courses`}>翻转课堂</Link>
+                to={`/users/${username}/courses`}>教学课堂</Link>
             </li>}
 						{shixuntype===true?"":<li className={`${moduleName == 'shixuns' ? 'active' : '' }`}>
               <Link
@@ -128,7 +128,7 @@ class InfosBanner extends Component{
                 to={`/users/${username}/shixuns`}>实训项目</Link>
             </li>}
 						{pathstype===true?"":<li className={`${moduleName == 'paths' ? 'active' : '' }`}>
-              <Link 
+              <Link
                 onClick={() => this.setState({moduleName: 'paths'})}
                 to={`/users/${username}/paths`}>实践课程</Link>
             </li>}
diff --git a/public/react/src/search/SearchPage.js b/public/react/src/search/SearchPage.js
index e25829554..fc50bcbfa 100644
--- a/public/react/src/search/SearchPage.js
+++ b/public/react/src/search/SearchPage.js
@@ -158,7 +158,7 @@ class SearchPage extends Component{
 					<div className="tabtitles2">
 					<Menu  mode="horizontal" className="tabtitless"  selectedKeys={tab} onClick={this.changeTab}>
 						<Menu.Item className={"tabtitle1"} key="1">实践课程</Menu.Item>
-						<Menu.Item className={"tabtitle2"} key="2">翻转课堂</Menu.Item>
+						<Menu.Item className={"tabtitle2"} key="2">教学课堂</Menu.Item>
 						<Menu.Item className={"tabtitle2"} key="0">实训项目</Menu.Item>
 						<Menu.Item className={"tabtitle2"}  key="3">交流问答</Menu.Item>
 					</Menu>