Compare commits

..

5 Commits

17 changed files with 766 additions and 1621 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6705,13 +6705,10 @@ p{
right: 0px; right: 0px;
top:4px; top:4px;
color: #999; color: #999;
<<<<<<< HEAD
=======
} }
.ant-input, .ant-input .ant-input-suffix{ .ant-input, .ant-input .ant-input-suffix{
background-color: #fff!important; background-color: #fff!important;
} }
.has-error .ant-input{ .has-error .ant-input{
background-color: #FEF1F0!important; background-color: #FEF1F0!important;
>>>>>>> pre_develop
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -10,7 +10,7 @@ import {
import axios from 'axios'; import axios from 'axios';
import LoginDialog from './modules/login/LoginDialog'; import LoginDialog from './modules/login/LoginDialog';
import 'babel-polyfill'; import 'babel-polyfill';
import Loading from './Loading'; import Loading from './Loading'
import Loadable from 'react-loadable'; import Loadable from 'react-loadable';
import marked from './common/marked'; import marked from './common/marked';

View File

@ -73,6 +73,7 @@ export default ((props)=>{
<Menu.Item key={'1'}><a href={tar_url}>TAR.GZ</a></Menu.Item> <Menu.Item key={'1'}><a href={tar_url}>TAR.GZ</a></Menu.Item>
</Menu> </Menu>
) )
return( return(
<React.Fragment> <React.Fragment>
<div className="main"> <div className="main">

View File

@ -157,17 +157,6 @@ export default Form.create()(
setAuth(params.target.value) setAuth(params.target.value)
} }
function checkname(rule, value, callback){
if(!value){
callback();
}
if(value && !value.match(/^[a-zA-Z][a-zA-Z\d]{3,14}$/)){
callback("只能使用英文字母和数字以字母开头长度为4到15个字符");
}
callback();
}
function checkname(rule, value, callback){ function checkname(rule, value, callback){
if(!value){ if(!value){
callback(); callback();

View File

@ -1,122 +0,0 @@
import React, { Component } from "react";
import { Link } from 'react-router-dom';
import { Spin } from 'antd';
import NoneData from '../Nodata';
import './version.css';
import axios from 'axios';
import RenderHtml from '../../components/render-html';
/**
* issue_chosen:下拉的筛选列表,
* data:列表接口返回的所有数据,
* issues:列表数组,
* isSpin:加载中,
*/
class version extends Component {
constructor(props) {
super(props);
this.state = {
issue_chosen: undefined,
data: undefined,
releases:undefined,
issues: undefined,
isSpin: true,
search: undefined,
search_count: undefined,
}
}
componentDidMount = () => {
this.getIssueList();
}
// 获取列表数据
getIssueList = () => {
const { projectsId, owner } = this.props.match.params;
const url = `/${owner}/${projectsId}/releases.json`;
axios.get(url).then((result) => {
if (result) {
this.setState({
data: result.data,
releases:result.data.releases,
issues: result.data.issues,
isSpin: false
})
}
}).catch((error) => {
console.log(error);
})
}
// 显示版本描述
showBody=(key,flag)=>{
let { releases } = this.state;
releases[key].bodyshow = !flag;
this.setState({
releases
})
}
renderList = (releases) => {
const { projectsId , owner } = this.props.match.params;
if (releases && releases.length > 0) {
return (
releases.map((item, key) => {
return (
<div className="versionInfo" key={key}>
<span className="versionInfo_left">
<span className={`${item.draft === "稳定" ?"versionTag green":"versionTag yellow"}`}>{item.draft}</span>
<span className="mt10">{item.created_at}</span>
<span className="color-grey-8">
<i className="iconfont icon-biaoqian3 mr3 font-14"></i>
{item.tag_name}
</span>
</span>
<div className="versionInfo_right">
<span className="versionName">
<span className="task-hide">{item.name}</span>
<Link to={`/projects/${owner}/${projectsId}/releases/${item.version_id}/update`} className="color-blue ml3 font-12">编辑</Link>
</span>
<span className="color-grey-3">
<i className={`${item.bodyshow ? "iconfont icon-sanjiaoxing-down color-grey-8 mr3 font-14":"iconfont icon-triangle color-grey-8 mr3 font-14"}`} onClick={()=>this.showBody(key,item.bodyshow)}></i>
{item.user_name}:<span className="color-grey-8">发布了这个版本并在发布后提交给{item.target_commitish}</span>
</span>
{
item.bodyshow && <RenderHtml className="break_word_comments imageLayerParent" value={item.body} url={this.props.history.location}/>
}
<RenderHtml />
<p className="mt10 pl3">
<a href={item.tarball_url} style={{color:"#4CC1DA"}} className="mr30"><i className="iconfont icon-TAR font-18 mr5"></i>TAR</a>
<a href={item.zipball_url} style={{color:"#28BD6C"}}><i className="iconfont icon-ZIP font-18 mr5"></i>ZIP</a>
</p>
</div>
</div>
)
})
)
} else if (releases && releases.length === 0) {
return ( <NoneData _html="暂时还没有相关数据!" /> )
}
}
render() {
const { projectsId ,owner } = this.props.match.params;
const { data , releases , isSpin } = this.state
return (
<div className="main" style={{padding:"0px"}}>
<div className="topWrapper" style={{padding:"15px 20px"}}>
<span className="font-18 color-grey-3">版本发布</span>
{
data && data.user_permission ?
<Link to={`/projects/${owner}/${projectsId}/releases/new`} className="topWrapper_btn_new">+ 发布新版</Link>
: ''
}
</div>
<div className="releasesVersion">
<Spin spinning={isSpin}><div>{this.renderList(releases)}</div></Spin>
</div>
</div>
)
}
}
export default version;

View File

@ -123,8 +123,6 @@ class Infos extends Component {
}); });
const { current_user } = this.props; const { current_user } = this.props;
const { username } = this.props.match.params; const { username } = this.props.match.params;
const { pathname } = this.props.location;
const { notice } = this.state;
let url = `/users/${username || (current_user && current_user.login)}.json`; let url = `/users/${username || (current_user && current_user.login)}.json`;
axios.get(url).then((result) => { axios.get(url).then((result) => {

View File

@ -48,6 +48,7 @@ function Team(props){
</Menu> </Menu>
) )
return( return(
<div> <div>
<div className="headerbox"> <div className="headerbox">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,11 +1,11 @@
import React, { Component } from "react"; import React, {Component} from "react";
import moment from 'moment'; import moment from 'moment';
import { getImageUrl } from 'educoder'; import { getImageUrl } from 'educoder';
import '../courses/css/members.css'; import '../courses/css/members.css';
import "../courses/common/formCommon.css"; import "../courses/common/formCommon.css";
import '../courses/css/Courses.css'; import '../courses/css/Courses.css';
import beijintulogontwo from '../../../src/images/login/beijintulogontwo.png'; import beijintulogontwo from '../../../src/images/login/beijintulogontwo.png';
import educodernet from '../../../src/images/login/logo.png'; import educodernet from '../../../src/images/login/educodernet.png';
import LoginRegisterComponent from '../user/LoginRegisterComponent'; import LoginRegisterComponent from '../user/LoginRegisterComponent';
import FindPasswordComponent from '../user/FindPasswordComponent'; import FindPasswordComponent from '../user/FindPasswordComponent';
//educoder登入页面 //educoder登入页面
@ -47,6 +47,7 @@ class EducoderLogin extends Component {
} }
}else if(props.match.url === "/register"){ }else if(props.match.url === "/register"){
// showbool: 1,
this.state = { this.state = {
showbool: 1, showbool: 1,
loginstatus:false, loginstatus:false,
@ -63,14 +64,18 @@ class EducoderLogin extends Component {
loginstatus:true, loginstatus:true,
} }
} }
} }
} }
Setlogins=(i)=>{ Setlogins=(i)=>{
console.log("96ye");
console.log(i)
this.setState({ this.setState({
logini:i logini:i
}) })
} }
gohome=()=>{ gohome=()=>{
window.location.href="/" window.location.href="/"
@ -89,39 +94,84 @@ class EducoderLogin extends Component {
render() { render() {
let { showbool } = this.state; let {showbool,loginstatus,logini} = this.state;
const { mygetHelmetapi } = this.props;
return ( return (
<div style={newContainer} className=" clearfix" > <div style={newContainer} className=" clearfix" >
<div style={{"justify-content": "center","align-items": "center","width": "100%",textAlign:"center"}}>
<div style={{cursor:"pointer"}}> <div >
{ <div style={{
mygetHelmetapi && mygetHelmetapi.login_logo_url ? "display": "flex",
<img style={{cursor:"pointer"}} alt="" onClick={()=>this.gohome()} width="80px" src={getImageUrl(mygetHelmetapi.login_logo_url)}/> "justify-content": "center",
: "align-items": "center",
<img style={{cursor:"pointer"}} alt="" onClick={()=>this.gohome()} src={educodernet} width="80px"/> "width": "100%"
} }}>
<div style={{cursor:"pointer"}}>
{this.props.mygetHelmetapi === null ? ""
:
this.props.mygetHelmetapi===undefined||this.props.mygetHelmetapi.login_logo_url===null|| this.props.mygetHelmetapi.login_logo_url===undefined?
<img style={{cursor:"pointer"}} onClick={()=>this.gohome()} src={educodernet}/>
:
<img style={{cursor:"pointer"}} onClick={()=>this.gohome()} src={getImageUrl(this.props.mygetHelmetapi.login_logo_url)}/>
}
</div>
</div> </div>
{ {
showbool === 1 ? showbool === 1 ?
<div style={{ <div style={{
display: "flex", display: "flex",
justifyContent: "center", justifyContent: "center",
width: "100%", width: "100%",
marginTop: "25px", marginTop: "25px",
}}> }}>
<div> <div>
<LoginRegisterComponent {...this.props} {...this.state} Setshowbool={(e)=>this.Setshowbool(e)} ></LoginRegisterComponent>
<LoginRegisterComponent {...this.props} {...this.state}
Setshowbool={(e)=>this.Setshowbool(e)} ></LoginRegisterComponent>
</div>
</div> </div>
</div>
: :
<div style={{display: "flex",justifyContent: "center",width: "100%",marginTop: "25px",}}> <div style={{
<div> display: "flex",
<FindPasswordComponent {...this.props} {...this.state} Setshowbool={(e)=>this.Setshowbool(e)}></FindPasswordComponent> justifyContent: "center",
</div> width: "100%",
</div> marginTop: "25px",
}}>
<div >
<FindPasswordComponent {...this.props} {...this.state}
Setshowbool={(e)=>this.Setshowbool(e)}></FindPasswordComponent>
</div>
</div>
} }
<div className="font-14 color-grey-9 " style={{marginTop:"20px"}}><span className="font-18">©</span>&nbsp;{moment().year()}&nbsp;Trustie<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div> {this.props.mygetHelmetapi === null ? <div style={{
display: "flex",
justifyContent: "center",
width: "100%",
}}>
<div className="font-14 color-grey-9 " style={{marginTop:"20px"}}><span className="font-18">©</span>&nbsp;{moment().year()}&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div>
</div>:
this.props.mygetHelmetapi===undefined||this.props.mygetHelmetapi.main_site===null|| this.props.mygetHelmetapi.main_site===undefined? <div style={{
display: "flex",
justifyContent: "center",
width: "100%",
}}>
<div className="font-14 color-grey-9 " style={{marginTop:"20px"}}><span className="font-18">©</span>&nbsp;{moment().year()}&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div>
</div>:this.props.mygetHelmetapi.main_site===true?
<div style={{
display: "flex",
justifyContent: "center",
width: "100%",
}}>
<div className="font-14 color-grey-9 " style={{marginTop:"20px"}}><span className="font-18">©</span>&nbsp;{moment().year()}&nbsp;EduCoder<span className="ml15 mr15">ICP17009477</span><a href="https://team.trustie.net" style={{"color":"#888"}} target="_blank">Trustie</a>&nbsp;&nbsp;&nbsp;&amp;&nbsp;&nbsp;&nbsp;IntelliDE inside.</div>
</div>
:""
}
</div> </div>
</div> </div>
) )

View File

@ -169,14 +169,6 @@ export function TPMIndexHOC(WrappedComponent) {
}) })
} }
} }
if(response.data && response.data.login){
if(response.data.need_edit_info){
this.setState({
giteaVisible:true,
email:response.data.email
})
}
}
} }
}).catch((error) => { }).catch((error) => {
console.log(error) console.log(error)

File diff suppressed because it is too large Load Diff