From a27c74b9aa2731a49c5ae0ab2f7b29405bfc7ec3 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 8 Apr 2021 18:14:19 +0800 Subject: [PATCH 01/18] ssh-2 --- package-lock.json | 17 +- package.json | 4 +- src/forge/DevOps/OpsDetailRightpanel.jsx | 9 +- src/forge/DevOps/ssh/Index.jsx | 14 ++ src/forge/DevOps/ssh/XmlPanel.jsx | 218 +++++++++++++++++++++++ src/forge/DevOps/ssh/mediator.jsx | 46 +++++ 6 files changed, 298 insertions(+), 10 deletions(-) create mode 100644 src/forge/DevOps/ssh/Index.jsx create mode 100644 src/forge/DevOps/ssh/XmlPanel.jsx create mode 100644 src/forge/DevOps/ssh/mediator.jsx diff --git a/package-lock.json b/package-lock.json index f5aabc0e6..2bb26e24a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "educoder", + "name": "forge", "version": "0.1.0", "lockfileVersion": 1, "requires": true, @@ -3888,11 +3888,6 @@ "randomfill": "^1.0.3" } }, - "crypto-js": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/crypto-js/download/crypto-js-4.0.0.tgz", - "integrity": "sha1-KQSrJnep0EKFai6i74DekuSjbcw=" - }, "crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", @@ -20480,6 +20475,16 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, + "xterm": { + "version": "4.8.1", + "resolved": "https://registry.npm.taobao.org/xterm/download/xterm-4.8.1.tgz", + "integrity": "sha1-FVoXKaQ+Gom0BlJOIsVjQznjnKE=" + }, + "xterm-addon-fit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/xterm-addon-fit/download/xterm-addon-fit-0.4.0.tgz", + "integrity": "sha1-BuDF0KaqrPsAnvVl76HIHpPZAZM=" + }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", diff --git a/package.json b/package.json index edc6e18e7..5ad750143 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,9 @@ "webpack-dev-server": "^3.10.3", "webpack-manifest-plugin": "^2.2.0", "whatwg-fetch": "2.0.3", - "wrap-md-editor": "^0.2.20" + "wrap-md-editor": "^0.2.20", + "xterm": "4.8.1", + "xterm-addon-fit": "0.4.0" }, "scripts": { "start": "node --max_old_space_size=15360 scripts/start.js", diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index 6998964e2..3546312d9 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react"; import { Spin , Menu } from "antd"; import { FlexAJ, AlignCenter } from "../Component/layout"; import axios from "axios"; +import CodeSSH from './ssh/Index'; export default ({ data, @@ -68,10 +69,10 @@ export default ({ } return ( - {/* {setNav(e.key)}} selectedKeys={[nav]} mode="horizontal"> + {setNav(e.key)}} selectedKeys={[nav]} mode="horizontal"> 文件 命令行 - */} + { nav === "0" &&
@@ -111,7 +112,9 @@ export default ({ )}
} - + { + nav === "1" && + }
); }; diff --git a/src/forge/DevOps/ssh/Index.jsx b/src/forge/DevOps/ssh/Index.jsx new file mode 100644 index 000000000..64fb5b4ef --- /dev/null +++ b/src/forge/DevOps/ssh/Index.jsx @@ -0,0 +1,14 @@ +import React, { useState } from 'react'; +import XmlPanel from './XmlPanel'; +import mediator from './mediator'; + +function Index(){ + const [ sshConfigData ,setSshConfigData ] = useState(undefined); + + return( +
+ +
+ ) +} +export default Index; \ No newline at end of file diff --git a/src/forge/DevOps/ssh/XmlPanel.jsx b/src/forge/DevOps/ssh/XmlPanel.jsx new file mode 100644 index 000000000..5e2a5f50a --- /dev/null +++ b/src/forge/DevOps/ssh/XmlPanel.jsx @@ -0,0 +1,218 @@ +import React, { useRef, useEffect, useState } from 'react'; +import { Base64 } from 'js-base64'; + +import { Terminal } from 'xterm'; +import 'xterm/css/xterm.css'; +import mediator from './mediator'; +import ResizeObserver from 'resize-observer-polyfill'; + +function getColsAndRows(width, height, term) { + let w = term._core._renderService.dimensions.actualCellWidth || 9.5; + let h = term._core._renderService.dimensions.actualCellHeight || 18; + const rows = Math.floor(height / h); + const cols = Math.floor(width / w); + return [cols, rows]; +} + +function onLayout(term, el) { + const ro = new ResizeObserver(entries => { + for (let entry of entries) { + if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) { + const [cols, rows] = getColsAndRows( + entry.target.offsetWidth, + entry.target.offsetHeight, + term, + ); + console.log('cols, rows', cols, rows); + term.resize(cols, rows); + mediator.publish('ssh-xterm-resize', { + columns: cols, + rows: rows, + width: entry.target.offsetWidth, + height: entry.target.offsetHeight, + }); + } + } + }); + ro.observe(el); + return ro; +} + +const TimeTicket = 30000; + +//建立 websockt 来交互 +//根据容器大小计算行数和列数并做到自适应 +//socket 与 term 需要分开初始化 因为socket 可能重置连接 +//mediator 监听消息,如果和id匹配,则建立连接,重置,或关闭连接 + +export default ({ sshConfigData, sid }) => { + const [term, setTerm] = useState(null); + + const { ws_url, password, port } = sshConfigData; + const el = useRef(); + const socket = useRef(); + const isFirstConnected = useRef(false); + + //term init + useEffect(() => { + if (el.current && ws_url) { + const term = new Terminal({ fontSize: 16, rendererType: 'dom' }); + term.open(el.current); + + term.onData(data => { + if (socket.current) { + if (socket.current.readyState === 1) { + socket.current.send(JSON.stringify({ tp: 'client', data: data })); + mediator.publish('on-operating-ssh'); //有操作则自动延时 + } else { + //断开连接后重连 + // socket.current = null + // mediator.publish('create-socket', sid) + } + } + }); + term.write('Connecting...'); + setTerm(term); + const ro = onLayout(term, el.current); + return () => { + term.dispose(); + ro.unobserve(el.current); + }; + } + }, [ws_url, el.current]); + + useEffect(() => { + if (term && ws_url) { + function createSocket() { + const socketInstance = new WebSocket(ws_url); + socket.current = socketInstance; + + socketInstance.onopen = () => { + let container = term.element.parentElement; + if (container) { + let width = container.offsetWidth; + let height = container.offsetHeight; + console.log('init', { + tp: 'init', + data: { + ...sshConfigData, + secret: password, + width, + height, + rows: term.rows, + columns: term.cols, + }, + }); + socketInstance.send( + JSON.stringify({ + tp: 'init', + data: { + ...sshConfigData, + secret: password, + width, + height, + rows: term.rows, + columns: term.cols, + }, + }), + ); + } + term.focus(); + }; + socketInstance.onerror = error => { + console.log( + '------in socket error----', + error, + socketInstance, + ws_url, + ); + //连接报错后,重新请求资源 + // mediator.publish('on-recreate-socket') + }; + socketInstance.onmessage = event => { + if (!isFirstConnected.current) { + term.write('\r'); + // term.focus() + setTimeout(() => { + // term.clear(); + }, 1000); + } + isFirstConnected.current = true; + console.log('event:', event); + + const data = Base64.decode(event.data.toString()); + let w = term._core._renderService.dimensions.actualCellWidth || 9.5; + + console.log('data:', data, w, term); + term.write(data); + }; + + socketInstance.onclose = evt => { + if (tid) { + clearInterval(tid); + } + term.write('\r\nconnection closed'); + }; + } + + const tid = setInterval(() => { + if (socket.current) { + socket.current.send(JSON.stringify({ tp: 'h' })); + } + }, TimeTicket); + + const unSubCreate = mediator.subscribe('create-socket', id => { + if (sid === id) { + if (socket.current && socket.current.readyState === 1) { + term.focus(); + } else { + createSocket(); + } + term.focus(); + } + }); + + const unSubClose = mediator.subscribe('close-socket', id => { + if (sid === id) { + if (socket.current) { + socket.current.close(); + isFirstConnected.current = false; + term.clear(); + } + socket.current = null; + } + }); + + const unSubResize = mediator.subscribe('ssh-xterm-resize', option => { + if (socket.current && socket.current.readyState === 1) { + socket.current.send( + JSON.stringify({ tp: 'resize', data: { ...option } }), + ); + } + }); + + const unSubAddTime = mediator.subscribe('ssh-add-connect-time', () => { + if (socket.current && socket.current.readyState === 1) { + socket.current.send(JSON.stringify({ tp: 'overtime' })); + } + }); + + return () => { + unSubClose(); + unSubCreate(); + unSubResize(); + unSubAddTime(); + if (socket.current) { + socket.current.close(); + isFirstConnected.current = false; + } + }; + } + }, [term, ws_url, port]); + + return ( +
+ {!ws_url ?

正在连接命令行服务...

: null} +
+ ); +}; diff --git a/src/forge/DevOps/ssh/mediator.jsx b/src/forge/DevOps/ssh/mediator.jsx new file mode 100644 index 000000000..652705799 --- /dev/null +++ b/src/forge/DevOps/ssh/mediator.jsx @@ -0,0 +1,46 @@ +function Mediator(obj) { + const channels = {}; + + const mediator = { + subscribe: function(channel, cb) { + if (!channels[channel]) { + channels[channel] = []; + } + channels[channel].push(cb); + return this.unsubscribe.bind(null, channel, cb); + }, + + unsubscribe: function(channel, cb) { + let rs = channels[channel]; + let index = -1; + if (rs) { + for (let i = 0; i < rs.length; i++) { + if (rs[i].name === cb.name) { + index = i; + break; + } + } + if (index >= 0) { + channels[channel].splice(index, 1); + return true; + } + } + return false; + }, + + publish: function(channel) { + if (!channels[channel]) { + return false; + } + const args = Array.prototype.slice.call(arguments, 1); + channels[channel].forEach(subscription => { + subscription.apply(null, args); + }); + return this; + }, + }; + + return obj ? Object.assign(obj, mediator) : mediator; +} +const mediator = new Mediator(); +export default mediator; From 9811276a7c56c13bc37dc361ea83d467c8bdca1f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 9 Apr 2021 10:12:39 +0800 Subject: [PATCH 02/18] =?UTF-8?q?ssh-3(=E5=89=8D=E7=AB=AF=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A=E5=8F=82=E6=95=B0=E5=B7=B2=E8=B0=83=E9=80=9A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/DevOps/OpsDetailRightpanel.jsx | 74 ++++++++++++------------ src/forge/DevOps/ssh/Index.jsx | 40 +++++++++---- src/forge/DevOps/ssh/XmlPanel.jsx | 11 ++-- src/forge/DevOps/ssh/mediator.jsx | 2 +- 4 files changed, 74 insertions(+), 53 deletions(-) diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index 3546312d9..ce38e6184 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -68,53 +68,55 @@ export default ({ } } return ( - + {setNav(e.key)}} selectedKeys={[nav]} mode="horizontal"> 文件 命令行 { nav === "0" && -
- {data && data.status !== "error" ? ( -
- - {step && step.name} - - {step && step.duration_time} - - - + +
+ {data && data.status !== "error" ? (
- {coders && coders.length > 0 ? ( - coders.map((item, key) => { - return ( -
- {key + 1} -

{item.out}

-
- ); - }) - ) : empty ? ( -
- 1 -

- {stage && stage.name} – {step && step.name}: Skipped -

-
- ) : ( - "" - )} + + {step && step.name} + + {step && step.duration_time} + + + +
+ {coders && coders.length > 0 ? ( + coders.map((item, key) => { + return ( +
+ {key + 1} +

{item.out}

+
+ ); + }) + ) : empty ? ( +
+ 1 +

+ {stage && stage.name} – {step && step.name}: Skipped +

+
+ ) : ( + "" + )} +
-
- ) : ( -
error:{data && data.error}
- )} -
+ ) : ( +
error:{data && data.error}
+ )} +
+
} { nav === "1" && } - + ); }; diff --git a/src/forge/DevOps/ssh/Index.jsx b/src/forge/DevOps/ssh/Index.jsx index 64fb5b4ef..09e1805e2 100644 --- a/src/forge/DevOps/ssh/Index.jsx +++ b/src/forge/DevOps/ssh/Index.jsx @@ -1,14 +1,32 @@ -import React, { useState } from 'react'; -import XmlPanel from './XmlPanel'; -import mediator from './mediator'; +import React, { useState, useEffect } from "react"; +import XmlPanel from "./XmlPanel"; +import mediator from "./mediator"; -function Index(){ - const [ sshConfigData ,setSshConfigData ] = useState(undefined); +function Index() { + const [sshConfigData, setSshConfigData] = useState(undefined); - return( -
- -
- ) + useEffect(() => { + if (!sshConfigData) { + init(); + } + setTimeout(() => { + mediator.publish("create-socket", 1); + }, 300); + }, [sshConfigData]); + + // 获取服务器连接信息 + function init() {} + return ( + + ); } -export default Index; \ No newline at end of file +export default Index; diff --git a/src/forge/DevOps/ssh/XmlPanel.jsx b/src/forge/DevOps/ssh/XmlPanel.jsx index 5e2a5f50a..ae642caa3 100644 --- a/src/forge/DevOps/ssh/XmlPanel.jsx +++ b/src/forge/DevOps/ssh/XmlPanel.jsx @@ -16,6 +16,7 @@ function getColsAndRows(width, height, term) { function onLayout(term, el) { const ro = new ResizeObserver(entries => { + console.log(entries); for (let entry of entries) { if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) { const [cols, rows] = getColsAndRows( @@ -48,7 +49,7 @@ const TimeTicket = 30000; export default ({ sshConfigData, sid }) => { const [term, setTerm] = useState(null); - const { ws_url, password, port } = sshConfigData; + const { ws_url, password, port, secret } = sshConfigData; const el = useRef(); const socket = useRef(); const isFirstConnected = useRef(false); @@ -96,7 +97,7 @@ export default ({ sshConfigData, sid }) => { tp: 'init', data: { ...sshConfigData, - secret: password, + secret: secret, width, height, rows: term.rows, @@ -108,7 +109,7 @@ export default ({ sshConfigData, sid }) => { tp: 'init', data: { ...sshConfigData, - secret: password, + secret: secret, width, height, rows: term.rows, @@ -211,8 +212,8 @@ export default ({ sshConfigData, sid }) => { }, [term, ws_url, port]); return ( -
+
{!ws_url ?

正在连接命令行服务...

: null}
); -}; +}; \ No newline at end of file diff --git a/src/forge/DevOps/ssh/mediator.jsx b/src/forge/DevOps/ssh/mediator.jsx index 652705799..70a4e30f8 100644 --- a/src/forge/DevOps/ssh/mediator.jsx +++ b/src/forge/DevOps/ssh/mediator.jsx @@ -43,4 +43,4 @@ function Mediator(obj) { return obj ? Object.assign(obj, mediator) : mediator; } const mediator = new Mediator(); -export default mediator; +export default mediator; \ No newline at end of file From 60a7f39c1642d861114ddcee52c4a90f1935e03e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 9 Apr 2021 11:45:04 +0800 Subject: [PATCH 03/18] =?UTF-8?q?forge=E9=A1=B9=E7=9B=AE=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=91=BD=E4=BB=A4=E8=A1=8C=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/DevOps/OpsDetailRightpanel.jsx | 7 ++++--- src/forge/DevOps/ssh/Index.jsx | 26 ++++++++++++++++-------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index ce38e6184..93bf370cb 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -38,6 +38,7 @@ export default ({ : p[0]; setStep(sub); + setNav("0"); if (sub && sub.status !== "skipped") { getStep(pre.number, sub.number); } @@ -69,10 +70,10 @@ export default ({ } return ( - {setNav(e.key)}} selectedKeys={[nav]} mode="horizontal"> - 文件 + {/* {setNav(e.key)}} selectedKeys={[nav]} mode="horizontal"> + 开发流水线 命令行 - + */} { nav === "0" && diff --git a/src/forge/DevOps/ssh/Index.jsx b/src/forge/DevOps/ssh/Index.jsx index 09e1805e2..9a896a837 100644 --- a/src/forge/DevOps/ssh/Index.jsx +++ b/src/forge/DevOps/ssh/Index.jsx @@ -1,7 +1,16 @@ import React, { useState, useEffect } from "react"; import XmlPanel from "./XmlPanel"; import mediator from "./mediator"; +import axios from "axios"; +// const defaulturl = `http://47.111.130.18:48088`; +const defaultValue = { + host: "106.75.231.63", + port: "2021", + ws_url: "wss://pre-webssh.educoder.net/ws", + username: "root", + secret: "Dron_123123", +}; function Index() { const [sshConfigData, setSshConfigData] = useState(undefined); @@ -15,16 +24,17 @@ function Index() { }, [sshConfigData]); // 获取服务器连接信息 - function init() {} + function init() { + const url = `/api/ci/pipelines/ssh_server.json`; + axios.get(url).then(result=>{ + if(result && result.data){ + setSshConfigData({...result.data}) + } + }).catch(error=>{}) + } return ( ); From 2c363965ddd2ed2c44a57ed1a5550c79a25190f6 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 9 Apr 2021 13:58:58 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=82=AC=E6=B5=AE?= =?UTF-8?q?=E6=89=8B=E5=86=8C=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Index.js | 2 -- src/forge/users/Index.jsx | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/forge/Index.js b/src/forge/Index.js index 4874bad33..aa0219aae 100644 --- a/src/forge/Index.js +++ b/src/forge/Index.js @@ -6,7 +6,6 @@ import { withRouter } from "react-router"; import { SnackbarHOC } from "educoder"; import { CNotificationHOC } from "../modules/courses/common/CNotificationHOC"; import { TPMIndexHOC } from "../modules/tpm/TPMIndexHOC"; -import Handbook from './Component/Handbook'; import "./css/index.scss"; import Loadable from "react-loadable"; @@ -35,7 +34,6 @@ class Index extends Component { render() { return (
- import("./Infos"), loading: Loading, @@ -15,7 +14,6 @@ export default withRouter( (CNotificationHOC()(SnackbarHOC()(TPMIndexHOC((props)=>{ return(
- Date: Tue, 13 Apr 2021 11:06:09 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E7=BB=84=E7=BB=87-=E5=9B=A2=E9=98=9F?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E5=A4=B4=E5=83=8Flogin=E4=B8=BAunde?= =?UTF-8?q?fined?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Group/GroupDetailMember.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/forge/Team/Group/GroupDetailMember.jsx b/src/forge/Team/Group/GroupDetailMember.jsx index 6a871d758..79aed382c 100644 --- a/src/forge/Team/Group/GroupDetailMember.jsx +++ b/src/forge/Team/Group/GroupDetailMember.jsx @@ -10,6 +10,7 @@ export default (({ data , current_user , successFunc }) => { data.map((item, key) => { return ( Date: Tue, 13 Apr 2021 11:13:39 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=BA=93=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Source/Index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Source/Index.jsx b/src/forge/Source/Index.jsx index f3c68217c..815f52b6c 100644 --- a/src/forge/Source/Index.jsx +++ b/src/forge/Source/Index.jsx @@ -191,7 +191,7 @@ function Index(props){ />
- 资源库(18) + 资源库{total ? ({total}):""} { current_user && current_user.login && (props.projectDetail && props.projectDetail.permission) ? {setId(undefined);setVisible(true);}}>上传资源:"" } From dc05f9ce35d6bf6af6a4a5118aac4e574089cec9 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 13 Apr 2021 17:12:37 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E7=BB=84=E7=BB=87-=E9=A1=B9=E7=9B=AE-?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=8D=8F=E4=BD=9C=E8=80=85=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=92=8C=E5=9B=A2=E9=98=9F=E7=AE=A1=E7=90=86=E6=97=B6=E4=BC=9A?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E8=B0=83=E7=94=A8=E5=A2=9E=E5=8A=A0=E6=88=90?= =?UTF-8?q?=E5=91=98=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Settings/Collaborator.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index 5f530ce90..bd24bb7de 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -32,7 +32,7 @@ export function initAxiosInterceptors(props) { // 判断网络是否连接 initOnlineOfflineListener(); - var proxy = "https://forgeplus.trustie.net"; + var proxy = "https://testforgeplus.trustie.net"; //响应前的设置 axios.interceptors.request.use( config => { diff --git a/src/forge/Settings/Collaborator.js b/src/forge/Settings/Collaborator.js index 734219170..4ae292633 100644 --- a/src/forge/Settings/Collaborator.js +++ b/src/forge/Settings/Collaborator.js @@ -26,8 +26,8 @@ function Collaborator(props){ { author && author.type === "Organization" ? - setNav("1")}>协作者管理 - setNav("2")}>团队管理 + {setNav("1");setNewId(undefined)}}>协作者管理 + {setNav("2");setNewId(undefined)}}>团队管理 : 协作者管理 From 5477c41f7882acde374cd6d46ddf41be3c1b631b Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 14 Apr 2021 10:28:43 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=BA=93=E4=B8=8D?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=8C=89=E5=BC=95=E7=94=A8=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Source/Index.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/forge/Source/Index.jsx b/src/forge/Source/Index.jsx index 815f52b6c..a4284827e 100644 --- a/src/forge/Source/Index.jsx +++ b/src/forge/Source/Index.jsx @@ -12,8 +12,7 @@ import axios from 'axios'; const { Search } = Input; const sort = [ "按上传时间排序", - "按下载次数排序", - "按引用排序" + "按下载次数排序" ] const limit = 15; const https = 'https://testfiles.trustie.net'; From f12228aa51fb845dcd054c746f3e63a0107c57f5 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 19 Apr 2021 10:35:20 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E6=98=BE=E7=A4=BAnickname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Sub/Detail.jsx | 2 +- src/modules/login/EducoderLogin.js | 32 ++---------------------------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/src/forge/Team/Sub/Detail.jsx b/src/forge/Team/Sub/Detail.jsx index 3979c4c4f..bba0b7de8 100644 --- a/src/forge/Team/Sub/Detail.jsx +++ b/src/forge/Team/Sub/Detail.jsx @@ -78,7 +78,7 @@ function Detail(props){ detail && { console.log("96ye"); console.log(i) @@ -120,9 +95,6 @@ class EducoderLogin extends Component { render() { let {showbool,loginstatus,logini} = this.state; - // console.log("EducoderLogingetHelmetapi"); - // console.log(this.props); - // console.log(this.props.mygetHelmetapi); return (
From ab34369642b2c35ab6d5fa3e1b3a671b5906550e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 19 Apr 2021 10:54:02 +0800 Subject: [PATCH 10/18] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E5=9B=A2=E9=98=9F?= =?UTF-8?q?=E6=9D=BF=E5=9D=97=E6=97=A0=E8=BE=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Group/GroupForm.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Team/Group/GroupForm.jsx b/src/forge/Team/Group/GroupForm.jsx index cae0efd27..f84360d33 100644 --- a/src/forge/Team/Group/GroupForm.jsx +++ b/src/forge/Team/Group/GroupForm.jsx @@ -139,7 +139,7 @@ export default Form.create()( } return ( - + {groupId ? "基本设置" : "新建团队"}
From 487a2f0495666382bee6acb713581a3bfac67499 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 19 Apr 2021 11:53:19 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9B=A2=E9=98=9F-?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E4=B8=AA=E5=9B=A2=E9=98=9F=E6=A0=87?= =?UTF-8?q?=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Group/GroupDetails.jsx | 2 +- src/forge/Team/Group/GroupForm.jsx | 26 ++++++++++++++++++++++++-- src/forge/Team/TeamGroupItems.jsx | 2 +- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/forge/Team/Group/GroupDetails.jsx b/src/forge/Team/Group/GroupDetails.jsx index 9d27767dd..8d1c519b5 100644 --- a/src/forge/Team/Group/GroupDetails.jsx +++ b/src/forge/Team/Group/GroupDetails.jsx @@ -101,7 +101,7 @@ export default ((props) => { group ?
- {group.name} + {group.nickname} {group.is_member && !group.is_admin ? @@ -144,10 +155,21 @@ export default Form.create()(
{helper( - '团队名称:', + '团队标识:', "name", + [ + { required: true, message: "请输入团队标识" }, + { + validator:checkname + } + ], + , true + )} + {helper( + '团队名称:', + "nickname", [{ required: true, message: "请输入团队名称" }], - , true + , true )} {helper( 团队描述:(描述团队的目的或作用), diff --git a/src/forge/Team/TeamGroupItems.jsx b/src/forge/Team/TeamGroupItems.jsx index fe73c5051..fd66f1ebd 100644 --- a/src/forge/Team/TeamGroupItems.jsx +++ b/src/forge/Team/TeamGroupItems.jsx @@ -75,7 +75,7 @@ function TeamGroupItems({organizeDetail,limit, count , history}){ return(

- {item.name} + {item.nickname} { item.is_admin && item.authorize!=="owner" && disMissGroup(item.id)}>解散团队} { item.is_member && } From b8d40259e5e30e3811a4fa70e212eb8eb8aa471b Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 19 Apr 2021 16:58:30 +0800 Subject: [PATCH 12/18] =?UTF-8?q?readme-=E6=96=87=E4=BB=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=B8=80=E4=B8=AA=E7=9B=AE=E5=BD=95=E4=B8=8B=E6=8B=89?= =?UTF-8?q?icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderDepotReadme.jsx | 44 ++++++++++++++++++++++++++--- src/forge/Main/Index.scss | 19 +++++++++++++ src/modules/tpm/TPMIndex.css | 1 - src/modules/tpm/TPMIndexHOC.js | 1 + 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/src/forge/Main/CoderDepotReadme.jsx b/src/forge/Main/CoderDepotReadme.jsx index c46747404..da1435d55 100644 --- a/src/forge/Main/CoderDepotReadme.jsx +++ b/src/forge/Main/CoderDepotReadme.jsx @@ -1,13 +1,49 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import RenderHtml from '../../components/render-html'; +import { Dropdown , Menu , Spin } from 'antd'; +import { Link } from 'react-router-dom'; +const $ = window.$; function CoderDepotReadme({ operate , history , readme , ChangeFile }){ + const [ menuList ,setMenuList ] = useState(undefined); + + useEffect(()=>{ + if(readme && readme.content){ + let path = history.location.pathname; + const items = $.map($("#readme").find("h1,h2,h3,h4,h5,h6"), function (el, _) { + const anchor = el.id; + const level = el.tagName.replace("H", ""); + const href = `#${anchor}`; + return { href:`${path}${href}`,text:el.textContent , level:level } + }); + setMenuList(items); + } + },[readme]) + + function menu(){ + if(menuList && menuList.length > 0){ + let hash = history.location.hash; + return( +

+ { + menuList.map((item,key)=>{ + return( + -1 ?"active":""}>{item.text} + ) + }) + } + + ) + }else{ + return + } + } return(
- - - + + + README.md { operate ? diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index 331eb03d1..1e9a8967a 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -286,4 +286,23 @@ .downMenu{ box-shadow: 0px 0px 9px rgba(134, 134, 134,0.4); background-color: #fff; +} + +.menuslist{ + max-height: 200px; + overflow-y: auto; + padding:10px 15px; + border-radius: 4px; + .ant-dropdown-menu-item{ + border-radius: 8px; + a{ + width: 350px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + } + .ant-dropdown-menu-item.active{ + background-color: #e6f7ff; + } } \ No newline at end of file diff --git a/src/modules/tpm/TPMIndex.css b/src/modules/tpm/TPMIndex.css index 47696ec97..7b4d15a74 100644 --- a/src/modules/tpm/TPMIndex.css +++ b/src/modules/tpm/TPMIndex.css @@ -21,7 +21,6 @@ body>.-task-title { height: 100%; min-height: 100%; overflow: hidden; - padding-top:70px; } .newHeaders{ max-width: unset; diff --git a/src/modules/tpm/TPMIndexHOC.js b/src/modules/tpm/TPMIndexHOC.js index 87c9a03f9..7eecccc79 100644 --- a/src/modules/tpm/TPMIndexHOC.js +++ b/src/modules/tpm/TPMIndexHOC.js @@ -427,6 +427,7 @@ export function TPMIndexHOC(WrappedComponent) { tip={this._gLoadingTip || "加载中..."} >
+
{ current_user && this.initCommonState(user)} From a42a670146c9f589c90a087b4db850f40e37027c Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 19 Apr 2021 17:52:01 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E5=A4=B4=E5=83=8Furl--=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BC=9A=E8=BF=94=E5=9B=9E=E6=89=80=E6=9C=89=E5=B8=A6images?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AE=B5=E5=80=BC=EF=BC=8C=E6=89=80=E4=BB=A5?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=B8=8D=E7=94=A8=E5=8A=A0=E5=9B=BA=E5=AE=9A?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Activity/ActivityItem.js | 2 +- src/forge/Component/AddMember.jsx | 2 +- src/forge/Component/Cards.jsx | 2 +- src/forge/Component/Contributors.jsx | 2 +- src/forge/Component/MemberCards.jsx | 2 +- src/forge/Component/SearchUser.jsx | 2 +- src/forge/Head/Header.js | 2 +- src/forge/Main/CoderDepot.jsx | 2 +- src/forge/Main/CoderRootCommit.js | 4 ++-- src/forge/Main/sub/Contribute.jsx | 2 +- src/forge/Merge/Commits.jsx | 2 +- src/forge/Merge/MergeItem.js | 2 +- src/forge/Merge/MergeSubmit.js | 2 +- src/forge/Order/Detail.js | 2 +- src/forge/Settings/CollaboratorMember.jsx | 2 +- src/forge/Team/Group/GroupDetailProject.jsx | 2 +- src/forge/Team/Group/Setting/GroupMemberSetting.jsx | 2 +- src/forge/Team/RightBox.jsx | 2 +- src/forge/Team/Setting/TeamSettingCommon.jsx | 2 +- src/forge/Team/Setting/TeamSettingMember.jsx | 2 +- src/forge/Team/TeamGroupItems.jsx | 2 +- src/forge/UsersList/fork_users.js | 2 +- src/forge/UsersList/user_list.js | 2 +- src/forge/comments/children_comments.js | 2 +- src/forge/comments/children_journals.js | 2 +- src/forge/comments/comments.js | 6 +++--- src/forge/users/Infos.js | 2 +- src/forge/users/Team-item.jsx | 2 +- 28 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/forge/Activity/ActivityItem.js b/src/forge/Activity/ActivityItem.js index 1baa2ce9c..b726a4af0 100644 --- a/src/forge/Activity/ActivityItem.js +++ b/src/forge/Activity/ActivityItem.js @@ -33,7 +33,7 @@ class ActivityItem extends Component { }

- + {item.user_name} {item.created_at && 创建于{item.created_at}} diff --git a/src/forge/Component/AddMember.jsx b/src/forge/Component/AddMember.jsx index a41882295..0548e52da 100644 --- a/src/forge/Component/AddMember.jsx +++ b/src/forge/Component/AddMember.jsx @@ -42,7 +42,7 @@ function AddMember({getID,login}){ className="user_img radius" width="28" height="28" - src={getImageUrl(`images/${item && item.image_url}`)} + src={getImageUrl(`/${item && item.image_url}`)} alt="" /> diff --git a/src/forge/Component/Cards.jsx b/src/forge/Component/Cards.jsx index 1c9706c3f..498b375c1 100644 --- a/src/forge/Component/Cards.jsx +++ b/src/forge/Component/Cards.jsx @@ -6,7 +6,7 @@ import './Component.scss'; function Cards({img , title, desc , rightBtn , src}){ return(

- {img &&
} + {img &&
}

{title} diff --git a/src/forge/Component/Contributors.jsx b/src/forge/Component/Contributors.jsx index 7848f9fc5..d64e0d42a 100644 --- a/src/forge/Component/Contributors.jsx +++ b/src/forge/Component/Contributors.jsx @@ -15,7 +15,7 @@ function Contributors({contributors,owner,projectsId}){ contributors && contributors.total_count > 0 ? contributors.list.map((item,key)=>{ return( - + ) }) :"" diff --git a/src/forge/Component/MemberCards.jsx b/src/forge/Component/MemberCards.jsx index c0bd12c1f..393ddbb17 100644 --- a/src/forge/Component/MemberCards.jsx +++ b/src/forge/Component/MemberCards.jsx @@ -45,7 +45,7 @@ const Div = styled.div`{ export default (({ user , img, name, time, focusStatus, is_current_user, login , successFunc }) => { return (

- +
{name} diff --git a/src/forge/Component/SearchUser.jsx b/src/forge/Component/SearchUser.jsx index 43b45e85c..0203d24f5 100644 --- a/src/forge/Component/SearchUser.jsx +++ b/src/forge/Component/SearchUser.jsx @@ -44,7 +44,7 @@ export default ({ getUser })=>{ className="user_img radius" width="28" height="28" - src={getImageUrl(`images/${item && item.image_url}`)} + src={getImageUrl(`/${item && item.image_url}`)} alt="" /> diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js index 05f763ed6..2f3192416 100644 --- a/src/forge/Head/Header.js +++ b/src/forge/Head/Header.js @@ -704,7 +704,7 @@ class NewHeader extends Component {
+ src={getImageUrl(`/` + user.image_url)} width="34">
    diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 7d10e3e53..150326415 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -315,7 +315,7 @@ function CoderDepot(props){ { lastCommit &&
    - +

    {lastCommit && lastCommit.message}

    { hideBtn && changeHide(hide)}> } diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index bb4f5ba52..5c509ecd0 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -140,11 +140,11 @@ class CoderRootCommit extends Component{ { item.id ? - {item.image_url?:""} + {item.image_url?:""} : - {item.image_url?:""} + {item.image_url?:""} } diff --git a/src/forge/Main/sub/Contribute.jsx b/src/forge/Main/sub/Contribute.jsx index c6bd39982..a41cb3ed6 100644 --- a/src/forge/Main/sub/Contribute.jsx +++ b/src/forge/Main/sub/Contribute.jsx @@ -50,7 +50,7 @@ function Contribute(props){ list.map((item,key)=>{ return( - +
    {item.name}

    提交{item.contributions}次

    diff --git a/src/forge/Merge/Commits.jsx b/src/forge/Merge/Commits.jsx index a7d12073a..37c254cc9 100644 --- a/src/forge/Merge/Commits.jsx +++ b/src/forge/Merge/Commits.jsx @@ -22,7 +22,7 @@ function Commits({ commits , projectsId , owner }){ 浏览代码 - :提交于{item.time_from_now} + :提交于{item.time_from_now}
    diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index dd5f4f45e..e391ea5fc 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -74,7 +74,7 @@ class MergeItem extends Component { > ( - + diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index 874059190..277f5d4ab 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -212,7 +212,7 @@ class Detail extends Component { > { projects.map((item, key) => { return (
    - + {item.project.name}
    ) diff --git a/src/forge/Team/Group/Setting/GroupMemberSetting.jsx b/src/forge/Team/Group/Setting/GroupMemberSetting.jsx index c23ca14e1..847dd6ef4 100644 --- a/src/forge/Team/Group/Setting/GroupMemberSetting.jsx +++ b/src/forge/Team/Group/Setting/GroupMemberSetting.jsx @@ -76,7 +76,7 @@ export default ((props) => { width: "7%", render: (value, item) => { return ( - + ) } }, diff --git a/src/forge/Team/RightBox.jsx b/src/forge/Team/RightBox.jsx index 067317125..0603a4548 100644 --- a/src/forge/Team/RightBox.jsx +++ b/src/forge/Team/RightBox.jsx @@ -72,7 +72,7 @@ function RightBox({ OIdentifier , history , admin }) { memberData.organization_users.map((item,key)=>{ return(
    - +
    {item.user && item.user.name} 加入时间:{item.created_at} diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 1c44a150d..1a48c7f7a 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -169,7 +169,7 @@ export default Form.create()( )}

    选择头像:

    - +
    diff --git a/src/forge/Team/Setting/TeamSettingMember.jsx b/src/forge/Team/Setting/TeamSettingMember.jsx index 4871def65..34f0e28ed 100644 --- a/src/forge/Team/Setting/TeamSettingMember.jsx +++ b/src/forge/Team/Setting/TeamSettingMember.jsx @@ -64,7 +64,7 @@ export default (({organizeDetail})=>{ width:"5%", render:(value)=>{ return( - value && + value && ) } }, diff --git a/src/forge/Team/TeamGroupItems.jsx b/src/forge/Team/TeamGroupItems.jsx index fd66f1ebd..b3b4a3718 100644 --- a/src/forge/Team/TeamGroupItems.jsx +++ b/src/forge/Team/TeamGroupItems.jsx @@ -86,7 +86,7 @@ function TeamGroupItems({organizeDetail,limit, count , history}){ { item.users && item.users.map((i,k)=>{ return( - k < count ? + k < count ? : k === count ? diff --git a/src/forge/UsersList/fork_users.js b/src/forge/UsersList/fork_users.js index cd7719476..aaaa9b627 100644 --- a/src/forge/UsersList/fork_users.js +++ b/src/forge/UsersList/fork_users.js @@ -88,7 +88,7 @@ class ForkUsers extends Component { > diff --git a/src/forge/UsersList/user_list.js b/src/forge/UsersList/user_list.js index 4c1aeda56..592e98068 100644 --- a/src/forge/UsersList/user_list.js +++ b/src/forge/UsersList/user_list.js @@ -18,7 +18,7 @@ class UserList extends Component { > diff --git a/src/forge/comments/children_comments.js b/src/forge/comments/children_comments.js index 65cf7784e..8a8ccbc80 100644 --- a/src/forge/comments/children_comments.js +++ b/src/forge/comments/children_comments.js @@ -118,7 +118,7 @@ class children_comments extends Component { > {user && user.user_identity && (
    diff --git a/src/forge/users/Team-item.jsx b/src/forge/users/Team-item.jsx index d457ee264..f3dbc47ce 100644 --- a/src/forge/users/Team-item.jsx +++ b/src/forge/users/Team-item.jsx @@ -4,7 +4,7 @@ import { getImageUrl } from 'educoder'; function TeamItem({item,history}){ return(
    {history.push(`/organize/${item.name}`)}} style={{cursor:"pointer"}}> -
    +
    {item.name}
    From e09490d424d36fedd9d70ac4e63295bb11d509cb Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 19 Apr 2021 18:19:21 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E4=B8=8A=E7=BA=BF=E5=90=8E=E7=9A=84getIm?= =?UTF-8?q?ageURL=E4=B9=9F=E4=B8=8D=E7=94=A8=E5=9C=A8=E5=89=8D=E9=9D=A2?= =?UTF-8?q?=E5=8A=A0/=20+=20=E4=B8=80=E4=BA=9B=E5=B0=8F=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/UrlTool.js | 2 +- src/forge/Head/Header.js | 3 +-- src/forge/Main/Diff.jsx | 2 +- src/forge/Main/list.css | 3 --- src/forge/Merge/MergeItem.js | 7 ++++--- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 329bc81af..07e141ebf 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -15,7 +15,7 @@ export function getImageUrl(path) { if (isDev) { return `${local}/${path}` } - return `/${path}`; + return `${path}`; } export function getImage(path) { diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js index 2f3192416..ccc5388b5 100644 --- a/src/forge/Head/Header.js +++ b/src/forge/Head/Header.js @@ -703,8 +703,7 @@ class NewHeader extends Component { :
    - +
      diff --git a/src/forge/Main/Diff.jsx b/src/forge/Main/Diff.jsx index b36453514..d8db5f008 100644 --- a/src/forge/Main/Diff.jsx +++ b/src/forge/Main/Diff.jsx @@ -65,7 +65,7 @@ export default ({ match , history }) => {
        {committer && committer.time_from_now &&
      • {committer.time_from_now}
      • } diff --git a/src/forge/Main/list.css b/src/forge/Main/list.css index a8143c555..07991f6a1 100644 --- a/src/forge/Main/list.css +++ b/src/forge/Main/list.css @@ -437,9 +437,6 @@ font-size: 16px; border-bottom: 1px solid #d9d9d9; } -.branchUl{ - padding:0px 30px; -} .branchUl li{ display: flex; flex-wrap: wrap; diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index e391ea5fc..3b3504da6 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -1,6 +1,7 @@ import React, { Component } from "react"; import { Link } from "react-router-dom"; -import { Popconfirm, Tag } from "antd"; +import { Tag } from "antd"; +import { AlignCenter } from '../Component/layout'; import { getImageUrl } from "educoder"; import "./merge.css"; @@ -80,7 +81,7 @@ class MergeItem extends Component { height="24" /> - + - +

        Date: Mon, 19 Apr 2021 19:54:57 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5?= =?UTF-8?q?=E5=A4=B4=E5=83=8Furl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/Index.js | 4 ++-- src/forge/Main/IndexItem.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index f968f14bb..64a55ed26 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import { Menu, Input , Spin, Pagination , Popover , Select } from 'antd'; -import { getUrl } from 'educoder'; +import { getImageUrl } from 'educoder'; import '../css/index.scss' import './list.css'; import './Index.scss'; @@ -271,7 +271,7 @@ class Index extends Component { return(
        this.getoDetail(item.author && item.author.login,item.identifier)}>
        - +

        {item.name}

        {item.author && item.author.name}

        diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index a7ea04aae..b3ac2a50f 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -28,7 +28,7 @@ class IndexItem extends Component { : - + }
        From 4c65e1981eb76939e5db9bc827d5a63bf65f8eb7 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 20 Apr 2021 09:36:49 +0800 Subject: [PATCH 16/18] =?UTF-8?q?all-=E9=BB=98=E8=AE=A4=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=EF=BC=88=E9=A6=96=E5=AD=97=E6=AF=8D=E5=8A=A0=E8=83=8C=E6=99=AF?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Head/Header.js | 2 +- src/forge/Team/Group/Setting/GroupProjectSetting.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js index ccc5388b5..7260d1141 100644 --- a/src/forge/Head/Header.js +++ b/src/forge/Head/Header.js @@ -603,7 +603,7 @@ class NewHeader extends Component { { settings && settings.nav_logo_url ? - 可控开源社区 + 可控开源社区 : 可控开源社区 } diff --git a/src/forge/Team/Group/Setting/GroupProjectSetting.jsx b/src/forge/Team/Group/Setting/GroupProjectSetting.jsx index 6d407609a..4cb1027d8 100644 --- a/src/forge/Team/Group/Setting/GroupProjectSetting.jsx +++ b/src/forge/Team/Group/Setting/GroupProjectSetting.jsx @@ -180,7 +180,7 @@ function GroupProjectSetting(props) { } > {item.project.owner_name}/{item.project.name}} + title={{item.project.owner_name}/{item.project.name}} /> )} From ceb191593987dab16bfb2ca5b1d65380db9b58a7 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 20 Apr 2021 10:30:47 +0800 Subject: [PATCH 17/18] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=EF=BC=8C=E9=80=89=E6=8B=A9=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6=E6=97=B6=EF=BC=8C=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=B2=A1=E6=9C=89=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderRootFileDetail.js | 14 +++++++++++++- src/forge/Newfile/m_editor.js | 7 +++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index 2ee43bee2..1455086d0 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -31,6 +31,18 @@ class CoderRootFileDetail extends Component { this.languages_total(); }; + componentDidUpdate=(prevProps)=>{ + const { content } = this.props && this.props.detail; + const prevcontent = prevProps.detail && prevProps.detail.content; + if (content && prevcontent) { + if (prevcontent !== content){ + this.setState({ + description: content + }); + } + } + } + languages_total = () => { const { detail } = this.props; const file_name = detail.path.split("/").pop().split(".").pop(); @@ -273,7 +285,7 @@ class CoderRootFileDetail extends Component { {...this.state} language={language ? language : "javascript"} filepath={`/${detail.path}`} - content={detail.content} + content={description} readOnly={readOnly} editorType="update" currentBranch={currentBranch} diff --git a/src/forge/Newfile/m_editor.js b/src/forge/Newfile/m_editor.js index 862e5f8d2..4e2e68516 100644 --- a/src/forge/Newfile/m_editor.js +++ b/src/forge/Newfile/m_editor.js @@ -12,6 +12,13 @@ class m_editor extends Component { editorValue: this.props.content, }; } + componentDidUpdate=(prevProps)=>{ + if(prevProps && this.props && this.props.content !== prevProps.content){ + this.setState({ + editorValue:this.props.content + }) + } + } changeEditor = (editorValue) => { this.setState({ editorValue, From a67cabbfb4e4305fab5904d0a7420d88a9b0bc42 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 20 Apr 2021 10:54:20 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E5=9B=A2=E9=98=9F=E9=A1=B9=E7=9B=AE-?= =?UTF-8?q?=E5=9B=A2=E9=98=9F=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9A=84name=E5=92=8C=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E7=9A=84login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Group/GroupDetailMember.jsx | 2 +- src/forge/Team/Group/GroupDetailProject.jsx | 2 +- src/forge/Team/Group/Setting/GroupProjectSetting.jsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/forge/Team/Group/GroupDetailMember.jsx b/src/forge/Team/Group/GroupDetailMember.jsx index 79aed382c..1e03bd097 100644 --- a/src/forge/Team/Group/GroupDetailMember.jsx +++ b/src/forge/Team/Group/GroupDetailMember.jsx @@ -10,7 +10,7 @@ export default (({ data , current_user , successFunc }) => { data.map((item, key) => { return ( { return (
        - {item.project.name} + {item.project.name}
        ) }) diff --git a/src/forge/Team/Group/Setting/GroupProjectSetting.jsx b/src/forge/Team/Group/Setting/GroupProjectSetting.jsx index 4cb1027d8..1762a8648 100644 --- a/src/forge/Team/Group/Setting/GroupProjectSetting.jsx +++ b/src/forge/Team/Group/Setting/GroupProjectSetting.jsx @@ -180,7 +180,7 @@ function GroupProjectSetting(props) { } > {item.project.owner_name}/{item.project.name}} + title={{item.project.owner_name}/{item.project.name}} /> )}