删除调整

dev_local_2
杨树林 5 years ago
parent c5c2dfb372
commit 8cc179a90f

@ -5,5 +5,4 @@
3. 链接mysql执行导入数据库source /Users/jingquanhuang/eduplus2/db/structure.sql 3. 链接mysql执行导入数据库source /Users/jingquanhuang/eduplus2/db/structure.sql
4. 导入基础数据: source /Users/jingquanhuang/eduplus2/db/init.sql 4. 导入基础数据: source /Users/jingquanhuang/eduplus2/db/init.sql
4. 初始化种子数据 bundle exec rake db:seed 4. 初始化种子数据 bundle exec rake db:seed
5、启动服务用 bundle exec rails s

@ -1,76 +1,76 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { Redirect } from 'react-router'; import { Redirect } from 'react-router';
import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import classNames from 'classnames' import classNames from 'classnames'
import { getImageUrl, toPath, LinkAfterLogin } from 'educoder' import { getImageUrl, toPath, LinkAfterLogin } from 'educoder'
import match_adImg from '../../images/ad/match_ad.jpg' import match_adImg from '../../images/ad/match_ad.jpg'
const $ = window.$ const $ = window.$
class RightMyPublish extends Component { class RightMyPublish extends Component {
constructor(props) { constructor(props) {
super(props) super(props)
this.state = { this.state = {
} }
} }
handleKeyPress = (event) => { handleKeyPress = (event) => {
if(event.type !== 'keypress' || event.key == 'Enter'){ if(event.type !== 'keypress' || event.key == 'Enter'){
this.props.setSearchValue( this.props.searchValue, true); this.props.setSearchValue( this.props.searchValue, true);
// $(window).trigger('setSearchValue', $('#shixun_search_input').val()) // $(window).trigger('setSearchValue', $('#shixun_search_input').val())
} }
} }
handleInput = (event) => { handleInput = (event) => {
this.props.setSearchValue(event.target.value); this.props.setSearchValue(event.target.value);
} }
render() { render() {
const { match, history, currentPage, my_memos_count, setSearchValue, searchValue } = this.props const { match, history, currentPage, my_memos_count, setSearchValue, searchValue } = this.props
return ( return (
<React.Fragment> <React.Fragment>
<div className="clearfix edu-back-white padding40-20 publishMemoSection"> <div className="clearfix edu-back-white padding40-20 publishMemoSection">
{/*<div className="searchFor h40 mt15 mb5 ml20"> {/*<div className="searchFor h40 mt15 mb5 ml20">
<div className="searchCon fl"> <div className="searchCon fl">
<input type="text" className="searchinput" name="search" value="" placeholder="请输入帖子标题的关键字进行搜索"> <input type="text" className="searchinput" name="search" value="" placeholder="请输入帖子标题的关键字进行搜索">
</input> </input>
<span className="search_close" onclick="colse_searchbox();" data-tip-down="清除">×</span> <span className="search_close" onclick="colse_searchbox();" data-tip-down="清除">×</span>
</div> </div>
<i className="fa fa-search mr5 fl color-dark-grey search_icon" <i className="fa fa-search mr5 fl color-dark-grey search_icon"
onClick="$('#search_memos').submit();" style={{margin:'8px'}} data-tip-down="搜索"></i> onClick="$('#search_memos').submit();" style={{margin:'8px'}} data-tip-down="搜索"></i>
</div>*/} </div>*/}
<div className="search-new"> <div className="search-new">
<input type="text" className="search-new-input fl" placeholder="搜索您想了解的话题" id="shixun_search_input" <input type="text" className="search-new-input fl" placeholder="搜索您想了解的话题" id="shixun_search_input"
onKeyPress={this.handleKeyPress} onChange={ this.handleInput } value={searchValue} onKeyPress={this.handleKeyPress} onChange={ this.handleInput } value={searchValue}
> >
</input> </input>
<span className="search-span"></span> <span className="search-span"></span>
<img src={getImageUrl("images/educoder/icon/search.svg")} className="fl mt5" <img src={getImageUrl("images/educoder/icon/search.svg")} className="fl mt5"
onClick={ this.handleKeyPress }> onClick={ this.handleKeyPress }>
</img> </img>
</div> </div>
<LinkAfterLogin {...this.props} to={'/forums/new'} className="sendMyQuestion edu-default-btn edu-blueback-btn edu-txt-center font-16 mb30">发布话题</LinkAfterLogin> <LinkAfterLogin {...this.props} to={'/forums/new'} className="sendMyQuestion edu-default-btn edu-blueback-btn edu-txt-center font-16 mb30">发布话题</LinkAfterLogin>
{/*<p className="edu-txt-center font-16"> {/*<p className="edu-txt-center font-16">
<span>我的发布</span><br/> <span>我的发布</span><br/>
<Link to={`/forums/categories/my_published`} className="color-blue">{my_memos_count}</Link> <Link to={`/forums/categories/my_published`} className="color-blue">{my_memos_count}</Link>
</p>*/} </p>*/}
</div> </div>
<div className="clearfix edu-back-white advertisement" > {/*<div className="clearfix edu-back-white advertisement" >*/}
<a href="/competitions" target="_blank"><img src={match_adImg}></img></a> {/* <a href="/competitions" target="_blank"><img src={match_adImg}></img></a>*/}
</div> {/*</div>*/}
</React.Fragment> </React.Fragment>
); );
} }
} }
export default RightMyPublish; export default RightMyPublish;

