diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 31ced2204..e23a82c3e 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -171,10 +171,10 @@ function About(props, ref) {
DevOps开启功能暂未对项目创建者以外的角色开放,可以联系项目创建者进行开启,开启后便可查看构建信息。
:"" } - 了解什么是DevOps? + 了解什么是引擎? - 如何使用DevOps? + 如何使用引擎(Engine)功能? { AuthorLogin === CurrentLogin ? diff --git a/src/forge/Head/AddProjectModal.jsx b/src/forge/Head/AddProjectModal.jsx index 81f1d27cc..3dcb2d953 100644 --- a/src/forge/Head/AddProjectModal.jsx +++ b/src/forge/Head/AddProjectModal.jsx @@ -2,84 +2,82 @@ import React, { useState , forwardRef, useEffect } from 'react'; import { Form , Modal , Input , Radio } from 'antd'; import Axios from 'axios'; import CheckProfile from '../Component/ProfileModal/Profile'; +function AddProjectModal(props){ + const { getFieldDecorator, validateFields , setFieldsValue } = props && props.form; + const [ visible , setVisible ] = useState(false); -export default Form.create()( - forwardRef((props)=>{ - const { getFieldDecorator, validateFields , setFieldsValue } = props && props.form; - const [ visible , setVisible ] = useState(false); - - useEffect(()=>{ - if(!visible){ - setFieldsValue({ - code:undefined, - role:"developer" - }) - } - },[visible]) - - function onOk() { - validateFields((error,values)=>{ - if(!error){ - const url = `/applied_projects.json`; - Axios.post(url,{ - applied_project:{ - ...values - } - }).then(result=>{ - if(result && result.data){ - setVisible(false); - props.showNotification("申请加入项目成功,等待审核!"); - } - }).catch(error=>{}) - } + useEffect(()=>{ + if(!visible){ + setFieldsValue({ + code:undefined, + role:"developer" }) } - function checkValue(rule, value, callback){ - if(!value){ - callback(); + },[visible]) + + function onOk() { + validateFields((error,values)=>{ + if(!error){ + const url = `/applied_projects.json`; + Axios.post(url,{ + applied_project:{ + ...values + } + }).then(result=>{ + if(result && result.data){ + setVisible(false); + props.showNotification("申请加入项目成功,等待审核!"); + } + }).catch(error=>{}) } + }) + } + function checkValue(rule, value, callback){ + if(!value){ + callback("请输入6位数的邀请码"); + }else{ if(value.length < 6 || value.length > 6){ callback("请输入6位数的邀请码"); } - callback(); - } + } + } - return( - - setVisible(false)} - > -
- - {getFieldDecorator("code",{ - rules:[ - {required:true,message:"请输入6位项目邀请码"}, - {validator:checkValue} - ] - })( - - )} - - - {getFieldDecorator("role",{ - rules:[{required:true,message:"请选择角色"}] - })( - - 管理员 - 开发者 - 报告者 - - )} - -
-
- setVisible(true)}>加入项目 -
- ) - }) -) \ No newline at end of file + return( + + setVisible(false)} + > +
+ + {getFieldDecorator("code",{ + rules:[ + {required:true,message:" "}, + {validator:checkValue} + ] + })( + + )} + + + {getFieldDecorator("role",{ + rules:[{required:true,message:"请选择角色"}] + })( + + 管理员 + 开发者 + 报告者 + + )} + +
+
+ setVisible(true)}>加入项目 +
+ ) +} +export default Form.create()(forwardRef(AddProjectModal)); \ No newline at end of file diff --git a/src/forge/Head/header.scss b/src/forge/Head/header.scss index dbe640d57..bcdb94997 100644 --- a/src/forge/Head/header.scss +++ b/src/forge/Head/header.scss @@ -127,6 +127,9 @@ width: 110px; text-align: right; } + .ant-form-explain{ + position: absolute; + } } // 右上角小铃铛单独样式 diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index a00deb206..f104d7111 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -340,7 +340,7 @@ function CoderDepot(props){ function createIssue(){ if(baseOper){ - window.open(`/${owner}/${projectsId}/issues/new`,'_blank'); + props.history.push(`/${owner}/${projectsId}/issues/new`); }else{ props.showLoginDialog(`/${owner}/${projectsId}/issues/new`); } diff --git a/src/forge/Main/tree/Index.jsx b/src/forge/Main/tree/Index.jsx index 2fc574349..714bf3533 100644 --- a/src/forge/Main/tree/Index.jsx +++ b/src/forge/Main/tree/Index.jsx @@ -46,7 +46,7 @@ function Index(props) { return( -
+
{ list && list.length>0 && list.map((item,key)=>{ return( diff --git a/src/forge/Newfile/index.css b/src/forge/Newfile/index.css index 746febe55..0bda4711a 100644 --- a/src/forge/Newfile/index.css +++ b/src/forge/Newfile/index.css @@ -1,3 +1,11 @@ +.editorBorderBox .CodeMirror +{ + height: unset; +} +.editorBorderBox .CodeMirror .CodeMirror-scroll{ + min-height: 300px; +} + .setInputAddon{ width: 350px; margin-right: 20px; @@ -9,12 +17,16 @@ border-right: none!important; } .editorBorder .editorBorderBox{ - border:1px solid #eee; + border:1px solid #d0d0d0; border-radius: 2px; + border-bottom: none; } .editorBorder .editorBorderSubmitBox{ padding:20px 0px!important; } +.editorBorderSubmitBox{ + border-top: 1px solid #d0d0d0; +} .userScrew{ margin:20px 0px; border:1px solid #f4f4f4; diff --git a/src/forge/Newfile/m_editor.js b/src/forge/Newfile/m_editor.js index 13d2ec466..d4446e3f2 100644 --- a/src/forge/Newfile/m_editor.js +++ b/src/forge/Newfile/m_editor.js @@ -1,6 +1,9 @@ import React, { Component } from "react"; -import Editor from "react-monaco-editor"; -// import {UnControlled as CodeMirror} from 'react-codemirror2' +import {UnControlled as CodeMirror} from 'react-codemirror2'; +import 'codemirror/addon/selection/active-line.js'; +import 'codemirror/mode/javascript/javascript.js'; +import 'codemirror/mode/clike/clike'; +import 'codemirror/mode/css/css'; import UserSubmitComponent from "./UserSubmitComponent"; @@ -12,6 +15,7 @@ class m_editor extends Component { super(props); this.state = { editorValue: this.props.content, + changeValue:this.props.content, prevHeight:0 }; } @@ -22,18 +26,18 @@ class m_editor extends Component { }) } } - changeEditor = (editorValue) => { + changeEditor = (editorValue,data) => { this.setState({ - editorValue, + changeValue:editorValue.getValue(), }); }; render() { - const { editorValue } = this.state; - const { readOnly, editorType, language , currentBranch , descName } = this.props; + const { editorValue , changeValue } = this.state; + const { readOnly, editorType, currentBranch , descName } = this.props; const editor_options = { lineNumbers: "on", - wordWrap: true, //强制换行 + lineWrapping: true, //强制换行 selectOnLineNumbers: true, lineHeight: 24, renderLineHighlight: "line", @@ -46,84 +50,29 @@ class m_editor extends Component { automaticLayout: true, // 自适应布局 overviewRulerBorder: false, // 不要滚动条的边框 scrollBeyondLastLine: false, // 取消代码后面一大段空白 + styleActiveLine:true,//光标代码高亮 minimap: { // 不要小地图 enabled: false, }, }; - - const handleEditorMount = (editor, monaco) => { - editor.onDidChangeModelDecorations(() => { - requestAnimationFrame(updateEditorHeight); // folding - }); - - const updateEditorHeight = () => { - const editorElement = editor.getDomNode(); - - if (!editorElement) { - return; - } - - const padding = 40; - - const lineHeight = editor.getOption( - monaco.editor.EditorOption.lineHeight - ); - - const lineCount = editor.getModel().getLineCount() || 1; - let height = - editor.getTopForLineNumber(lineCount + 1) + - lineHeight + - padding ; - - if(height<400){height = 400;} - - if (this.state.prevHeight !== height) { - this.setState({ - prevHeight:height - }) - // setPrevHeight(height); - editorElement.style.height = `${height}px`; - editor.layout(); - } - }; - - updateEditorHeight(); // typing - }; - - return (
- - {/* */}
{!readOnly && ( -
+
{ + window.scrollTo(0,0); this.setState({ isSpin: true, checkedValue: [], diff --git a/src/forge/Settings/new_tags.js b/src/forge/Settings/new_tags.js index ed9269cbb..1c91a0ac9 100644 --- a/src/forge/Settings/new_tags.js +++ b/src/forge/Settings/new_tags.js @@ -445,7 +445,7 @@ class NewTags extends Component { message: "请填写标记名字", }, ], - })()} + })()} diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index 0df0d910f..00b03310b 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -297,7 +297,7 @@ class Infos extends Component { } { current_user && current_user.login && current_user.login === username ? - DevOps工作流 + DevOps引擎 :"" } diff --git a/src/forge/users/InfosUser.js b/src/forge/users/InfosUser.js index bcfd75ffc..fff3685e7 100644 --- a/src/forge/users/InfosUser.js +++ b/src/forge/users/InfosUser.js @@ -147,7 +147,7 @@ class InfosUser extends Component { let list = button_lists.map((item, key) => { return ( - +