|
|
@ -34,6 +34,8 @@ class Challengesjupyter extends Component {
|
|
|
|
jupyter_port:0,
|
|
|
|
jupyter_port:0,
|
|
|
|
jupyter_url:null,
|
|
|
|
jupyter_url:null,
|
|
|
|
username:"",
|
|
|
|
username:"",
|
|
|
|
|
|
|
|
booljupyterurls:false,
|
|
|
|
|
|
|
|
loading:false,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -60,35 +62,29 @@ class Challengesjupyter extends Component {
|
|
|
|
|
|
|
|
|
|
|
|
componentDidMount() {
|
|
|
|
componentDidMount() {
|
|
|
|
setTimeout(this.ChallengesList(), 1000);
|
|
|
|
setTimeout(this.ChallengesList(), 1000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let id = this.props.match.params.shixunId;
|
|
|
|
let id = this.props.match.params.shixunId;
|
|
|
|
let ChallengesURL = `/jupyters/get_info_with_tpm.json`;
|
|
|
|
let ChallengesURL = `/jupyters/get_info_with_tpm.json`;
|
|
|
|
let datas={
|
|
|
|
let datas={
|
|
|
|
identifier:id,
|
|
|
|
identifier:id,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
axios.get(ChallengesURL, {params: datas}).then((response) => {
|
|
|
|
axios.get(ChallengesURL, {params: datas}).then((response) => {
|
|
|
|
debugger
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
|
|
|
|
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|
// //console.log("componentDidMountChallengesjupyter");
|
|
|
|
|
|
|
|
// //console.log(response.data);
|
|
|
|
|
|
|
|
if(response.data.status===0){
|
|
|
|
if(response.data.status===0){
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
|
jupyter_url:response.data.url,
|
|
|
|
jupyter_url:response.data.url,
|
|
|
|
jupyter_port:response.data.port,
|
|
|
|
jupyter_port:response.data.port,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
}else{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
booljupyterurls:true,
|
|
|
|
|
|
|
|
})
|
|
|
|
}).catch((error) => {
|
|
|
|
}).catch((error) => {
|
|
|
|
//console.log(error)
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
booljupyterurls:true,
|
|
|
|
|
|
|
|
})
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -96,7 +92,36 @@ class Challengesjupyter extends Component {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
updatamakedown = (id) => {
|
|
|
|
updatamakedowns = () => {
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
loading:true,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
let id = this.props.match.params.shixunId;
|
|
|
|
|
|
|
|
let ChallengesURL = `/jupyters/get_info_with_tpm.json`;
|
|
|
|
|
|
|
|
let datas={
|
|
|
|
|
|
|
|
identifier:id,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
axios.get(ChallengesURL, {params: datas}).then((response) => {
|
|
|
|
|
|
|
|
if (response.data.status === 403||response.data.status === 401||response.data.status === 500) {
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
if(response.data.status===0){
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
jupyter_url:response.data.url,
|
|
|
|
|
|
|
|
jupyter_port:response.data.port,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
booljupyterurls:true,
|
|
|
|
|
|
|
|
loading:false,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}).catch((error) => {
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
|
|
|
|
booljupyterurls:true,
|
|
|
|
|
|
|
|
loading:false,
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -182,7 +207,7 @@ class Challengesjupyter extends Component {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
render() {
|
|
|
|
let{ChallengesDataList}=this.state;
|
|
|
|
let{ChallengesDataList,booljupyterurls}=this.state;
|
|
|
|
let id = this.props.match.params.shixunId;
|
|
|
|
let id = this.props.match.params.shixunId;
|
|
|
|
// var deptObjs=document.getElementById("IFRAMEID").contentWindow.document.getElementById("TAGID");
|
|
|
|
// var deptObjs=document.getElementById("IFRAMEID").contentWindow.document.getElementById("TAGID");
|
|
|
|
// //判断此元素是否存在
|
|
|
|
// //判断此元素是否存在
|
|
|
@ -213,6 +238,7 @@ class Challengesjupyter extends Component {
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<div className="mt30 pl20 pr20" >
|
|
|
|
<div className="mt30 pl20 pr20" >
|
|
|
|
|
|
|
|
<Spin spinning={this.state.loading}>
|
|
|
|
<p className="clearfix mb20">
|
|
|
|
<p className="clearfix mb20">
|
|
|
|
<span className="font-16 fl">简介</span>
|
|
|
|
<span className="font-16 fl">简介</span>
|
|
|
|
<Tooltip placement="bottom" title={"编辑"}>
|
|
|
|
<Tooltip placement="bottom" title={"编辑"}>
|
|
|
@ -231,6 +257,23 @@ class Challengesjupyter extends Component {
|
|
|
|
<div className={"markdown-body"} dangerouslySetInnerHTML={{__html: markdownToHTML(ChallengesDataList.description).replace(/▁/g,"▁▁▁")}}></div>
|
|
|
|
<div className={"markdown-body"} dangerouslySetInnerHTML={{__html: markdownToHTML(ChallengesDataList.description).replace(/▁/g,"▁▁▁")}}></div>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
booljupyterurls===true?
|
|
|
|
|
|
|
|
(
|
|
|
|
|
|
|
|
this.state.jupyter_url === null?
|
|
|
|
|
|
|
|
<div className="mt50">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p className="intermediatecenter sortinxdirection"><p className="colorbluetest">加载实训出错,是否</p><p className="colorbluetwo" onClick={()=>this.updatamakedowns()}>重新加载</p></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:""
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
:""
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
<style>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
`
|
|
|
|
`
|
|
|
@ -299,8 +342,6 @@ class Challengesjupyter extends Component {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
is_teacher===true?
|
|
|
|
is_teacher===true?
|
|
|
|
<div className="mt35">
|
|
|
|
<div className="mt35">
|
|
|
|
{/*https://48888.jupyter.educoder.net/tree?*/}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="pb47">
|
|
|
|
<div className="pb47">
|
|
|
|
{
|
|
|
|
{
|
|
|
|
this.state.jupyter_url===null || this.state.jupyter_url===undefined?
|
|
|
|
this.state.jupyter_url===null || this.state.jupyter_url===undefined?
|
|
|
@ -316,6 +357,7 @@ class Challengesjupyter extends Component {
|
|
|
|
:""
|
|
|
|
:""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</Spin>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</React.Fragment>
|
|
|
|
</React.Fragment>
|
|
|
|