dev_new_shixunsrepository
杨树明 5 years ago
parent f5df1595f1
commit 0a7a29d9c5

@ -98,7 +98,7 @@ export function initAxiosInterceptors(props) {
proxy="https://test-newweb.educoder.net" proxy="https://test-newweb.educoder.net"
// proxy="https://test-jupyterweb.educoder.net" // proxy="https://test-jupyterweb.educoder.net"
// proxy="https://test-newweb.educoder.net" // proxy="https://test-newweb.educoder.net"
// proxy="https://test-jupyterweb.educoder.net" proxy="https://test-jupyterweb.educoder.net"
//proxy="http://192.168.2.63:3001" //proxy="http://192.168.2.63:3001"
try { try {
const str =window.location.pathname; const str =window.location.pathname;

@ -539,12 +539,12 @@ class TPMIndex extends Component {
<Route path="/shixuns/:shixunId/repository/master/shixun_show/:fileId" render={ <Route path="/shixuns/:shixunId/repository/master/shixun_show/:fileId" render={
(props) => (<TPMRepositoryComponentdetails {...this.props} {...this.state} {...props} is_jupyter={this.state.is_jupyter} (props) => (<TPMRepositoryComponent {...this.props} {...this.state} {...props} is_jupyter={this.state.is_jupyter}
/>) />)
}></Route> }></Route>
<Route path="/shixuns/:shixunId/secret_repository/master/shixun_show/:fileId" render={ <Route path="/shixuns/:shixunId/secret_repository/master/shixun_show/:fileId" render={
(props) => (<TPMRepositoryComponentdetails {...this.props} {...this.state} {...props} secret_repository_tab={true} is_jupyter={this.state.is_jupyter} (props) => (<TPMRepositoryComponent {...this.props} {...this.state} {...props} secret_repository_tab={true} is_jupyter={this.state.is_jupyter}
/>) />)
}></Route> }></Route>

@ -20,7 +20,7 @@ class TPMRepository extends Component {
render() { render() {
const { loadingContent, creator, shixun, myshixun, recommend_shixuns, current_user, watched, const { loadingContent, listItemtypes, shixun, myshixun, recommend_shixuns, current_user, watched,
aboutFocus, user, match, isContentWidth100,isflag aboutFocus, user, match, isContentWidth100,isflag
} = this.props; } = this.props;
@ -28,7 +28,7 @@ class TPMRepository extends Component {
<React.Fragment> <React.Fragment>
<div className="tpmComment educontent clearfix mt30 mb80"> <div className="tpmComment educontent clearfix mt30 mb80">
{/* 可能会影响到其他页面的样式,需要测试、协商 */} {/* 可能会影响到其他页面的样式,需要测试、协商 */}
<div className={`${!isflag ? 'width100': 'with65'} fl edu-back-white`} <div className={`${listItemtypes===true ? 'width100': 'with65'} fl edu-back-white`}
style={{background: 'transparent'}}> style={{background: 'transparent'}}>
{ loadingContent ? { loadingContent ?
@ -39,9 +39,9 @@ class TPMRepository extends Component {
} }
</div> </div>
{ isflag && <div className="with35 fr pl20"> { listItemtypes===false? <div className="with35 fr pl20">
<TPMRightSection {...this.props}></TPMRightSection> <TPMRightSection {...this.props}></TPMRightSection>
</div>} </div>:""}
</div> </div>
</React.Fragment> </React.Fragment>

@ -19,13 +19,15 @@ class TPMRepositoryComponent extends Component {
let pathArray = [] let pathArray = []
var splitArray = window.location.pathname.split('shixun_show/'); var splitArray = window.location.pathname.split('shixun_show/');
if (splitArray[1]) { if (splitArray[1]) {
pathArray = splitArray[1].split('/') // pathArray = splitArray[1].split('/')
pathArray = decodeURIComponent(splitArray[1]).split('/')
if (pathArray[pathArray.length - 1] == '') { if (pathArray[pathArray.length - 1] == '') {
// 有可能是这么访问的: http://localhost:3007/shixuns/3ozvy5f8/repository/fsu7tkaw/master/shixun_show/src/ // 有可能是这么访问的: http://localhost:3007/shixuns/3ozvy5f8/repository/fsu7tkaw/master/shixun_show/src/
pathArray.length = pathArray.length - 1; pathArray.length = pathArray.length - 1;
} }
} }
this.state = { this.state = {
listItemtype:false,
repositoryLoading: true, repositoryLoading: true,
pathArray: pathArray, pathArray: pathArray,
isContentWidth100: this._isFileInPathArray(pathArray) isContentWidth100: this._isFileInPathArray(pathArray)
@ -33,6 +35,9 @@ class TPMRepositoryComponent extends Component {
} }
componentDidUpdate(prevProps, prevState) { componentDidUpdate(prevProps, prevState) {
if (this.props.secret_repository_tab != prevProps.secret_repository_tab) { if (this.props.secret_repository_tab != prevProps.secret_repository_tab) {
this.setState({
listItemtype:false,
})
this.fetchRepo() this.fetchRepo()
} }
} }
@ -64,7 +69,7 @@ class TPMRepositoryComponent extends Component {
}); });
} }
trace_collapse('tpm save code res: ', response) trace_collapse('tpm save code res: ', response)
this.props.showSnackbar('文件保存成功') this.props.showNotification('文件保存成功')
}).catch((error)=>{ }).catch((error)=>{
console.log(error) console.log(error)
@ -75,7 +80,7 @@ class TPMRepositoryComponent extends Component {
// https://testeduplus2.educoder.net/shixuns/3ozvy5f8/file_content.json // https://testeduplus2.educoder.net/shixuns/3ozvy5f8/file_content.json
this.setContentWidth100(true) this.setContentWidth100(true)
this.setState({ repositoryLoading: true, pathArray: newPathArray }) //
let id = this.props.match.params.shixunId; let id = this.props.match.params.shixunId;
let url = `/shixuns/${id}/file_content.json`; let url = `/shixuns/${id}/file_content.json`;
axios.post(url, { axios.post(url, {
@ -85,21 +90,37 @@ class TPMRepositoryComponent extends Component {
trace_collapse('repository res: ', response) trace_collapse('repository res: ', response)
if (response.data.status == -1) { if (response.data.status == -1) {
this.props.showSnackbar('无法找到对应的资源,请变更地址或联系管理员!') //this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
return; return;
} }
if (response.data.status == -2) {
this.props.showNotification(response.data.message)
return;
}
if(response.status === 200){ if(response.status === 200){
this.setState({ this.setState({
listItemtypes:true
})
this.setState({ repositoryLoading: true, pathArray: newPathArray })
this.setState({
fileContent: response.data.content, fileContent: response.data.content,
repositoryLoading: false repositoryLoading: false
}); });
if(response.data.content){
this.props.history.replace(`${this.props.match.url}/master/shixun_show/${newPathArray.join('/')}`) if(response.data.content){
} this.props.history
.replace(`/shixuns/${id}/repository` +
(newPathArray.length ? `/master/shixun_show/${newPathArray.join('/')}` : ''))
// this.props.history.replace(`${this.props.match.url}/master/shixun_show/${newPathArray.join('/')}`)
}
} }
}).catch((error)=>{ }).catch((error)=>{
this.props.showSnackbar('无法找到对应的资源,请变更地址或联系管理员!') // this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
console.log(error) console.log(error)
}); });
} }
@ -114,27 +135,42 @@ class TPMRepositoryComponent extends Component {
} }
// listItem 如果是num则是通过面包屑点击过来的取pathArray的子集 // listItem 如果是num则是通过面包屑点击过来的取pathArray的子集
fetchRepo = (listItem) => { fetchRepo = (listItem) => {
console.log(1)
debugger // if(listItem === "main"||listItem){
// this.props.history.replace(`/shixuns/${this.props.match.params.shixunId}/repository`)
// return;
// }
const { pathArray } = this.state; const { pathArray } = this.state;
let newPathArray = pathArray.slice(0) let newPathArray = pathArray.slice(0)
if (listItem === 0 || listItem) { if (listItem === 0 || listItem) {
this.setContentWidth100(false) this.setContentWidth100(false)
this.nameTypeMap[listItem.name] = listItem.type this.nameTypeMap[listItem.name] = listItem.type
if (typeof listItem == 'number') { // 参数是数字的话,做截取 if (typeof listItem == 'number') { // 参数是数字的话,做截取
// if (this._isFileName(newPathArray[listItem])) { // 面包屑中的文件不让点击了 // if (this._isFileName(newPathArray[listItem])) { // 面包屑中的文件不让点击了
// listItem--; // listItem--;
// } // }
this.setState({
listItemtypes:false
})
newPathArray = newPathArray.slice(0, listItem) newPathArray = newPathArray.slice(0, listItem)
} else if (listItem.type === 'tree') { } else if (listItem.type === 'tree') {
this.setState({
listItemtypes:false
})
newPathArray.push(listItem.name) newPathArray.push(listItem.name)
} else if (listItem.type === 'blob') { } else if (listItem.type === 'blob') {
newPathArray.push(listItem.name) newPathArray.push(listItem.name)
this.setState({ pathArray: newPathArray }) // this.setState({ pathArray: newPathArray })
this.fetchCode(newPathArray) this.fetchCode(newPathArray)
return; return;
} }
}else{
this.setState({
listItemtypes:false
})
} }
// https://testeduplus2.educoder.net/shixuns/3ozvy5f8/repository.json // https://testeduplus2.educoder.net/shixuns/3ozvy5f8/repository.json
this.setState({ repositoryLoading: true, pathArray: newPathArray }) this.setState({ repositoryLoading: true, pathArray: newPathArray })
@ -143,6 +179,7 @@ class TPMRepositoryComponent extends Component {
if (newPathArray.length) { if (newPathArray.length) {
fileInPathArray = this.nameTypeMap[newPathArray[newPathArray.length - 1]] ? this.nameTypeMap[newPathArray[newPathArray.length - 1]] !== 'tree' fileInPathArray = this.nameTypeMap[newPathArray[newPathArray.length - 1]] ? this.nameTypeMap[newPathArray[newPathArray.length - 1]] !== 'tree'
: (listItem ? listItem.type !== 'tree' : this._isFileName( newPathArray[newPathArray.length - 1] )) : (listItem ? listItem.type !== 'tree' : this._isFileName( newPathArray[newPathArray.length - 1] ))
if ( fileInPathArray ) { if ( fileInPathArray ) {
urlNewPathArray = newPathArray.slice(0, newPathArray.length - 1) urlNewPathArray = newPathArray.slice(0, newPathArray.length - 1)
} }
@ -151,16 +188,18 @@ class TPMRepositoryComponent extends Component {
let id = this.props.match.params.shixunId; let id = this.props.match.params.shixunId;
let url = `/shixuns/${id}/${this.props.secret_repository_tab ? 'secret_repository' : 'repository'}.json`; let url = `/shixuns/${id}/${this.props.secret_repository_tab ? 'secret_repository' : 'repository'}.json`;
// this.props.setLoadingContent(true) // this.props.setLoadingContent(true)
axios.post(url, { axios.post(url, {
path: path ? path : '' path: path ? path : ''
}).then((response) => { }).then((response) => {
// this.props.setLoadingContent(false) // this.props.setLoadingContent(false)
const trees = response.data.trees const trees = response.data.trees
const treeIsFileMap = {} const treeIsFileMap = {}
if (!trees || !Array.isArray(trees)) { if (!trees || !Array.isArray(trees)) {
// this.props.showSnackbar('无法找到对应的资源,请变更地址或联系管理员!') // this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
// return; // return;
} else { } else {
trees.forEach(item => { trees.forEach(item => {
@ -169,19 +208,20 @@ class TPMRepositoryComponent extends Component {
} }
if(response.status === 200){ if(response.status === 200){
this.setState({ this.setState({
treeIsFileMap, treeIsFileMap,
...response.data, ...response.data,
repositoryLoading: false repositoryLoading: false
}); });
// console.log(response)
// console.log(newPathArray.length) this.props.history
// this.props.history .replace(`/shixuns/${id}/repository` +
// .replace(`${this.props.match.url}` + (newPathArray.length ? `/master/shixun_show/${newPathArray.join('/')}` : ''))
// (newPathArray.length ? `/master/shixun_show/${newPathArray.join('/')}` : ''))
} }
// 初始化时repo接口完毕后需要看是否需要fetchCode // 初始化时repo接口完毕后需要看是否需要fetchCode
if (fileInPathArray) { if (fileInPathArray) {
//
this.fetchCode(newPathArray) this.fetchCode(newPathArray)
} }
// info(response) // info(response)
@ -192,30 +232,45 @@ class TPMRepositoryComponent extends Component {
}); });
} }
oncodechanner=()=>{
this.fetchRepo(0)
}
render() { render() {
const { isContentWidth100 } = this.state; const { listItemtypes } = this.state;
let matchpath =this.props.match.path; let matchpath =this.props.match.path;
let flag =false; let flag =false;
if(matchpath==="/shixuns/:shixunId/repository"){
flag =true; // if(matchpath==="/shixuns/:shixunId/repository"){
}else if(matchpath==="/shixuns/:shixunId/secret_repository"){ // flag =true;
flag =true; // }else if(matchpath==="/shixuns/:shixunId/secret_repository"){
} // flag =true;
// }
// 需要重构 // 需要重构
return ( return (
<React.Fragment> <React.Fragment>
{ flag ? <TPMRepository { listItemtypes===false? <TPMRepository
{...this.props} {...this.props}
{...this.state} {...this.state}
nameTypeMap={this.nameTypeMap} nameTypeMap={this.nameTypeMap}
fetchRepo={this.fetchRepo} fetchRepo={this.fetchRepo}
is_jupyter={this.props.is_jupyter} is_jupyter={this.props.is_jupyter}
isflag={flag} listItemtypes={listItemtypes}
> >
</TPMRepository> </TPMRepository>
:"" : <div>
{/* 可能会影响到其他页面的样式,需要测试、协商 */}
<div>
<RepositoryCodeEditor
{...this.state}
{...this.props}
fetchRepo={this.fetchRepo}
saveCode={this.saveCode}
nameTypeMap={this.nameTypeMap}
oncodechanner={this.oncodechanner}
></RepositoryCodeEditor>
</div>
</div>
} }
</React.Fragment> </React.Fragment>

@ -11,7 +11,8 @@ class TPMRepositoryComponentdetails extends Component {
let pathArray = [] let pathArray = []
var splitArray = window.location.pathname.split('shixun_show/'); var splitArray = window.location.pathname.split('shixun_show/');
if (splitArray[1]) { if (splitArray[1]) {
pathArray = splitArray[1].split('/') pathArray = decodeURIComponent(splitArray[1]).split('/')
if (pathArray[pathArray.length - 1] == '') { if (pathArray[pathArray.length - 1] == '') {
// 有可能是这么访问的: http://localhost:3007/shixuns/3ozvy5f8/repository/fsu7tkaw/master/shixun_show/src/ // 有可能是这么访问的: http://localhost:3007/shixuns/3ozvy5f8/repository/fsu7tkaw/master/shixun_show/src/
pathArray.length = pathArray.length - 1; pathArray.length = pathArray.length - 1;
@ -25,14 +26,13 @@ class TPMRepositoryComponentdetails extends Component {
} }
componentDidUpdate(prevProps, prevState) { componentDidUpdate(prevProps, prevState) {
if (this.props.secret_repository_tab != prevProps.secret_repository_tab) { if (this.props.secret_repository_tab != prevProps.secret_repository_tab) {
this.fetchRepo() this.fetchRepo()
} }
} }
componentDidMount = () => { componentDidMount = () => {
this.fetchRepo()
this.fetchRepo()
} }
setContentWidth100 = (flag) => { setContentWidth100 = (flag) => {
const newFileContent = flag === false ? '' : this.state.fileContent const newFileContent = flag === false ? '' : this.state.fileContent
@ -57,7 +57,7 @@ class TPMRepositoryComponentdetails extends Component {
}); });
} }
trace_collapse('tpm save code res: ', response) trace_collapse('tpm save code res: ', response)
this.props.showSnackbar('文件保存成功') this.props.showNotification('文件保存成功')
}).catch((error)=>{ }).catch((error)=>{
console.log(error) console.log(error)
@ -65,7 +65,6 @@ class TPMRepositoryComponentdetails extends Component {
} }
fetchCode = (newPathArray) => { fetchCode = (newPathArray) => {
const path = newPathArray.join('/') const path = newPathArray.join('/')
debugger
// https://testeduplus2.educoder.net/shixuns/3ozvy5f8/file_content.json // https://testeduplus2.educoder.net/shixuns/3ozvy5f8/file_content.json
this.setContentWidth100(true) this.setContentWidth100(true)
@ -79,7 +78,12 @@ class TPMRepositoryComponentdetails extends Component {
trace_collapse('repository res: ', response) trace_collapse('repository res: ', response)
if (response.data.status == -1) { if (response.data.status == -1) {
this.props.showSnackbar('无法找到对应的资源,请变更地址或联系管理员!') // this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
return;
}
if (response.data.status == -2) {
this.props.showNotification(response.data.message)
// this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
return; return;
} }
if(response.status === 200){ if(response.status === 200){
@ -92,7 +96,7 @@ class TPMRepositoryComponentdetails extends Component {
} }
}).catch((error)=>{ }).catch((error)=>{
this.props.showSnackbar('无法找到对应的资源,请变更地址或联系管理员!') // this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
console.log(error) console.log(error)
}); });
} }
@ -107,8 +111,12 @@ class TPMRepositoryComponentdetails extends Component {
} }
// listItem 如果是num则是通过面包屑点击过来的取pathArray的子集 // listItem 如果是num则是通过面包屑点击过来的取pathArray的子集
fetchRepo = (listItem) => { fetchRepo = (listItem) => {
console.log(2)
debugger if(listItem === "main"||listItem){
this.props.history.replace(`/shixuns/${this.props.match.params.shixunId}/repository`)
return;
}
const { pathArray } = this.state; const { pathArray } = this.state;
let newPathArray = pathArray.slice(0) let newPathArray = pathArray.slice(0)
@ -125,7 +133,7 @@ class TPMRepositoryComponentdetails extends Component {
} else if (listItem.type === 'blob') { } else if (listItem.type === 'blob') {
newPathArray.push(listItem.name) newPathArray.push(listItem.name)
this.setState({ pathArray: newPathArray }) this.setState({ pathArray: newPathArray })
this.fetchCode(newPathArray) //this.fetchCode(newPathArray)
return; return;
} }
} }
@ -153,7 +161,7 @@ class TPMRepositoryComponentdetails extends Component {
const trees = response.data.trees const trees = response.data.trees
const treeIsFileMap = {} const treeIsFileMap = {}
if (!trees || !Array.isArray(trees)) { if (!trees || !Array.isArray(trees)) {
// this.props.showSnackbar('无法找到对应的资源,请变更地址或联系管理员!') // this.props.showNotification('无法找到对应的资源,请变更地址或联系管理员!')
// return; // return;
} else { } else {
trees.forEach(item => { trees.forEach(item => {
@ -172,7 +180,7 @@ class TPMRepositoryComponentdetails extends Component {
} }
// 初始化时repo接口完毕后需要看是否需要fetchCode // 初始化时repo接口完毕后需要看是否需要fetchCode
if (fileInPathArray) { if (fileInPathArray&&listItem!=2) {
this.fetchCode(newPathArray) this.fetchCode(newPathArray)
} }
// info(response) // info(response)

@ -61,6 +61,7 @@ class Repository extends Component {
} }
onSelectDirectoryTree=(selectedKeys, info)=>{ onSelectDirectoryTree=(selectedKeys, info)=>{
this.onRepoFileClick(info.node.props.item) this.onRepoFileClick(info.node.props.item)
} }

@ -95,7 +95,7 @@ class RepositoryCodeEditor extends Component {
} }
} }
componentDidUpdate = (prevProps, prevState) => { componentDidUpdate = (prevProps, prevState) => {
if (this.props.fileContent && this.props.fileContent != prevProps.fileContent) { if (this.props.fileContent && this.props.fileContent != prevProps.fileContent) {
// window.setTimeout(() => { // window.setTimeout(() => {
this.extend_editor.setValue(this.props.fileContent) this.extend_editor.setValue(this.props.fileContent)
@ -134,6 +134,9 @@ class RepositoryCodeEditor extends Component {
} }
}) })
} }
setCohetepaperbool=()=>{
this.props.oncodechanner()
}
render() { render() {
const { fileContent, shixunId, saveCode } = this.props; const { fileContent, shixunId, saveCode } = this.props;
const { codeSaving } = this.state; const { codeSaving } = this.state;
@ -189,7 +192,11 @@ class RepositoryCodeEditor extends Component {
</div> </div>
</div> </div>
<Bottomsubmit {...this.props} {...this.state} url={`/shixuns/${shixunId}/${Repositoryflag}`} onSubmits={() => this.saveCode(this.extend_editor.getValue())}/> <Bottomsubmit
Cohetepaperbool={true}
{...this.props} {...this.state} url={`/shixuns/${shixunId}/${Repositoryflag}`}
setCohetepaperbool={() => this.setCohetepaperbool()}
onSubmits={() => this.saveCode(this.extend_editor.getValue())}/>
</React.Fragment> </React.Fragment>
); );

@ -1,66 +1,130 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { Redirect } from 'react-router'; import { Button ,Modal } from "antd";
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 axios from 'axios';
import { trace_collapse } from 'educoder' import { trace_collapse } from 'educoder'
const $ = window.$; const $ = window.$;
const { confirm } = Modal;
class RepositoryDirectories extends Component { class RepositoryDirectories extends Component {
constructor(props) { constructor(props) {
super(props) super(props)
this.state = { this.state = {
} }
} }
componentDidMount() { componentDidMount() {
} }
showDeleteConfirm =()=>{
let that=this;
confirm({
title: '确认需要要删除该文件?',
okText: '确定',
cancelText: '取消',
onOk() {
that.onAttachmentRemove()
}
});
}
onAttachmentRemove=()=>{
let shixunId = this.props.match.params.shixunId;
let matchpath =this.props.match.path;
let Repositoryflag =undefined;
if( matchpath.indexOf("repository")>-1){
Repositoryflag =undefined;
}
if(matchpath.indexOf("secret_repository")>-1){
Repositoryflag =true;
}
let newfilspath=this.state.ischeckevalue;
let path="";
if(this.props.pathArray.length>0){
this.props.pathArray.map((item,key)=>{
if(key===0){
path=item
}else{
path=path+"/"+item
}
})
}
if(path===undefined||path===""){
path=newfilspath
}else{
path=path
}
const url = `/shixuns//${shixunId}/delete_git_file.json`;
axios.delete(url, { data: {
path:path,
message:"删除"+path,
secret_repository:Repositoryflag
}})
.then((response) => {
if(response.data.status == 0) {
this.props.showNotification("删除成功")
this.props.oncodechanner()
}
})
.catch(function (error) {
});
}
render() { render() {
const { match, pathArray, fetchRepo const { match, pathArray, fetchRepo,TPMRightSectionData
} = this.props; } = this.props;
let { RepositoryList } = this.state; let { RepositoryList } = this.state;
return ( return (
<React.Fragment> <React.Fragment>
{ pathArray.length !== 0 && { pathArray.length !== 0 &&
<div className={this.props.tpmComment===true?" padding5-10 font-14 mb10":" bor-bottom-greyE padding5-10 font-14"}> <div className={this.props.tpmComment===true?" padding5-10 font-14 mb10":" bor-bottom-greyE padding5-10 font-14"}>
<a className={this.props.tpmComment===true?"ml10 color888":"color-blue"} <a className={this.props.tpmComment===true?"ml10 color888":"color-blue"}
onClick={this.props.tpmComment===true?"":() => fetchRepo(0)} onClick={() => fetchRepo(0)}
> >
{match.params.shixunId} {match.params.shixunId}
</a> </a>
<span className={this.props.tpmComment===true?"color888 ml3 mr3":"ml3 mr3"}>/</span> <span className={this.props.tpmComment===true?"color888 ml3 mr3":"ml3 mr3"}></span>
{ pathArray.map((item, index) => { { pathArray.map((item, index) => {
// /shixuns/3ozvy5f8/repository/3ozvy5f8/master/shixun_show/src if(index<pathArray.length-1){
return ( return (
<React.Fragment> <React.Fragment>
{ this.props.nameTypeMap[item] === 'tree' || item.indexOf('.') === -1 { this.props.nameTypeMap[item] === 'tree' || item.indexOf('.') === -1
? <a ? <a
onClick={this.props.tpmComment===true?"":() => fetchRepo(index + 1)} onClick={() => fetchRepo(index + 1)}
className={this.props.tpmComment===true?"color888":"color-blue"} className={this.props.tpmComment===true?"color888":"color-blue"}
> >
{item}</a> / {item}</a>
: :
<a className={this.props.tpmComment===true?"color888":""}> <a className={this.props.tpmComment===true?"color888":""}>
{item}</a> / {item}</a>
} }
{index !== pathArray.length - 1 && <span className={this.props.tpmComment===true?"color888 ml3 mr3":"ml3 mr3"}>/</span>} {index !== pathArray.length - 1 && <span className={this.props.tpmComment===true?"color888 ml3 mr3":"ml3 mr3"}></span>}
</React.Fragment> </React.Fragment>
) )
}
}) })
} }
{ this.props.current_user && (this.props.current_user.admin ==true || (TPMRightSectionData && TPMRightSectionData.creator && TPMRightSectionData.creator.login == this.props.current_user.login)) ?
<Button size={"small"} className={"fr"} type="link" onClick={this.showDeleteConfirm}>删除</Button>:""}
<div className={"both"}></div>
</div> } </div> }
</React.Fragment> </React.Fragment>
); );
} }
} }

@ -117,7 +117,8 @@ class Repositoryfile extends Component{
} }
handleSubmit = (e) => { handleSubmit = (e) => {
let {path}=this.state; let {path,trees}=this.state;
let matchpath =this.props.match.path; let matchpath =this.props.match.path;
let flag =undefined; let flag =undefined;
@ -147,6 +148,21 @@ class Repositoryfile extends Component{
let url=`/shixuns/${this.props.match.params.shixunId}/upload_git_folder.json`; let url=`/shixuns/${this.props.match.params.shixunId}/upload_git_folder.json`;
this.props.form.validateFieldsAndScroll((err, values) => { this.props.form.validateFieldsAndScroll((err, values) => {
if (!err) { if (!err) {
let types=false;
trees.map((item,key)=>{
if(item.type==="tree"){
if(item.name===values.name){
types=true
return
}
}
})
if(types===true){
this.props.showNotification("请勿新建相同名字的文件夹")
return
}
let paths; let paths;
if(path===""){ if(path===""){
paths=values.name; paths=values.name;

Loading…
Cancel
Save