@ -27,15 +27,15 @@ class NewFooter extends Component {
</a> </a>
<span className="fl color-grey-c cdefault font-28 ml22" style={{lineHeight:'74px'}}>EduCoder.net</span> <span className="fl color-grey-c cdefault font-28 ml22" style={{lineHeight:'74px'}}>EduCoder.net</span>
</div> */} </div> */}
<ul className="clearfix inner-footernav"> {/*<ul className="clearfix inner-footernav">*/}
<li><a href="/" className="fl" target="_blank">网站首页</a></li> {/* <li><a href="/" className="fl" target="_blank">网站首页</a></li>*/}
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.about_us} className="fl" target="_blank">关于我们</a></li> {/* <li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.about_us} className="fl" target="_blank">关于我们</a></li>*/}
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.connect_us} className="fl" target="_blank">联系我们</a></li> {/* <li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.connect_us} className="fl" target="_blank">联系我们</a></li>*/}
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.cooperation_partner} className="fl" target="_blank">合作伙伴</a></li> {/* <li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.cooperation_partner} className="fl" target="_blank">合作伙伴</a></li>*/}
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.service_agreement} className="fl" target="_blank">服务协议</a></li> {/* <li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.service_agreement} className="fl" target="_blank">服务协议</a></li>*/}
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.help_center} className="fl" target="_blank">帮助中心</a></li> {/* <li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.help_center} className="fl" target="_blank">帮助中心</a></li>*/}
<li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.feedback} className="fl" target="_blank">意见反馈</a></li> {/* <li><a href={this.props.Footerdown===undefined?"":this.props.Footerdown.feedback} className="fl" target="_blank">意见反馈</a></li>*/}
</ul> {/*</ul>*/}
</div> </div>
<div> <div>
<p className="footer_con-p inline lineh-30 font-14"> <p className="footer_con-p inline lineh-30 font-14">

@ -759,20 +759,21 @@ submittojoinclass=(value)=>{
</li> </li>
{/*<li className=""><a href={"/libraries"}>教学案例</a></li>*/} {/*<li className=""><a href={"/libraries"}>教学案例</a></li>*/}
<li className=""> {/*<li className="">*/}
<a href={this.props.Headertop===undefined?"":this.props.Headertop.competitions_url}>在线竞赛</a> {/* <a href={this.props.Headertop===undefined?"":this.props.Headertop.competitions_url}>在线竞赛</a>*/}
<img className="roundedRectangles" {/* <img className="roundedRectangles"*/}
src={require('./roundedRectangle.png')} {/* src={require('./roundedRectangle.png')}*/}
/> {/* />*/}
</li> {/*</li>*/}
<li className={`${activeMoopCases === true ? 'pr active' : 'pr'}`}> <Link to={`/moop_cases`}>教学案例</Link></li> {/*<li className={`${activeMoopCases === true ? 'pr active' : 'pr'}`}> <Link to={`/moop_cases`}>教学案例</Link></li>*/}
<li className={`${activePackages === true ? 'pr active' : 'pr'}`}> {/*<li className={`${activePackages === true ? 'pr active' : 'pr'}`}>*/}
<Link to={'/crowdsourcing'}>众包创新</Link> {/* <Link to={'/crowdsourcing'}>众包创新</Link>*/}
</li> {/*</li>*/}
<li className={`${activeForums === true ? 'active' : ''}`}> <Link to={this.props.Headertop===undefined?"":this.props.Headertop.topic_url}>交流问答</Link></li> <li className={`${activeForums === true ? 'active' : ''}`}> <Link to={this.props.Headertop===undefined?"":this.props.Headertop.topic_url}>交流问答</Link></li>
<li {/*<li*/}
style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.auth===null? 'none' : 'block'}} {/* style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.auth===null? 'none' : 'block'}}*/}
><a href={this.props.Headertop===undefined?"":this.props.Headertop.auth}>工程认证</a></li> {/*><a href={this.props.Headertop===undefined?"":this.props.Headertop.auth}></a></li>*/}
{/*工程认证*/}
</ul> </ul>
@ -864,11 +865,11 @@ submittojoinclass=(value)=>{
{/* p 老师 l 学生 */} {/* p 老师 l 学生 */}
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训项目</Link></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/shixuns`}>我的实训项目</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>我的实践课程</Link></li> <li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/paths`}>我的实践课程</Link></li>
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/projects`}>我的开发项目</Link></li> {/*<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/projects`}>我的开发项目</Link></li>*/}
<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/package`}>我的众包</Link></li> {/*<li><Link to={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/package`}>我的众包</Link></li>*/}
<li style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.customer_management_url===null || this.props.Headertop.customer_management_url===""? 'none' : 'block'}}> {/*<li style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.customer_management_url===null || this.props.Headertop.customer_management_url===""? 'none' : 'block'}}>*/}
<a href={this.props.Headertop === undefined ? '' : this.props.Headertop.customer_management_url}>客户管理</a> {/* <a href={this.props.Headertop === undefined ? '' : this.props.Headertop.customer_management_url}>客户管理</a>*/}
</li> {/*</li>*/}
<li><a href={`/account/profile`}>账号管理</a></li> <li><a href={`/account/profile`}>账号管理</a></li>
{/*<li><a onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/} {/*<li><a onClick={()=>this.educoderlogin()} >登入测试接口</a></li>*/}
{/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/} {/*<li><a onClick={()=>this.trialapplications()} >试用申请</a> </li>*/}
@ -907,7 +908,7 @@ submittojoinclass=(value)=>{
{this.props.Headertop===undefined?"": {this.props.Headertop===undefined?"":
<li><a onClick={(url)=>this.getUser("/paths/new")} >新建实践课程</a></li> <li><a onClick={(url)=>this.getUser("/paths/new")} >新建实践课程</a></li>
} }
<li><a onClick={(url)=>this.getUser("/projects/new")} target="_blank">新建开发项目</a></li> {/*<li><a onClick={(url)=>this.getUser("/projects/new")} target="_blank">新建开发项目</a></li>*/}
</ul> </ul>
<ul className="fl with50 edu-txt-center"> <ul className="fl with50 edu-txt-center">
@ -924,9 +925,9 @@ submittojoinclass=(value)=>{
{/* /courses/join_course_multi_role */} {/* /courses/join_course_multi_role */}
<li> {/*<li>*/}
<a onClick={this.tojoinitem}>加入开发项目</a> {/*<a onClick={this.tojoinitem}>加入开发项目</a>*/}
</li> {/*</li>*/}
{tojoinitemtype===true?<Modal {tojoinitemtype===true?<Modal
keyboard={false} keyboard={false}
title="加入项目" title="加入项目"

@ -1,132 +1,132 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import {Tooltip,Menu} from 'antd'; import {Tooltip,Menu} from 'antd';
import {getImageUrl} from 'educoder'; import {getImageUrl} from 'educoder';
import "./usersInfo.css" import "./usersInfo.css"
import "../../courses/css/members.css" import "../../courses/css/members.css"
import "../../courses/css/Courses.css" import "../../courses/css/Courses.css"
import { LinkAfterLogin } from 'educoder' import { LinkAfterLogin } from 'educoder'
class InfosBanner extends Component{ class InfosBanner extends Component{
constructor(props){ constructor(props){
super(props); super(props);
} }
render(){ render(){
let { let {
data , data ,
id, id,
login, login,
moduleName, moduleName,
current_user, current_user,
}=this.props; }=this.props;
let is_current=this.props.is_current; let is_current=this.props.is_current;
let {username}= this.props.match.params; let {username}= this.props.match.params;
let {pathname}=this.props.location; let {pathname}=this.props.location;
moduleName=pathname.split("/")[3]; moduleName=pathname.split("/")[3];
console.log(is_current) console.log(is_current)
return( return(
<div className="bannerPanel mb60"> <div className="bannerPanel mb60">
<div className="educontent"> <div className="educontent">
<div className="clearfix color-white mb25"> <div className="clearfix color-white mb25">
<p className="myPhoto mr20 fl"><img alt="头像" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/></p> <p className="myPhoto mr20 fl"><img alt="头像" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/></p>
<div className="fl"> <div className="fl">
<p className="clearfix mt20"> <p className="clearfix mt20">
<span className="username task-hide" style={{"maxWidth":'370px'}}>{data && data.name}</span> <span className="username task-hide" style={{"maxWidth":'370px'}}>{data && data.name}</span>
{ {
data && is_current == false && data.identity =="学生" ? "" : data && is_current == false && data.identity =="学生" ? "" :
<span className="userpost"><label>{data && data.identity}</label></span> <span className="userpost"><label>{data && data.identity}</label></span>
} }
</p> </p>
<p className="mt15"> <p className="mt15">
<Tooltip placement='bottom' title={ data && data.professional_certification ?"已职业认证":"未职业认证"}> <Tooltip placement='bottom' title={ data && data.professional_certification ?"已职业认证":"未职业认证"}>
<i className={ data && data.professional_certification ? "iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-green mr20 ml2":"iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-B8 mr20 ml2"}></i> <i className={ data && data.professional_certification ? "iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-green mr20 ml2":"iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-B8 mr20 ml2"}></i>
</Tooltip> </Tooltip>
<Tooltip placement='bottom' title={ data && data.authentication ?"已实名认证":"未实名认证"}> <Tooltip placement='bottom' title={ data && data.authentication ?"已实名认证":"未实名认证"}>
<i className={ data && data.authentication ? "iconfont icon-renzhengshangjia font-18 user-colorgrey-green":"iconfont icon-renzhengshangjia font-18 user-colorgrey-B8"}></i> <i className={ data && data.authentication ? "iconfont icon-renzhengshangjia font-18 user-colorgrey-green":"iconfont icon-renzhengshangjia font-18 user-colorgrey-B8"}></i>
</Tooltip> </Tooltip>
</p> </p>
</div> </div>
<div className="fr"> <div className="fr">
<div class="fl headtab mt20"> <div class="fl headtab mt20">
<span>{is_current ? "我":"TA"}的经验值</span> <span>{is_current ? "我":"TA"}的经验值</span>
<a style={{"cursor":"default"}}>{data && data.experience}</a> <a style={{"cursor":"default"}}>{data && data.experience}</a>
</div> </div>
<div class="fl headtab mt20 pr leftTransform pl20"> <div class="fl headtab mt20 pr leftTransform pl20">
<span>{is_current ? "我":"TA"}的金币</span> <span>{is_current ? "我":"TA"}的金币</span>
<a style={{"cursor":"default"}}>{data && data.grade}</a> <a style={{"cursor":"default"}}>{data && data.grade}</a>
</div> </div>
{ {
is_current ? is_current ?
<span className="fl mt35 ml60"> <span className="fl mt35 ml60">
{ {
data && data.attendance_signed ? data && data.attendance_signed ?
<span className="user_default_btn user_grey_btn font-18">已签到</span> <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> <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"> <span className="fl mt35 ml60">
<LinkAfterLogin <LinkAfterLogin
{...this.props} {...this.props}
{...this.state} {...this.state}
className="user_default_btn user_yellow_btn fl font-18" className="user_default_btn user_yellow_btn fl font-18"
to={`/messages/${login}/message_detail?target_ids=${id}`} to={`/messages/${login}/message_detail?target_ids=${id}`}
> >
私信 私信
</LinkAfterLogin> </LinkAfterLogin>
</span> </span>
} }
</div> </div>
</div> </div>
<div className="userNav"> <div className="userNav">
<li className={`${moduleName == 'courses' ||moduleName == undefined ? 'active' : '' }`}> <li className={`${moduleName == 'courses' ||moduleName == undefined ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'courses'})} onClick={() => this.setState({moduleName: 'courses'})}
to={`/users/${username}/courses`}>翻转课堂</Link> to={`/users/${username}/courses`}>翻转课堂</Link>
</li> </li>
<li className={`${moduleName == 'shixuns' ? 'active' : '' }`}> <li className={`${moduleName == 'shixuns' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'shixuns'})} onClick={() => this.setState({moduleName: 'shixuns'})}
to={`/users/${username}/shixuns`}>开发社区</Link> to={`/users/${username}/shixuns`}>开发社区</Link>
</li> </li>
<li className={`${moduleName == 'paths' ? 'active' : '' }`}> <li className={`${moduleName == 'paths' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'paths'})} onClick={() => this.setState({moduleName: 'paths'})}
to={`/users/${username}/paths`}>实践课程</Link> to={`/users/${username}/paths`}>实践课程</Link>
</li> </li>
<li className={`${moduleName == 'projects' ? 'active' : '' }`}> {/*<li className={`${moduleName == 'projects' ? 'active' : '' }`}>*/}
<Link {/* <Link*/}
onClick={() => this.setState({moduleName: 'projects'})} {/* onClick={() => this.setState({moduleName: 'projects'})}*/}
to={`/users/${username}/projects`}>项目</Link> {/* to={`/users/${username}/projects`}>项目</Link>*/}
</li> {/*</li>*/}
<li className={`${moduleName == 'package' ? 'active' : '' }`}> {/*<li className={`${moduleName == 'package' ? 'active' : '' }`}>*/}
<Link {/* <Link*/}
onClick={() => this.setState({moduleName: 'package'})} {/* onClick={() => this.setState({moduleName: 'package'})}*/}
to={`/users/${username}/package`}>众包</Link> {/* to={`/users/${username}/package`}>众包</Link>*/}
</li> {/*</li>*/}
{((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin) {/*{((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin) */}
&& <li className={`${moduleName == 'videos' ? 'active' : '' }`}> {/*&& <li className={`${moduleName == 'videos' ? 'active' : '' }`}>*/}
<Link {/* <Link*/}
onClick={() => this.setState({moduleName: 'videos'})} {/* onClick={() => this.setState({moduleName: 'videos'})}*/}
to={`/users/${username}/videos`}>视频</Link> {/* to={`/users/${username}/videos`}>视频</Link>*/}
</li>} {/*</li>}*/}
{((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin) {/*{((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin)*/}
&& <li className={`${moduleName == 'videos' ? 'active' : '' }`}> {/*&& <li className={`${moduleName == 'videos' ? 'active' : '' }`}>*/}
<Link {/* <Link*/}
onClick={() => this.setState({moduleName: 'videos'})} {/* onClick={() => this.setState({moduleName: 'videos'})}*/}
to={`/users/${username}/videos`}>题库</Link> {/* to={`/users/${username}/videos`}>题库</Link>*/}
</li>} {/*</li>}*/}
</div> </div>
</div> </div>
</div> </div>
) )
} }
} }
export default InfosBanner; export default InfosBanner;

@ -120,10 +120,10 @@ class InfosProject extends Component{
<span className="fr color-grey-9">时间最新</span> <span className="fr color-grey-9">时间最新</span>
</p> </p>
<div className="square-list clearfix"> <div className="square-list clearfix">
{ {/*{*/}
page == 1 && is_current && this.props.current_user && !category && this.props.current_user.user_identity != "学生" ? {/* page == 1 && is_current && this.props.current_user && !category && this.props.current_user.user_identity != "学生" ? */}
<Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建开发项目"} index="4"></Create>:"" {/* <Create href={`${this.props.Headertop && this.props.Headertop.old_url}/projects/new`} name={"新建开发项目"} index="4"></Create>:""*/}
} {/*}*/}
{ {
(!data || (data && data.projects.length==0)) && category && <NoneData></NoneData> (!data || (data && data.projects.length==0)) && category && <NoneData></NoneData>
} }

Loading…
Cancel
Save