From dfbcc09e5b78bb060c87c2629ec46ec74062479c Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 31 Jul 2020 20:15:28 +0800 Subject: [PATCH 001/164] devops --- src/forge/Component/OpsStatus.jsx | 6 +- src/forge/DevOps/About.jsx | 212 ++++++++---- src/forge/DevOps/OpsDetailLeftpanel.jsx | 86 +++-- src/forge/DevOps/Structure.jsx | 430 ++++++++++++++---------- src/forge/DevOps/ops.scss | 3 + src/forge/DevOps/opsDetail.jsx | 117 +++++-- src/forge/Main/Detail.js | 4 +- src/forge/Utils/Time.js | 2 +- 8 files changed, 565 insertions(+), 295 deletions(-) diff --git a/src/forge/Component/OpsStatus.jsx b/src/forge/Component/OpsStatus.jsx index 02883bd6..f5db8d72 100644 --- a/src/forge/Component/OpsStatus.jsx +++ b/src/forge/Component/OpsStatus.jsx @@ -3,15 +3,15 @@ import './Component.scss'; export const Tags = (status)=>{ switch(status){ - case 1: + case "running": return( 运行中 ); - case 2: + case "failure": return ( 未通过 ); - case 3: + case "success": return ( 已通过 ); diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index d606e71f..8148edc3 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -1,27 +1,33 @@ -import React , { forwardRef , useCallback } from 'react'; -import activate from '../Images/activate.png'; -import { Blueback } from '../Component/layout'; -import styled from 'styled-components'; -import { Link } from 'react-router-dom'; -import { Form , Input } from 'antd'; -import axios from 'axios'; +import React, { forwardRef, useCallback, useState , useEffect } from "react"; +import activate from "../Images/activate.png"; +import { Blueback } from "../Component/layout"; +import styled from "styled-components"; +import { Link } from "react-router-dom"; +import { Form, Input, Modal, Button } from "antd"; +import axios from "axios"; + +const P = styled.p` + { + width: 200px; + line-height: 30px; + font-size: 16px; + color: #333; + text-align: center; + margin-top: 30px; + margin-bottom: 30px !important; + } +`; +function About(props, ref) { + const { form: { getFieldDecorator, validateFields } } = props; + const [step, setStep] = useState(1); + const [visible, setVisible] = useState(false); + const [firstCompleted, setFirstCompleted] = useState(false); -const P = styled.p`{ - width:200px; - line-height:30px; - font-size:16px; - color:#333; - text-align:center; - margin-top:30px; - margin-bottom:30px!important; -}`; -function About( props , ref){ - const { form: { getFieldDecorator , validateFields } } = props; const helper = useCallback( (label, name, rules, widget, isRequired) => ( - {label} + {label} {getFieldDecorator(name, { rules, validateFirst: true })(widget)} @@ -29,52 +35,140 @@ function About( props , ref){ ), [] ); + // 下一步 + function goStep() { + if (!firstCompleted) { + let projectsId = props.match.params.projectsId; + validateFields((error, values) => { + if (!error) { + const url = `/dev_ops/cloud_accounts.json`; + axios.post(url, { + ...values, + project_id: projectsId, + }) + .then((result) => { + if (result && result.data.redirect_url) { + setVisible(true); + setFirstCompleted(true); + // window.location.href = result.data.redirect_url; + } + }) + .catch((error) => { + console.log(error); + }); + } + }); + } else { + setStep(2); + } + } + // 弹框确定 + function sure(){ + setVisible(false) + setStep(2); + } + // 开始激活 function startActive(){ - let projectsId = props.match.params.projectsId; - validateFields((error,values)=>{ - if(!error){ - const url = `/dev_ops/cloud_accounts.json`; - axios.post(url,{ - ...values, - project_id:projectsId - }).then(result=>{ - if(result && result.data.redirect_url){ - window.location.href = result.data.redirect_url; - } - }).catch(error=>{ - console.log(error); - }) + validateFields((error, values) => { + if(!values){ + } }) } - return( + return (
- + setVisible(false)} + footer={ + + + + + } + > +
+

+ 初始化配置已完成,请前往: +
+ + http://ip:80/login/oauth/authorize + +
+ 进入认证 +

+
+
+

定义DevOps工作流,帮助您检测bug、发布代码…

- 了解什么是DevOps? -
- {helper( - "服务器IP地址:", - "ip_num", - [{ required: true, message: "请输入服务器IP地址" }], - ,true - )} - {helper( - "服务器用户名:", - "account", - [{ required: true, message: "请输入服务器用户名" }], - ,true - )} - {helper( - "服务器密码:", - "secret", - [{ required: true, message: "请输入服务器密码" }], - ,true - )} - - 开始激活 + + 了解什么是DevOps? + + {step === 1 ? ( + +
+

请仔细核对您的服务器信息,一旦确认提交将无法修改

+ {helper( + "服务器IP地址:", + "ip_num", + [{ required: true, message: "请输入服务器IP地址" }], + , + true + )} + {helper( + "服务器用户名:", + "account", + [{ required: true, message: "请输入服务器用户名" }], + , + true + )} + {helper( + "服务器密码:", + "secret", + [{ required: true, message: "请输入服务器密码" }], + , + true + )} + + 下一步 +
+ ) : ( +
+
+

认证成功后,请前往http://ip:80/account获取token值,并将获取的token值填入输入框

+ {helper( + "token值:", + "token", + [{ required: true, message: "请输入token值" }], + , + true + )} +
+ + 开始激活 +
+
+
+ )}
- ) + ); } -export default Form.create()(forwardRef(About)); \ No newline at end of file +export default Form.create()(forwardRef(About)); diff --git a/src/forge/DevOps/OpsDetailLeftpanel.jsx b/src/forge/DevOps/OpsDetailLeftpanel.jsx index 427f0c99..c92cc096 100644 --- a/src/forge/DevOps/OpsDetailLeftpanel.jsx +++ b/src/forge/DevOps/OpsDetailLeftpanel.jsx @@ -1,42 +1,80 @@ -import React from 'react'; -import { FlexAJ , Blueline , AlignCenter } from '../Component/layout'; -import styled from 'styled-components'; -import { Menu } from 'antd'; -import { TagsLine } from '../Component/OpsStatus'; +import React, { useEffect ,useState } from "react"; +import { FlexAJ, Blueline, AlignCenter } from "../Component/layout"; +import styled from "styled-components"; +import { Menu , Popconfirm } from "antd"; +import { TagsLine } from "../Component/OpsStatus"; +import { Time } from "../Utils/Time"; +import { truncateCommitId } from "../common/util"; + const SubMenu = Menu.SubMenu; -const Img = styled.img`{ - width:25px; - height:25px; - border-radius:50%; - margin-right:10px; -}` -export default (()=>{ - return( +const Img = styled.img` + { + width: 25px; + height: 25px; + border-radius: 50%; + margin-right: 10px; + } +`; +export default ({ data , repeatSet }) => { + const [ tamp , setTamp ] = useState(undefined); + const [ sha , setSha ] = useState(undefined); + useEffect(()=>{ + if(data && data.started){ + let t = parseInt(data.started) * 1000; + let time = Time(t); + setTamp(time); + } + if(data && data.after){ + setSha(truncateCommitId(data.after)); + } + },[data]) + + return (
- - 开始时间:2020.07.10 15:30 - 运行时间:20s + + {data && data.started && ( + + 开始时间: {tamp} + + )} + {data && data.timestamp && ( + + 运行时间:{data && data.timestamp}s + + )} - 重新创建 + + 重新创建 +
分支: - master - 8b3476f5 + {data && data.source} + {sha}
- - CI
}> + + + + CI + + } + > - Build setup 01 {TagsLine(1)}20s + + Build setup 01 {TagsLine(1)} + 20s + - ) -}) \ No newline at end of file + ); +}; diff --git a/src/forge/DevOps/Structure.jsx b/src/forge/DevOps/Structure.jsx index d7bcde6a..6c78ca04 100644 --- a/src/forge/DevOps/Structure.jsx +++ b/src/forge/DevOps/Structure.jsx @@ -1,240 +1,318 @@ -import React , { useState , useEffect } from 'react'; -import { FlexAJ , AlignCenter , Blueback } from '../Component/layout'; -import { Table , Pagination } from 'antd'; -import { truncateCommitId } from '../common/util'; -import styled from 'styled-components'; -import axios from 'axios'; +import React, { useState, useEffect } from "react"; +import { FlexAJ, AlignCenter, Blueback } from "../Component/layout"; +import { Table, Pagination, Popconfirm } from "antd"; +import { truncateCommitId } from "../common/util"; +import styled from "styled-components"; +import axios from "axios"; +import { Time } from "../Utils/Time"; const STATUS = [ - {name:"所有",value:"1"}, - {name:"准备中",value:"2"}, - {name:"运行中",value:"3"}, - {name:"已完成",value:"4"} -] -const LIMIT = 15; -const datasource = [ - { - status:2, - author:"caishi", - message:{ - branch:"master", - sha:"8b3476f5", - image:"https://dss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2034740944,4251903193&fm=26&gp=0.jpg", - message:"将分支“ 221063-improve-buy-ci-minutes-link”" - }, - begin:"2020-07-08", - run:"20s" - }, - { - status:1, - author:"caishi", - message:{ - branch:"master", - sha:"8b3476f5", - image:"https://dss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2034740944,4251903193&fm=26&gp=0.jpg", - message:"将分支“ 221063-improve-buy-ci-minutes-link”" - }, - begin:"2020-07-08", - run:"" - } + { name: "所有", value: "1" }, + { name: "准备中", value: "2" }, + { name: "运行中", value: "3" }, + { name: "已完成", value: "4" }, ]; +const LIMIT = 15; +const Img = styled.img` + { + border-radius: 50%; + margin-rigth: 10px; + width: 25px; + height: 25px; + } +`; +export default (props) => { + const [status, setStatus] = useState("1"); + const [page, setPage] = useState(1); + const [total, setTotal] = useState(10); + const [data, setData] = useState(undefined); + const [tableLoading, setTableLoading] = useState(true); -const Img = styled.img`{ - border-radius:50%; - margin-rigth:10px; - width:25px; - height:25px; -}` -export default ((props)=>{ - const [ status ,setStatus ] = useState("1"); - const [ page ,setPage ] = useState(1); - const [ total ,setTotal ] = useState(10); - const [ data , setData ] = useState(undefined); - - let projectsId = props.match.params.projectsId; - - useEffect(()=>{ - if(projectsId){ - const url ='/dev_ops/builds.json'; - axios.get(url,{ - params:{ - project_id:projectsId - } - }).then(result=>{ - if(result){ - let list = result.data && result.data.map((item,key)=>{ - return { - status:item.status, - author:item.sender, - message:{ - branch:item.source, - image:item.author_avatar, - message:item.message, - sha:truncateCommitId(item.after) - }, - started:item.started, - timestamp:item.timestamp - } - }) - setData(list); - } - }).catch(error=>{ - console.log(error); - }) + let projectsId = props.match.params.projectsId; + useEffect(() => { + if (projectsId) { + Init(); } - },[]) + }, []); - function ChangeStatus(value){ - setStatus(value) + function Init() { + const url = "/dev_ops/builds.json"; + axios + .get(url, { + params: { + project_id: projectsId, + }, + }) + .then((result) => { + if (result) { + let list = + result.data && + result.data.map((item, key) => { + return { + status: item.status, + author: item.sender, + message: { + branch: item.source, + image: item.author_avatar, + message: item.message, + sha: truncateCommitId(item.after), + }, + started: item.started + ? Time(parseInt(item.started) * 1000) + : "--", + timestamp: item.timestamp, + number: item.number, + id:item.id + }; + }); + setData(list); + setTableLoading(false); + } + }) + .catch((error) => { + console.log(error); + }); + } + + function ChangeStatus(value) { + setStatus(value); } // 切换分页 - function ChangePage(page){ - setPage(page) + function ChangePage(page) { + setPage(page); } function renderStatus() { - return( + return ( - ) + ); } - function renderStatusBtn(status){ - if(status === "failure" || status ==="success"){ - return( - 重新构建 - ) - }else{ - return( - 撤销构建 - ) + function renderStatusBtn(status, number) { + if (status === "failure" || status === "success") { + return ( + repeatSet(e,number)} + onCancel={(e)=>{e.stopPropagation()}} + cancelText="取消" + okText="确定" + > + {e.stopPropagation()}}>重新构建 + + ); + } else { + return ( + cancelSet(e,number)} + onCancel={(e)=>{e.stopPropagation()}} + cancelText="取消" + okText="确定" + > + {e.stopPropagation()}}>撤销构建 + + ); } } - function renderTableStatus (status){ - switch (status){ + // 重新构建 + function repeatSet(e,number) { + e.stopPropagation(); + setTableLoading(true); + const url = `/dev_ops/builds/${number}.json`; + axios.post(url, { project_id: projectsId }) + .then((result) => { + if (result) { + props.showNotification("工作流正在重新构建!"); + Init(); + } + }) + .catch((error) => { + console.log(error); + }); + } + + // 撤销构建 + function cancelSet(e,number) { + e.stopPropagation(); + setTableLoading(true); + const url = `/dev_ops/builds/${number}.json`; + axios.delete(url, { + params:{project_id: projectsId} + }) + .then((result) => { + if (result) { + props.showNotification("撤销构建成功!"); + Init(projectsId); + } + }) + .catch((error) => { + console.log(error); + }); + } + + function renderTableStatus(status) { + switch (status) { case "running": - return( - 运行中 + return ( + + 运行中 + ); case "failure": return ( - 未通过 + + 未通过 + ); case "success": return ( - 已通过 + + 已通过 + ); default: return ( - 准备中 + + 准备中 + ); } } + + function clickRows(event,e){ + props.history.push(`/projects/${projectsId}/ops/${e.number}/detail`); + } const column = [ { - title:'序号', - dataIndex:"No", - key:"No", - width:"8%", - render:(item,value,key)=>{ - return( - #{key+1} - ) - } + title: "序号", + dataIndex: "number", + key: "number", + width: "8%", + render: ( value, item, key) => { + return #{value}; + }, }, { - title:'状态', - dataIndex:"status", - key:"status", - width:"12%", - render:(value,item,key)=>{ - return(renderTableStatus(value)) - } + title: "状态", + dataIndex: "status", + key: "status", + width: "12%", + render: (value, item, key) => { + return renderTableStatus(value); + }, }, { - title:'构建人', - dataIndex:"author", - key:"author", - width:"12%", - align:"center" + title: "构建人", + dataIndex: "author", + key: "author", + width: "12%", + align: "center", }, { - title:'提交信息', - dataIndex:"message", - key:"message", - width:"30%", - render:(value,item,key)=>{ + title: "提交信息", + dataIndex: "message", + key: "message", + width: "30%", + render: (value, item, key) => { let meg = item.message; - return ( + return (
- { meg.branch && 分支{meg.branch}} - { meg.sha && {meg.sha}} + {meg.branch && ( + + 分支 + {meg.branch} + + )} + {meg.sha && {meg.sha}}
-
{meg.message}
+
+ {meg.message} +
- ) - } + ); + }, }, { - title:'开始时间', - dataIndex:"started", - key:"started", - width:"15%", - render:(value,item,key)=>{ - return ( - {value || "--"} - ) - } + title: "开始时间", + dataIndex: "started", + key: "started", + width: "15%", + render: (value, item, key) => { + return {value || "--"}; + }, }, { - title:'运行时间', - dataIndex:"timestamp", - key:"timestamp", - width:"15%", - render:(value,item,key)=>{ - return ( - {value || value === 0 ? `${value}s` : "--"} - ) - } + title: "运行时间", + dataIndex: "timestamp", + key: "timestamp", + width: "15%", + render: (value, item, key) => { + return {value || value === 0 ? `${value}s` : "--"}; + }, }, { - title:'操作', - dataIndex:"operation", - key:"operation", - render:(value,item,key)=>{ - return(renderStatusBtn(item.status)); - } - } - ] - return( + title: "操作", + dataIndex: "operation", + key: "operation", + render: (value, item, key) => { + return renderStatusBtn(item.status, item.number); + }, + }, + ]; + return (
{renderStatus()} 手动创建 - 分支 - 标签 + + 分支 + + + + 标签 + { + return{ + onClick:(event)=>clickRows(event,record) + } + }} columns={column} className="normalTable" dataSource={data} pagination={false} + loading={tableLoading} >
- { - total > LIMIT ? -
- -
:"" - } + {total > LIMIT ? ( +
+ +
+ ) : ( + "" + )}
- ) -}) \ No newline at end of file + ); +}; diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss index b9dcafcc..9aa790da 100644 --- a/src/forge/DevOps/ops.scss +++ b/src/forge/DevOps/ops.scss @@ -70,6 +70,9 @@ } } } + .ant-modal-close{ + top:7px; + } // 列表 .listPart{ .statusTag{ diff --git a/src/forge/DevOps/opsDetail.jsx b/src/forge/DevOps/opsDetail.jsx index efb6f846..34ae4e3e 100644 --- a/src/forge/DevOps/opsDetail.jsx +++ b/src/forge/DevOps/opsDetail.jsx @@ -1,33 +1,90 @@ -import React from 'react'; -import './ops.scss'; -import { FlexAJ, AlignCenter } from '../Component/layout'; -import { Tags } from '../Component/OpsStatus'; -import SplitPane from 'react-split-pane'; -import LeftPanel from './OpsDetailLeftpanel'; -import RightPanel from './OpsDetailRightpanel'; +import React, { useEffect, useState , useRef , useContext } from "react"; +import "./ops.scss"; +import { FlexAJ, AlignCenter } from "../Component/layout"; +import { Tags } from "../Component/OpsStatus"; +import SplitPane from "react-split-pane"; +import LeftPanel from "./OpsDetailLeftpanel"; +import RightPanel from "./OpsDetailRightpanel"; +import axios from "axios"; +import { Spin } from "antd"; +import { Link } from 'react-router-dom'; +export default (props) => { + const [data, setData] = useState(undefined); + const [stages, setStages] = useState(undefined); + const [spinning, setSpinning] = useState(true); -export default (()=>{ - return( -
- - - #1 - 将分支“221063-improve-buy-ci-minutes-link”合并到“221063-improve-buy-ci-minutes-link" - {Tags(1)} - - 退出 - -
- -
- -
-
- -
-
+ let projectId = props.match.params.projectId; + let opsId = props.match.params.opsId; + + useEffect(() => { + if (opsId && projectId) { + Init(); + } + }, [opsId]); + + function Init(){ + const url = `/dev_ops/builds/${opsId}.json`; + axios.get(url, { + params: { + project_id: projectId, + }, + }) + .then((result) => { + if (result && result.data) { + setSpinning(false); + setData(result.data); + setStages(result.data.stages); + } + }) + .catch((error) => { + console.log(error); + }); + } + + // 重新构建 + function repeatSet() { + const url = `/dev_ops/builds/${data && data.number}.json`; + axios.post(url, { project_id: projectId }) + .then((result) => { + if (result) { + Init(); + } + }) + .catch((error) => { + console.log(error); + }); + } + return ( + +
+ + + #{data && data.number} + {data && data.message} + {Tags(`${data && data.status}`)} + + + 退出 + + +
+ +
+ +
+
+ +
+
+
-
- ) -}); \ No newline at end of file + + ); +}; diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 88f20638..8faaa61b 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -438,12 +438,12 @@ class Detail extends Component { } - {/*
  • -1 ? "active" : ""}> +
  • -1 ? "active" : ""}> 工作流 {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} -
  • */} +
  • -1 || url.indexOf("meilpost") > -1) ? "active" : ""}> 里程碑 diff --git a/src/forge/Utils/Time.js b/src/forge/Utils/Time.js index 55d73441..4de4b371 100644 --- a/src/forge/Utils/Time.js +++ b/src/forge/Utils/Time.js @@ -26,7 +26,7 @@ export function getDateTime(value, dataformat) { return date.format(dataformat); } -export default function Time(UTCtiem) { +export function Time(UTCtiem) { var dateTime = new Date(UTCtiem); var year = dateTime.getFullYear(); From 940c9c025387cd240467bb24e0b7eecc766487a0 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Sun, 9 Aug 2020 22:39:58 +0800 Subject: [PATCH 002/164] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/OpsStatus.jsx | 6 +- src/forge/DevOps/OpsDetailLeftpanel.jsx | 126 +++++++++++++++++------ src/forge/DevOps/OpsDetailRightpanel.jsx | 46 +++++---- src/forge/DevOps/opsDetail.jsx | 67 ++++++------ 4 files changed, 162 insertions(+), 83 deletions(-) diff --git a/src/forge/Component/OpsStatus.jsx b/src/forge/Component/OpsStatus.jsx index f5db8d72..b6944642 100644 --- a/src/forge/Component/OpsStatus.jsx +++ b/src/forge/Component/OpsStatus.jsx @@ -24,15 +24,15 @@ export const Tags = (status)=>{ export const TagsLine = (status)=>{ switch(status){ - case 1: + case "running": return( 运行中 ); - case 2: + case "failure": return ( 未通过 ); - case 3: + case "success": return ( 已通过 ); diff --git a/src/forge/DevOps/OpsDetailLeftpanel.jsx b/src/forge/DevOps/OpsDetailLeftpanel.jsx index c92cc096..87343b82 100644 --- a/src/forge/DevOps/OpsDetailLeftpanel.jsx +++ b/src/forge/DevOps/OpsDetailLeftpanel.jsx @@ -1,12 +1,11 @@ -import React, { useEffect ,useState } from "react"; +import React, { useEffect, useState } from "react"; import { FlexAJ, Blueline, AlignCenter } from "../Component/layout"; import styled from "styled-components"; -import { Menu , Popconfirm } from "antd"; +import { Menu, Popconfirm } from "antd"; import { TagsLine } from "../Component/OpsStatus"; import { Time } from "../Utils/Time"; import { truncateCommitId } from "../common/util"; - const SubMenu = Menu.SubMenu; const Img = styled.img` { @@ -16,37 +15,83 @@ const Img = styled.img` margin-right: 10px; } `; -export default ({ data , repeatSet }) => { - const [ tamp , setTamp ] = useState(undefined); - const [ sha , setSha ] = useState(undefined); - useEffect(()=>{ - if(data && data.started){ +export default ({ data, repeatSet }) => { + const [tamp, setTamp] = useState(undefined); + const [sha, setSha] = useState(undefined); + useEffect(() => { + if (data && data.started) { let t = parseInt(data.started) * 1000; let time = Time(t); setTamp(time); } - if(data && data.after){ + if (data && data.after) { setSha(truncateCommitId(data.after)); } - },[data]) + }, [data]); + + function renderMenu() { + if (data.stages && data.stages.length > 0) { + data.stages.map((item, key) => { + return item.steps && item.steps.length > 0 ? ( + + + {item.name} +
  • + } + > + {item.steps.map((i, k) => { + return ( + + + + {i.name} {i.status ? TagsLine(i.status) : ""} + + + {i.stopped + ? parseInt(parseInt(i.stopped) - parseInt(i.started)) + : "0"} + s + + + + ); + })} + + ) : ( + "" + ); + }); + } + } + + function titleClick(e,index){ + console.log(index); + } return (
    - {data && data.started && ( + {data && data.started ? ( 开始时间: {tamp} + ) : ( + "" )} - {data && data.timestamp && ( - - 运行时间:{data && data.timestamp}s - - )} + + 运行时间:{data && data.timestamp}s + - + 重新创建 @@ -59,21 +104,38 @@ export default ({ data , repeatSet }) => {
    - - - CI - - } - > - - - Build setup 01 {TagsLine(1)} - 20s - - - + {data && data.stages + ? data.stages.map((item, key) => { + return item.steps && item.steps.length > 0 ? ( + + + {item.name} + + } + onTitleClick={(e)=>titleClick(e,key)} + > + {item.steps.map((i, k) => { + return ( + + + + {i.name} {i.status ? TagsLine(i.status) : ""} + + + {i.stopped ? (parseInt(i.stopped) - parseInt(i.started)): "0"}s + + + + ); + })} + + ) : ( + "" + ); + }) + : ""} ); diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index a7f0f11e..5de63269 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -1,21 +1,31 @@ -import React from 'react'; -import { FlexAJ , AlignCenter } from '../Component/layout'; +import React, {useState,useEffect} from "react"; +import { FlexAJ, AlignCenter } from "../Component/layout"; -export default (()=>{ - return( +export default ({ stages }) => { + const [ list , setList ] = useState(undefined); + useEffect(()=>{ + if(stages){ + console.log(stages.steps); + setList(stages.steps); + } + },[stages]) + + return (
    -
    - - Build setup 01 - 20 - -
    -
    - -
    -
    - -
    + {list && list.length>0 ? list.map((item, key) => { + return ( +
    + + {item.name} + + { item.stopped ? (parseInt(item.stopped) - parseInt(item.started)) : "0" } + + + +
    + ); + }):"1111" + }
    - ) -}) \ No newline at end of file + ); +}; diff --git a/src/forge/DevOps/opsDetail.jsx b/src/forge/DevOps/opsDetail.jsx index 34ae4e3e..52f20796 100644 --- a/src/forge/DevOps/opsDetail.jsx +++ b/src/forge/DevOps/opsDetail.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState , useRef , useContext } from "react"; +import React, { useEffect, useState, useRef, useContext } from "react"; import "./ops.scss"; import { FlexAJ, AlignCenter } from "../Component/layout"; import { Tags } from "../Component/OpsStatus"; @@ -7,7 +7,7 @@ import LeftPanel from "./OpsDetailLeftpanel"; import RightPanel from "./OpsDetailRightpanel"; import axios from "axios"; import { Spin } from "antd"; -import { Link } from 'react-router-dom'; +import { Link } from "react-router-dom"; export default (props) => { const [data, setData] = useState(undefined); @@ -23,37 +23,41 @@ export default (props) => { } }, [opsId]); - function Init(){ + function Init() { const url = `/dev_ops/builds/${opsId}.json`; - axios.get(url, { - params: { - project_id: projectId, - }, - }) - .then((result) => { - if (result && result.data) { - setSpinning(false); - setData(result.data); - setStages(result.data.stages); - } - }) - .catch((error) => { - console.log(error); - }); + axios + .get(url, { + params: { + project_id: projectId, + }, + }) + .then((result) => { + if (result && result.data) { + setSpinning(false); + setData(result.data); + setStages( + result.data.stages && result.data.stages.length > 0 ? result.data.stages[0] : undefined + ); + } + }) + .catch((error) => { + console.log(error); + }); } // 重新构建 function repeatSet() { const url = `/dev_ops/builds/${data && data.number}.json`; - axios.post(url, { project_id: projectId }) - .then((result) => { - if (result) { - Init(); - } - }) - .catch((error) => { - console.log(error); - }); + axios + .post(url, { project_id: projectId }) + .then((result) => { + if (result) { + Init(); + } + }) + .catch((error) => { + console.log(error); + }); } return ( @@ -64,7 +68,10 @@ export default (props) => { {data && data.message} {Tags(`${data && data.status}`)} - + 退出 @@ -77,10 +84,10 @@ export default (props) => { defaultSize="40%" >
    - +
    - +
    From a411d2c1112cb4517c316ba2ef9262477330a2d3 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 26 Aug 2020 16:09:27 +0800 Subject: [PATCH 003/164] devops --- public/css/iconfont.css | 72 +++++- public/css/iconfont.eot | Bin 111512 -> 115176 bytes public/css/iconfont.js | 2 +- public/css/iconfont.json | 105 ++++++++ public/css/iconfont.svg | 45 ++++ public/css/iconfont.ttf | Bin 111344 -> 115008 bytes public/css/iconfont.woff | Bin 69480 -> 71884 bytes public/css/iconfont.woff2 | Bin 58232 -> 59876 bytes src/App.js | 2 +- src/forge/Component/Component.scss | 5 + src/forge/Component/OpsFileLanguage.jsx | 61 +++++ src/forge/Component/OpsStatus.jsx | 16 +- src/forge/DevOps/About.jsx | 310 ++++++++++++++--------- src/forge/DevOps/Dispose.jsx | 50 ++-- src/forge/DevOps/Index.jsx | 6 +- src/forge/DevOps/Infos.jsx | 16 +- src/forge/DevOps/OpsDetailLeftpanel.jsx | 163 ++++++------ src/forge/DevOps/OpsDetailRightpanel.jsx | 77 ++++-- src/forge/DevOps/Structure.jsx | 176 ++++++------- src/forge/DevOps/ops.scss | 35 +++ src/forge/DevOps/opsDetail.jsx | 81 ++++-- src/forge/Main/Detail.js | 51 +++- 22 files changed, 862 insertions(+), 411 deletions(-) create mode 100644 src/forge/Component/OpsFileLanguage.jsx diff --git a/public/css/iconfont.css b/public/css/iconfont.css index 78227bc1..a0417796 100644 --- a/public/css/iconfont.css +++ b/public/css/iconfont.css @@ -1,10 +1,10 @@ @font-face {font-family: "iconfont"; - src: url('iconfont.eot?t=1594284253327'); /* IE9 */ - src: url('iconfont.eot?t=1594284253327#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), - url('iconfont.woff?t=1594284253327') format('woff'), - url('iconfont.ttf?t=1594284253327') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ - url('iconfont.svg?t=1594284253327#iconfont') format('svg'); /* iOS 4.1- */ + src: url('iconfont.eot?t=1598341180902'); /* IE9 */ + src: url('iconfont.eot?t=1598341180902#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1598341180902') format('woff'), + url('iconfont.ttf?t=1598341180902') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1598341180902#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { @@ -15,6 +15,66 @@ -moz-osx-font-smoothing: grayscale; } +.icon-mobanguanli2:before { + content: "\e7a6"; +} + +.icon-Lastupdated:before { + content: "\e7a5"; +} + +.icon-CONTACTS:before { + content: "\e7a4"; +} + +.icon-SPONSORS:before { + content: "\e7a3"; +} + +.icon-FINALREPORTS:before { + content: "\e7a2"; +} + +.icon-STEERINGCOMMITTEE:before { + content: "\e7a1"; +} + +.icon-ORGANIZINGICSE-MOU:before { + content: "\e7a0"; +} + +.icon-INFLUENTIALPAPERS:before { + content: "\e79f"; +} + +.icon-BIBLIOGRAPHIES:before { + content: "\e79e"; +} + +.icon-PROCEEDINGS:before { + content: "\e79d"; +} + +.icon-HISTORY:before { + content: "\e79c"; +} + +.icon-CONDUCTSAFETY:before { + content: "\e79b"; +} + +.icon-EDISTATEMENT:before { + content: "\e79a"; +} + +.icon-MAILINGLIST:before { + content: "\e799"; +} + +.icon-HOME:before { + content: "\e798"; +} + .icon-zhunbeizhong:before { content: "\e797"; } diff --git a/public/css/iconfont.eot b/public/css/iconfont.eot index c35e531346f0c2472300c18141b8d122ef73b660..1777f205789846e3ab56cdec8c90f7a720517461 100644 GIT binary patch delta 10743 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 b#AW;k7FE^Y+#2k%Rn`qGJ6m^%tAhUr%#ii} delta 7149 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 diff --git a/public/css/iconfont.js b/public/css/iconfont.js index 41acb9e1..be4941d8 100644 --- a/public/css/iconfont.js +++ b/public/css/iconfont.js @@ -1 +1 @@ -!function(c){var l,a,h,i,o,t,z,s='',p=(l=document.getElementsByTagName("script"))[l.length-1].getAttribute("data-injectcss");if(p&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function m(){t||(t=!0,i())}a=function(){var c,l,a,h,i,o=document.createElement("div");o.innerHTML=s,s=null,(c=o.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(a=document.body).firstChild?(h=l,(i=a.firstChild).parentNode.insertBefore(h,i)):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=a,o=c.document,t=!1,(z=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}m()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,m())})}(window); \ No newline at end of file +!function(c){var l,a,h,i,t,o,z,s='',p=(l=document.getElementsByTagName("script"))[l.length-1].getAttribute("data-injectcss");if(p&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function m(){o||(o=!0,i())}a=function(){var c,l,a,h,i,t=document.createElement("div");t.innerHTML=s,s=null,(c=t.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(a=document.body).firstChild?(h=l,(i=a.firstChild).parentNode.insertBefore(h,i)):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=a,t=c.document,o=!1,(z=function(){try{t.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}m()})(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,m())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index e97cc02b..cae4d417 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,111 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "16609949", + "name": "模版管理2", + "font_class": "mobanguanli2", + "unicode": "e7a6", + "unicode_decimal": 59302 + }, + { + "icon_id": "15852679", + "name": "Last updated", + "font_class": "Lastupdated", + "unicode": "e7a5", + "unicode_decimal": 59301 + }, + { + "icon_id": "15852678", + "name": "CONTACTS", + "font_class": "CONTACTS", + "unicode": "e7a4", + "unicode_decimal": 59300 + }, + { + "icon_id": "15852677", + "name": "SPONSORS", + "font_class": "SPONSORS", + "unicode": "e7a3", + "unicode_decimal": 59299 + }, + { + "icon_id": "15852676", + "name": "FINAL REPORTS", + "font_class": "FINALREPORTS", + "unicode": "e7a2", + "unicode_decimal": 59298 + }, + { + "icon_id": "15852675", + "name": "STEERING COMMITTEE", + "font_class": "STEERINGCOMMITTEE", + "unicode": "e7a1", + "unicode_decimal": 59297 + }, + { + "icon_id": "15852674", + "name": "ORGANIZING ICSE - MOU", + "font_class": "ORGANIZINGICSE-MOU", + "unicode": "e7a0", + "unicode_decimal": 59296 + }, + { + "icon_id": "15852673", + "name": "INFLUENTIAL PAPERS", + "font_class": "INFLUENTIALPAPERS", + "unicode": "e79f", + "unicode_decimal": 59295 + }, + { + "icon_id": "15852672", + "name": "BIBLIOGRAPHIES", + "font_class": "BIBLIOGRAPHIES", + "unicode": "e79e", + "unicode_decimal": 59294 + }, + { + "icon_id": "15852671", + "name": "PROCEEDINGS", + "font_class": "PROCEEDINGS", + "unicode": "e79d", + "unicode_decimal": 59293 + }, + { + "icon_id": "15852670", + "name": "HISTORY", + "font_class": "HISTORY", + "unicode": "e79c", + "unicode_decimal": 59292 + }, + { + "icon_id": "15852669", + "name": "CONDUCT & SAFETY", + "font_class": "CONDUCTSAFETY", + "unicode": "e79b", + "unicode_decimal": 59291 + }, + { + "icon_id": "15852667", + "name": "EDI STATEMENT", + "font_class": "EDISTATEMENT", + "unicode": "e79a", + "unicode_decimal": 59290 + }, + { + "icon_id": "15852666", + "name": "MAILING LIST", + "font_class": "MAILINGLIST", + "unicode": "e799", + "unicode_decimal": 59289 + }, + { + "icon_id": "15852665", + "name": "HOME", + "font_class": "HOME", + "unicode": "e798", + "unicode_decimal": 59288 + }, { "icon_id": "15792809", "name": "准备中", diff --git a/public/css/iconfont.svg b/public/css/iconfont.svg index 598ec8c2..19851077 100644 --- a/public/css/iconfont.svg +++ b/public/css/iconfont.svg @@ -20,6 +20,51 @@ Created by iconfont /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index 9c105b496d2088f6a40cca8b921813030b6dc597..e535ca5293a9eb05462eb1168b72db2f1c164e24 100644 GIT binary patch delta 10680 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 delta 7117 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 literal 58232 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 RbDS2{T}A6b-cf3I`VUcUVdww= diff --git a/src/App.js b/src/App.js index 534706b8..ea57375a 100644 --- a/src/App.js +++ b/src/App.js @@ -224,7 +224,7 @@ class App extends Component { {/*项目*/} { return () diff --git a/src/forge/Component/Component.scss b/src/forge/Component/Component.scss index 9a58f5a2..57d23cee 100644 --- a/src/forge/Component/Component.scss +++ b/src/forge/Component/Component.scss @@ -72,6 +72,7 @@ li.ant-menu-item{ border-radius:11px; color: #fff; margin-left: 5px; + font-size: 12px; &.running{ background:#5091FF; color: #F1F8FF; @@ -88,6 +89,10 @@ li.ant-menu-item{ background:#F73030; color:#FCEEEE ; } + &.killed{ + background:#eee; + color:#999 ; + } } .handleBox{ position: fixed; diff --git a/src/forge/Component/OpsFileLanguage.jsx b/src/forge/Component/OpsFileLanguage.jsx new file mode 100644 index 00000000..b3940e85 --- /dev/null +++ b/src/forge/Component/OpsFileLanguage.jsx @@ -0,0 +1,61 @@ +import React , { useState , useEffect } from 'react'; +import { Select } from 'antd'; +import { getUrl } from 'educoder'; + +import axios from 'axios'; +const Option = Select.Option; + +export default (({ language , select_language })=>{ + const [ six , setSix ] = useState(undefined); + const [ languages , setLanguage ] = useState(undefined); + + useEffect(()=>{ + const url = '/ci/languages.json'; + axios.get(url).then(result=>{ + if(result){ + setLanguage(result.data); + } + }).catch(error=>{ + console.log(error); + }) + },[]) + + function changelanguage(value){ + let array = value ? languages.filter(item=>item.name === value) :undefined; + select_language(value,array && array[0]); + } + + useEffect(()=>{ + const url = '/ci/languages/common.json'; + axios.get(url).then(result=>{ + if(result){ + setSix(result.data); + } + }).catch(error=>{ + console.log(error); + }) + },[]) + + return( + + { + six && +

      + { + six.map((item,key)=>{ + return( + key < 6 ?
    • changelanguage(item.name)}>
    • : "" + ) + }) + } +
    + } + +
    + ) +}) \ No newline at end of file diff --git a/src/forge/Component/OpsStatus.jsx b/src/forge/Component/OpsStatus.jsx index b6944642..60284fa4 100644 --- a/src/forge/Component/OpsStatus.jsx +++ b/src/forge/Component/OpsStatus.jsx @@ -7,7 +7,7 @@ export const Tags = (status)=>{ return( 运行中 ); - case "failure": + case "failure":case"error": return ( 未通过 ); @@ -15,10 +15,14 @@ export const Tags = (status)=>{ return ( 已通过 ); - default: + case "pending": return ( 准备中 ); + case 'killed': + return ( + 已撤销 + ); } } @@ -28,7 +32,7 @@ export const TagsLine = (status)=>{ return( 运行中 ); - case "failure": + case "failure":case "error": return ( 未通过 ); @@ -36,9 +40,13 @@ export const TagsLine = (status)=>{ return ( 已通过 ); - default: + case "pending": return ( 准备中 ); + case 'killed': + return ( + 已撤销 + ); } } \ No newline at end of file diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 8148edc3..6e382cb0 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -3,7 +3,7 @@ import activate from "../Images/activate.png"; import { Blueback } from "../Component/layout"; import styled from "styled-components"; import { Link } from "react-router-dom"; -import { Form, Input, Modal, Button } from "antd"; +import { Form, Input, Modal, Button , Spin } from "antd"; import axios from "axios"; const P = styled.p` @@ -18,11 +18,55 @@ const P = styled.p` } `; function About(props, ref) { - const { form: { getFieldDecorator, validateFields } } = props; - const [step, setStep] = useState(1); + const { form: { getFieldDecorator, validateFields , setFieldsValue } } = props; + const [isSpining, setIsSpining] = useState(false); + //0: 标识未开启devops + //1: 标识用户已填写了云服务器相关信息,但并未开启认证 + //2: 标识用户已开启了CI服务端的认证 + //3: 标识用户ci服务已初始化 + const [step, setStep] = useState(undefined); + // step等于1时:不能修改服务器信息提示用户去认证 const [visible, setVisible] = useState(false); + // step大于1时:为true,不能再修改服务器信息 const [firstCompleted, setFirstCompleted] = useState(false); + const [ redirectUrl ,setRedirectUrl ] = useState(undefined); + const [ cloudAccount , setCloudAccount ] = useState(undefined); + + const owner = props.match.params.owner; + const projectsId = props.match.params.projectsId; + + useEffect(()=>{ + auth('get'); + },[]) + + function auth(type){ + const url = `/${owner}/${projectsId}/ci_authorize.json`; + axios({ + method:`${type}`, + url + }).then(result=>{ + if(result && result.data ){ + let s = result.data.step; + setStep(s); + if(s >= 1){ + setFirstCompleted(true); + if(s===1){ + setVisible(true); + } + let cloud_account = result.data.cloud_account; + setCloudAccount(cloud_account); + setRedirectUrl(cloud_account.authenticate_url); + cloud_account && setFieldsValue({ + ...cloud_account, + ip_num:cloud_account.ip + }); + } + } + }).catch(error=>{ + console.log(error); + }) + } const helper = useCallback( (label, name, rules, widget, isRequired) => ( @@ -38,137 +82,177 @@ function About(props, ref) { // 下一步 function goStep() { if (!firstCompleted) { - let projectsId = props.match.params.projectsId; + setIsSpining(true); + props.showNotification("服务器连接绑定中,请耐心等候!"); validateFields((error, values) => { if (!error) { - const url = `/dev_ops/cloud_accounts.json`; - axios.post(url, { - ...values, - project_id: projectsId, - }) - .then((result) => { - if (result && result.data.redirect_url) { - setVisible(true); - setFirstCompleted(true); - // window.location.href = result.data.redirect_url; - } - }) - .catch((error) => { - console.log(error); - }); + const url = `/${owner}/${projectsId}/cloud_accounts.json`; + axios.post(url, {...values}) + .then((result) => { + setIsSpining(false); + if (result && result.data.redirect_url) { + setVisible(true); + setFirstCompleted(true); + setRedirectUrl(result.data.redirect_url); + } + }) + .catch((error) => { + console.log(error); + setVisible(false); + }); } }); } else { - setStep(2); + setVisible(true); } } // 弹框确定 function sure(){ - setVisible(false) - setStep(2); + setVisible(false); + minusPlus(1); + auth('put'); + } + + function minusPlus(num,flag){ + let s = 0; + if(flag){ + s=step-num; + }else{ + s=step+num; + } + console.log(s); + setStep(s); } // 开始激活 function startActive(){ validateFields((error, values) => { - if(!values){ - + if(!error){ + setIsSpining(true); + const url = `/${owner}/${projectsId}/cloud_accounts/${cloudAccount && cloudAccount.id}/activate`; + axios.post(url,{ + ...values + }).then(result=>{ + setIsSpining(false); + if(result && result.data.status === 0){ + props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`); + // 需要将顶部的open_devops修改 + let { changeOpenDevops } = props; + changeOpenDevops && changeOpenDevops(true); + }else{ + props.showNotification('激活失败,请稍后再试!'); + } + }).catch(error=>{ + console.log(error); + }) } }) } + // 完成 + function complete(){ + props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`); + } return ( -
    - setVisible(false)} - footer={ + +
    + setVisible(false)} + footer={ + + + + + } + > +
    +

    + 初始化配置已完成,请前往: +
    +
    + {redirectUrl} + +
    + 进入认证 +

    +
    + + +

    定义DevOps工作流,帮助您检测bug、发布代码…

    + + 了解什么是DevOps? + + {step <=1? - - +
    +

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    + {helper( + "服务器IP地址:", + "ip_num", + [{ required: true, message: "请输入服务器IP地址" }], + , + true + )} + {helper( + "服务器用户名:", + "account", + [{ required: true, message: "请输入服务器用户名" }], + , + true + )} + {helper( + "服务器密码:", + "secret", + [{ required: true, message: "请输入服务器密码" }], + , + true + )} + + 下一步
    - } - > -
    -

    - 初始化配置已完成,请前往: -
    - - http://ip:80/login/oauth/authorize - -
    - 进入认证 -

    -
    - - -

    定义DevOps工作流,帮助您检测bug、发布代码…

    - - 了解什么是DevOps? - - {step === 1 ? ( - -
    -

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    - {helper( - "服务器IP地址:", - "ip_num", - [{ required: true, message: "请输入服务器IP地址" }], - , - true - )} - {helper( - "服务器用户名:", - "account", - [{ required: true, message: "请输入服务器用户名" }], - , - true - )} - {helper( - "服务器密码:", - "secret", - [{ required: true, message: "请输入服务器密码" }], - , - true - )} - - 下一步 -
    - ) : ( -
    -
    -

    认证成功后,请前往http://ip:80/account获取token值,并将获取的token值填入输入框

    - {helper( - "token值:", - "token", - [{ required: true, message: "请输入token值" }], - , - true - )} -
    - - 开始激活 + :""} + + {step >= 2 &&( +
    + +

    认证成功后,请前往{cloudAccount && cloudAccount.get_drone_token_url}获取token值,并将获取的token值填入输入框

    + {helper( + "token值:", + "drone_token", + [{ required: true, message: "请输入token值" }], + , + true + )} +
    + { + step === 2? + 开始激活 + : + 完成 + } +
    +
    - -
    - )} -
    + )} +
    + ); } export default Form.create()(forwardRef(About)); diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx index 1b4f8bac..5be238db 100644 --- a/src/forge/DevOps/Dispose.jsx +++ b/src/forge/DevOps/Dispose.jsx @@ -1,13 +1,15 @@ import React , { useState , useEffect } from 'react'; +import { Spin } from 'antd'; import { Blueback } from '../Component/layout'; import Editor from "react-monaco-editor"; import Modals from './DisposeModal'; -import FileLanguage from '../Component/FileLanguage'; +import FileLanguage from '../Component/OpsFileLanguage'; import axios from 'axios'; function Dispose(props){ - const [ info , setInfo ] = useState(undefined); + const [ spining , setSpining ] = useState(true); + const [ info , setInfo ] = useState('.trustie-pipeline.yml'); const [ visible , setVisible ] = useState(false); const [ ymlValue , setYmlValue ] = useState(""); const [ six , setSix ] = useState(undefined); @@ -19,35 +21,25 @@ function Dispose(props){ useEffect(()=>{ if(projectsId){ - const url = '/dev_ops/builds/get_trustie_pipeline.json'; + const url = `/${owner}/${projectsId}/get_trustie_pipeline.json`; axios.get(url,{ params:{ project_id:projectsId } }).then(result=>{ if(result && result.data.content){ - setInfo(result.data); + setInfo(result.data.name); setYmlValue(result.data.content); setFirst(true); }else{ setFirst(false); } + setSpining(false); }).catch(error=>{ console.log(error); }) } - },[]) - - useEffect(()=>{ - const url = '/dev_ops/languages/common.json'; - axios.get(url).then(result=>{ - if(result){ - setSix(result.data); - } - }).catch(error=>{ - console.log(error); - }) - },[]) + },[projectsId]) // 修改文件内容 function changeEditor(value){ @@ -57,7 +49,6 @@ function Dispose(props){ // 切换语言 function select_language(value,array){ setFileLanguage(value); - // console.log(array); setYmlValue( array && array.content); } @@ -67,12 +58,12 @@ function Dispose(props){ let params = { branch: "master", content:ymlValue, - filepath:info && info.name, + filepath:info, message:'' } if(first){ // 为true,则是编辑否则是新建 - url = `/${owner}/${projectsId}/update_file.json`; + url = `/${owner}/${projectsId}/update_trustie_pipeline.json`; axios.put(url,{ ...params, sha:info && info.sha @@ -95,32 +86,21 @@ function Dispose(props){ } } function suresubmit(){ - props.history.push(`/projects/${owner}/${projectsId}/ops/list`); + props.history.push(`/projects/${owner}/${projectsId}/devops/list`); } return( - + setVisible(flag)} sureFunc={suresubmit}>

    编程语言:

    - { - six && -
      - { - six && six.map((item,key)=>{ - return( - key < 6 ?
    • : "" - ) - }) - } -
    - } +

    配置脚本:

    - {info && info.name} + {info}

    确定提交 -
    + ) } export default Dispose; \ No newline at end of file diff --git a/src/forge/DevOps/Index.jsx b/src/forge/DevOps/Index.jsx index 8ccc61c8..77b82eb0 100644 --- a/src/forge/DevOps/Index.jsx +++ b/src/forge/DevOps/Index.jsx @@ -18,17 +18,17 @@ export default ((props)=>{ return( - () } > - () } > - () } diff --git a/src/forge/DevOps/Infos.jsx b/src/forge/DevOps/Infos.jsx index 26a4b6e4..c65b7aaf 100644 --- a/src/forge/DevOps/Infos.jsx +++ b/src/forge/DevOps/Infos.jsx @@ -11,27 +11,27 @@ const Div = styled.div`{ padding:24px 30px; }`; export default ((props)=>{ - const [ menu , setMenu ] = useState(undefined); + const [ menu , setMenu ] = useState(false); const path = props.location.pathname; + const owner = props.match.params.owner; + const projectsId = props.match.params.projectsId; useEffect(()=>{ - // console.log(props.match.params.projectsId) - if(path === `/projects/${props.match.params.projectsId}/ops/list`){ + if(path === `/projects/${owner}/${projectsId}/devops/list`){ setMenu(true); }else{ setMenu(false); } },[path]) - return(
    - 工作流配置 - { menu ? 构建列表:""} + 工作流配置 + 构建列表
    - { menu && menu === true && } - { menu && menu === false && } + { menu === true && } + { menu === false && }
    ) diff --git a/src/forge/DevOps/OpsDetailLeftpanel.jsx b/src/forge/DevOps/OpsDetailLeftpanel.jsx index 87343b82..40d396e4 100644 --- a/src/forge/DevOps/OpsDetailLeftpanel.jsx +++ b/src/forge/DevOps/OpsDetailLeftpanel.jsx @@ -5,6 +5,7 @@ import { Menu, Popconfirm } from "antd"; import { TagsLine } from "../Component/OpsStatus"; import { Time } from "../Utils/Time"; import { truncateCommitId } from "../common/util"; +import { getUrl } from 'educoder'; const SubMenu = Menu.SubMenu; const Img = styled.img` @@ -15,7 +16,7 @@ const Img = styled.img` margin-right: 10px; } `; -export default ({ data, repeatSet }) => { +export default ({ data, repeatSet , chooseSteps }) => { const [tamp, setTamp] = useState(undefined); const [sha, setSha] = useState(undefined); useEffect(() => { @@ -29,113 +30,97 @@ export default ({ data, repeatSet }) => { } }, [data]); - function renderMenu() { - if (data.stages && data.stages.length > 0) { - data.stages.map((item, key) => { - return item.steps && item.steps.length > 0 ? ( - - - {item.name} -
    - } - > - {item.steps.map((i, k) => { - return ( - - - - {i.name} {i.status ? TagsLine(i.status) : ""} - - - {i.stopped - ? parseInt(parseInt(i.stopped) - parseInt(i.started)) - : "0"} - s - - - - ); - })} - - ) : ( - "" - ); - }); + function renderStatusBtn() { + let status = data && data.status; + let number = data && data.number; + if (status === "failure" || status === "error" || status === "success") { + return ""; + }else if(status === "killed"){ + return( + repeatSet(e,'repeat',number)} + onCancel={(e)=>{e.stopPropagation()}} + cancelText="取消" + okText="确定" + > + {e.stopPropagation()}}>重新构建 + + ); + } else { + return ( + repeatSet(e,'cancel',number)} + onCancel={(e)=>{e.stopPropagation()}} + cancelText="取消" + okText="确定" + > + {e.stopPropagation()}}>撤销构建 + + ); } } - function titleClick(e,index){ - console.log(index); + function clickSub(e,stageN,stepN,stageName){ + chooseSteps(stageN,stepN,stageName); } return (
    - - {data && data.started ? ( + + {data && data.started && - 开始时间: {tamp} + 开始时间: {data.started} - ) : ( - "" - )} - - 运行时间:{data && data.timestamp}s - + } + { + data && data.duration_time && + + 运行时间:{data.duration_time} + + } - - 重新创建 - + {renderStatusBtn()}
    分支: - {data && data.source} - {sha} + {data && data.branch_target} + {data && truncateCommitId(data.build_after_sha)}
    - - {data && data.stages - ? data.stages.map((item, key) => { - return item.steps && item.steps.length > 0 ? ( - - - {item.name} -
    - } - onTitleClick={(e)=>titleClick(e,key)} - > - {item.steps.map((i, k) => { - return ( - - - - {i.name} {i.status ? TagsLine(i.status) : ""} - - - {i.stopped ? (parseInt(i.stopped) - parseInt(i.started)): "0"}s - - - - ); - })} - - ) : ( - "" - ); - }) - : ""} + + {data && data.stages ? data.stages.map((item, key) => { + return item.steps && item.steps.length > 0 ? + + + {item.name} + + } + key={key} + > + {item.steps.map((i, k) => { + return ( + clickSub(e,item.number,i.id,item.name)}> + + + {i.name} {i.status ? TagsLine(i.status) : ""} + + {i.duration_time} + + + ); + })} + + : ""; + }) + : ""} ); diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index 5de63269..17a45dbd 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -1,31 +1,62 @@ import React, {useState,useEffect} from "react"; +import { Spin } from 'antd'; import { FlexAJ, AlignCenter } from "../Component/layout"; +import axios from 'axios'; -export default ({ stages }) => { - const [ list , setList ] = useState(undefined); +export default (({ step , stageNumber , stageName , projectId , owner , opsId , rightSpin }) => { + const [ coders , setCoders ] = useState(undefined); + const [ empty , setEmpty ] = useState(false); + const [ spining , setSpining ] = useState(true); useEffect(()=>{ - if(stages){ - console.log(stages.steps); - setList(stages.steps); + setSpining(rightSpin); + },[rightSpin]) + useEffect(()=>{ + if(projectId && stageNumber && step){ + const url = `/${owner}/${projectId}/builds/${opsId}/logs/${stageNumber}/${step && step.number}.json`; + axios.get(url).then(result=>{ + if(result){ + setCoders(result.data); + setSpining(false); + }else{ + setEmpty(true); + } + }).catch(error=>{ + console.log(error); + }) } - },[stages]) + },[projectId , stageNumber, step]) return ( -
    - {list && list.length>0 ? list.map((item, key) => { - return ( -
    - - {item.name} - - { item.stopped ? (parseInt(item.stopped) - parseInt(item.started)) : "0" } - - - -
    - ); - }):"1111" - } -
    + +
    +
    + + {step && step.name} + + { step && step.duration_time} + + + +
    + { + coders && coders.length>0 ? coders.map((item,key)=>{ + return( +
    + {key+1} +

    {item.out}

    +
    + ) + }): + empty ? +
    + 1 +

    {stageName} – {step && step.name}: Skipped

    +
    + :"" + } +
    +
    +
    +
    ); -}; +}); diff --git a/src/forge/DevOps/Structure.jsx b/src/forge/DevOps/Structure.jsx index 6c78ca04..eceb95d5 100644 --- a/src/forge/DevOps/Structure.jsx +++ b/src/forge/DevOps/Structure.jsx @@ -2,80 +2,69 @@ import React, { useState, useEffect } from "react"; import { FlexAJ, AlignCenter, Blueback } from "../Component/layout"; import { Table, Pagination, Popconfirm } from "antd"; import { truncateCommitId } from "../common/util"; +import {getUrl} from 'educoder'; import styled from "styled-components"; import axios from "axios"; -import { Time } from "../Utils/Time"; const STATUS = [ - { name: "所有", value: "1" }, - { name: "准备中", value: "2" }, - { name: "运行中", value: "3" }, - { name: "已完成", value: "4" }, + { name: "所有"}, + { name: "准备中", value: "pending" }, + { name: "构建失败", value: "failure" }, + { name: "运行中", value: "running" }, + { name: "已完成", value: "success" }, ]; const LIMIT = 15; -const Img = styled.img` - { - border-radius: 50%; - margin-rigth: 10px; - width: 25px; - height: 25px; - } -`; export default (props) => { - const [status, setStatus] = useState("1"); + const [status, setStatus] = useState(undefined); const [page, setPage] = useState(1); - const [total, setTotal] = useState(10); + const [total, setTotal] = useState(0); const [data, setData] = useState(undefined); const [tableLoading, setTableLoading] = useState(true); - let projectsId = props.match.params.projectsId; + let projectsId = props.match.params.projectsId; + let owner = props.match.params.owner; + useEffect(() => { if (projectsId) { Init(); } }, []); - - function Init() { - const url = "/dev_ops/builds.json"; - axios - .get(url, { - params: { - project_id: projectsId, - }, - }) - .then((result) => { - if (result) { - let list = - result.data && - result.data.map((item, key) => { - return { - status: item.status, - author: item.sender, - message: { - branch: item.source, - image: item.author_avatar, - message: item.message, - sha: truncateCommitId(item.after), - }, - started: item.started - ? Time(parseInt(item.started) * 1000) - : "--", - timestamp: item.timestamp, - number: item.number, - id:item.id - }; - }); - setData(list); - setTableLoading(false); - } - }) - .catch((error) => { - console.log(error); - }); + let current_user = props.current_user; + function Init(status) { + const url = `/${owner}/${projectsId}/builds.json`; + axios.get(url,{ + params:{ + search:status, + page,limit:LIMIT + } + }).then((result) => { + if (result && result.data) { + console.log(result); + let list = result.data.builds && result.data.builds.map((item, key) => { + return { + ...item, + author:item.author && item.author.name, + message: { + branch: item.branch_target, + message: item.message, + sha: truncateCommitId(item.build_after_sha), + }, + started: item.started || "--" + }; + }); + setTotal(result.data.total_count); + setData(list); + setTableLoading(false); + } + }) + .catch((error) => { + console.log(error); + }); } function ChangeStatus(value) { setStatus(value); + Init(value); } // 切换分页 function ChangePage(page) { @@ -98,8 +87,10 @@ export default (props) => { ); } function renderStatusBtn(status, number) { - if (status === "failure" || status === "success") { - return ( + if (status === "failure" || status === "error" || status === "success") { + return ""; + }else if(status === "killed"){ + return( repeatSet(e,number)} @@ -128,36 +119,32 @@ export default (props) => { function repeatSet(e,number) { e.stopPropagation(); setTableLoading(true); - const url = `/dev_ops/builds/${number}.json`; - axios.post(url, { project_id: projectsId }) - .then((result) => { - if (result) { - props.showNotification("工作流正在重新构建!"); - Init(); - } - }) - .catch((error) => { - console.log(error); - }); + const url = `/${owner}/${projectsId}/builds/${number}/restart.json`; + axios.post(url).then((result) => { + if (result) { + props.showNotification("工作流正在重新构建!"); + Init(); + } + }) + .catch((error) => { + console.log(error); + }); } // 撤销构建 function cancelSet(e,number) { e.stopPropagation(); setTableLoading(true); - const url = `/dev_ops/builds/${number}.json`; - axios.delete(url, { - params:{project_id: projectsId} - }) - .then((result) => { - if (result) { - props.showNotification("撤销构建成功!"); - Init(projectsId); - } - }) - .catch((error) => { - console.log(error); - }); + const url = `/${owner}/${projectsId}/builds/${number}/stop.json`; + axios.delete(url).then((result) => { + if (result) { + props.showNotification("撤销构建成功!"); + Init(projectsId); + } + }) + .catch((error) => { + console.log(error); + }); } function renderTableStatus(status) { @@ -168,7 +155,7 @@ export default (props) => { 运行中 ); - case "failure": + case "failure": case 'error': return ( 未通过 @@ -180,7 +167,13 @@ export default (props) => { 已通过 ); - default: + case 'killed': + return ( + + 已撤销 + + ); + case 'pending': return ( 准备中 @@ -190,7 +183,7 @@ export default (props) => { } function clickRows(event,e){ - props.history.push(`/projects/${projectsId}/ops/${e.number}/detail`); + props.history.push(`/projects/${owner}/${projectsId}/devops/${e.number}/detail`); } const column = [ { @@ -199,6 +192,7 @@ export default (props) => { key: "number", width: "8%", render: ( value, item, key) => { + console.log(item); return #{value}; }, }, @@ -237,7 +231,7 @@ export default (props) => { {meg.sha && {meg.sha}} - +
    {meg.message}
    @@ -257,11 +251,11 @@ export default (props) => { }, { title: "运行时间", - dataIndex: "timestamp", - key: "timestamp", + dataIndex: "duration_time", + key: "duration_time", width: "15%", render: (value, item, key) => { - return {value || value === 0 ? `${value}s` : "--"}; + return {value || "--"}; }, }, { @@ -277,16 +271,14 @@ export default (props) => {
    {renderStatus()} - - 手动创建 - + 手动创建 + {/* 分支 标签 - - + */} { diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss index 9aa790da..891d7e37 100644 --- a/src/forge/DevOps/ops.scss +++ b/src/forge/DevOps/ops.scss @@ -12,8 +12,14 @@ .disposePanel{ .language{ display: flex; + margin-bottom: 20px; li{ margin-right: 20px; + cursor: pointer; + border:1px solid #fff; + &.active{ + border:1px solid #5091FF; + } } } .editorBody{ @@ -36,6 +42,7 @@ top:7px; } .listPart{ + min-height: 400px; .listNav{ display: flex; li{ @@ -63,6 +70,7 @@ .ant-table-thead > tr > th, .ant-table-tbody > tr > td{ padding:10px 5px; color:#333; + cursor: pointer; } .ant-table-thead{ border:1px solid rgba(238,238,238,1) @@ -106,6 +114,11 @@ border:1px solid #F73030; color:#F73030 ; } + &.killed{ + background:#eee; + border:1px solid #999; + color:#999 ; + } } } @@ -208,6 +221,10 @@ border:1px solid rgba(255,110,33,1); color:rgba(255,110,33,1); } + &.killed{ + border:1px solid #999; + color:#999; + } } } &.rightSection{ @@ -215,6 +232,8 @@ background-color: #081930; .rightMainContent{ padding:24px 30px; + height:100vh; + overflow-y: auto; & > div{ margin-bottom: 12px; .items{ @@ -267,4 +286,20 @@ cursor: col-resize; } } +} +.opsDetailOut{ + display: flex; + color: #fff; + line-height: 22px; + align-items: flex-start; + margin-top: 5px; + &>span{ + margin-right: 10px; + min-width: 20px; + text-align: left; + padding-left: 3px; + } + &>p{ + margin-bottom: 0px; + } } \ No newline at end of file diff --git a/src/forge/DevOps/opsDetail.jsx b/src/forge/DevOps/opsDetail.jsx index 52f20796..0ee2a69d 100644 --- a/src/forge/DevOps/opsDetail.jsx +++ b/src/forge/DevOps/opsDetail.jsx @@ -12,9 +12,14 @@ import { Link } from "react-router-dom"; export default (props) => { const [data, setData] = useState(undefined); const [stages, setStages] = useState(undefined); + const [ rightStageName , setRightStageName ] = useState(undefined); + const [rightStep, setRightStep] = useState(undefined); + const [rightSpin, setRightSpin] = useState(false); + const [rightStageNumber, setRightStageNumber] = useState(undefined); const [spinning, setSpinning] = useState(true); let projectId = props.match.params.projectId; + let owner = props.match.params.owner; let opsId = props.match.params.opsId; useEffect(() => { @@ -24,40 +29,66 @@ export default (props) => { }, [opsId]); function Init() { - const url = `/dev_ops/builds/${opsId}.json`; - axios - .get(url, { - params: { - project_id: projectId, - }, - }) - .then((result) => { + const url = `/${owner}/${projectId}/builds/${opsId}.json`; + axios.get(url).then((result) => { + if (result && result.data) { + setSpinning(false); + setData(result.data); + let stages = result.data.stages; + setStages(stages); + let firstStage = stages && stages.length > 0 && stages[0]; + let firstStep = firstStage && firstStage.steps && firstStage.steps.length>0 && firstStage.steps[0]; + setRightStep(firstStep); + setRightSpin(true); + setRightStageName(firstStage && firstStage.name); + setRightStageNumber(firstStage && firstStage.number); + } + }) + .catch((error) => { + console.log(error); + setSpinning(false); + }); + } + + // 重新构建 + function repeatSet(e,type,number) { + if(type==="repeat"){ + // 重新构建 + const url = `/${owner}/${projectId}/builds/${number}/restart.json`; + axios.post(url).then((result) => { if (result && result.data) { - setSpinning(false); - setData(result.data); - setStages( - result.data.stages && result.data.stages.length > 0 ? result.data.stages[0] : undefined - ); + props.showNotification("工作流正在重新构建!"); + props.history.push(`/projects/${owner}/${projectId}/devops/${result.data.number}/detail`); } }) .catch((error) => { console.log(error); }); - } - - // 重新构建 - function repeatSet() { - const url = `/dev_ops/builds/${data && data.number}.json`; - axios - .post(url, { project_id: projectId }) - .then((result) => { + }else{ + // 撤销构建 + const url = `/${owner}/${projectId}/builds/${number}/stop.json`; + axios.delete(url).then((result) => { if (result) { + props.showNotification("撤销构建成功!"); Init(); } }) .catch((error) => { console.log(error); }); + } + } + + function chooseSteps(stageN,stepN,stageName){ + if(stageN && stepN && stages){ + let stage = stages && stages.length>0 && stages.filter(item=>item.number===stageN)[0]; + let s = stage.steps && stage.steps.length > 0 && stage.steps.filter(item=>item.id===stepN); + + s && s.length>0 && setRightStep(s[0]); + setRightStageNumber(stageN); + setRightStageName(stageName); + setRightSpin(true); + } } return ( @@ -70,9 +101,9 @@ export default (props) => { - 退出 + 退出
    @@ -84,10 +115,10 @@ export default (props) => { defaultSize="40%" >
    - +
    - +
    diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index ceaba628..6d59fdf9 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -134,6 +134,8 @@ function checkPathname(pathname){ name="activity" }else if(pathname.indexOf("/setting")>-1){ name="setting" + }else if(pathname.indexOf("/devops")>-1){ + name="devops" } } return name; @@ -159,6 +161,7 @@ class Detail extends Component { project: null, firstSync:false, secondSync:false, + open_devops:false, } } @@ -180,8 +183,21 @@ class Detail extends Component { axios.get(url).then((result) => { if (result && result.data) { this.setState({ - project: result.data + project: result.data, + open_devops:result.data.open_devops }) + + // 工作流:两种状态进入的链接不同 + const pathname = this.props.history.location.pathname; + let p = checkPathname(pathname); + if(p==="devops"){ + if(result.data.open_devops && pathname === `/projects/${owner}/${projectsId}/devops`){ + this.props.history.push(`/projects/${owner}/${projectsId}/devops/list`); + }else if(result.data.open_devops===false && pathname !== `/projects/${owner}/${projectsId}/devops`){ + this.props.history.push(`/projects/${owner}/${projectsId}/devops`); + } + } + if (result.data.type !== 0 && result.data.mirror_status === 1) { console.log("--------start channel --------"); // 是镜像项目,且未完成迁移 @@ -207,6 +223,13 @@ class Detail extends Component { } }) } + + // 工作流激活后修改状态 + changeOpenDevops=(flag)=>{ + this.setState({ + open_devops:flag + }) + } canvasChannel = () => { const name = window.location.hostname === "localhost" ? "testforgeplus.trustie.net" : window.location.hostname; const actioncable = require("actioncable"); @@ -234,7 +257,7 @@ class Detail extends Component { const { projectsId , owner } = this.props.match.params; const url = `/${owner}/${projectsId}.json`; axios.get(url).then((result) => { - if (result) { + if (result && result.data) { this.setState({ projectDetail: result.data, project_id: result.data.project_id, @@ -337,7 +360,11 @@ class Detail extends Component { render() { - const { projectDetail, watchers_count, praises_count, forked_count, firstSync , secondSync , isManager, watched, praised, project } = this.state; + const { projectDetail, watchers_count, praises_count, + forked_count, firstSync , secondSync , + isManager, watched, praised, + project , open_devops } = this.state; + const url = this.props.history.location.pathname; const urlArr = url.split("/"); const urlFlag = (urlArr.length === 3); @@ -361,7 +388,8 @@ class Detail extends Component { const common = { - getDetail: this.getDetail + getDetail: this.getDetail, + changeOpenDevops:this.changeOpenDevops } return (
    @@ -391,10 +419,11 @@ class Detail extends Component { projectDetail.type === 2 ? - : + + : - - + + :"" } @@ -458,12 +487,12 @@ class Detail extends Component { } - {/*
  • -1 ? "active" : ""}> - +
  • + 工作流 {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} -
  • */} +
  • 里程碑 @@ -494,7 +523,7 @@ class Detail extends Component { {/* 工作流 */} - () } From a09b81df3fe8e06774b27918ca235313250b6884 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 26 Aug 2020 17:11:42 +0800 Subject: [PATCH 004/164] devops --- src/forge/DevOps/About.jsx | 1 - src/forge/DevOps/Dispose.jsx | 5 ++++- src/forge/DevOps/DisposeModal.jsx | 4 ++-- src/forge/DevOps/Structure.jsx | 2 -- src/forge/Main/Detail.js | 18 +++++++++++------- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 6e382cb0..f2b9a130 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -120,7 +120,6 @@ function About(props, ref) { }else{ s=step+num; } - console.log(s); setStep(s); } diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx index 5be238db..54b8fe5f 100644 --- a/src/forge/DevOps/Dispose.jsx +++ b/src/forge/DevOps/Dispose.jsx @@ -12,6 +12,7 @@ function Dispose(props){ const [ info , setInfo ] = useState('.trustie-pipeline.yml'); const [ visible , setVisible ] = useState(false); const [ ymlValue , setYmlValue ] = useState(""); + const [ sha , setSha ] = useState(undefined); const [ six , setSix ] = useState(undefined); const [ fileLanguage , setFileLanguage ] = useState(undefined); const [ first , setFirst ] = useState(false); @@ -31,6 +32,7 @@ function Dispose(props){ setInfo(result.data.name); setYmlValue(result.data.content); setFirst(true); + setSha(result.data.sha); }else{ setFirst(false); } @@ -66,7 +68,7 @@ function Dispose(props){ url = `/${owner}/${projectsId}/update_trustie_pipeline.json`; axios.put(url,{ ...params, - sha:info && info.sha + sha }).then(result=>{ if(result){ setVisible(true); @@ -86,6 +88,7 @@ function Dispose(props){ } } function suresubmit(){ + setVisible(false); props.history.push(`/projects/${owner}/${projectsId}/devops/list`); } diff --git a/src/forge/DevOps/DisposeModal.jsx b/src/forge/DevOps/DisposeModal.jsx index 1ef263c7..67aa72c4 100644 --- a/src/forge/DevOps/DisposeModal.jsx +++ b/src/forge/DevOps/DisposeModal.jsx @@ -8,7 +8,7 @@ const Div = styled.div`{ text-align:center; color:#333; }` -export default (({visible , closeFunc , suresubmit})=>{ +export default (({visible , closeFunc , sureFunc})=>{ return( { footer={
    - +
    } onCancel={()=>closeFunc(false)} diff --git a/src/forge/DevOps/Structure.jsx b/src/forge/DevOps/Structure.jsx index eceb95d5..e292c0a2 100644 --- a/src/forge/DevOps/Structure.jsx +++ b/src/forge/DevOps/Structure.jsx @@ -39,7 +39,6 @@ export default (props) => { } }).then((result) => { if (result && result.data) { - console.log(result); let list = result.data.builds && result.data.builds.map((item, key) => { return { ...item, @@ -192,7 +191,6 @@ export default (props) => { key: "number", width: "8%", render: ( value, item, key) => { - console.log(item); return #{value}; }, }, diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 6d59fdf9..55f25e30 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -363,7 +363,7 @@ class Detail extends Component { const { projectDetail, watchers_count, praises_count, forked_count, firstSync , secondSync , isManager, watched, praised, - project , open_devops } = this.state; + project , open_devops , author } = this.state; const url = this.props.history.location.pathname; const urlArr = url.split("/"); @@ -487,12 +487,16 @@ class Detail extends Component {
  • } -
  • - - 工作流 - {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} - -
  • + { + current_user && author && current_user.login === author.login ? +
  • + + 工作流 + {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} + +
  • :"" + } +
  • 里程碑 From ec073cdf712351ad868cf0513ee437c1891a9ace Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 26 Aug 2020 18:37:15 +0800 Subject: [PATCH 005/164] .json --- src/forge/DevOps/About.jsx | 2 +- src/forge/Main/CoderRootDirectory.js | 27 +++++++++++++-------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index f2b9a130..88c6e523 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -128,7 +128,7 @@ function About(props, ref) { validateFields((error, values) => { if(!error){ setIsSpining(true); - const url = `/${owner}/${projectsId}/cloud_accounts/${cloudAccount && cloudAccount.id}/activate`; + const url = `/${owner}/${projectsId}/cloud_accounts/${cloudAccount && cloudAccount.id}/activate.json`; axios.post(url,{ ...values }).then(result=>{ diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 40d9081d..eac5549e 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -82,6 +82,7 @@ class CoderRootDirectory extends Component { this.setState({ filePath: url, }); + console.log('filepath',url); this.getFileDetail(url); } else { const { branch } = this.state; @@ -357,7 +358,6 @@ class CoderRootDirectory extends Component { } title = (branchLastCommit,lastCommitAuthor) => { - console.log(branchLastCommit) if (branchLastCommit) { return (
    @@ -458,19 +458,18 @@ class CoderRootDirectory extends Component { > {projectDetail && projectDetail.identifier} - {array && - array.map((item, key) => { - return ( - - { - key === array.length-1 ? - {item} - : - this.returnUlr(`${key === 0 ? `${item}` :`${array[key-1]}/${item}`}`)} className="color-blue subFileName">{item} - } - - ); - })} + { array && array.map((item, key) => { + return ( + + { + key === array.length-1 ? + {item} + : + this.returnUlr(`${key === 0 ? `${item}` :`${array[key-1]}/${item}`}`)} className="color-blue subFileName">{item} + } + + ); + })} )}
    From 42a1418181d12636cff834d6c64e661bdb7ef58f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 27 Aug 2020 10:26:28 +0800 Subject: [PATCH 006/164] path --- src/forge/Main/CoderRootDirectory.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index eac5549e..6f7e3eda 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -19,6 +19,16 @@ import axios from "axios"; * subfileType:保存当前点击目录的文件类型(显示目录列表时才显示新建文件,如果点击的是文件就不显示新建文件按钮) * readMeContent:根目录下面的readme文件内容 */ +function getPathUrl(array,index){ + if(array && array.length>0 && index){ + let str = ""; + for(let i=0;i{item} : - this.returnUlr(`${key === 0 ? `${item}` :`${array[key-1]}/${item}`}`)} className="color-blue subFileName">{item} + this.returnUlr(`${getPathUrl(array,key+1)}`)} className="color-blue subFileName">{item} } ); From 81f9e9728e30bfeee246b6f4525640ec8fbcf23d Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 27 Aug 2020 10:27:31 +0800 Subject: [PATCH 007/164] path --- src/forge/Main/CoderRootDirectory.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 40d9081d..08363549 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -19,7 +19,15 @@ import axios from "axios"; * subfileType:保存当前点击目录的文件类型(显示目录列表时才显示新建文件,如果点击的是文件就不显示新建文件按钮) * readMeContent:根目录下面的readme文件内容 */ - +function getPathUrl(array,index){ + if(array && array.length>0 && index){ + let str = ""; + for(let i=0;i{item} : - this.returnUlr(`${key === 0 ? `${item}` :`${array[key-1]}/${item}`}`)} className="color-blue subFileName">{item} + this.returnUlr(`${getPathUrl(array,key+1)}`)} className="color-blue subFileName">{item} } ); From 3abbaa889946893e76dd16e38c6d58be4eb39a5f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 27 Aug 2020 15:15:03 +0800 Subject: [PATCH 008/164] devops --- src/forge/DevOps/About.jsx | 120 ++++++++++++----------- src/forge/DevOps/Dispose.jsx | 1 - src/forge/DevOps/OpsDetailLeftpanel.jsx | 6 +- src/forge/DevOps/OpsDetailRightpanel.jsx | 86 ++++++++++------ src/forge/DevOps/opsDetail.jsx | 28 ++---- src/forge/Main/Detail.js | 16 ++- 6 files changed, 136 insertions(+), 121 deletions(-) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 88c6e523..02d45a5b 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -35,6 +35,8 @@ function About(props, ref) { const owner = props.match.params.owner; const projectsId = props.match.params.projectsId; + const AuthorLogin = props.author && props.author.login; + const CurrentLogin = props.current_user && props.current_user.login; useEffect(()=>{ auth('get'); @@ -188,68 +190,74 @@ function About(props, ref) {

  • - -

    定义DevOps工作流,帮助您检测bug、发布代码…

    - - 了解什么是DevOps? - - {step <=1? + +

    定义DevOps工作流,帮助您检测bug、发布代码…

    + + 了解什么是DevOps? + + { + AuthorLogin === CurrentLogin ? -
    -

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    - {helper( - "服务器IP地址:", - "ip_num", - [{ required: true, message: "请输入服务器IP地址" }], - , - true - )} - {helper( - "服务器用户名:", - "account", - [{ required: true, message: "请输入服务器用户名" }], - , - true - )} - {helper( - "服务器密码:", - "secret", - [{ required: true, message: "请输入服务器密码" }], - , - true - )} - - 下一步 -
    - :""} - - {step >= 2 &&( -
    + { step <= 1 ? +
    -

    认证成功后,请前往{cloudAccount && cloudAccount.get_drone_token_url}获取token值,并将获取的token值填入输入框

    +

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    {helper( - "token值:", - "drone_token", - [{ required: true, message: "请输入token值" }], - , + "服务器IP地址:", + "ip_num", + [{ required: true, message: "请输入服务器IP地址" }], + , + true + )} + {helper( + "服务器用户名:", + "account", + [{ required: true, message: "请输入服务器用户名" }], + , + true + )} + {helper( + "服务器密码:", + "secret", + [{ required: true, message: "请输入服务器密码" }], + , true )} -
    - { - step === 2? - 开始激活 - : - 完成 - } -
    -
    - )} + 下一步 + + :""} + {step >= 2 &&( +
    +
    +

    认证成功后,请前往{cloudAccount && cloudAccount.get_drone_token_url}获取token值,并将获取的token值填入输入框

    + {helper( + "token值:", + "drone_token", + [{ required: true, message: "请输入token值" }], + , + true + )} +
    + { + step === 2? + 开始激活 + : + 完成 + } +
    + +
    + )} + + :"" + } +
    ); diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx index 54b8fe5f..d4bd543b 100644 --- a/src/forge/DevOps/Dispose.jsx +++ b/src/forge/DevOps/Dispose.jsx @@ -19,7 +19,6 @@ function Dispose(props){ let projectsId = props.match.params.projectsId; let owner = props.match.params.owner; - useEffect(()=>{ if(projectsId){ const url = `/${owner}/${projectsId}/get_trustie_pipeline.json`; diff --git a/src/forge/DevOps/OpsDetailLeftpanel.jsx b/src/forge/DevOps/OpsDetailLeftpanel.jsx index 40d396e4..2df2d0a4 100644 --- a/src/forge/DevOps/OpsDetailLeftpanel.jsx +++ b/src/forge/DevOps/OpsDetailLeftpanel.jsx @@ -62,8 +62,8 @@ export default ({ data, repeatSet , chooseSteps }) => { } } - function clickSub(e,stageN,stepN,stageName){ - chooseSteps(stageN,stepN,stageName); + function clickSub(e,stageN,stepN){ + chooseSteps(stageN,stepN); } return ( @@ -107,7 +107,7 @@ export default ({ data, repeatSet , chooseSteps }) => { > {item.steps.map((i, k) => { return ( - clickSub(e,item.number,i.id,item.name)}> + clickSub(e,item.number,i.id)}> {i.name} {i.status ? TagsLine(i.status) : ""} diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index 17a45dbd..f5ca0a8a 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -3,16 +3,38 @@ import { Spin } from 'antd'; import { FlexAJ, AlignCenter } from "../Component/layout"; import axios from 'axios'; -export default (({ step , stageNumber , stageName , projectId , owner , opsId , rightSpin }) => { +export default (({ data , stepN , stageN , projectId , owner , opsId , rightSpin }) => { const [ coders , setCoders ] = useState(undefined); const [ empty , setEmpty ] = useState(false); const [ spining , setSpining ] = useState(true); + const [ stage , setStage]= useState(undefined); + const [ step , setStep]= useState(undefined); useEffect(()=>{ setSpining(rightSpin); },[rightSpin]) + useEffect(()=>{ - if(projectId && stageNumber && step){ - const url = `/${owner}/${projectId}/builds/${opsId}/logs/${stageNumber}/${step && step.number}.json`; + if(data){ + let stages = data.stages; + if(stages && stages.length>0){ + let pre = stageN ? stages.filter(item=>item.number===stageN)[0] : stages[0]; + setStage(pre); + let p = pre && pre.steps; + let sub = stepN ? p && p.length > 0 && p.filter(item=>item.id===stepN)[0] : p[0]; + + setStep(sub); + if(sub){ + getStep(pre.number,sub.number); + } + }else{ + setSpining(false); + } + } + },[data,stageN,stepN]) + + function getStep(stageN,stepN){ + if(stageN && stepN){ + const url = `/${owner}/${projectId}/builds/${opsId}/logs/${stageN}/${stepN}.json`; axios.get(url).then(result=>{ if(result){ setCoders(result.data); @@ -24,38 +46,42 @@ export default (({ step , stageNumber , stageName , projectId , owner , opsId , console.log(error); }) } - },[projectId , stageNumber, step]) - + } return (
    -
    - - {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 -

    {stageName} – {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 }
    + }
    ); diff --git a/src/forge/DevOps/opsDetail.jsx b/src/forge/DevOps/opsDetail.jsx index 0ee2a69d..92f620a7 100644 --- a/src/forge/DevOps/opsDetail.jsx +++ b/src/forge/DevOps/opsDetail.jsx @@ -11,11 +11,9 @@ import { Link } from "react-router-dom"; export default (props) => { const [data, setData] = useState(undefined); - const [stages, setStages] = useState(undefined); - const [ rightStageName , setRightStageName ] = useState(undefined); - const [rightStep, setRightStep] = useState(undefined); + const [stageN, setStageN] = useState(undefined); + const [stepN, setStepN] = useState(undefined); const [rightSpin, setRightSpin] = useState(false); - const [rightStageNumber, setRightStageNumber] = useState(undefined); const [spinning, setSpinning] = useState(true); let projectId = props.match.params.projectId; @@ -34,14 +32,6 @@ export default (props) => { if (result && result.data) { setSpinning(false); setData(result.data); - let stages = result.data.stages; - setStages(stages); - let firstStage = stages && stages.length > 0 && stages[0]; - let firstStep = firstStage && firstStage.steps && firstStage.steps.length>0 && firstStage.steps[0]; - setRightStep(firstStep); - setRightSpin(true); - setRightStageName(firstStage && firstStage.name); - setRightStageNumber(firstStage && firstStage.number); } }) .catch((error) => { @@ -79,14 +69,10 @@ export default (props) => { } } - function chooseSteps(stageN,stepN,stageName){ - if(stageN && stepN && stages){ - let stage = stages && stages.length>0 && stages.filter(item=>item.number===stageN)[0]; - let s = stage.steps && stage.steps.length > 0 && stage.steps.filter(item=>item.id===stepN); - - s && s.length>0 && setRightStep(s[0]); - setRightStageNumber(stageN); - setRightStageName(stageName); + function chooseSteps(pre,sub){ + if(pre && sub){ + setStepN(sub); + setStageN(pre); setRightSpin(true); } } @@ -118,7 +104,7 @@ export default (props) => {
    - +
    diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 55f25e30..9d12a23d 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -487,16 +487,12 @@ class Detail extends Component { } - { - current_user && author && current_user.login === author.login ? -
  • - - 工作流 - {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} - -
  • :"" - } - +
  • + + 工作流 + {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} + +
  • 里程碑 From cccdfeab325ceb1afa412b0909a9da6f5d5db643 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 28 Aug 2020 11:58:32 +0800 Subject: [PATCH 009/164] build --- src/forge/DevOps/About.jsx | 189 ++++++----------------- src/forge/DevOps/OpsDetailRightpanel.jsx | 115 ++++++++------ src/forge/Newfile/Index.js | 4 +- 3 files changed, 113 insertions(+), 195 deletions(-) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 02d45a5b..0d3fc347 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -3,8 +3,9 @@ import activate from "../Images/activate.png"; import { Blueback } from "../Component/layout"; import styled from "styled-components"; import { Link } from "react-router-dom"; -import { Form, Input, Modal, Button , Spin } from "antd"; +import { Form, Input , Spin } from "antd"; import axios from "axios"; +import { ceil } from "lodash"; const P = styled.p` { @@ -19,22 +20,20 @@ const P = styled.p` `; function About(props, ref) { const { form: { getFieldDecorator, validateFields , setFieldsValue } } = props; - const [isSpining, setIsSpining] = useState(false); + const [isSpining, setIsSpining] = useState(true); //0: 标识未开启devops //1: 标识用户已填写了云服务器相关信息,但并未开启认证 - //2: 标识用户已开启了CI服务端的认证 - //3: 标识用户ci服务已初始化 const [step, setStep] = useState(undefined); - // step等于1时:不能修改服务器信息提示用户去认证 - const [visible, setVisible] = useState(false); // step大于1时:为true,不能再修改服务器信息 const [firstCompleted, setFirstCompleted] = useState(false); const [ redirectUrl ,setRedirectUrl ] = useState(undefined); - const [ cloudAccount , setCloudAccount ] = useState(undefined); + const [ cloudAccount , setCloudAccount] = useState(undefined); const owner = props.match.params.owner; const projectsId = props.match.params.projectsId; + + const AuthorLogin = props.author && props.author.login; const CurrentLogin = props.current_user && props.current_user.login; @@ -49,21 +48,10 @@ function About(props, ref) { url }).then(result=>{ if(result && result.data ){ - let s = result.data.step; - setStep(s); - if(s >= 1){ - setFirstCompleted(true); - if(s===1){ - setVisible(true); - } - let cloud_account = result.data.cloud_account; - setCloudAccount(cloud_account); - setRedirectUrl(cloud_account.authenticate_url); - cloud_account && setFieldsValue({ - ...cloud_account, - ip_num:cloud_account.ip - }); - } + setIsSpining(false); + setStep(result.data.step); + setCloudAccount(result.data.cloud_account); + setRedirectUrl(result.data.cloud_account &&result.data.cloud_account.authenticate_url); } }).catch(error=>{ console.log(error); @@ -83,122 +71,54 @@ function About(props, ref) { ); // 下一步 function goStep() { - if (!firstCompleted) { - setIsSpining(true); - props.showNotification("服务器连接绑定中,请耐心等候!"); - validateFields((error, values) => { - if (!error) { - const url = `/${owner}/${projectsId}/cloud_accounts.json`; - axios.post(url, {...values}) - .then((result) => { - setIsSpining(false); - if (result && result.data.redirect_url) { - setVisible(true); - setFirstCompleted(true); - setRedirectUrl(result.data.redirect_url); - } - }) - .catch((error) => { - console.log(error); - setVisible(false); - }); - } - }); - } else { - setVisible(true); - } - } - // 弹框确定 - function sure(){ - setVisible(false); - minusPlus(1); - auth('put'); - } - - function minusPlus(num,flag){ - let s = 0; - if(flag){ - s=step-num; - }else{ - s=step+num; - } - setStep(s); + setIsSpining(true); + props.showNotification("服务器连接绑定中,请耐心等候!"); + validateFields((error, values) => { + if (!error) { + const url = `/${owner}/${projectsId}/cloud_accounts.json`; + axios.post(url, {...values}).then((result) => { + setIsSpining(false); + if (result && result.data.redirect_url) { + setRedirectUrl(result.data.redirect_url); + setStep(1); + } + }) + .catch((error) => { + console.log(error); + }); + } + }); } // 开始激活 function startActive(){ - validateFields((error, values) => { - if(!error){ - setIsSpining(true); - const url = `/${owner}/${projectsId}/cloud_accounts/${cloudAccount && cloudAccount.id}/activate.json`; - axios.post(url,{ - ...values - }).then(result=>{ - setIsSpining(false); - if(result && result.data.status === 0){ - props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`); - // 需要将顶部的open_devops修改 - let { changeOpenDevops } = props; - changeOpenDevops && changeOpenDevops(true); - }else{ - props.showNotification('激活失败,请稍后再试!'); - } - }).catch(error=>{ - console.log(error); - }) + setIsSpining(true); + const url = `/${owner}/${projectsId}/cloud_accounts/${cloudAccount && cloudAccount.id}/activate.json`; + axios.post(url).then(result=>{ + setIsSpining(false); + if(result && result.data.status === 0){ + props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`); + // 需要将顶部的open_devops修改 + let { changeOpenDevops } = props; + changeOpenDevops && changeOpenDevops(true); } + }).catch(error=>{ + console.log(error); + setIsSpining(false); }) } - // 完成 - function complete(){ - props.history.push(`/projects/${owner}/${projectsId}/devops/dispose`); - } return (
    - setVisible(false)} - footer={ - - - - - } - > -
    -

    - 初始化配置已完成,请前往: -
    - - {redirectUrl} - -
    - 进入认证 -

    -
    -

    定义DevOps工作流,帮助您检测bug、发布代码…

    - + 了解什么是DevOps? - + { AuthorLogin === CurrentLogin ? - { step <= 1 ? + { step === 0 ?

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    @@ -232,32 +152,15 @@ function About(props, ref) { 下一步
    :""} - {step >= 2 &&( -
    - -

    认证成功后,请前往{cloudAccount && cloudAccount.get_drone_token_url}获取token值,并将获取的token值填入输入框

    - {helper( - "token值:", - "drone_token", - [{ required: true, message: "请输入token值" }], - , - true - )} -
    - { - step === 2? - 开始激活 - : - 完成 - } -
    - + {step === 1 &&( +
    +

    初始化配置已完成,请前往:
    {redirectUrl} 进入认证

    + 开始激活
    )} :"" } -
    ); diff --git a/src/forge/DevOps/OpsDetailRightpanel.jsx b/src/forge/DevOps/OpsDetailRightpanel.jsx index f5ca0a8a..5f4dacf9 100644 --- a/src/forge/DevOps/OpsDetailRightpanel.jsx +++ b/src/forge/DevOps/OpsDetailRightpanel.jsx @@ -1,88 +1,105 @@ -import React, {useState,useEffect} from "react"; -import { Spin } from 'antd'; +import React, { useState, useEffect } from "react"; +import { Spin } from "antd"; import { FlexAJ, AlignCenter } from "../Component/layout"; -import axios from 'axios'; +import axios from "axios"; -export default (({ data , stepN , stageN , projectId , owner , opsId , rightSpin }) => { - const [ coders , setCoders ] = useState(undefined); - const [ empty , setEmpty ] = useState(false); - const [ spining , setSpining ] = useState(true); - const [ stage , setStage]= useState(undefined); - const [ step , setStep]= useState(undefined); - useEffect(()=>{ +export default ({ + data, + stepN, + stageN, + projectId, + owner, + opsId, + rightSpin, +}) => { + const [coders, setCoders] = useState(undefined); + const [empty, setEmpty] = useState(false); + const [spining, setSpining] = useState(true); + const [stage, setStage] = useState(undefined); + const [step, setStep] = useState(undefined); + useEffect(() => { setSpining(rightSpin); - },[rightSpin]) + }, [rightSpin]); - useEffect(()=>{ - if(data){ + useEffect(() => { + if (data) { let stages = data.stages; - if(stages && stages.length>0){ - let pre = stageN ? stages.filter(item=>item.number===stageN)[0] : stages[0]; + if (stages && stages.length > 0) { + let pre = stageN + ? stages.filter((item) => item.number === stageN)[0] + : stages[0]; setStage(pre); let p = pre && pre.steps; - let sub = stepN ? p && p.length > 0 && p.filter(item=>item.id===stepN)[0] : p[0]; + let sub = stepN + ? p && p.length > 0 && p.filter((item) => item.id === stepN)[0] + : p[0]; setStep(sub); - if(sub){ - getStep(pre.number,sub.number); + if (sub) { + getStep(pre.number, sub.number); } - }else{ + } else { setSpining(false); } } - },[data,stageN,stepN]) + }, [data, stageN, stepN]); - function getStep(stageN,stepN){ - if(stageN && stepN){ + function getStep(stageN, stepN) { + if (stageN && stepN) { const url = `/${owner}/${projectId}/builds/${opsId}/logs/${stageN}/${stepN}.json`; - axios.get(url).then(result=>{ - if(result){ - setCoders(result.data); - setSpining(false); - }else{ - setEmpty(true); - } - }).catch(error=>{ - console.log(error); - }) + axios + .get(url) + .then((result) => { + if (result) { + setCoders(result.data); + setSpining(false); + } else { + setEmpty(true); + } + }) + .catch((error) => { + console.log(error); + }); } } return (
    - { - data && data.status !== "error" ? + {data && data.status !== "error" ? (
    {step && step.name} - { step && step.duration_time} + {step && step.duration_time}
    - { - coders && coders.length>0 ? coders.map((item,key)=>{ - return( + {coders && coders.length > 0 ? ( + coders.map((item, key) => { + return (
    - {key+1} + {key + 1}

    {item.out}

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

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

    +

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

    - :"" - } + ) : ( + "" + )}
    - : -
    error:{ data && data.error }
    - } + ) : ( +
    error:{data && data.error}
    + )}
    ); -}); +}; diff --git a/src/forge/Newfile/Index.js b/src/forge/Newfile/Index.js index 3df1614f..56eae752 100644 --- a/src/forge/Newfile/Index.js +++ b/src/forge/Newfile/Index.js @@ -51,9 +51,7 @@ class Index extends Component {
    Date: Mon, 31 Aug 2020 14:07:09 +0800 Subject: [PATCH 010/164] update --- src/forge/DevOps/About.jsx | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 0d3fc347..63f09d62 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -25,7 +25,6 @@ function About(props, ref) { //1: 标识用户已填写了云服务器相关信息,但并未开启认证 const [step, setStep] = useState(undefined); // step大于1时:为true,不能再修改服务器信息 - const [firstCompleted, setFirstCompleted] = useState(false); const [ redirectUrl ,setRedirectUrl ] = useState(undefined); const [ cloudAccount , setCloudAccount] = useState(undefined); @@ -38,8 +37,12 @@ function About(props, ref) { const CurrentLogin = props.current_user && props.current_user.login; useEffect(()=>{ - auth('get'); - },[]) + if(CurrentLogin === AuthorLogin){ + auth('get'); + }else{ + setIsSpining(false); + } + },[AuthorLogin,CurrentLogin]) function auth(type){ const url = `/${owner}/${projectsId}/ci_authorize.json`; @@ -71,20 +74,21 @@ function About(props, ref) { ); // 下一步 function goStep() { - setIsSpining(true); - props.showNotification("服务器连接绑定中,请耐心等候!"); validateFields((error, values) => { if (!error) { + setIsSpining(true); const url = `/${owner}/${projectsId}/cloud_accounts.json`; axios.post(url, {...values}).then((result) => { setIsSpining(false); if (result && result.data.redirect_url) { + props.showNotification("服务器信息配置完成!"); setRedirectUrl(result.data.redirect_url); setStep(1); } }) .catch((error) => { console.log(error); + setIsSpining(false); }); } }); @@ -112,7 +116,7 @@ function About(props, ref) {

    定义DevOps工作流,帮助您检测bug、发布代码…

    - + 了解什么是DevOps? { @@ -120,7 +124,7 @@ function About(props, ref) { { step === 0 ? -
    +

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    {helper( "服务器IP地址:", @@ -130,7 +134,6 @@ function About(props, ref) { placeholder="请输入服务器IP地址" style={{ width: "368px" }} size="large" - disabled={firstCompleted} />, true )} @@ -138,14 +141,14 @@ function About(props, ref) { "服务器用户名:", "account", [{ required: true, message: "请输入服务器用户名" }], - , + , true )} {helper( "服务器密码:", "secret", [{ required: true, message: "请输入服务器密码" }], - , + , true )} @@ -153,7 +156,7 @@ function About(props, ref) {
    :""} {step === 1 &&( -
    +

    初始化配置已完成,请前往:
    {redirectUrl} 进入认证

    开始激活
    From 8be0341137b86fbfbb8f8cc66e991d4dfa7a989f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 31 Aug 2020 16:31:00 +0800 Subject: [PATCH 011/164] =?UTF-8?q?=E5=9B=BE=E7=89=87=E6=94=BE=E5=A4=A7?= =?UTF-8?q?=E5=90=8E=E7=82=B9=E5=87=BB=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/page/layers/ImageLayer.js | 7 ++----- src/modules/page/layers/ImageLayerOfCommentHOC.js | 1 - src/modules/page/layers/TaskResultLayer.css | 11 ++++++++++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/page/layers/ImageLayer.js b/src/modules/page/layers/ImageLayer.js index c360e9a9..e58cabf3 100644 --- a/src/modules/page/layers/ImageLayer.js +++ b/src/modules/page/layers/ImageLayer.js @@ -1,10 +1,9 @@ import React, { Component } from 'react'; import ReactDOM from 'react-dom' import { Button, Icon } from 'antd'; -import './TaskResultLayer.css' +import './TaskResultLayer.css'; class ImageLayer extends Component { - constructor(props) { super(props); this.state = { @@ -21,13 +20,13 @@ class ImageLayer extends Component { }); } - render() { let { showImage, imageSrc, } = this.props; return ReactDOM.createPortal(
    {showImage ?
    +
    this.props.onImageLayerClose()}>
    - -
    :
    diff --git a/src/modules/page/layers/ImageLayerOfCommentHOC.js b/src/modules/page/layers/ImageLayerOfCommentHOC.js index 7745c2d6..c7810a46 100644 --- a/src/modules/page/layers/ImageLayerOfCommentHOC.js +++ b/src/modules/page/layers/ImageLayerOfCommentHOC.js @@ -16,7 +16,6 @@ export function ImageLayerOfCommentHOC(options = {}) { } onDelegateClick = (event) => { - console.log("imgclick",event); const imageSrc = event.target.src || event.target.getAttribute('src') || event.target.getAttribute('href') // 判断imageSrc是否是图片 const fileName = event.target.innerHTML.trim() diff --git a/src/modules/page/layers/TaskResultLayer.css b/src/modules/page/layers/TaskResultLayer.css index 962aed0d..70653ee1 100644 --- a/src/modules/page/layers/TaskResultLayer.css +++ b/src/modules/page/layers/TaskResultLayer.css @@ -40,8 +40,17 @@ justify-content: center; align-items: center; display: -webkit-flex; - height: 90%; + height: 100%; text-align: center; + position: absolute; + width:100%; + z-index: 4; +} +.closePanel{ + position: absolute; + width: 100%; + height: 100%; + z-index: 5; } .passImg{ max-width: 86%; From 91fdeb9fd4e17ef85b7e10f00c8c27ce6e5a595e Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 1 Sep 2020 11:29:10 +0800 Subject: [PATCH 012/164] Change Header Nav --- src/modules/tpm/NewHeader.js | 86 +++++++++++++++++------------------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 2ead4e4f..5f151c6c 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -50,7 +50,8 @@ class NewHeader extends Component { } } componentDidMount() { - this.getAppdata(); + // this.getAppdata(); + this.geturlsdata(); window._header_componentHandler = this; //下拉框的显示隐藏 @@ -547,23 +548,19 @@ class NewHeader extends Component { geturlsdata = () => { let url = "/setting.json"; axios.get(url).then((response) => { - if (response) { - if (response.data) { - this.setState({ - mygetHelmetapi2: response.data.setting - }); - localStorage.setItem('chromesetting', JSON.stringify(response.data.setting)); - localStorage.setItem('chromesettingresponse', JSON.stringify(response)); - try { - if (response.data.setting.tab_logo_url) { - this.gettablogourldata(response); - } else { - this.gettablogourlnull(); - } - } catch (e) { + if (response && response.data) { + this.setState({ mygetHelmetapi2: response.data.setting }, () => { + console.log(''); + }); + // localStorage.setItem('chromesetting', JSON.stringify(response.data.setting)); + // localStorage.setItem('chromesettingresponse', JSON.stringify(response)); + try { + if (response.data.setting.tab_logo_url) { + this.gettablogourldata(response); + } else { this.gettablogourlnull(); } - } else { + } catch (e) { this.gettablogourlnull(); } } else { @@ -571,29 +568,30 @@ class NewHeader extends Component { } }).catch((error) => { this.gettablogourlnull(); - }); } matchpaths = (url) => { const { match } = this.props; - if (url === '/forums' && match.path === '/forums') { - return true - } else if (url.startsWith('/projects') && match.path.startsWith('/projects')) { - return true - } else if (url.startsWith('/paths') && match.path.startsWith('/paths')) { - return true - } else if (url.startsWith('/courses') && match.path.startsWith('/courses')) { - return true - } else if (url.startsWith('/competitions') && match.path.startsWith('/competitions')) { - return true - } else if (url.startsWith('/statistics') && match.path.startsWith('/statistics')) { - return true - } else if (url.startsWith('/users') && match.path.startsWith('/users')) { - return true - } else { - return false + if(url){ + if (url === '/forums' && match.path === '/forums') { + return true + } else if (url.startsWith('/projects') && match.path.startsWith('/projects')) { + return true + } else if (url.startsWith('/paths') && match.path.startsWith('/paths')) { + return true + } else if (url.startsWith('/courses') && match.path.startsWith('/courses')) { + return true + } else if (url.startsWith('/competitions') && match.path.startsWith('/competitions')) { + return true + } else if (url.startsWith('/statistics') && match.path.startsWith('/statistics')) { + return true + } else if (url.startsWith('/users') && match.path.startsWith('/users')) { + return true + } else { + return false + } } } @@ -724,12 +722,12 @@ class NewHeader extends Component { this.setgoshowqqgtounp(bool)}> :"" } - this.headtypesonClick("/", false)} className={"fl mr30"}> + this.headtypesonClick("/", false)} className={"fl mr30"}> { mygetHelmetapi2 && mygetHelmetapi2.nav_logo_url && mygetHelmetapi2.nav_logo_url ? - 高校智能化教学与实训平台 + 可控开源社区 : - 高校智能化教学与实训平台 + 可控开源社区 } { @@ -741,7 +739,7 @@ class NewHeader extends Component { var new_link = item.link; var user_login = this.props.user && this.props.user.login; var is_hidden = item.hidden - if (new_link.indexOf("courses") > -1 || new_link.indexOf("contests") > -1) { + if (new_link && (new_link.indexOf("courses") > -1 || new_link.indexOf("contests") > -1)) { if (user_login) { if (new_link.indexOf("courses") > -1) { new_link = new_link.replace(/courses/g, "users/" + user_login + "/courses") @@ -752,7 +750,7 @@ class NewHeader extends Component { is_hidden = true } } - if (user_login && new_link.indexOf("homes") > -1) { + if (user_login && (new_link && new_link.indexOf("homes") > -1)) { new_link = new_link.replace(/homes/g, "users/" + user_login + "/user_activities") } return ( @@ -762,9 +760,6 @@ class NewHeader extends Component { ) }) } -
  • - 问题反馈 -
  • : "" @@ -773,9 +768,9 @@ class NewHeader extends Component { {this.props.user && this.props.user.login ?
    -
    +
    -
      + {/*
        { mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_syllabuses &&
      • 新建课程
      • @@ -784,10 +779,10 @@ class NewHeader extends Component { mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_course &&
      • 新建班级
      • } -
      +
    */} { coursestypes === true && this.props.user && this.props.user.main_site === false ? "" : -
      +
      • 新建镜像项目
      • 新建托管项目
      @@ -883,4 +878,3 @@ class NewHeader extends Component { } export default NewHeader; - From 9e5b8a08590927f30e8745fdf695191abd052417 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 2 Sep 2020 10:49:17 +0800 Subject: [PATCH 013/164] autocomplete --- src/forge/Order/newMilepost.js | 2 +- src/modules/tpm/NewHeader.js | 2 -- src/modules/tpm/TPMIndexHOC.js | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/forge/Order/newMilepost.js b/src/forge/Order/newMilepost.js index 3c8058f0..0e3e25d9 100644 --- a/src/forge/Order/newMilepost.js +++ b/src/forge/Order/newMilepost.js @@ -105,7 +105,7 @@ class NewMilepost extends Component { required: true, message: '请输入标题' }], })( - + )}
    diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 2ead4e4f..0a852c5b 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -571,11 +571,9 @@ class NewHeader extends Component { } }).catch((error) => { this.gettablogourlnull(); - }); } - matchpaths = (url) => { const { match } = this.props; if (url === '/forums' && match.path === '/forums') { diff --git a/src/modules/tpm/TPMIndexHOC.js b/src/modules/tpm/TPMIndexHOC.js index 4886031a..a4c47d4f 100644 --- a/src/modules/tpm/TPMIndexHOC.js +++ b/src/modules/tpm/TPMIndexHOC.js @@ -82,7 +82,7 @@ export function TPMIndexHOC(WrappedComponent) { this.setState({ mygetHelmetapi: undefined }); - document.title = "EduCoder"; + document.title = "Forge"; var link = document.createElement('link'), oldLink = document.getElementById('dynamic-favicon'); link.id = 'dynamic-favicon'; From 11e58a200c603a3c582f1334f3684b123a7a1f18 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 2 Sep 2020 11:29:31 +0800 Subject: [PATCH 014/164] input --- src/forge/DevOps/About.jsx | 1 + .../page/layers/ImageLayerOfCommentHOC.js | 5 - src/modules/page/layers/TaskResultLayer.css | 259 +++++++++--------- 3 files changed, 127 insertions(+), 138 deletions(-) diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 63f09d62..2f1cfc97 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -124,6 +124,7 @@ function About(props, ref) { { step === 0 ? +

    请仔细核对您的服务器信息,一旦确认提交将无法修改

    {helper( diff --git a/src/modules/page/layers/ImageLayerOfCommentHOC.js b/src/modules/page/layers/ImageLayerOfCommentHOC.js index c7810a46..a2482612 100644 --- a/src/modules/page/layers/ImageLayerOfCommentHOC.js +++ b/src/modules/page/layers/ImageLayerOfCommentHOC.js @@ -7,8 +7,6 @@ export function ImageLayerOfCommentHOC(options = {}) { return class Wrapper extends Component { constructor(props) { super(props); - - this.state = { showImage: false, imageSrc: '' @@ -37,7 +35,6 @@ export function ImageLayerOfCommentHOC(options = {}) { componentDidMount() { this.props.wrappedComponentRef && this.props.wrappedComponentRef(this.refs['wrappedComponentRef']) - setTimeout(() => { $(options.parentSelector || ".commentsDelegateParent") .delegate(options.imgSelector || ".J_Comment_Reply .comment_content img, .J_Comment_Reply .childrenCommentsView img", "click", this.onDelegateClick); @@ -69,13 +66,11 @@ export function ImageLayerOfCommentHOC(options = {}) { } } - render() { this.MdifHasAnchorJustScorll(); return ( - diff --git a/src/modules/page/layers/TaskResultLayer.css b/src/modules/page/layers/TaskResultLayer.css index 70653ee1..38ae0bbc 100644 --- a/src/modules/page/layers/TaskResultLayer.css +++ b/src/modules/page/layers/TaskResultLayer.css @@ -1,156 +1,149 @@ .taskResultLayer { - color: #666666; - z-index: 99999999999999; - width: 100%; - height: 100%; - position: fixed; - background:rgba(0,0,0,0.8); - top: 0px; - overflow: hidden; + color: #666666; + z-index: 99999999999999; + width: 100%; + height: 100%; + position: fixed; + background: rgba(0, 0, 0, 0.8); + top: 0px; + overflow: hidden; +} +.taskResultLayer .closeIcon { + position: absolute; + right: 100px; + top: 46px; + font-size: 28px; + z-index: 999999; + color: rgb(255, 255, 255, 0.7); + cursor: pointer; +} +.taskResultLayer .closeIcon:hover { + color: #4cacff; +} +.taskResultLayer .expGold { + color: #b27919; +} +.taskResultLayer .rateLabel { + color: #fff; + font-size: 14px; +} +.taskResultLayer .rc-rate-star { + font-size: 24px; + color: rgb(192, 192, 192); +} +.taskResultLayer .rc-rate-star:nth-child(5) { + margin-right: 0px; } - .taskResultLayer .closeIcon{ - position: absolute; - right: 100px; - top: 46px; - font-size: 28px; - z-index: 999999; - color: rgb(255,255,255,0.7); - cursor: pointer; - } - .taskResultLayer .closeIcon:hover { - color: #4CACFF; - } - .taskResultLayer .expGold { - color: #b27919 ; - } - .taskResultLayer .rateLabel { - color: #fff ; - font-size: 14px; - } - .taskResultLayer .rc-rate-star { - font-size: 24px; - color: rgb(192, 192, 192); - } - .taskResultLayer .rc-rate-star:nth-child(5) { - margin-right: 0px; - } /* ImageLayer ----------------- Start */ -.passContent{ - justify-content: center; - align-items: center; - display: -webkit-flex; - height: 100%; - text-align: center; - position: absolute; - width:100%; - z-index: 4; +.passContent { + justify-content: center; + align-items: center; + display: -webkit-flex; + height: 100%; + text-align: center; + position: absolute; + width: 100%; + z-index: 4; } -.closePanel{ - position: absolute; - width: 100%; - height: 100%; - z-index: 5; +.closePanel { + position: absolute; + width: 100%; + height: 100%; + z-index: 5; } -.passImg{ - max-width: 86%; - max-height: 100%; - user-select: none; - min-width: 300px; +.passImg { + max-width: 86%; + max-height: 100%; + user-select: none; + min-width: 300px; } /* ImageLayer ----------------- End */ - -.passTaskContent{ - width: 652px; - height:100%; - margin:0px auto; - margin-top: 4%; +.passTaskContent { + width: 652px; + height: 100%; + margin: 0px auto; + margin-top: 4%; } -.passTaskImg{ - position: absolute; - z-index: 2; - user-select: none; +.passTaskImg { + position: absolute; + z-index: 2; + user-select: none; } - -.winpPerson{ - position: absolute; - width: 100%; - z-index: 3; - color: #D1A448; - text-align: center; - margin-top:304px; - font-size: 18px; +.winpPerson { + position: absolute; + width: 100%; + z-index: 3; + color: #d1a448; + text-align: center; + margin-top: 304px; + font-size: 18px; } -.winPanel{ - position: absolute; - width: 308px; - z-index: 5; - height: 356px; - border-radius: 10px; - margin:0px auto; - top:435px; - left: 50%; - margin-left: -154px; - text-align: center; +.winPanel { + position: absolute; + width: 308px; + z-index: 5; + height: 356px; + border-radius: 10px; + margin: 0px auto; + top: 435px; + left: 50%; + margin-left: -154px; + text-align: center; } -.inlines{ - display: inline-block; - width: auto; - line-height: 26px; - font-size: 16px; +.inlines { + display: inline-block; + width: auto; + line-height: 26px; + font-size: 16px; } .inline.exp { - margin-left: 18px; + margin-left: 18px; } - /*.inline img{*/ - /*margin-right: 8px;*/ - /*}*/ -.goldring{ - margin-right: 8px; - width: 17px; - height: 17px; - border-radius: 50%; - background-color: #FFD633; - display: block; - float: left; - margin-top: 5px; +.goldring { + margin-right: 8px; + width: 17px; + height: 17px; + border-radius: 50%; + background-color: #ffd633; + display: block; + float: left; + margin-top: 5px; } -.passNext{ - width:120px; - height:30px; - line-height:30px; - border-radius: 2px; - display: block; - background-color:#CCC; - color:#fff!important; - margin: 0px auto; +.passNext { + width: 120px; + height: 30px; + line-height: 30px; + border-radius: 2px; + display: block; + background-color: #ccc; + color: #fff !important; + margin: 0px auto; } -.passed{ - width:120px; - height:30px; - line-height:30px; - border-radius: 2px; - display: block; - color:#fff!important; - margin: 0px auto; - margin-top: 12px; - background-color: #CCCCCC; +.passed { + width: 120px; + height: 30px; + line-height: 30px; + border-radius: 2px; + display: block; + color: #fff !important; + margin: 0px auto; + margin-top: 12px; + background-color: #cccccc; } .passed.stared { - background-color:#4CACFF; - opacity: 0.8; + background-color: #4cacff; + opacity: 0.8; } .passed.stared:hover { - opacity: 1; + opacity: 1; } - -.vertical4{ - vertical-align: -4px; +.vertical4 { + vertical-align: -4px; +} +.ImageLayerbutton { + position: absolute; + top: 0px; + right: 10px; + z-index: 10; } - -.ImageLayerbutton{ - position: absolute; - top: 0px; - right: 10px; - z-index: 10; -} \ No newline at end of file From f05b6eb804c96e69aac13bd2fe844851259427e9 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 2 Sep 2020 18:09:06 +0800 Subject: [PATCH 015/164] loading --- src/Loading.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Loading.js b/src/Loading.js index f5ada702..f9905747 100644 --- a/src/Loading.js +++ b/src/Loading.js @@ -1,7 +1,4 @@ import React, { Component } from 'react'; - -import { BrowserRouter as Router, Route, Link } from "react-router-dom"; - import { Spin } from 'antd'; class Loading extends Component { @@ -12,7 +9,6 @@ class Loading extends Component { } render() { - // Loading return (
    ")}catch(c){console&&console.log(c)}}function m(){t||(t=!0,i())}a=function(){var c,l,a,h,i,o=document.createElement("div");o.innerHTML=s,s=null,(c=o.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(a=document.body).firstChild?(h=l,(i=a.firstChild).parentNode.insertBefore(h,i)):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=a,o=c.document,t=!1,(z=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(z,50)}m()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,m())})}(window); \ No newline at end of file +!function(c){var l,a,h,i,o,t,z='',p=(p=document.getElementsByTagName("script"))[p.length-1].getAttribute("data-injectcss");if(p&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function s(){o||(o=!0,h())}l=function(){var c,l,a,h;(h=document.createElement("div")).innerHTML=z,z=null,(a=h.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",c=a,(l=document.body).firstChild?(h=c,(a=l.firstChild).parentNode.insertBefore(h,a)):l.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),l()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(h=l,i=c.document,o=!1,(t=function(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(t,50)}s()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,s())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index e97cc02b..785dfc97 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,559 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "17542255", + "name": "项目简介", + "font_class": "xiangmujianjie", + "unicode": "e7e7", + "unicode_decimal": 59367 + }, + { + "icon_id": "17542254", + "name": "参与成员", + "font_class": "canyuchengyuan", + "unicode": "e7e6", + "unicode_decimal": 59366 + }, + { + "icon_id": "17542253", + "name": "使用文档", + "font_class": "shiyongwendang", + "unicode": "e7e5", + "unicode_decimal": 59365 + }, + { + "icon_id": "17541348", + "name": "代码库", + "font_class": "daimaku", + "unicode": "e7d9", + "unicode_decimal": 59353 + }, + { + "icon_id": "17541349", + "name": "forc", + "font_class": "forc", + "unicode": "e7da", + "unicode_decimal": 59354 + }, + { + "icon_id": "17541350", + "name": "点赞", + "font_class": "dianzan3", + "unicode": "e7dd", + "unicode_decimal": 59357 + }, + { + "icon_id": "17541351", + "name": "里程碑", + "font_class": "lichengbei", + "unicode": "e7de", + "unicode_decimal": 59358 + }, + { + "icon_id": "17541352", + "name": "取消点赞", + "font_class": "quxiaodianzan", + "unicode": "e7df", + "unicode_decimal": 59359 + }, + { + "icon_id": "17541353", + "name": "fork2", + "font_class": "fork2", + "unicode": "e7e0", + "unicode_decimal": 59360 + }, + { + "icon_id": "17541354", + "name": "合并请求", + "font_class": "hebingqingqiu1", + "unicode": "e7e1", + "unicode_decimal": 59361 + }, + { + "icon_id": "17541355", + "name": "任务", + "font_class": "renwu", + "unicode": "e7e2", + "unicode_decimal": 59362 + }, + { + "icon_id": "17541356", + "name": "通知", + "font_class": "tongzhi", + "unicode": "e7e3", + "unicode_decimal": 59363 + }, + { + "icon_id": "17541357", + "name": "主页", + "font_class": "zhuye1", + "unicode": "e7e4", + "unicode_decimal": 59364 + }, + { + "icon_id": "17481990", + "name": "金币", + "font_class": "jinbi", + "unicode": "e7c5", + "unicode_decimal": 59333 + }, + { + "icon_id": "17468131", + "name": "未开摄像头", + "font_class": "weikaishexiangtou1", + "unicode": "e7d8", + "unicode_decimal": 59352 + }, + { + "icon_id": "17435144", + "name": "关卡菜单", + "font_class": "guankacaidan", + "unicode": "e7ce", + "unicode_decimal": 59342 + }, + { + "icon_id": "17416333", + "name": "重置实训", + "font_class": "zhongzhishixun", + "unicode": "e7d5", + "unicode_decimal": 59349 + }, + { + "icon_id": "17416337", + "name": "复制粘贴", + "font_class": "fuzhiniantie", + "unicode": "e7d6", + "unicode_decimal": 59350 + }, + { + "icon_id": "17416342", + "name": "共享桌面", + "font_class": "gongxiangzhuomian", + "unicode": "e7d7", + "unicode_decimal": 59351 + }, + { + "icon_id": "17415865", + "name": "退出全屏", + "font_class": "tuichuquanping", + "unicode": "e7d4", + "unicode_decimal": 59348 + }, + { + "icon_id": "17415856", + "name": "全屏", + "font_class": "quanping", + "unicode": "e7d2", + "unicode_decimal": 59346 + }, + { + "icon_id": "17415080", + "name": "复制版本库地址", + "font_class": "fuzhibanbenkudizhi1", + "unicode": "e7d3", + "unicode_decimal": 59347 + }, + { + "icon_id": "17400088", + "name": "实验环境倒计时", + "font_class": "shiyanhuanjingdaojishi", + "unicode": "e7d1", + "unicode_decimal": 59345 + }, + { + "icon_id": "17399931", + "name": "vnc实训界面-工具栏", + "font_class": "vncshixunjiemian-gongjulan", + "unicode": "e7d0", + "unicode_decimal": 59344 + }, + { + "icon_id": "17399816", + "name": "vnc实训界面-展开", + "font_class": "vncshixunjiemian-zhankai", + "unicode": "e7cf", + "unicode_decimal": 59343 + }, + { + "icon_id": "17399289", + "name": "vnc实训界面-收起", + "font_class": "vncshixunjiemian-shouqi", + "unicode": "e7cd", + "unicode_decimal": 59341 + }, + { + "icon_id": "17393121", + "name": "撤销分组", + "font_class": "chexiaofenzu", + "unicode": "e7ca", + "unicode_decimal": 59338 + }, + { + "icon_id": "17393122", + "name": "撤销共享", + "font_class": "chexiaogongxiang", + "unicode": "e7cb", + "unicode_decimal": 59339 + }, + { + "icon_id": "17393123", + "name": "选中", + "font_class": "xuanzhong1", + "unicode": "e7cc", + "unicode_decimal": 59340 + }, + { + "icon_id": "17347836", + "name": "警示", + "font_class": "jingshi1", + "unicode": "e7c9", + "unicode_decimal": 59337 + }, + { + "icon_id": "17338109", + "name": "删除", + "font_class": "shanchu21", + "unicode": "e7c8", + "unicode_decimal": 59336 + }, + { + "icon_id": "17338062", + "name": "收藏", + "font_class": "shoucang3", + "unicode": "e7c7", + "unicode_decimal": 59335 + }, + { + "icon_id": "17320656", + "name": "搜索", + "font_class": "sousuo2", + "unicode": "e7c6", + "unicode_decimal": 59334 + }, + { + "icon_id": "17272329", + "name": "光标", + "font_class": "guangbiao", + "unicode": "e7c4", + "unicode_decimal": 59332 + }, + { + "icon_id": "17215358", + "name": "QQ", + "font_class": "QQ", + "unicode": "e7c3", + "unicode_decimal": 59331 + }, + { + "icon_id": "675739", + "name": "用户", + "font_class": "yonghu", + "unicode": "e7c2", + "unicode_decimal": 59330 + }, + { + "icon_id": "12703761", + "name": "oschina", + "font_class": "oschina", + "unicode": "e7c1", + "unicode_decimal": 59329 + }, + { + "icon_id": "17189615", + "name": "右", + "font_class": "you", + "unicode": "e7bf", + "unicode_decimal": 59327 + }, + { + "icon_id": "17189616", + "name": "左", + "font_class": "zuo", + "unicode": "e7c0", + "unicode_decimal": 59328 + }, + { + "icon_id": "17126010", + "name": "编程语言", + "font_class": "bianchengyuyan", + "unicode": "e7bd", + "unicode_decimal": 59325 + }, + { + "icon_id": "4550494", + "name": "箭头", + "font_class": "jiantou", + "unicode": "e7bc", + "unicode_decimal": 59324 + }, + { + "icon_id": "17078373", + "name": "自用试卷", + "font_class": "ziyongshijuan", + "unicode": "e7b3", + "unicode_decimal": 59315 + }, + { + "icon_id": "17078374", + "name": "已公开试卷", + "font_class": "yigongkaishijuan", + "unicode": "e7bb", + "unicode_decimal": 59323 + }, + { + "icon_id": "17077771", + "name": "视频", + "font_class": "shipin", + "unicode": "e7b4", + "unicode_decimal": 59316 + }, + { + "icon_id": "17077772", + "name": "实训", + "font_class": "shixun2", + "unicode": "e7be", + "unicode_decimal": 59326 + }, + { + "icon_id": "17060498", + "name": "放大", + "font_class": "fangda2", + "unicode": "e7ba", + "unicode_decimal": 59322 + }, + { + "icon_id": "17060439", + "name": "开启防作弊", + "font_class": "fangzuobi", + "unicode": "e7b9", + "unicode_decimal": 59321 + }, + { + "icon_id": "17027771", + "name": "闹钟", + "font_class": "shizhong", + "unicode": "e7b8", + "unicode_decimal": 59320 + }, + { + "icon_id": "16923000", + "name": "上传视频 (1)", + "font_class": "shangchuanshipin1", + "unicode": "e7b7", + "unicode_decimal": 59319 + }, + { + "icon_id": "16922942", + "name": "对勾", + "font_class": "duigou1", + "unicode": "e7b2", + "unicode_decimal": 59314 + }, + { + "icon_id": "16922946", + "name": "链接 (1)", + "font_class": "lianjie1", + "unicode": "e7b5", + "unicode_decimal": 59317 + }, + { + "icon_id": "16922947", + "name": "章节", + "font_class": "zhangjie", + "unicode": "e7b6", + "unicode_decimal": 59318 + }, + { + "icon_id": "16771382", + "name": "模版管理2", + "font_class": "mobanguanli2", + "unicode": "e7b1", + "unicode_decimal": 59313 + }, + { + "icon_id": "16771348", + "name": "分组作业", + "font_class": "fenzuzuoye2", + "unicode": "e7b0", + "unicode_decimal": 59312 + }, + { + "icon_id": "16771344", + "name": "毕业作业", + "font_class": "biyezuoye1", + "unicode": "e7af", + "unicode_decimal": 59311 + }, + { + "icon_id": "16771343", + "name": "统计", + "font_class": "tongji3", + "unicode": "e7ae", + "unicode_decimal": 59310 + }, + { + "icon_id": "16771339", + "name": "签到", + "font_class": "qiandao1", + "unicode": "e7ad", + "unicode_decimal": 59309 + }, + { + "icon_id": "16771338", + "name": "分班", + "font_class": "fenban2", + "unicode": "e7ac", + "unicode_decimal": 59308 + }, + { + "icon_id": "16771329", + "name": "讨论", + "font_class": "taolun2", + "unicode": "e7ab", + "unicode_decimal": 59307 + }, + { + "icon_id": "16771324", + "name": "视频直播", + "font_class": "shipinzhibo1", + "unicode": "e7aa", + "unicode_decimal": 59306 + }, + { + "icon_id": "16771321", + "name": "考试试卷", + "font_class": "kaoshishijuan1", + "unicode": "e7a9", + "unicode_decimal": 59305 + }, + { + "icon_id": "16771320", + "name": "考试问卷", + "font_class": "kaoshiwenjuan1", + "unicode": "e7a7", + "unicode_decimal": 59303 + }, + { + "icon_id": "16768917", + "name": "学习资源", + "font_class": "xuexiziyuan1", + "unicode": "e7a8", + "unicode_decimal": 59304 + }, + { + "icon_id": "16767292", + "name": "普通作业", + "font_class": "putongzuoye1", + "unicode": "e782", + "unicode_decimal": 59266 + }, + { + "icon_id": "16766394", + "name": "实训作业", + "font_class": "shixunzuoye1", + "unicode": "e7a6", + "unicode_decimal": 59302 + }, + { + "icon_id": "15852679", + "name": "Last updated", + "font_class": "Lastupdated", + "unicode": "e7a5", + "unicode_decimal": 59301 + }, + { + "icon_id": "15852678", + "name": "CONTACTS", + "font_class": "CONTACTS", + "unicode": "e7a4", + "unicode_decimal": 59300 + }, + { + "icon_id": "15852677", + "name": "SPONSORS", + "font_class": "SPONSORS", + "unicode": "e7a3", + "unicode_decimal": 59299 + }, + { + "icon_id": "15852676", + "name": "FINAL REPORTS", + "font_class": "FINALREPORTS", + "unicode": "e7a2", + "unicode_decimal": 59298 + }, + { + "icon_id": "15852675", + "name": "STEERING COMMITTEE", + "font_class": "STEERINGCOMMITTEE", + "unicode": "e7a1", + "unicode_decimal": 59297 + }, + { + "icon_id": "15852674", + "name": "ORGANIZING ICSE - MOU", + "font_class": "ORGANIZINGICSE-MOU", + "unicode": "e7a0", + "unicode_decimal": 59296 + }, + { + "icon_id": "15852673", + "name": "INFLUENTIAL PAPERS", + "font_class": "INFLUENTIALPAPERS", + "unicode": "e79f", + "unicode_decimal": 59295 + }, + { + "icon_id": "15852672", + "name": "BIBLIOGRAPHIES", + "font_class": "BIBLIOGRAPHIES", + "unicode": "e79e", + "unicode_decimal": 59294 + }, + { + "icon_id": "15852671", + "name": "PROCEEDINGS", + "font_class": "PROCEEDINGS", + "unicode": "e79d", + "unicode_decimal": 59293 + }, + { + "icon_id": "15852670", + "name": "HISTORY", + "font_class": "HISTORY", + "unicode": "e79c", + "unicode_decimal": 59292 + }, + { + "icon_id": "15852669", + "name": "CONDUCT & SAFETY", + "font_class": "CONDUCTSAFETY", + "unicode": "e79b", + "unicode_decimal": 59291 + }, + { + "icon_id": "15852667", + "name": "EDI STATEMENT", + "font_class": "EDISTATEMENT", + "unicode": "e79a", + "unicode_decimal": 59290 + }, + { + "icon_id": "15852666", + "name": "MAILING LIST", + "font_class": "MAILINGLIST", + "unicode": "e799", + "unicode_decimal": 59289 + }, + { + "icon_id": "15852665", + "name": "HOME", + "font_class": "HOME", + "unicode": "e798", + "unicode_decimal": 59288 + }, { "icon_id": "15792809", "name": "准备中", @@ -131,13 +684,6 @@ "unicode": "e783", "unicode_decimal": 59267 }, - { - "icon_id": "15590916", - "name": "普通作业", - "font_class": "putongzuoye1", - "unicode": "e782", - "unicode_decimal": 59266 - }, { "icon_id": "15590913", "name": "实训作业", diff --git a/public/css/iconfont.svg b/public/css/iconfont.svg index 598ec8c2..6339ef30 100644 --- a/public/css/iconfont.svg +++ b/public/css/iconfont.svg @@ -20,6 +20,243 @@ Created by iconfont /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -74,9 +311,6 @@ Created by iconfont - - - diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index 9c105b496d2088f6a40cca8b921813030b6dc597..26e8ab839c21535ce46f767bc577275722bbe6c2 100644 GIT binary patch delta 25337 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

    g95-4Xizli@oK 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 delta 7511 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 Cs@d=W diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff index a528f9d68fd49d3b0669d64317bbb44b209ac334..0da71bfd3d272e064dcbd8f7f293b9dc3ba7075a 100644 GIT binary patch literal 81100 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 delta 69438 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 diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2 index a3f07deea76e16c42b7eac100eb8b13bcb4e872a..45d7b3d03c423255d1068c3fcd200dd4247d7a3d 100644 GIT binary patch literal 67396 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 literal 58232 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 RbDS2{T}A6b-cf3I`VUcUVdww= diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx new file mode 100644 index 00000000..77936fe0 --- /dev/null +++ b/src/forge/About/Index.jsx @@ -0,0 +1,128 @@ +import React , { useEffect , useState } from 'react'; +import './index.scss'; +import { Button } from 'antd'; +import Upload from "../Upload/Index"; +import UploadImg from "../Images/upload.png"; +import MDEditor from "../../modules/tpm/challengesnew/tpm-md-editor"; +import { AlignCenterBetween } from '../Component/layout'; +import axios from 'axios'; +import RenderHtml from '../../components/render-html'; +import Attachments from "../Upload/attachment"; + +function Index(props){ + const [ attachments , setAttachments ] = useState(undefined); + const [ content , setContent ] = useState(undefined); + const [ edit , setEdit ] = useState(false); + const [ fileList , setFileList ] = useState(undefined); + + const { owner , projectsId } = props.match.params; + console.log(props.match.params); + useEffect(()=>{ + if(owner&&projectsId){ + Init(); + } + },[owner,projectsId]) + + function Init(){ + const url = `/${owner}/${projectsId}/about.json`; + axios.get(url).then(result=>{ + if(result){ + setContent(result.data.content); + setAttachments(result.data.attachments); + } + }).catch(error=>{}) + } + + function editContent(){ + setEdit(true); + } + + + function onContentChange(value){ + setContent(value); + }; + + function UploadFunc(fileList){ + setFileList(fileList); + }; + + function sureSubmit(){ + const url = `/${owner}/${projectsId}/about.json`; + axios.post(url,{ + content,attachment_ids:fileList + }).then(result=>{ + if(result){ + props.showNotification("项目主页编辑成功!"); + Init(); + setEdit(false); + } + }).catch(error=>{}) + } + return( +

    + +
    + + 项目简介 + 编辑 + + { + edit ? +
    + +
    + + } + size={100} + showNotification={props.showNotification} + /> + {attachments && attachments.length > 0 && + + } +
    +
    + + +
    +
    + : +
    + {content ? + + : +
    暂无简介~
    + } + {attachments && attachments.length > 0 && + + } +
    + } +
    +
    + ) +} +export default Index; \ No newline at end of file diff --git a/src/forge/About/index.scss b/src/forge/About/index.scss new file mode 100644 index 00000000..cd79d28a --- /dev/null +++ b/src/forge/About/index.scss @@ -0,0 +1,13 @@ +.aboutPanels{ + max-width: 1200px; + margin:0px auto; + .aboutContent{ + border-radius: 2px; + border: 1px solid #EEEEEE; + padding:0px 30px; + width:100%; + background-color: #fff; + margin-top:20px; + margin-bottom: 30px; + } +} \ No newline at end of file diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index ceaba628..ba79866c 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -114,6 +114,10 @@ const TrendsIndex = Loadable({ loading: Loading, }) +const DevAbout = Loadable({ + loader: () => import('../About/Index'), + loading: Loading, +}) const DevIndex = Loadable({ loader: () => import('../DevOps/Index'), loading: Loading, @@ -124,7 +128,9 @@ const DevIndex = Loadable({ function checkPathname(pathname){ let name = ""; if(pathname){ - if(pathname.indexOf("/issues")>-1 ||pathname.indexOf("Milepost") > 0){ + if(pathname.indexOf("/about")>-1){ + name="about" + }else if(pathname.indexOf("/issues")>-1 ||pathname.indexOf("Milepost") > 0){ name = "issues"; }else if(pathname.indexOf("/pulls")>-1){ name="pulls" @@ -368,15 +374,15 @@ class Detail extends Component {
    -

    +

    {project && project.author && - + {project.author.name} } / - {project && project.name} + {project && project.name} { projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ? @@ -408,25 +414,27 @@ class Detail extends Component { } this.focusFunc(watched)}> - + {/* */} + {watched ? '取消关注' : '关注'} - + {watchers_count} this.pariseFunc(praised)}> - + {/* */} + {praised ? '取消点赞' : '点赞'} - + {praises_count} - Fork + Fork {forked_count} @@ -436,24 +444,33 @@ class Detail extends Component {

    { firstSync ? "" : -
    +
      +
    • + + + 主页 + +
    • - 代码库 + + 代码库
    • - 任务 - {projectDetail && projectDetail.issues_count ? {projectDetail.issues_count} : ""} + + 任务 + {projectDetail && projectDetail.issues_count ? {projectDetail.issues_count} : ""}
    • { projectDetail && parseInt(projectDetail.type) !== 2 &&
    • - 合并请求 + + 合并请求 {projectDetail && projectDetail.pull_requests_count ? {projectDetail.pull_requests_count} : ""}
    • @@ -466,18 +483,22 @@ class Detail extends Component { */}
    • - 里程碑 + + 里程碑 {projectDetail && projectDetail.versions_count ? {projectDetail.versions_count} :""}
    • - 动态 + + 动态
    • { isManager && -
    • 0 ? "active" : ""}>仓库设置
    • +
    • 0 ? "active" : ""}> + 0 ? "iconfont icon-cangku color-grey-3 mr5 font-14":"iconfont icon-cangku color-grey-6 font-14 mr5"}> + 仓库设置
    • }
    @@ -493,6 +514,12 @@ class Detail extends Component { : + {/* 主页 */} + () + } + > {/* 工作流 */} { - const { page, limit, search, sort, project_type, category_id } = this.state; - this.getListData(page, limit, search, sort, project_type, category_id); + const { page, limit, search, sort, project_type, category_id , languageId } = this.state; + this.getListData(page, limit, search, sort, project_type, category_id , languageId); this.getType(); this.getCategory(); + + this.getRecommand(); + + this.getLanguage(); + } + + // 获取语言列表 + getLanguage=()=>{ + const url = '/project_languages.json'; + axios.get(url).then(result=>{ + if(result){ + this.setState({ + languageList:result.data.project_languages + }) + } + }).catch(error=>{}) + } + // 获取推荐列表 + getRecommand=()=>{ + const url = `/projects/recommend.json`; + axios.get(url).then(result=>{ + if(result){ + this.setState({ + recommendList:result.data + }) + } + }).catch(error=>{}) } // 获取列表 - getListData = (page, limit, search, sort, project_type, category_id) => { + getListData = (page, limit, search, sort, project_type, category_id,languageId) => { const { current_user } = this.props; const url = `/projects.json`; axios.get(url, { @@ -51,7 +84,8 @@ class Index extends Component { search, sort_by: sort, project_type, - category_id + category_id, + language_id:languageId } }).then((result) => { if (result) { @@ -97,8 +131,8 @@ class Index extends Component { search: undefined }) this.setTypeList(list, type) - const { page, limit, sort, category_id } = this.state; - this.getListData(page, limit, undefined, sort, type, category_id); + const { page, limit, sort, category_id , languageId } = this.state; + this.getListData(page, limit, undefined, sort, type, category_id , languageId); } // 获取类型 @@ -133,8 +167,8 @@ class Index extends Component { page: 1 }); this.setCategoryList(list, id) - const { limit, sort, project_type } = this.state; - this.getListData(1, limit, undefined, sort, project_type, id); + const { limit, sort, project_type , languageId } = this.state; + this.getListData(1, limit, undefined, sort, project_type, id , languageId); } // 排序 @@ -145,8 +179,8 @@ class Index extends Component { search: undefined, isSpin: true }) - const { limit, project_type, category_id } = this.state; - this.getListData(1, limit, undefined, e.key, project_type, category_id); + const { limit, project_type, category_id , languageId } = this.state; + this.getListData(1, limit, undefined, e.key, project_type, category_id , languageId); } // 搜索 @@ -158,8 +192,8 @@ class Index extends Component { project_type: undefined, sort: "updated_on" }) - const { limit, sort, category_id } = this.state; - this.getListData(1, limit, value, sort, undefined, category_id); + // const { limit, sort, category_id , languageId } = this.state; + // this.getListData(1, limit, value, sort, undefined, category_id , languageId); } changeSearchValue = (e) => { this.setState({ @@ -171,8 +205,22 @@ class Index extends Component { this.setState({ page }) - const { limit, search, sort, project_type, category_id } = this.state; - this.getListData(page, limit, search, sort, project_type, category_id); + const { limit, search, sort, project_type, category_id , languageId } = this.state; + this.getListData(page, limit, search, sort, project_type, category_id , languageId); + } + + getoDetail=(login,identifier)=>{ + this.props.history.push(`/projects/${login}/${identifier}/about`); + } + + // 选择语言类别 + changeLanguage=(e)=>{ + this.setState({ + isSpin:true, + languageId:e === 0 ?undefined:e + }) + const { page, limit, sort , project_type , category_id } = this.state; + this.getListData(page, limit, undefined, sort, project_type, category_id ,e === 0 ?undefined:e); } render() { @@ -192,7 +240,8 @@ class Index extends Component { ) - const { projectsList, isSpin, total, search, limit, page, typeList, categoryList } = this.state; + const { projectsList , recommendList , languageList , languageId , + isSpin, total, search, limit, page, typeList, categoryList } = this.state; const pagination = ( total && total > limit ? @@ -205,6 +254,29 @@ class Index extends Component {

    + { + recommendList && recommendList.length>0 && +
    + { + recommendList.map((item,key)=>{ + return( +
    this.getoDetail(item.author && item.author.login,item.identifier)}> +
    + +

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

    +

    {item.name}

    +
    +
    + {item.visits} + 项目类型:{item.category && item.category.name} +
    +
    + ) + }) + } +
    + } +
      @@ -219,15 +291,35 @@ class Index extends Component {
      - +
      + + +
      { current_user && current_user.login && diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss new file mode 100644 index 00000000..a14b9070 --- /dev/null +++ b/src/forge/Main/Index.scss @@ -0,0 +1,73 @@ +/* recommandProjects */ +.recommandProjects{ + display: flex; + max-width: 1200px; + margin:20px auto; +} +.recommandProjects >div{ + background-color: #fff; + border-radius: 10px; + width: 220px; + margin-right: 25px; + cursor: pointer; + &:last-child{ + margin-right: 0px; + } +} +.recommandProjects > div:hover{ + box-shadow: 0px 2px 20px 0px rgba(0, 0, 0, 0.1); +} +.recommandProjects > div .mainInfo{ + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 160px; + border-bottom: 1px solid #eee; + padding:20px; + box-sizing: border-box; + img{ + height: 50px; + width:50px; + border-radius: 50%; + } + .name{ + font-size: 16px; + color: #333; + height: 20px; + line-height: 20px; + margin-top:12px; + } + .school{ + color: #888; + height: 18px; + line-height: 18px; + margin-top:12px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + max-width:100%; + } +} +.recommandProjects{ + .baseInfo{ + padding:18px 15px; + display: flex; + font-size: 12px; + color:#888; + .look{ + i{ + margin-right: 5px; + } + margin-right: 10px; + } + .type{ + flex:1; + width:0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-align: center; + } + } +} \ No newline at end of file diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 1195ebbb..614cd412 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -25,7 +25,7 @@ class IndexItem extends Component {
      - + {item.author.name}/{item.name} { item.forked_from_project_id ? diff --git a/src/forge/Main/list.css b/src/forge/Main/list.css index d4de3c40..2e73bdc1 100644 --- a/src/forge/Main/list.css +++ b/src/forge/Main/list.css @@ -69,6 +69,7 @@ color: #fff!important; } + /* 列表 */ .project-list{ padding:0px 30px; @@ -207,9 +208,9 @@ } /* -----------详情------------ */ .detailHeader-wrapper{ - background:linear-gradient(82deg,rgba(82,91,215,1) 0%,rgba(34,24,171,1) 100%); - background: url(../Images/forgeBanner.jpg) no-repeat center; - background-size:cover; + background-color:#FAFBFC; + /* background: url(../Images/forgeBanner.jpg) no-repeat center; */ + /* background-size:cover; */ } .headerMenu-wrapper{ font-size: 16px; @@ -217,14 +218,14 @@ flex-direction: row; } .headerMenu-wrapper li{ - padding:0px 18px; position: relative; text-align: center; - height: 30px; - line-height: 30px; + height: 40px; + line-height: 28px; + margin-right: 25px; } .headerMenu-wrapper li a{ - color: #fff; + color: #666; display: flex; align-items: center; } @@ -232,24 +233,26 @@ margin-right: 8px; } .headerMenu-wrapper li a > span{ - background-color: #676AF1; height: 18px; line-height: 18px; - border-radius: 10px; - display: block; - padding:0px 6px; - margin-left: 5px; - font-size: 11px; + margin-left: 8px; + font-size: 12px; + color: #2878FF; } -.headerMenu-wrapper li.active{ - border-radius: 15px; - border:1px solid #71A6FF; +.headerMenu-wrapper li.active::after{ + position: absolute; + bottom:0px; + height:2px; + background-color: #5091FF; + content:''; + left: 0px; + width:100%; } .detail_tag_btn{ height:26px; line-height: 26px; border-radius:5px; - border:1px solid #71A6FF; + border:1px solid #f1f1f1; display: flex; align-items: center; margin-left: 30px @@ -261,21 +264,17 @@ padding:0px 10px; display: flex; align-items: center; - color: #fff; + color: #666; } .detail_tag_btn_name img{ margin-right: 10px; } .detail_tag_btn_count{ padding:0px 10px; - color: #fff !important; - background: rgba(255,255,255,0.2); + background: #fff; border-radius: 0px 4px 4px 0px; font-size: 12px; -} -.detail_tag_btn_count:hover{ - /* color: #1C91FF !important; */ - background: rgba(255,255,255,0.5); + height:100%; } .files-md{ border:1px solid #eee; diff --git a/src/forge/Order/index.scss b/src/forge/Order/index.scss index d57ae499..9576503b 100644 --- a/src/forge/Order/index.scss +++ b/src/forge/Order/index.scss @@ -4,6 +4,12 @@ padding-left: 20px; box-sizing: border-box; } +.attachment-list-div:hover { + background-color: #e6f7ff; +} +.attachment-list-div:hover .attachment-list-delete { + display: block !important; +} .searchBanner{ display: flex; diff --git a/src/forge/Order/order.css b/src/forge/Order/order.css index 6aa1912b..b0fe49fd 100644 --- a/src/forge/Order/order.css +++ b/src/forge/Order/order.css @@ -561,12 +561,6 @@ a.issue-type-button.active:hover { .attachment-list-delete { display: none; } -.attachment-list-div:hover { - background-color: #e6f7ff; -} -.attachment-list-div:hover .attachment-list-delete { - display: block !important; -} .attachment-list-a { color: rgba(0, 0, 0, 0.65) !important; } diff --git a/src/forge/Upload/Index.js b/src/forge/Upload/Index.js index f366d5da..46f05b7e 100644 --- a/src/forge/Upload/Index.js +++ b/src/forge/Upload/Index.js @@ -11,6 +11,20 @@ class Index extends Component { fileList: undefined, } } + componentDidMount=()=>{ + this.checkInitFile(); + } + componentDidUpdate=(prevProps)=>{ + if(prevProps && prevProps.fileList !== this.props.fileList){ + this.checkInitFile(); + } + } + checkInitFile=()=>{ + const { fileList } = this.props; + if(fileList && fileList.length>0){ + this.setState({ fileList: appendFileSizeToUploadFileAll(fileList) }); + } + } onAttachmentRemove = (file) => { if (!file.percent || file.percent === 100) { diff --git a/src/forge/Upload/attachment.js b/src/forge/Upload/attachment.js index 78e9871c..9918363d 100644 --- a/src/forge/Upload/attachment.js +++ b/src/forge/Upload/attachment.js @@ -119,8 +119,9 @@ class Attachment extends Component { Deleted.length > 0 && Deleted.indexOf(item.id) !== -1 ? "none" : "block", + padding:"4px" }} - className="pd510 attachment-list-div" + className="attachment-list-div" > {this.is_video(item.title) ? ( From 36833232e32ccd02d1ad0de1a795f8a3072b8d1e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 6 Oct 2020 13:21:12 +0800 Subject: [PATCH 062/164] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/About/Index.jsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index 77936fe0..b0d22f9d 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -14,15 +14,21 @@ function Index(props){ const [ content , setContent ] = useState(undefined); const [ edit , setEdit ] = useState(false); const [ fileList , setFileList ] = useState(undefined); - + const [ editOpration , setEditOpration ] = useState(false); const { owner , projectsId } = props.match.params; - console.log(props.match.params); + + const { isManager , isDeveloper } = props; useEffect(()=>{ if(owner&&projectsId){ Init(); } },[owner,projectsId]) + useEffect(()=>{ + if(isManager === true || isDeveloper === true){ + setEditOpration(true); + } + },[isManager , isDeveloper]) function Init(){ const url = `/${owner}/${projectsId}/about.json`; axios.get(url).then(result=>{ @@ -64,7 +70,7 @@ function Index(props){
      项目简介 - 编辑 + { editOpration && 编辑 } { edit ? From 36a9f16634e9f506d14992f1480c0129d5e6613f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 9 Oct 2020 09:24:57 +0800 Subject: [PATCH 063/164] =?UTF-8?q?=E5=A4=B4=E9=83=A8=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/css/edu-purge.css | 6 +++--- src/modules/tpm/NewHeader.js | 12 ++++++------ src/modules/tpm/TPMIndex.css | 1 - 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index 30212af1..5279a0c4 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -3975,11 +3975,11 @@ html>body #ajax-indicator { display: block; height: 100%; width: 100%; - color: #fff; + color: #333; font-size: 16px; } -.head-nav ul#header-nav li a:hover { +.head-nav ul#header-nav li a:hover,.head-nav ul#header-nav li.active a { color: #5091FF; } @@ -3988,7 +3988,7 @@ html>body #ajax-indicator { } .head-nav ul#header-nav li.active{ - background-color: #3B3B3B; + /* background-color: #3B3B3B; */ } diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 1f49945a..734496d3 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -767,7 +767,7 @@ class NewHeader extends Component {
      {this.props.user && this.props.user.login ?
      - +
      {/*
        @@ -795,7 +795,7 @@ class NewHeader extends Component {
        {user && user.login && - + @@ -832,18 +832,18 @@ class NewHeader extends Component {
        {user === undefined ? - this.educoderlogin()} className="mr5 color-white">登录 + this.educoderlogin()} className="mr5 color-grey-6">登录 { mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.register_url && - 注册 + 注册 } : user.login === "" ? - this.educoderlogin()} className="mr5 color-white">登录 + this.educoderlogin()} className="mr5 color-grey-6">登录 { mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.register_url && - 注册 + 注册 } : diff --git a/src/modules/tpm/TPMIndex.css b/src/modules/tpm/TPMIndex.css index cf3b7ffe..4ed1bce5 100644 --- a/src/modules/tpm/TPMIndex.css +++ b/src/modules/tpm/TPMIndex.css @@ -25,7 +25,6 @@ body>.-task-title { } .newHeaders{ max-width: unset; - background: #2B2A2A !important; width: 100%; height:70px; min-width: 1200px; From 619acfe9e4310686d00dc0b9383cb30e11d97640 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 9 Oct 2020 10:17:00 +0800 Subject: [PATCH 064/164] =?UTF-8?q?=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/About/Index.jsx | 7 ++++--- src/forge/Branch/CloneAddress.js | 2 +- src/forge/Main/Index.js | 10 ++++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index b0d22f9d..cc7e67ad 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -17,15 +17,16 @@ function Index(props){ const [ editOpration , setEditOpration ] = useState(false); const { owner , projectsId } = props.match.params; - const { isManager , isDeveloper } = props; + const { isManager , isDeveloper , current_user } = props; + useEffect(()=>{ - if(owner&&projectsId){ + if(owner && projectsId){ Init(); } },[owner,projectsId]) useEffect(()=>{ - if(isManager === true || isDeveloper === true){ + if( (current_user && current_user.login) && (isManager === true || isDeveloper === true)){ setEditOpration(true); } },[isManager , isDeveloper]) diff --git a/src/forge/Branch/CloneAddress.js b/src/forge/Branch/CloneAddress.js index 0031407d..89cd3f4e 100644 --- a/src/forge/Branch/CloneAddress.js +++ b/src/forge/Branch/CloneAddress.js @@ -14,7 +14,7 @@ class CloneAddress extends Component { const { http_url, downloadUrl } = this.props; return (
        -

        版本库地址已变更,请基于新地址提交代码

        + {/*

        版本库地址已变更,请基于新地址提交代码

        */} { http_url && HTTP } diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index 29625d26..94017064 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -223,6 +223,12 @@ class Index extends Component { this.getListData(page, limit, undefined, sort, project_type, category_id ,e === 0 ?undefined:e); } + filterOption=(input,option)=>{ + // console.log(input,option); + let o = option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0; + console.log(o); + } + render() { const { current_user } = this.props; const menu = ( @@ -293,11 +299,15 @@ class Index extends Component {
        0} />, true )} @@ -143,26 +170,22 @@ function About(props, ref) { "服务器用户名:", "account", [{ required: true, message: "请输入服务器用户名" }], - , + 0}/>, true )} {helper( "服务器密码:", "secret", [{ required: true, message: "请输入服务器密码" }], - , + 0}/>, true )} 下一步 :""} - {step >= 1 && + {step > 1 &&
        - {/* { - step === 1 && current_user && !current_user.ci_certification && -

        初始化配置已完成,请前往:
        {redirectUrl} 进入认证

        - } */} 开始激活
        } diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss index 6e0c4fa1..15ba0c60 100644 --- a/src/forge/DevOps/ops.scss +++ b/src/forge/DevOps/ops.scss @@ -124,6 +124,10 @@ } } +.flags{ + border: 1px solid red; + border-radius: 5px; +} // ops详情 .opsDetailPanel{ height: 100vh; From 39495845492f254caca183c908480a99a0e236fc Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 16 Oct 2020 10:35:51 +0800 Subject: [PATCH 072/164] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=96=87=E4=BB=B6-?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=87=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderRootDirectory.js | 1 + src/forge/Main/CoderRootFileDetail.js | 37 ++++++++++++------------ src/forge/Newfile/UserSubmitComponent.js | 4 +-- src/forge/Newfile/m_editor.js | 3 +- 4 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index d1daf1dc..2f0ebf5b 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -521,6 +521,7 @@ class CoderRootDirectory extends Component { {...this.state} readOnly={this.state.readOnly} onEdit={this.onEdit} + currentBranch={branch} > )} { diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index 84065d4c..218806ba 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -164,7 +164,8 @@ class CoderRootFileDetail extends Component { current_user, isManager, isDeveloper, - md + md, + currentBranch } = this.props; const { language, languages, description } = this.state; let flag = current_user && current_user.login && (isManager || isDeveloper); @@ -194,12 +195,9 @@ class CoderRootFileDetail extends Component { this.EditFile(false)} className="ml20"> - } - - ) : ( - -
        + >{" "} + {" "} +
        {" "}
        -
        + >{" "} +
        {" "}
        -
        目标分支:
        +
        目标分支 :
        {" "}
        -
        + >{" "} + {" "} +
      {" "} +
      {" "}
      - + >{" "}
      ) : ( "" diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index c22013a3..5389615d 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -299,6 +299,7 @@ class Detail extends Component { )}
      +<<<<<<< HEAD 结束日期: {data && data.due_date ? data.due_date : "--"}

      +======= +
      + + +
      +
      +
      +

      + 分支: + {data && data.branch_name ? data.branch_name : "--"} +

      +

      + 是否上链: + {data && data.issue_type==="2" ? '是' : "否"} +

      + { + data && data.issue_type==="2" && +

      + token值: + {data && data.token ? data.token : "--"} +

      + } +

      + 标签: + + {data && data.issue_tags ? ( + + + {data.issue_tags[0].name} + + ) : ( + "--" + )} + +

      +

      + 里程碑: + + {data && data.version ? data.version : "--"} + +

      +

      + 状态: + + {data && data.issue_status ? data.issue_status : "--"} + +

      +

      + 分类: + {data && data.tracker ? data.tracker : "--"} +

      +

      + 负责人: + + {data && data.assign_user_name ? data.assign_user_name : "--"} + +

      +

      + 开始日期: + {data && data.start_date ? data.start_date : "--"} +

      +

      + 结束日期: + {data && data.due_date ? data.due_date : "--"} +

      +>>>>>>> f1a60781842ca7e33708fbad16036d58ce84e5bc

      完成度: diff --git a/src/forge/Order/order_form.js b/src/forge/Order/order_form.js index 2265642d..2e79b319 100644 --- a/src/forge/Order/order_form.js +++ b/src/forge/Order/order_form.js @@ -34,6 +34,8 @@ class order_form extends Component { subject: "", get_attachments: undefined, show_token: false, + cannot_edit: false, + issue_current_user: true }; } componentDidUpdate=(prevPros)=>{ @@ -263,6 +265,7 @@ class order_form extends Component { }); this.setState({ done_ratio: "0", + issue_current_user: true, }); } else if (e === "3") { this.props.form.setFieldsValue({ @@ -270,6 +273,11 @@ class order_form extends Component { }); this.setState({ done_ratio: "100", + issue_current_user: true, + }); + }else if (e === "5") { + this.setState({ + issue_current_user: false, }); } }; diff --git a/src/forge/Settings/Collaborator.js b/src/forge/Settings/Collaborator.js index 049e3dae..3d7da85b 100644 --- a/src/forge/Settings/Collaborator.js +++ b/src/forge/Settings/Collaborator.js @@ -360,6 +360,11 @@ class Collaborator extends Component { dataIndex: "email", render: (text) => {text}, }, + { + title: "Token值", + dataIndex: "token", + render: (text) => {text}, + }, { title: roleTitle, dataIndex: "role_name", From ee6356daa0f8a34bc3f21f9a70ff90baa261b1de Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 23 Oct 2020 10:15:40 +0800 Subject: [PATCH 084/164] style --- src/forge/Merge/NewMerge.js | 19 +++++++------------ src/forge/Merge/merge.css | 12 ++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/forge/Merge/NewMerge.js b/src/forge/Merge/NewMerge.js index 4105f9c2..6422a04c 100644 --- a/src/forge/Merge/NewMerge.js +++ b/src/forge/Merge/NewMerge.js @@ -228,8 +228,6 @@ class NewMerge extends Component { return

      ; }; let { project } = this.props; - console.log("222 ",project); - console.log("222111 ",projects_names); return (
      @@ -239,18 +237,17 @@ class NewMerge extends Component {
      源分支:
      @@ -266,19 +263,17 @@ class NewMerge extends Component {
      目标分支:
      diff --git a/src/forge/Merge/merge.css b/src/forge/Merge/merge.css index d6a4770e..b962e886 100644 --- a/src/forge/Merge/merge.css +++ b/src/forge/Merge/merge.css @@ -40,4 +40,16 @@ form .ant-cascader-picker, form .ant-select { } .merge-header-button{ background:rgba(241,248,255,1); +} +.width70{ + width:70%; +} +.width30{ + width:30%; +} +.w120{ + width: 120px; +} +.w240{ + width: 240px; } \ No newline at end of file From 8645eb8e1be796c0e514f42ac2d0fb8368f9cd0f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 23 Oct 2020 10:34:03 +0800 Subject: [PATCH 085/164] merge --- src/forge/Order/Detail.js | 74 --------------------------------------- 1 file changed, 74 deletions(-) diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index 5389615d..c22013a3 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -299,7 +299,6 @@ class Detail extends Component { )}
      -<<<<<<< HEAD 结束日期: {data && data.due_date ? data.due_date : "--"}

      -======= -
      - - -
      -
      -
      -

      - 分支: - {data && data.branch_name ? data.branch_name : "--"} -

      -

      - 是否上链: - {data && data.issue_type==="2" ? '是' : "否"} -

      - { - data && data.issue_type==="2" && -

      - token值: - {data && data.token ? data.token : "--"} -

      - } -

      - 标签: - - {data && data.issue_tags ? ( - - - {data.issue_tags[0].name} - - ) : ( - "--" - )} - -

      -

      - 里程碑: - - {data && data.version ? data.version : "--"} - -

      -

      - 状态: - - {data && data.issue_status ? data.issue_status : "--"} - -

      -

      - 分类: - {data && data.tracker ? data.tracker : "--"} -

      -

      - 负责人: - - {data && data.assign_user_name ? data.assign_user_name : "--"} - -

      -

      - 开始日期: - {data && data.start_date ? data.start_date : "--"} -

      -

      - 结束日期: - {data && data.due_date ? data.due_date : "--"} -

      ->>>>>>> f1a60781842ca7e33708fbad16036d58ce84e5bc

      完成度: From eb8cae5fb309be981509d03b2f69ebd7bba001cb Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Oct 2020 14:38:44 +0800 Subject: [PATCH 086/164] =?UTF-8?q?=E7=BB=86=E8=8A=82=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/About/Index.jsx | 2 +- src/forge/Component/Modal.jsx | 2 +- src/forge/Component/PasswordAuthority.jsx | 4 ++-- src/forge/Order/OrderItem.js | 6 ++---- src/forge/Order/order_form.js | 22 ---------------------- 5 files changed, 6 insertions(+), 30 deletions(-) diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index cc7e67ad..964c4e0a 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -71,7 +71,7 @@ function Index(props){

      项目简介 - { editOpration && 编辑 } + { editOpration && !edit && 编辑 } { edit ? diff --git a/src/forge/Component/Modal.jsx b/src/forge/Component/Modal.jsx index 5f1f664e..aac58911 100644 --- a/src/forge/Component/Modal.jsx +++ b/src/forge/Component/Modal.jsx @@ -17,7 +17,7 @@ function Modals({visible,title,content,onOk,onCancel}){
      } > - {content} +
      {content}
      ) } diff --git a/src/forge/Component/PasswordAuthority.jsx b/src/forge/Component/PasswordAuthority.jsx index 9d7fff44..9951f32e 100644 --- a/src/forge/Component/PasswordAuthority.jsx +++ b/src/forge/Component/PasswordAuthority.jsx @@ -24,11 +24,11 @@ function PasswordAuthority({ authorityValBox , successFunc , cancelFunc }){ axios.get(url,{ params:{password:authorityVal} }).then(result=>{ + setIsSpin(false); if(result){ - setIsSpin(false); successFunc(result.data.step); } - }).catch(error=>{}); + }).catch(error=>{setIsSpin(false);}); } return( diff --git a/src/forge/Order/OrderItem.js b/src/forge/Order/OrderItem.js index f0f04be2..150b95d2 100644 --- a/src/forge/Order/OrderItem.js +++ b/src/forge/Order/OrderItem.js @@ -1,9 +1,7 @@ import React, { Component } from 'react'; import { Link } from 'react-router-dom'; -import { Popconfirm, Tag } from 'antd' +import { Popconfirm } from 'antd' import { TagInfo } from '../Utils/TagColor'; - - class OrderItem extends Component { constructor(props) { super(props); @@ -54,7 +52,7 @@ class OrderItem extends Component { {current_user && current_user.login && checkbox}

      - {item.name} + {item.name} {TagInfo(item.priority,"mr10")}

      diff --git a/src/forge/Order/order_form.js b/src/forge/Order/order_form.js index 2e79b319..339a8c3c 100644 --- a/src/forge/Order/order_form.js +++ b/src/forge/Order/order_form.js @@ -493,28 +493,6 @@ class order_form extends Component { )} - {/* - - - {(show_token || (issue_type && issue_type === "2")) && ( - - {getFieldDecorator("token", { - rules: [ - { - required: true, - message: "请填写token值", - }, - ], - initialValue: token, - })()} - - )} */}

      From 3591666e5e64dea61496860a45958749a14409ae Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 27 Oct 2020 16:47:14 +0800 Subject: [PATCH 087/164] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=97=B6=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Order/order.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index 0e725d2c..f2691147 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -239,6 +239,8 @@ class order extends Component { this.setState({ search: value, isSpin: true, + checkedValue:[], + all:undefined }); const { status_type } = this.state; @@ -259,6 +261,8 @@ class order extends Component { status_ids: "状态", done_ratios: "完成度", paix: "排序", + checkedValue:[], + all:undefined }); this.state.select_params = { search: undefined, From e42de09b996ed196214dc84a24ad1a9d276c5f85 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 28 Oct 2020 16:07:45 +0800 Subject: [PATCH 088/164] pullrequest --- src/forge/Merge/NewMerge.js | 12 ++++++------ src/forge/Merge/merge.css | 6 ++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/forge/Merge/NewMerge.js b/src/forge/Merge/NewMerge.js index 6422a04c..5f210e9d 100644 --- a/src/forge/Merge/NewMerge.js +++ b/src/forge/Merge/NewMerge.js @@ -233,12 +233,12 @@ class NewMerge extends Component {
      -
      +
      源分支:
      @@ -258,13 +258,13 @@ class NewMerge extends Component { className={"iconfont icon-youjiang color-grey-c font-32"} >
      -
      +
      目标分支:
      diff --git a/src/forge/Merge/merge.css b/src/forge/Merge/merge.css index b962e886..f66d1025 100644 --- a/src/forge/Merge/merge.css +++ b/src/forge/Merge/merge.css @@ -47,6 +47,12 @@ form .ant-cascader-picker, form .ant-select { .width30{ width:30%; } +.width40{ + width:40%; +} +.display-flex{ + display: flex!important; +} .w120{ width: 120px; } From 5bc172a492ed7da30d3dc68aacdd1e9ad70ff67e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 29 Oct 2020 15:40:30 +0800 Subject: [PATCH 089/164] update --- src/forge/Branch/branch.css | 2 +- src/forge/DevOps/About.jsx | 2 +- src/forge/Order/Detail.js | 16 ++++++------- src/forge/Order/order_form.js | 44 +++++++++++++++++------------------ 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/forge/Branch/branch.css b/src/forge/Branch/branch.css index b6dbd124..ff65db54 100644 --- a/src/forge/Branch/branch.css +++ b/src/forge/Branch/branch.css @@ -51,7 +51,7 @@ display: flex; align-items: center; cursor: pointer; - width: 240px; + min-width: 240px; } .branch-tagBox-list .ant-popover-arrow{ display: none; diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index b25ac0d2..107b351f 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -127,7 +127,7 @@ function About(props, ref) {

      定义DevOps工作流,帮助您检测bug、发布代码…

      - + 了解什么是DevOps? { diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index c22013a3..87d774a5 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -309,8 +309,10 @@ class Detail extends Component {

      - 分支: - {data && data.branch_name ? data.branch_name : "--"} + 负责人: + + {data && data.assign_user_name ? data.assign_user_name : "--"} +

      标签: @@ -344,12 +346,6 @@ class Detail extends Component { 分类: {data && data.tracker ? data.tracker : "--"}

      -

      - 负责人: - - {data && data.assign_user_name ? data.assign_user_name : "--"} - -

      开始日期: {data && data.start_date ? data.start_date : "--"} @@ -363,6 +359,10 @@ class Detail extends Component { 完成度: {data && data.done_ratio ? data.done_ratio : "--"}

      +

      + 分支: + {data && data.branch_name ? data.branch_name : "--"} +

      diff --git a/src/forge/Order/order_form.js b/src/forge/Order/order_form.js index 339a8c3c..66f5803a 100644 --- a/src/forge/Order/order_form.js +++ b/src/forge/Order/order_form.js @@ -379,19 +379,13 @@ class order_form extends Component {
      - - {getFieldDecorator("branch_name", { - rules: [] - })( + + {getFieldDecorator("assigned_to_id", {rules: []})( )} @@ -460,16 +454,6 @@ class order_form extends Component { )} - - {getFieldDecorator("assigned_to_id", {rules: []})( - - )} - )} + + {getFieldDecorator("branch_name", { + rules: [] + })( + + )} +
      From 80ef857048d7e2c1840a6ea5e32466e0aeae543a Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 30 Oct 2020 10:13:08 +0800 Subject: [PATCH 090/164] box top --- public/css/edu-purge.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index 9b13e28f..80fb12a6 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -2325,6 +2325,9 @@ input::-ms-clear { background-color: #F5F5F5; } +.ant-modal-close{ + top:8px!important; +} .newContainer { min-height: 100%; From 0cb6986aedad59aec916c02d66b86c022b43d58a Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 30 Oct 2020 10:42:02 +0800 Subject: [PATCH 091/164] =?UTF-8?q?=E6=97=A0=E6=95=B0=E6=8D=AE=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Activity/Activity.js | 2 +- src/forge/Merge/MergeDetail.js | 2 +- src/forge/Merge/merge.js | 2 +- src/forge/Order/Milepost.js | 2 +- src/forge/Order/MilepostDetail.js | 2 +- src/forge/Order/Tags.js | 2 +- src/forge/Order/order.js | 2 +- src/forge/Settings/Collaborator.js | 2 +- src/forge/Settings/new_tags.js | 2 +- src/forge/UsersList/common_users.js | 2 +- src/forge/UsersList/fork_users.js | 2 +- src/forge/Version/version.js | 2 +- src/modules/courses/coursesPublic/NoneData.js | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/forge/Activity/Activity.js b/src/forge/Activity/Activity.js index f5275827..163495bd 100644 --- a/src/forge/Activity/Activity.js +++ b/src/forge/Activity/Activity.js @@ -177,7 +177,7 @@ class Activity extends Component{ }
      : - + } { diff --git a/src/forge/Merge/MergeDetail.js b/src/forge/Merge/MergeDetail.js index a075fd52..a7e2f33e 100644 --- a/src/forge/Merge/MergeDetail.js +++ b/src/forge/Merge/MergeDetail.js @@ -214,7 +214,7 @@ class MergeDetail extends Component { ) } else { return ( - + ) } } diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js index 0eeb07f6..12db593a 100644 --- a/src/forge/Merge/merge.js +++ b/src/forge/Merge/merge.js @@ -423,7 +423,7 @@ class merge extends Component {
      ) : ( - + )}
      ); diff --git a/src/forge/Order/Milepost.js b/src/forge/Order/Milepost.js index 413b4edf..e4a8d496 100644 --- a/src/forge/Order/Milepost.js +++ b/src/forge/Order/Milepost.js @@ -251,7 +251,7 @@ class Milepost extends Component { }) }
      - : + : } { data && data.versions_count > limit ? diff --git a/src/forge/Order/MilepostDetail.js b/src/forge/Order/MilepostDetail.js index 62b8fd7b..ce05b607 100644 --- a/src/forge/Order/MilepostDetail.js +++ b/src/forge/Order/MilepostDetail.js @@ -271,7 +271,7 @@ class MilepostDetail extends Component {
      { search_count === 0 ? - + : issues && issues.length>0 && issues.map((item,key)=>{ return( diff --git a/src/forge/Order/Tags.js b/src/forge/Order/Tags.js index 0a4c10d3..174891aa 100644 --- a/src/forge/Order/Tags.js +++ b/src/forge/Order/Tags.js @@ -362,7 +362,7 @@ class Tags extends Component {
      : - + } { data && data.issue_tags_count > limit ? diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index f2691147..22d7ce94 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -806,7 +806,7 @@ class order extends Component {
      {search_count === 0 ? ( - + ) : (
      diff --git a/src/forge/Settings/Collaborator.js b/src/forge/Settings/Collaborator.js index 3d7da85b..d1e6d7d1 100644 --- a/src/forge/Settings/Collaborator.js +++ b/src/forge/Settings/Collaborator.js @@ -498,7 +498,7 @@ class Collaborator extends Component { rowKey={(record) => record.id} >
    ) : ( - + )}
    diff --git a/src/forge/Settings/new_tags.js b/src/forge/Settings/new_tags.js index cddb759d..6800b1fe 100644 --- a/src/forge/Settings/new_tags.js +++ b/src/forge/Settings/new_tags.js @@ -410,7 +410,7 @@ class NewTags extends Component { ); } else { - return ; + return ; } }; diff --git a/src/forge/UsersList/common_users.js b/src/forge/UsersList/common_users.js index 0ccdf15c..407411b7 100644 --- a/src/forge/UsersList/common_users.js +++ b/src/forge/UsersList/common_users.js @@ -91,7 +91,7 @@ class CommonUsers extends Component {
    {count === 0 ? ( - + ) : ( )} diff --git a/src/forge/UsersList/fork_users.js b/src/forge/UsersList/fork_users.js index 3fe4b3c7..49d9f155 100644 --- a/src/forge/UsersList/fork_users.js +++ b/src/forge/UsersList/fork_users.js @@ -125,7 +125,7 @@ class ForkUsers extends Component {
    {count === 0 ? ( - + ) : ( this.renderList(users) )} diff --git a/src/forge/Version/version.js b/src/forge/Version/version.js index 7dd0190c..69dbead6 100644 --- a/src/forge/Version/version.js +++ b/src/forge/Version/version.js @@ -97,7 +97,7 @@ class version extends Component { ) } else { return ( - + ) } } diff --git a/src/modules/courses/coursesPublic/NoneData.js b/src/modules/courses/coursesPublic/NoneData.js index 6f0422f6..17c53de7 100644 --- a/src/modules/courses/coursesPublic/NoneData.js +++ b/src/modules/courses/coursesPublic/NoneData.js @@ -24,7 +24,7 @@ class NoneData extends Component{ `} -

    {searchtypes===true?"抱歉没有您要搜索的内容,请换个词语试试看":"暂时还没有相关数据哦!"}

    +

    {searchtypes===true?"抱歉没有您要搜索的内容,请换个词语试试看":"暂时还没有相关数据!"}

    ) } From 5e36abb2594c78d60d4122fe3f9c53ad4ba6fe71 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 2 Nov 2020 09:58:19 +0800 Subject: [PATCH 092/164] =?UTF-8?q?=E6=B8=85=E9=99=A4=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E9=A1=B9-=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Order/order.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index 22d7ce94..dc9cfe19 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -260,6 +260,7 @@ class order extends Component { assigned_to_ids: "负责人", status_ids: "状态", done_ratios: "完成度", + fixed_version_ids:"里程碑", paix: "排序", checkedValue:[], all:undefined From e9fef026a64e2fa377b831d33070864f9420d6ba Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 5 Nov 2020 11:31:26 +0800 Subject: [PATCH 093/164] pr --- src/forge/Main/CoderRootCommit.js | 2 +- src/forge/Merge/Commits.jsx | 51 ++++++++++++ src/forge/Merge/Files.jsx | 71 ++++++++++++++++ src/forge/Merge/MessageCount.js | 59 ++++++++++++-- src/forge/Merge/NewMerge.js | 20 +++-- src/forge/Merge/merge.css | 129 ++++++++++++++++++++++++++++++ src/forge/Merge/merge_footer.js | 37 ++++----- 7 files changed, 335 insertions(+), 34 deletions(-) create mode 100644 src/forge/Merge/Commits.jsx create mode 100644 src/forge/Merge/Files.jsx diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index 916af5b2..8655fbfc 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -1,7 +1,7 @@ import React , { Component } from 'react'; import { Spin , Pagination } from 'antd'; import { getImageUrl } from 'educoder'; -import { truncateCommitId } from '../common/util' +import { truncateCommitId } from '../common/util'; import SelectBranch from '../Branch/Select'; import Nodata from '../Nodata'; diff --git a/src/forge/Merge/Commits.jsx b/src/forge/Merge/Commits.jsx new file mode 100644 index 00000000..513aa384 --- /dev/null +++ b/src/forge/Merge/Commits.jsx @@ -0,0 +1,51 @@ +import React , { useEffect , useState } from 'react'; +import axios from 'axios'; +import { AlignCenter , FlexAJ } from '../Component/layout'; +import User from '../Component/User'; +import { truncateCommitId } from '../common/util'; +import { getImageUrl } from 'educoder'; +import {Link} from 'react-router-dom'; + +function Commits(props){ + const [ commits , setCommits ] = useState(undefined); + + const { projectsId , owner , mergeId } = props.match.params; + + useEffect(()=>{ + if(projectsId && owner && mergeId){ + const url = `/${owner}/${projectsId}/pulls/${mergeId}/commits.json`; + axios.get(url).then(result=>{ + if(result){ + setCommits(result.data.commits); + } + }).catch(error=>{}) + } + },[projectsId,owner,mergeId]); + return( +
    + { + commits && commits.length>0 && commits.map((item,key)=>{ + return( +
    +

    {item.created_at}

    +
    + + + {truncateCommitId(`${item.sha}`)} +

    {item.message}

    +
    + {/* 浏览代码 */} + + :提交于{item.time_from_now} + +
    + +
    +
    + ) + }) + } +
    + ) +} +export default Commits; \ No newline at end of file diff --git a/src/forge/Merge/Files.jsx b/src/forge/Merge/Files.jsx new file mode 100644 index 00000000..dc274594 --- /dev/null +++ b/src/forge/Merge/Files.jsx @@ -0,0 +1,71 @@ +import React ,{useEffect,useState} from 'react'; +import { AlignCenter , FlexAJ } from '../Component/layout'; + +import axios from 'axios'; +function Files(props){ + const [ data , setData ] = useState(undefined); + const [ files , setFiles ] = useState(undefined); + const { projectsId , owner , mergeId } = props.match.params; + + useEffect(()=>{ + if(projectsId && owner && mergeId){ + const url = `/${owner}/${projectsId}/pulls/${mergeId}/files.json`; + axios.get(url).then(result=>{ + if(result){ + setData(result.data); + setFiles(result.data.files); + } + }).catch(error=>{}) + } + },[projectsId,owner,mergeId]); + + return( +
    + + + + 共有 {data && data.files_count} 个文件被更改,包括 + {data && data.total_addition && {data && data.total_addition} 次插入 } + { data && data.total_deletion ? `和${ {data && data.total_deletion} 次删除}`:""} + + + { + files && files.length>0 && +
    + { + files.map((item,key)=>{ + return( +
    + + + + {item.name} + + + +{item.addition} + -{item.deletion} + + +
    + { + item.sections && item.sections.length >= 1 && item.sections[0].lines && + item.sections[0].lines.map((item,key)=>{ + return( +
    + {item.rightIdx && item.rightIdx !=="0" ? item.rightIdx :"" } +

    {item.content}

    +
    + ) + }) + } +
    +
    + ) + }) + } +
    + } +
    + ) +} +export default Files; \ No newline at end of file diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index c7052fe7..b9b5ef38 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -1,6 +1,7 @@ import React, { Component } from "react"; +import { Tabs } from 'antd'; import { Link } from "react-router-dom"; - +import { AlignCenter } from '../Component/layout'; import axios from "axios"; import { getImageUrl } from "educoder"; import { @@ -39,6 +40,8 @@ class MessageCount extends Component { SpinMerge: false, edit_spin: false, pr_status: undefined, + + copyVisible:false, }; } @@ -47,7 +50,18 @@ class MessageCount extends Component { SpinFlag: true, }); this.getDetail(); + + // this.clickBody(); }; + clickBody=()=>{ + document.body.addEventListener('click', e => { + let name = e.target.className; + if(name.indexOf("notHide")>-1 || name.indexOf("ant-tabs-tab")>-1 || name==="ant-tabs-nav-scroll"){return;} + this.setState({ + copyVisible:false + }) + }) + } getDetail = () => { const { projectsId, mergeId, owner } = this.props.match.params; @@ -198,6 +212,33 @@ class MessageCount extends Component { return ; }; + setCopyVisible=(e)=>{ + e.stopPropagation(); + this.setState({ + copyVisible:true + }) + } + + copyItem =()=>{ + return( +
    + + HTTPS}>{this.returnCopyUrl("https://gitee.com/44886/polhttp.git")} + SSH}>{this.returnCopyUrl("https://gitee.com/44886/polssh.git")} + +
    + ) + } + + returnCopyUrl=(url)=>{ + return( +
    + + +
    + ) + } + render() { const { projectsId, mergeId , owner } = this.props.match.params; @@ -208,6 +249,7 @@ class MessageCount extends Component { isSpin, ismesrge, SpinFlag, + copyVisible } = this.state; const { current_user, projectDetail } = this.props; const menu = ( @@ -352,13 +394,20 @@ class MessageCount extends Component {
    -
    +
    + {/* + this.setCopyVisible(e)}> + 复制 + + 下载为 + */} {current_user && projectDetail && pr_status !== 2 && projectDetail.permission !=="Reporter" && (
    -
    +
    { this.setState({isSpin: true}) const { owner } = this.props.match.params; @@ -120,9 +120,7 @@ class NewMerge extends Component { }; selectProjectName = (value) => { - console.log("value",value) - const { project_id, projects_names,id } = this.state; - const { owner } = this.props.match.params; + const { projects_names,id } = this.state; let arr = projects_names && projects_names.filter(item=>item.id===value); let identifier = arr && arr[0].project_id; let login = arr && arr[0].project_user_login; @@ -138,7 +136,6 @@ class NewMerge extends Component { }) this.props.history.push(`/projects/${login}/${identifier}/pulls/new`); this.newMergelist(login,identifier); - }; //判断2分支是否可以合并 @@ -146,7 +143,7 @@ class NewMerge extends Component { ischeckmerge = () => { this.setState({ isSpin: true }); const { projectsId , owner } = this.props.match.params; - const { pull, merge, project_id, merge_head, id } = this.state; + const { pull, merge , merge_head, id } = this.state; const url = `/${owner}/${projectsId}/pulls/check_can_merge.json`; axios.post(url, { head: pull, @@ -196,7 +193,6 @@ class NewMerge extends Component { merge_head, projects_names, } = this.state; - const { projectsId } = this.props.match.params; const renderBrances = (list, type) => { if (list && list.length > 0) { return list.map((item, key) => { @@ -296,6 +292,14 @@ class NewMerge extends Component { )}
    + +
    + +
    ); } diff --git a/src/forge/Merge/merge.css b/src/forge/Merge/merge.css index f66d1025..72c4e093 100644 --- a/src/forge/Merge/merge.css +++ b/src/forge/Merge/merge.css @@ -58,4 +58,133 @@ form .ant-cascader-picker, form .ant-select { } .w240{ width: 240px; +} + +.custom-commit-tabs .ant-tabs-nav .ant-tabs-tab{ + padding:14px 0px!important; +} +.custom-commit-tabs .ant-tabs-bar{ + border-bottom: none; +} +.custom-commit-tabs .ant-tabs-nav .ant-tabs-tab-active .tabNum{ + background-color: #EBF4FE; +} +.custom-commit-tabs .ant-tabs-ink-bar{ + width: 34px!important; +} +.tabNum{ + display: inline-block; + margin-left:8px ; + border-radius: 10px; + height: 18px; + line-height: 18px; + background-color: #eee; + padding:0px 9px; + font-size: 12px; +} + +/* 复制-下载为,组合按钮 */ +.composeButton{ + display: flex; + border:1px solid #5091FF; + border-radius: 5px; + height: 34px; + line-height: 34px; +} +.composeButton > span{ + display: block; + padding:0px 18px; + color: #5091FF; + display: flex; + align-items: center; + border-radius: 5px; + cursor: pointer; +} +.composeButton > span:hover{ + background-color: #F1F8FF; +} +.composeButton > span:first-child{ + border-radius: 5px 0px 0px 5px; + border-right: 1px solid #5091FF; +} +.ant-btn{ + border-radius: 5px; +} + +/* 绿色按钮-type="green" */ +.ant-btn.ant-btn-green{ + border:1px solid #28BD6C; + color: #28BD6C; +} +.copyTab{ + min-width: 370px; + padding:0px 18px 22px 18px; + box-shadow: 0px 2px 10px rgba(0,0,0,0.2); + background-color: #fff; +} +.copyTab .ant-tabs-tab{ + padding:12px 0px!important; +} + +/* pr--提交tab页面 */ +.prCommits{ + border:1px solid #ddd; + border-top: none; +} +.prCommits:first-child{ + border-top: 1px solid #ddd; +} +.prCommits .prCreate{ + height: 50px; + line-height: 50px; + padding:0px 25px; + background-color:#fafafa; + color:#333; + font-size: 16px; + border-bottom: 1px solid #ddd; +} +.prCommits .prInfo{ + padding:20px 25px; +} +/* pr-文件修改信息页面 */ +.files{ + border:1px solid #ddd; + margin-top: 15px; + border-radius: 2px; +} +.filesInfo{ + padding:10px 15px; + /* cursor: pointer; */ + background-color: #fafafa; +} +.filesContent{ + border-top: 1px solid #ddd; +} +.linesContent{ + display: flex; + height: 30px; + line-height: 30px; + align-items: center; + color: #333; +} +.linesContent > span{ + padding: 0px 8px 0px 15px; + min-width: 8%; + text-align: right; + display: block; + border-right: 1px solid #ddd; + margin-right: 8px; + color: #888; +} +.linesContent.translate{ + background-color:#F1F8FF; +} +.linesContent.translate > span{ + border-right: 1px solid transparent; +} +.linesContent.reduce{ + background-color:rgba(247, 48, 48, 0.15);; +} +.linesContent.add{ + background: rgba(48, 232, 132, 0.15); } \ No newline at end of file diff --git a/src/forge/Merge/merge_footer.js b/src/forge/Merge/merge_footer.js index 63627977..89dc4e86 100644 --- a/src/forge/Merge/merge_footer.js +++ b/src/forge/Merge/merge_footer.js @@ -2,16 +2,13 @@ import React, { Component } from "react"; import { Tabs, Empty } from "antd"; import "../Order/order.css"; import "./merge.css"; -import CodesCommit from "../Main/CoderRootCommit"; +import Commits from "./Commits"; import Comments from "../comments/comments"; +import Files from "./Files"; const { TabPane } = Tabs; class MergeFooter extends Component { - constructor(props) { - super(props); - this.state = {}; - } render() { const { footer_type, order_id } = this.props; @@ -20,25 +17,25 @@ class MergeFooter extends Component { { footer_type === "show" && - 评论} key="1"> - - + 评论1} key="1"> + + } - - {/* 提交} key="2"> - - */} - {/* 文件} key="3"> - - */} + 提交111} key="2"> + + + 文件11} key="3"> + +
    ); From f9588407b88e296bb34ac37611cadb48d4ac59be Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 6 Nov 2020 16:30:01 +0800 Subject: [PATCH 094/164] =?UTF-8?q?=E5=90=88=E5=B9=B6=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Branch/Select.jsx | 4 +- src/forge/Main/CoderRootDirectory.js | 16 ++- src/forge/Merge/Commits.jsx | 29 ++--- src/forge/Merge/Files.jsx | 64 ++++++----- src/forge/Merge/MessageCount.js | 2 +- src/forge/Merge/NewMerge.js | 67 +++++++++++- src/forge/Merge/merge.css | 28 +++-- src/forge/Merge/merge_footer.js | 157 ++++++++++++++++++++++----- 9 files changed, 272 insertions(+), 97 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index cd01c04b..e8bf6d5e 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -71,7 +71,7 @@ export function initAxiosInterceptors(props) { setpostcookie() clearAllCookie() - if (config.url.indexOf(proxy) !== -1 || config.url.indexOf(':') !== -1) { + if (config.url.indexOf(proxy) !== -1) { return config } requestProxy(config) diff --git a/src/forge/Branch/Select.jsx b/src/forge/Branch/Select.jsx index 6d97d7b5..30e7d59c 100644 --- a/src/forge/Branch/Select.jsx +++ b/src/forge/Branch/Select.jsx @@ -20,7 +20,7 @@ export default (({ projectsId , repo_id , changeBranch , branch , owner })=>{ useEffect(()=>{ document.body.addEventListener('click', e => { let name = e.target.className; - let turn = name == "ant-input OptionsInput" || name == "navli active"|| name == "navli" || name == "padding10 bor-bottom-greyE"; + let turn = name === "ant-input OptionsInput" || name === "navli active"|| name === "navli" || name === "padding10 bor-bottom-greyE"; if(turn){ return; }else{ @@ -31,7 +31,7 @@ export default (({ projectsId , repo_id , changeBranch , branch , owner })=>{ useEffect(()=>{ getBranchs(projectsId,owner); - },[projectsId]) + },[owner]) async function getBranchs(id,owner){ diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index d51b0f99..3a18682a 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -80,14 +80,22 @@ class CoderRootDirectory extends Component { Init = () => { let { search } = this.props.history.location; let branchName = undefined; - if (search && search.indexOf("?branch=") > -1) { - branchName = search.split("?branch=")[1]; + if (search && (search.indexOf("?branch=") > -1 || search.indexOf("&branch=") > -1)) { + branchName = search.split("branch=")[1]; + + if(branchName && branchName.indexOf("&")){ + branchName=branchName.split("&")[0]; + } this.setState({ branch: branchName, }); } - if (search && search.indexOf("?url=") > -1) { - let url = search.split("?url=")[1]; + if (search && (search.indexOf("?url=") > -1 || search.indexOf("&url=") > -1)) { + let url = search.split("url=")[1]; + + if(url && decodeURI(url).indexOf("&")){ + url=decodeURI(url).split("&")[0]; + } this.setState({ filePath: decodeURI(url), }); diff --git a/src/forge/Merge/Commits.jsx b/src/forge/Merge/Commits.jsx index 513aa384..2cceb256 100644 --- a/src/forge/Merge/Commits.jsx +++ b/src/forge/Merge/Commits.jsx @@ -1,30 +1,16 @@ -import React , { useEffect , useState } from 'react'; -import axios from 'axios'; +import React from 'react'; import { AlignCenter , FlexAJ } from '../Component/layout'; import User from '../Component/User'; import { truncateCommitId } from '../common/util'; import { getImageUrl } from 'educoder'; -import {Link} from 'react-router-dom'; +import Nodata from '../Nodata'; -function Commits(props){ - const [ commits , setCommits ] = useState(undefined); - - const { projectsId , owner , mergeId } = props.match.params; - - useEffect(()=>{ - if(projectsId && owner && mergeId){ - const url = `/${owner}/${projectsId}/pulls/${mergeId}/commits.json`; - axios.get(url).then(result=>{ - if(result){ - setCommits(result.data.commits); - } - }).catch(error=>{}) - } - },[projectsId,owner,mergeId]); +function Commits({commits}){ return( + commits && commits.length>0 ?
    { - commits && commits.length>0 && commits.map((item,key)=>{ + commits.map((item,key)=>{ return(

    {item.created_at}

    @@ -32,20 +18,21 @@ function Commits(props){ {truncateCommitId(`${item.sha}`)} -

    {item.message}

    +

    {item.message}

    {/* 浏览代码 */} :提交于{item.time_from_now}
    -
    ) }) } + : + ) } export default Commits; \ No newline at end of file diff --git a/src/forge/Merge/Files.jsx b/src/forge/Merge/Files.jsx index dc274594..e91b8ac0 100644 --- a/src/forge/Merge/Files.jsx +++ b/src/forge/Merge/Files.jsx @@ -1,32 +1,25 @@ import React ,{useEffect,useState} from 'react'; import { AlignCenter , FlexAJ } from '../Component/layout'; +import { Button } from 'antd'; +import Nodata from '../Nodata'; -import axios from 'axios'; -function Files(props){ - const [ data , setData ] = useState(undefined); +function Files({data,history,owner,projectsId,showDown}){ const [ files , setFiles ] = useState(undefined); - const { projectsId , owner , mergeId } = props.match.params; - useEffect(()=>{ - if(projectsId && owner && mergeId){ - const url = `/${owner}/${projectsId}/pulls/${mergeId}/files.json`; - axios.get(url).then(result=>{ - if(result){ - setData(result.data); - setFiles(result.data.files); - } - }).catch(error=>{}) + if(data){ + setFiles(data.files); } - },[projectsId,owner,mergeId]); + },[data]) return( + files ?
    共有 {data && data.files_count} 个文件被更改,包括 {data && data.total_addition && {data && data.total_addition} 次插入 } - { data && data.total_deletion ? `和${ {data && data.total_deletion} 次删除}`:""} + { data && data.total_deletion ? 和{data && data.total_deletion} 次删除:""} { @@ -36,29 +29,40 @@ function Files(props){ files.map((item,key)=>{ return(
    - + showDown(item.flag,key,item.isBin)}> + {!item.isBin ? :""} {item.name} + +{item.addition} -{item.deletion} -
    - { - item.sections && item.sections.length >= 1 && item.sections[0].lines && - item.sections[0].lines.map((item,key)=>{ - return( -
    - {item.rightIdx && item.rightIdx !=="0" ? item.rightIdx :"" } -

    {item.content}

    -
    - ) - }) - } -
    + { + item.sections && item.sections.length >= 1 && !item.flag && +
    + { + item.sections.map((i,k)=>{ + return( + i.lines && i.lines.length>0 && i.lines.map((item,key)=>{ + return( +
    + + {item.leftIdx && item.leftIdx !=="0" ? item.leftIdx :"" } + {item.rightIdx && item.rightIdx !=="0" ? item.rightIdx :"" } + +

    {item.content}

    +
    + ) + }) + ) + }) + } +
    + }
    ) }) @@ -66,6 +70,8 @@ function Files(props){
    } + : + ) } export default Files; \ No newline at end of file diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index b9b5ef38..f6ac34e7 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -522,7 +522,7 @@ class MessageCount extends Component {
    { const { projectsId } = this.props.match.params; - this.getmergelist(projectsId); + // 监听回退事件 + if (window.history && window.history.pushState) { + window.addEventListener('popstate', this.handleBack, false); + } }; + componentDidUpdate=(preProps)=>{ + const { project } = this.props; + let oldProject = preProps.project; + if(project && oldProject && (oldProject.id !== project.id)){ + this.compareProject(this.state.id,"master","master"); + } + } + // 页面销毁取消监听 + componentWillUnmount () { + window.removeEventListener('popstate', this.handleBack, false); + }; + + handleBack=()=>{ + const { projectsId } = this.props.match.params; + this.getmergelist(projectsId); + } + //获取新建分支数据 getmergelist = (projectsId) => { this.setState({isSpin: true}) @@ -56,6 +78,7 @@ class NewMerge extends Component { this.set_default_pull(result.data.branches); this.set_default_merge(result.data.merge_projects); } + this.compareProject(result.data.id,"master","master"); this.setState({isSpin: false}) }) .catch((error) => { @@ -64,6 +87,32 @@ class NewMerge extends Component { }); }; + // 获取compare接口 + compareProject=(baseid , localBranch , mergeBranch)=>{ + const { project } = this.props; + const { owner , projectsId } = this.props.match.params; + let url = `/${owner}/${projectsId}/compare`; + if(project){ + if(baseid === project.id){ + this.setState({ + oldProject:project + }) + url += `/${localBranch}...${mergeBranch}.json`; + }else{ + const { oldProject } = this.state; + const { author , identifier } =oldProject; + url += `/${mergeBranch}...${author && author.login}/${identifier}:${localBranch}.json`; + } + axios.get(url).then(result=>{ + if(result){ + this.setState({ + comparesData:result.data + }) + } + }).catch(error=>{}) + } + } + set_default_pull = (branches) => { if(branches && branches.length>0){ let default_pull = branches.filter((e) => e.name === "master") @@ -117,6 +166,12 @@ class NewMerge extends Component { selectBrach = (type, value) => { this.state[type] = value; this.ischeckmerge(); + let { id ,merge , pull } = this.state; + if(type==="pull"){ + this.compareProject(id,value,merge); + }else{ + this.compareProject(id,pull,value); + } }; selectProjectName = (value) => { @@ -191,8 +246,9 @@ class NewMerge extends Component { show_message, default_message, merge_head, - projects_names, + projects_names,id,comparesData } = this.state; + const renderBrances = (list, type) => { if (list && list.length > 0) { return list.map((item, key) => { @@ -233,7 +289,7 @@ class NewMerge extends Component {
    源分支:
    this.inputOnBlur(e, 1)} - style={{marginTop: '30px', height: '38px'}} - onPressEnter={() => this.postLogin()} - > - - { - Phonenumberisnotco && Phonenumberisnotco != "" ? -

    - {Phonenumberisnotco} -

    - :
    - } - - this.postLogin()} - className={Phonenumberisnotcodmm && Phonenumberisnotcodmm !== "" ?" color-grey-9 loginInputzhucheyslass bor-reds":" color-grey-9 loginInputzhuche"} - placeholder="密码"> - { - Phonenumberisnotcodmm && Phonenumberisnotcodmm != "" ? -

    - {Phonenumberisnotcodmm} -

    - : (Phonenumberisnotcodmms=== undefined?
    :"") - } - { - Phonenumberisnotcodmms && Phonenumberisnotcodmms != "" ? -

    - {Phonenumberisnotcodmms} -

    - : "" - } - - - - - {this.props.mygetHelmetapi&&this.props.mygetHelmetapi.main_site===true?this.state.isphone===true?

    - - ———————— 快速登录 ———————— -

    -

    :

    - ———————— 快速登录 ———————— -

    -

    :""} -
    - } - - - - { - weixinlogin===false&&parseInt(tab[0])==1 && -
    - this.inputOnBlurzhuche(e, 2)} - style={{marginTop: '30px' , height: '38px',color:'#999999',fontSize:"14px"}}> - { - Phonenumberisnotcos && Phonenumberisnotcos !== "" ? -

    - {Phonenumberisnotcos} -

    - :
    - - } - {this.state.MyEduCoderModals===true? {this.setNotcompleteds()}} - />:""} - - { - Whethertoverify===false&&pciphone===true? - - - : - "" - - } - { - Whethertoverify===true&&pciphone===true? - - - : - "" - } - -
    - { - pciphone===true? - ( - Phonenumberisnotcosytdhk && Phonenumberisnotcosytdhk !== "" ? -

    - {Phonenumberisnotcosytdhk} -

    - :
    - - ) - :"" - } -
    - - - -
    - - - - { - getverificationcodes === undefined ? - - : getverificationcodes === true ? - - : - - } - -
    -
    - { - Phonenumberisnotcosyzm && Phonenumberisnotcosyzm !== "" ? -

    - {Phonenumberisnotcosyzm} -

    - :
    - - } -
    - - - - - this.Showandhide(key)}> - - }> - { - Phonenumberisnotcosymmm && Phonenumberisnotcosymmm !== "" ? -

    - {Phonenumberisnotcosymmm} -

    - :
    - - } - {this.props.mygetHelmetapi&&this.props.mygetHelmetapi.main_site===true?我已阅读并同意 - - 《服务协议条款》 - :""} - - - {this.props.mygetHelmetapi&&this.props.mygetHelmetapi.main_site===true?this.state.isphone===true?

    - - ———————— 快速登录 ———————— -

    -

    :

    - ———————— 快速登录 ———————— -

    -

    :"" - } -
    - } - - - - - {weixinlogin===true?:""} - {weixinlogin===true?

    - this.hideweixinlogin()}>返回登录注册 -

    :""} - - - +
    + + 注册 + +
    + + {getFieldDecorator("login", { + rules: [{ + required: true, + message: "请输入邮箱地址", + }], + })()} + + + {getFieldDecorator("password", { + rules: [{ + validator:this.checkPass + }], + })()} + + + {getFieldDecorator("passagain", { + rules: [{ + validator:this.checkreplyPass + }], + })()} + + +
    +
    + ); } } - -export default (LoginRegisterComponent); +const WrappedNewMerge = Form.create({ name: "NewMergeForm" })(LoginRegisterComponent); +export default WrappedNewMerge; diff --git a/src/modules/user/register.css b/src/modules/user/register.css new file mode 100644 index 00000000..54ae7644 --- /dev/null +++ b/src/modules/user/register.css @@ -0,0 +1,22 @@ +.registerPanel{ + padding:20px 40px 25px 40px; +} +.registerPanel input{ + height: 40px; +} +.registerPanel .ant-row.ant-form-item{ + margin-bottom: 25px; +} +.registerPanel .ant-form.ant-form-horizontal{ + margin-top: 20px; +} +.registerPanel .ant-menu-item{ + margin-left: 0px!important; + padding: 0px; +} +.ant-form-explain{ + position: absolute; +} +form .has-feedback .ant-input-affix-wrapper .ant-input-suffix{ + padding-right: 0px!important; +} \ No newline at end of file From b2eca51bd82985f887e009a25c2cedbd5f79d9cd Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 19 Nov 2020 09:45:54 +0800 Subject: [PATCH 110/164] merge.css not found --- public/css/merge.css | 111 +++++++++++++++++++++++++++++++++++++++++++ public/index.html | 1 + 2 files changed, 112 insertions(+) create mode 100755 public/css/merge.css diff --git a/public/css/merge.css b/public/css/merge.css new file mode 100755 index 00000000..b6d923ce --- /dev/null +++ b/public/css/merge.css @@ -0,0 +1,111 @@ + +.CodeMirror-merge { + position: relative; + white-space: pre; +} + +.CodeMirror-merge, .CodeMirror-merge .CodeMirror { + min-height:50px; +} + +.CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 48%; } +.CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 4%; } +.CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; } +.CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; } + +.CodeMirror-merge-pane { + display: inline-block; + white-space: normal; + vertical-align: top; +} +.CodeMirror-merge-pane-rightmost { + position: absolute; + right: 0px; + z-index: 1; +} + +.CodeMirror-merge-gap { + z-index: 2; + display: inline-block; + height: 100%; + -moz-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + position: relative; + background: #515151; +} + +.CodeMirror-merge-scrolllock-wrap { + position: absolute; + bottom: 0; left: 50%; +} +.CodeMirror-merge-scrolllock { + position: relative; + left: -50%; + cursor: pointer; + color: #d8d8d8; + line-height: 1; +} + +.CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right { + position: absolute; + left: 0; top: 0; + right: 0; bottom: 0; + line-height: 1; +} + +.CodeMirror-merge-copy { + position: absolute; + cursor: pointer; + color: #ce374b; + z-index: 3; +} + +.CodeMirror-merge-copy-reverse { + position: absolute; + cursor: pointer; + color: #44c; +} + +.CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; } +.CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; } + +.CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==); + background-position: bottom left; + background-repeat: repeat-x; +} + +.CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==); + background-position: bottom left; + background-repeat: repeat-x; +} + +.CodeMirror-merge-r-chunk { background: #9a6868; } +.CodeMirror-merge-r-chunk-start { /*border-top: 1px solid #ee8; */} +.CodeMirror-merge-r-chunk-end {/* border-bottom: 1px solid #ee8; */} +.CodeMirror-merge-r-connect { fill:#9a6868;} + +.CodeMirror-merge-l-chunk { background: #eef; } +.CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; } +.CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; } +.CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; } + +.CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; } +.CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; } +.CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; } + +.CodeMirror-merge-collapsed-widget:before { + content: "(...)"; +} +.CodeMirror-merge-collapsed-widget { + cursor: pointer; + color: #88b; + background: #eef; + border: 1px solid #ddf; + font-size: 90%; + padding: 0 3px; + border-radius: 4px; +} +.CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; } diff --git a/public/index.html b/public/index.html index 1969fa0e..96c70b2d 100755 --- a/public/index.html +++ b/public/index.html @@ -30,6 +30,7 @@
    + From ac5b50c26dd87e6b90b7d945ab719dbd75c557c9 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 23 Nov 2020 10:14:29 +0800 Subject: [PATCH 111/164] detail --- public/index.html | 15 +++------------ src/forge/Main/CoderRootDirectory.js | 1 - src/forge/Order/order.js | 22 ++++++++++------------ 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/public/index.html b/public/index.html index 96c70b2d..f039d86e 100755 --- a/public/index.html +++ b/public/index.html @@ -8,18 +8,9 @@ - - - + + + <%= htmlWebpackPlugin.tags.headTags %> diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 507fa48a..521c72f2 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -551,7 +551,6 @@ class CoderRootDirectory extends Component { { !rootList && !fileDetail && } - {/* readme.txt (isManager || isDeveloper)*/} { rootList && this.renderReadMeContent(readMeContent, isManager || isDeveloper)}
    diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index dc9cfe19..b1f09204 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -329,16 +329,16 @@ class order extends Component { id: id, }, }) - .then((result) => { - if (result) { - const { status_type } = this.state; + .then((result) => { + if (result) { + const { status_type } = this.state; - this.getIssueList(status_type); - } - }) - .catch((error) => { - console.log(error); - }); + this.getIssueList(status_type); + } + }) + .catch((error) => { + console.log(error); + }); }; islogin() { @@ -354,9 +354,7 @@ class order extends Component { ) }else{ return( - - + 创建任务 - + + 创建任务 ) } } From 8cc13f77e13745b5425a129a8ef02768799e1223 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 23 Nov 2020 15:23:19 +0800 Subject: [PATCH 112/164] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81-=E6=97=A0?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/DevOps/About.jsx | 10 ++++++++-- src/forge/DevOps/ops.scss | 7 +++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index d387eb1d..c81b0553 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 107b351f..d3e5c184 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -8,7 +8,7 @@ import axios from "axios"; const P = styled.p` { - width: 200px; + width: 230px; line-height: 30px; font-size: 16px; color: #333; @@ -33,7 +33,6 @@ function About(props, ref) { const AuthorLogin = props.author && props.author.login; const CurrentLogin = props.current_user && props.current_user.login; - useEffect(()=>{ if(CurrentLogin === AuthorLogin){ auth('get'); @@ -127,9 +126,16 @@ function About(props, ref) {

    定义DevOps工作流,帮助您检测bug、发布代码…

    + { + CurrentLogin !== AuthorLogin && (step === undefined || (step && step < 1)) && +
    DevOps开启功能暂未对项目创建者以外的角色开放,可以联系项目创建者进行开启,开启后便可查看构建信息。
    + } 了解什么是DevOps? + + 如何使用DevOps? + { AuthorLogin === CurrentLogin ? diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss index 6e0c4fa1..7a98d240 100644 --- a/src/forge/DevOps/ops.scss +++ b/src/forge/DevOps/ops.scss @@ -307,3 +307,10 @@ margin-bottom: 0px; } } +.noOperation{ + margin-bottom:20px; + width:380px; + text-align:center; + line-height:22px; + color:#666; +} \ No newline at end of file From 5827e96a53c2c7e6c379fd0590ad191efee14bf1 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 24 Nov 2020 10:46:27 +0800 Subject: [PATCH 113/164] branch router --- src/AppConfig.js | 2 +- src/forge/Branch/Select.jsx | 5 +- src/forge/Main/CoderRootBranch.js | 2 +- src/forge/Main/CoderRootCommit.js | 50 ++++++++++------ src/forge/Main/CoderRootDirectory.js | 74 ++++++++++-------------- src/forge/Main/CoderRootIndex.js | 29 ++++++++-- src/forge/Main/Detail.js | 10 ++++ src/forge/Main/DetailTop.js | 2 +- src/forge/Main/Diff.jsx | 2 +- src/forge/Merge/Files.jsx | 2 +- src/forge/Merge/MergeItem.js | 4 +- src/forge/Merge/MessageCount.js | 4 +- src/forge/Newfile/UserSubmitComponent.js | 4 +- src/forge/Settings/Branch.js | 6 +- src/forge/Settings/Index.js | 2 +- 15 files changed, 117 insertions(+), 81 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index c81b0553..d387eb1d 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/Branch/Select.jsx b/src/forge/Branch/Select.jsx index 30e7d59c..55bb0345 100644 --- a/src/forge/Branch/Select.jsx +++ b/src/forge/Branch/Select.jsx @@ -4,7 +4,7 @@ import './branch.css'; import { getBranch , getTag } from '../GetData/getData'; -export default (({ projectsId , repo_id , changeBranch , branch , owner })=>{ +export default (({ projectsId , branch , owner , history , changeBranch })=>{ const [ showValue , setShowValue ] = useState(branch); const [ inputValue , setInputValue] = useState(undefined); const [ nav , setNav ] = useState(0); @@ -17,6 +17,7 @@ export default (({ projectsId , repo_id , changeBranch , branch , owner })=>{ useEffect(()=>{ setShowValue(branch); },[branch]) + useEffect(()=>{ document.body.addEventListener('click', e => { let name = e.target.className; @@ -63,7 +64,7 @@ export default (({ projectsId , repo_id , changeBranch , branch , owner })=>{ } } function chooseitem(value){ - setShowValue(value); + // setShowValue(value); changeBranch(value); } diff --git a/src/forge/Main/CoderRootBranch.js b/src/forge/Main/CoderRootBranch.js index 4fde90e4..4369d2fe 100644 --- a/src/forge/Main/CoderRootBranch.js +++ b/src/forge/Main/CoderRootBranch.js @@ -32,7 +32,7 @@ export default ((props)=>{ return(
  • - {item.name} + {item.name}

    {item.last_commit && truncateCommitId(item.last_commit.sha)} {item.last_commit && item.last_commit.message} diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index 36585fe3..ddb47a2b 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -12,7 +12,6 @@ class CoderRootCommit extends Component{ constructor(props){ super(props) this.state={ - branch:"master", commitDatas:undefined, dataCount:undefined, limit:20, @@ -22,11 +21,23 @@ class CoderRootCommit extends Component{ } componentDidMount=()=>{ - const { branch , page , limit } = this.state; + this.Init(); + } + + componentDidUpdate=(prevProps)=>{ + const { location } = this.props; + const prevlocation = prevProps && prevProps.location; + if (location !== prevlocation) { + this.Init(); + } + } + Init =()=>{ + const { branchName } = this.props.match.params; + const { page , limit } = this.state; this.setState({ isSpining:true }) - this.getCommitList( branch , page , limit ); + this.getCommitList( branchName , page , limit ); } getCommitList=(branch , page , limit)=>{ @@ -68,26 +79,28 @@ class CoderRootCommit extends Component{ // 切换分支 search:tag为根据标签搜索 changeBranch=(value)=>{ - const { page , limit } = this.state; - const { getTopCount } = this.props; - this.setState({ - isSpining:true, - branch:value, - }) - this.getCommitList(value , page , limit); - getTopCount && getTopCount(value); + // const { page , limit } = this.state; + // const { getTopCount } = this.props; + // this.setState({ + // isSpining:true, + // branch:value, + // }) + // this.getCommitList(value , page , limit); + // getTopCount && getTopCount(value); + const { projectsId , owner } = this.props.match.params; + this.props.history.push(`/projects/${owner}/${projectsId}/commits/branch/${value}`); } ChangePage=(page)=>{ - - const { branch , limit } = this.state; - this.getCommitList(branch , page , limit); + const { branchName } = this.props.match.params; + const { limit } = this.state; + this.getCommitList(branchName , page , limit); } render(){ - const { branch , commitDatas , dataCount , limit , page , isSpining } = this.state; - const { branchs , projectDetail, commit_class } = this.props; - const { projectsId , owner } = this.props.match.params; - + const { commitDatas , dataCount , limit , page , isSpining } = this.state; + const { projectDetail, commit_class } = this.props; + const { projectsId , owner , branchName } = this.props.match.params; + let branch = branchName || "master"; return(

    @@ -98,6 +111,7 @@ class CoderRootCommit extends Component{ branch={branch} changeBranch={this.changeBranch} owner={owner} + history={this.props.history} >
    diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 521c72f2..41dc9b51 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -34,7 +34,7 @@ class CoderRootDirectory extends Component { super(props); this.state = { address: "http", - branch: "master", + branch: props.match.params.branchName || "master", filePath: undefined, subFileType: undefined, readMeContent: undefined, @@ -79,31 +79,16 @@ class CoderRootDirectory extends Component { Init = () => { let { search } = this.props.history.location; - let branchName = undefined; - if (search && (search.indexOf("?branch=") > -1 || search.indexOf("&branch=") > -1)) { - branchName = search.split("branch=")[1]; - - if(branchName && branchName.indexOf("&")){ - branchName=branchName.split("&")[0]; - } - this.setState({ - branch: branchName, - }); - }else{ - branchName = undefined; - this.setState({ - branch: "master", - }); - } + const { branchName } = this.props.match.params; + let branch = branchName || "master"; if (search && (search.indexOf("?url=") > -1 || search.indexOf("&url=") > -1)) { let url = search.split("url=")[1]; if(url && decodeURI(url).indexOf("&")){ url=decodeURI(url).split("&")[0]; } - this.getFileDetail(decodeURI(url),branchName); + this.getFileDetail(decodeURI(url),branch); } else { - const { branch } = this.state; - this.getProjectRoot(branchName || branch); + this.getProjectRoot(branch); } }; @@ -194,13 +179,13 @@ class CoderRootDirectory extends Component { this.setState({ filePath: decodeURI(path), }); - const { projectsId ,owner } = this.props.match.params; - const { branch , chooseType } = this.state; + const { projectsId , owner , branchName } = this.props.match.params; + const { chooseType } = this.state; const url = `/${owner}/${projectsId}/sub_entries.json`; axios.get(url,{ params:{ filepath:path, - ref:ref || branch, + ref:ref || branchName, type:chooseType } }).then((result)=>{ @@ -325,24 +310,27 @@ class CoderRootDirectory extends Component { // 选择分支 changeBranch = (value) => { - this.setState({ - branch: value, - isSpin: true, - readOnly:true - }); - const { getTopCount } = this.props; - getTopCount && getTopCount(value); + // this.setState({ + // branch: value, + // isSpin: true, + // readOnly:true + // }); + // const { getTopCount } = this.props; + // getTopCount && getTopCount(value); + + // let { search } = this.props.history.location; + // if (search && search.indexOf("?url=") > -1) { + // let url = search.split("?url=")[1]; + // this.setState({ + // filePath: decodeURI(url), + // }); + // this.getFileDetail(decodeURI(url), value); + // } else { + // this.getProjectRoot(value); + // } + const { projectsId , owner } = this.props.match.params; + this.props.history.push(`/projects/${owner}/${projectsId}/branch/${value}`); - let { search } = this.props.history.location; - if (search && search.indexOf("?url=") > -1) { - let url = search.split("?url=")[1]; - this.setState({ - filePath: decodeURI(url), - }); - this.getFileDetail(decodeURI(url), value); - } else { - this.getProjectRoot(value); - } } // 子目录路径返回链接 @@ -421,10 +409,11 @@ class CoderRootDirectory extends Component { } render(){ - const { branchLastCommit , lastCommitAuthor , rootList , branch ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url} = this.state; + const { branchLastCommit , lastCommitAuthor , rootList ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url} = this.state; const { isManager , isDeveloper , projectDetail , platform } = this.props; - const { projectsId , owner } = this.props.match.params; + const { projectsId , owner , branchName } = this.props.match.params; + let branch = branchName || "master"; const columns = [ { dataIndex: 'name', @@ -473,6 +462,7 @@ class CoderRootDirectory extends Component { branch={branch} changeBranch={this.changeBranch} owner={owner} + history={this.props.history} > : 分支:master diff --git a/src/forge/Main/CoderRootIndex.js b/src/forge/Main/CoderRootIndex.js index 2aa8218f..0649c5dd 100644 --- a/src/forge/Main/CoderRootIndex.js +++ b/src/forge/Main/CoderRootIndex.js @@ -55,12 +55,19 @@ class CoderRootIndex extends Component{ } componentDidMount=()=>{ - let { search } = this.props.history.location; - let branchName = undefined; - if (search && search.indexOf("?branch=") > -1) { - branchName = search.split("?branch=")[1]; + this.Init(); + } + componentDidUpdate=(prevProps)=>{ + const { location } = this.props; + const prevlocation = prevProps && prevProps.location; + if (location !== prevlocation) { + this.Init(); } - this.getTopCount(branchName); + } + + Init=()=>{ + const { branchName } = this.props.match.params; + this.getTopCount(branchName || "master"); } getTopCount=(branch)=>{ @@ -99,6 +106,11 @@ class CoderRootIndex extends Component{ > {/* diff */} + () + } + > () @@ -132,7 +144,12 @@ class CoderRootIndex extends Component{ () => () } > - () + } + > + () } diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 2dcdcac3..431c1f4d 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -708,6 +708,16 @@ class Detail extends Component { (props) => () } > + () + } + > + () + } + > () diff --git a/src/forge/Main/DetailTop.js b/src/forge/Main/DetailTop.js index 5dcd240d..260ff1e6 100644 --- a/src/forge/Main/DetailTop.js +++ b/src/forge/Main/DetailTop.js @@ -16,7 +16,7 @@ class DetailTop extends Component { {(coderCount && coderCount.commits_count) || 0}个提交 - 0 ? "active" : ""}> + 0 ? "active" : ""}> {(coderCount && coderCount.branches_count) || 0}个分支 diff --git a/src/forge/Main/Diff.jsx b/src/forge/Main/Diff.jsx index 8926ec6d..8007e1fc 100644 --- a/src/forge/Main/Diff.jsx +++ b/src/forge/Main/Diff.jsx @@ -59,7 +59,7 @@ export default ({ match , history }) => { {commit && commit.message &&
    {commit.message}
    } - +
  • diff --git a/src/forge/Merge/Files.jsx b/src/forge/Merge/Files.jsx index 4061889e..08983266 100644 --- a/src/forge/Merge/Files.jsx +++ b/src/forge/Merge/Files.jsx @@ -47,7 +47,7 @@ function Files({data,history,owner,projectsId}){ {item.name} - + +{item.addition} -{item.deletion} diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index 2585b9d4..77a8a62a 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -98,7 +98,7 @@ class MergeItem extends Component { {item.is_original @@ -116,7 +116,7 @@ class MergeItem extends Component { {/* {item.is_fork ? item.pull_request_base : `${item.author_name}:${item.pull_request_base}`} */} diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 2aff7771..87f19d38 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -300,7 +300,7 @@ class MessageCount extends Component {
    {data.pull_request.is_original ? data.pull_request.fork_project_user : data.issue.project_author_name}:{data.pull_request.head} @@ -315,7 +315,7 @@ class MessageCount extends Component { {/* {data.pull_request.is_fork ? data.pull_request.base : `${data.pull_request.pull_request_user}:${data.pull_request.base}`} */} diff --git a/src/forge/Newfile/UserSubmitComponent.js b/src/forge/Newfile/UserSubmitComponent.js index 42e636c1..e2c57d72 100644 --- a/src/forge/Newfile/UserSubmitComponent.js +++ b/src/forge/Newfile/UserSubmitComponent.js @@ -55,7 +55,7 @@ class UserSubmitComponent extends Component { getTopCount && getTopCount(values.branchname); } let url = values.branchname - ? `/projects/${owner}/${projectsId}?branch=${values.branchname}` + ? `/projects/${owner}/${projectsId}/branch/${values.branchname}` : `/projects/${owner}/${projectsId}`; this.props.history.push(url); } @@ -92,7 +92,7 @@ class UserSubmitComponent extends Component { this.setState({ isSpin: false }); if (result.data && result.data.status === 1) { let url = values.branchname - ? `/projects/${owner}/${projectsId}?branch=${values.branchname}` + ? `/projects/${owner}/${projectsId}/branch/${values.branchname}` : `/projects/${owner}/${projectsId}`; this.props.history.push(url); diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index 1de276f3..b23eb985 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -16,6 +16,9 @@ export default ((props)=>{ function resetSetting(){ + } + function settingRule(){ + props.history.push(`/projects/${owner}/${projectsId}/setting/branch/new`); } return( @@ -31,6 +34,7 @@ export default ((props)=>{ projectsId={projectsId} changeBranch={setBranch} owner={owner} + history={props.history} /> 设为默认分支 @@ -38,7 +42,7 @@ export default ((props)=>{
    保护分支规则 - + 新建规则 + settingRule()}>+ 新建规则
  • 限制分支的推送、合并。强制推送相关请去仓库设置
  • diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 542f12c7..31ecdefd 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -71,7 +71,7 @@ class Index extends Component { } >

    - + 分支设置 From 92699347ec2da809a8a844f5d084a2f2302b7f6b Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 24 Nov 2020 18:00:34 +0800 Subject: [PATCH 114/164] =?UTF-8?q?=E5=88=86=E6=94=AF=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/DevOps/Dispose.jsx | 3 ++- src/forge/Main/CoderRootCommit.js | 4 ++-- src/forge/Main/CoderRootDirectory.js | 9 ++++----- src/forge/Main/CoderRootIndex.js | 3 ++- src/forge/Main/Detail.js | 8 ++++++-- src/forge/Settings/Branch.js | 17 ++++++++++++++--- src/forge/Settings/Setting.js | 1 - 8 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index d387eb1d..a369d843 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -28,7 +28,7 @@ if (isDev) { debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' -} +} function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); cookie.remove('autologin_trustie', { path: '/' }); diff --git a/src/forge/DevOps/Dispose.jsx b/src/forge/DevOps/Dispose.jsx index 04f3558c..f8aad2eb 100644 --- a/src/forge/DevOps/Dispose.jsx +++ b/src/forge/DevOps/Dispose.jsx @@ -55,8 +55,9 @@ function Dispose(props){ // 确定提交 function submit(){ let url = ''; + const { defaultBranch } = props; let params = { - branch: "master", + branch: defaultBranch, content:ymlValue, filepath:info, message:'' diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index ddb47a2b..0b3526ac 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -98,9 +98,9 @@ class CoderRootCommit extends Component{ } render(){ const { commitDatas , dataCount , limit , page , isSpining } = this.state; - const { projectDetail, commit_class } = this.props; + const { projectDetail, commit_class , defaultBranch } = this.props; const { projectsId , owner , branchName } = this.props.match.params; - let branch = branchName || "master"; + let branch = branchName || defaultBranch; return(

    diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 41dc9b51..7b86bc1a 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -15,7 +15,6 @@ import Nodata from '../Nodata'; import axios from "axios"; /** * address:http和SSH,http_url(对应git地址) - * branch:当前分支 * filePath:点击目录时当前目录的路径 * subfileType:保存当前点击目录的文件类型(显示目录列表时才显示新建文件,如果点击的是文件就不显示新建文件按钮) * readMeContent:根目录下面的readme文件内容 @@ -34,7 +33,6 @@ class CoderRootDirectory extends Component { super(props); this.state = { address: "http", - branch: props.match.params.branchName || "master", filePath: undefined, subFileType: undefined, readMeContent: undefined, @@ -80,7 +78,8 @@ class CoderRootDirectory extends Component { Init = () => { let { search } = this.props.history.location; const { branchName } = this.props.match.params; - let branch = branchName || "master"; + const { defaultBranch } = this.props; + let branch = branchName || defaultBranch; if (search && (search.indexOf("?url=") > -1 || search.indexOf("&url=") > -1)) { let url = search.split("url=")[1]; if(url && decodeURI(url).indexOf("&")){ @@ -410,10 +409,10 @@ class CoderRootDirectory extends Component { render(){ const { branchLastCommit , lastCommitAuthor , rootList ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url} = this.state; - const { isManager , isDeveloper , projectDetail , platform } = this.props; + const { isManager , isDeveloper , projectDetail , platform , defaultBranch } = this.props; const { projectsId , owner , branchName } = this.props.match.params; - let branch = branchName || "master"; + let branch = branchName || defaultBranch; const columns = [ { dataIndex: 'name', diff --git a/src/forge/Main/CoderRootIndex.js b/src/forge/Main/CoderRootIndex.js index 0649c5dd..27dbbb9d 100644 --- a/src/forge/Main/CoderRootIndex.js +++ b/src/forge/Main/CoderRootIndex.js @@ -67,7 +67,8 @@ class CoderRootIndex extends Component{ Init=()=>{ const { branchName } = this.props.match.params; - this.getTopCount(branchName || "master"); + const { defaultBranch } = this.props; + this.getTopCount(branchName || defaultBranch); } getTopCount=(branch)=>{ diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 431c1f4d..685e297d 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -168,6 +168,8 @@ class Detail extends Component { firstSync:false, secondSync:false, open_devops:false, + // 默认分支 + defaultBranch:undefined, // 非本平台项目 platform:false @@ -281,6 +283,7 @@ class Detail extends Component { watchers_count: result.data.watchers_count, praises_count: result.data.praises_count, forked_count: result.data.forked_count, + defaultBranch:result.data.default_branch }) } }).catch((error) => { }) @@ -381,7 +384,7 @@ class Detail extends Component { const { projectDetail, watchers_count, praises_count, forked_count, firstSync , secondSync , isManager, watched, praised, - project , open_devops , platform } = this.state; + project , open_devops , platform , defaultBranch } = this.state; const url = this.props.history.location.pathname; const urlArr = url.split("/"); const urlFlag = (urlArr.length === 3); @@ -403,7 +406,8 @@ class Detail extends Component { const common = { getDetail: this.getDetail, - changeOpenDevops:this.changeOpenDevops + changeOpenDevops:this.changeOpenDevops, + defaultBranch } return (
    diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index b23eb985..487463df 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -3,7 +3,7 @@ import SelectBranch from '../Branch/Select'; import Title from '../Component/Title'; import styled from 'styled-components'; import { Blueline , FlexAJ , NumUl , GreenUnder , AlignCenter , WhiteBack } from '../Component/layout'; - +import axios from 'axios'; const Div = styled.div`{ padding:20px 30px; min-height:500px; @@ -15,7 +15,18 @@ export default ((props)=>{ const projectDetail = props.projectDetail; function resetSetting(){ - + const url = `/${owner}/${projectsId}.json`; + axios.put(url, { + default_branch:branch + }) + .then((result) => { + if (result) { + this.props.showNotification(`分支设置成功!`); + } + }) + .catch((error) => { + console.log(error); + }); } function settingRule(){ props.history.push(`/projects/${owner}/${projectsId}/setting/branch/new`); @@ -36,7 +47,7 @@ export default ((props)=>{ owner={owner} history={props.history} /> - 设为默认分支 + resetSetting()}>设为默认分支
    diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index ea557de4..4aeeb4b2 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -144,7 +144,6 @@ class Setting extends Component { }); }; changePrivate = (e) => { - console.log(e); this.setState({ private_check: e.target.checked, }); From b27f0e796d1a91b2c1162168b26f159c69426c6c Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 25 Nov 2020 12:39:59 +0800 Subject: [PATCH 115/164] === --- src/modules/tpm/challengesnew/TPMevaluation.js | 2 +- src/modules/user/LCCountDownButton.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/tpm/challengesnew/TPMevaluation.js b/src/modules/tpm/challengesnew/TPMevaluation.js index 901d3997..499cedd2 100644 --- a/src/modules/tpm/challengesnew/TPMevaluation.js +++ b/src/modules/tpm/challengesnew/TPMevaluation.js @@ -580,7 +580,7 @@ export default class TPMevaluation extends Component { }else{ let sum=parseInt(100/newevaluationlist.length); for(var i=0; i Date: Wed, 25 Nov 2020 17:25:59 +0800 Subject: [PATCH 116/164] babel --- .babelrc | 8 ++ package-lock.json | 228 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 6 +- src/App.js | 8 +- src/AppConfig.js | 2 +- 5 files changed, 237 insertions(+), 15 deletions(-) create mode 100644 .babelrc diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..15663e45 --- /dev/null +++ b/.babelrc @@ -0,0 +1,8 @@ +{ + "presets": [ + "es2015", + "react", + "stage-2" + ], + "plugins": [] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2c5f2c41..5f8e7844 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1254,6 +1254,55 @@ "ast-types-flow": "0.0.7" } }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-cli/download/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + }, + "dependencies": { + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-1.7.0.tgz?cache=0&sync_timestamp=1602585438968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -1273,7 +1322,7 @@ }, "babel-core": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "resolved": "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.0.tgz", "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "requires": { "babel-code-frame": "^6.26.0", @@ -1299,8 +1348,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", "requires": { "ms": "2.0.0" } @@ -1345,6 +1394,17 @@ } } }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-bindify-decorators/download/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", @@ -1397,6 +1457,18 @@ "babel-types": "^6.24.1" } }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-helper-explode-class/download/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", @@ -1585,11 +1657,23 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-async-generators/download/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-syntax-decorators/download/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", @@ -1620,6 +1704,17 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-async-generator-functions/download/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", @@ -1641,6 +1736,19 @@ "babel-template": "^6.24.1" } }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-decorators/download/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", @@ -1950,6 +2058,25 @@ "babel-types": "^6.24.1" } }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz?cache=0&sync_timestamp=1595456367497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, "babel-preset-env": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", @@ -1987,6 +2114,38 @@ "semver": "^5.3.0" } }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-es2015/download/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, "babel-preset-flow": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", @@ -2005,7 +2164,7 @@ }, "babel-preset-react": { "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "resolved": "https://registry.npm.taobao.org/babel-preset-react/download/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", "requires": { "babel-plugin-syntax-jsx": "^6.3.13", @@ -2036,6 +2195,31 @@ "babel-preset-react": "6.24.1" } }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-stage-2/download/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npm.taobao.org/babel-preset-stage-3/download/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", @@ -6888,6 +7072,12 @@ "minipass": "^3.0.0" } }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/fs-readdir-recursive/download/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha1-4y/AMKLM7kSmtTcTCNpUvgs5fSc=", + "dev": true + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -11339,6 +11529,17 @@ "os-tmpdir": "^1.0.0" } }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/output-file-sync/download/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -17010,8 +17211,8 @@ }, "source-map-support": { "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.4.18.tgz", + "integrity": "sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8=", "requires": { "source-map": "^0.5.6" }, @@ -18666,6 +18867,12 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/user-home/download/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -18717,6 +18924,15 @@ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==" }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/v8flags/download/v8flags-2.1.1.tgz?cache=0&sync_timestamp=1590964281452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8flags%2Fdownload%2Fv8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index 0b17601d..8ac88a09 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "array-flatten": "^2.1.2", "autoprefixer": "7.1.6", "axios": "^0.18.1", - "babel-core": "6.26.0", "babel-eslint": "7.2.3", "babel-jest": "20.0.3", "babel-loader": "7.1.2", @@ -182,7 +181,12 @@ "port": "3007", "devDependencies": { "@babel/runtime": "7.0.0-beta.51", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.0", "babel-plugin-import": "^1.13.0", + "babel-preset-es2015": "^6.24.1", + "babel-preset-react": "^6.24.1", + "babel-preset-stage-2": "^6.24.1", "compression-webpack-plugin": "^1.1.12", "concat": "^1.0.3", "happypack": "^5.0.1", diff --git a/src/App.js b/src/App.js index 041ab5e1..9d24d286 100644 --- a/src/App.js +++ b/src/App.js @@ -9,13 +9,7 @@ import { } from 'react-router-dom'; import axios from 'axios'; import LoginDialog from './modules/login/LoginDialog'; -import Notcompletedysl from './modules/user/Notcompletedysl'; -import Trialapplicationysl from './modules/login/Trialapplicationysl'; -import Trialapplicationreview from './modules/user/Trialapplicationreview'; -import AccountProfile from "./modules/user/AccountProfile"; -import Accountnewprofile from './modules/user/Accountnewprofile'; -import Certifiedprofessional from './modules/modals/Certifiedprofessional'; - +import 'babel-polyfill'; import Loading from './Loading' import Loadable from 'react-loadable'; diff --git a/src/AppConfig.js b/src/AppConfig.js index d387eb1d..20da89ad 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); From a38b74041e8fc07180b758ed33dd31b734838bb4 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 26 Nov 2020 15:45:54 +0800 Subject: [PATCH 117/164] babelrc-runtime --- .babelrc | 10 ++- package-lock.json | 2 +- package.json | 1 + src/forge/Main/CoderRootDirectory.js | 37 ++++------ src/forge/Settings/Branch.js | 14 +++- src/forge/Settings/BranchRule.jsx | 103 ++++++++++++++++++++------- src/forge/Settings/Index.js | 4 +- 7 files changed, 115 insertions(+), 56 deletions(-) diff --git a/.babelrc b/.babelrc index 15663e45..6cf63216 100644 --- a/.babelrc +++ b/.babelrc @@ -4,5 +4,13 @@ "react", "stage-2" ], - "plugins": [] + "plugins": [[ + "transform-runtime", + { + "helpers": false, + "polyfill": false, + "regenerator": true, + "moduleName": "babel-runtime" + } + ]] } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5f8e7844..55cb6354 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2043,7 +2043,7 @@ }, "babel-plugin-transform-runtime": { "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "resolved": "https://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz", "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", "requires": { "babel-runtime": "^6.22.0" diff --git a/package.json b/package.json index 8ac88a09..42d6722c 100644 --- a/package.json +++ b/package.json @@ -184,6 +184,7 @@ "babel-cli": "^6.26.0", "babel-core": "^6.26.0", "babel-plugin-import": "^1.13.0", + "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 7b86bc1a..02dcdadb 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -93,11 +93,11 @@ class CoderRootDirectory extends Component { // 页面地址返回到主目录 returnMain = (branch) => { - const { projectsId , owner } = this.props.match.params; + const { projectsId , owner , branchName } = this.props.match.params; this.setState({ readOnly:true }) - this.props.history.push(`/projects/${owner}/${projectsId}`); + this.props.history.push(`/projects/${owner}/${projectsId}${branchName?`/branch/${branchName}`:""}`); this.getProjectRoot(branch); }; @@ -255,8 +255,8 @@ class CoderRootDirectory extends Component { this.setState({ chooseType:type }) - const { projectsId, owner } = this.props.match.params; - this.props.history.push(`/projects/${owner}/${projectsId}?url=${path}`); + const { projectsId, owner , branchName } = this.props.match.params; + this.props.history.push(`/projects/${owner}/${projectsId}${branchName?`/branch/${branchName}`:""}?url=${path}`); if(filename.substring(filename.length - 3) === ".md"){ this.setState({ md:true @@ -309,27 +309,18 @@ class CoderRootDirectory extends Component { // 选择分支 changeBranch = (value) => { - // this.setState({ - // branch: value, - // isSpin: true, - // readOnly:true - // }); - // const { getTopCount } = this.props; - // getTopCount && getTopCount(value); - - // let { search } = this.props.history.location; - // if (search && search.indexOf("?url=") > -1) { - // let url = search.split("?url=")[1]; - // this.setState({ - // filePath: decodeURI(url), - // }); - // this.getFileDetail(decodeURI(url), value); - // } else { - // this.getProjectRoot(value); - // } + let { search } = this.props.history.location; const { projectsId , owner } = this.props.match.params; - this.props.history.push(`/projects/${owner}/${projectsId}/branch/${value}`); + let url = `/projects/${owner}/${projectsId}${value && `/branch/${value}`}`; + if (search && (search.indexOf("?url=") > -1 || search.indexOf("&url=") > -1)) { + let u = search.split("url=")[1]; + if(u && decodeURI(u).indexOf("&")){ + u=decodeURI(u).split("&")[0]; + } + url += `?url=${u}`; + } + this.props.history.push(url); } // 子目录路径返回链接 diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index 7e3a0445..50f4b318 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -1,4 +1,4 @@ -import React , { useState } from 'react'; +import React , { useEffect, useState } from 'react'; import SelectBranch from '../Branch/Select'; import Title from '../Component/Title'; import styled from 'styled-components'; @@ -13,7 +13,15 @@ export default ((props)=>{ const [ branch , setBranch ] = useState("master"); const { projectsId , owner } = props.match.params; const projectDetail = props.projectDetail; - console.log("11",props.defaultBranch); + + const { defaultBranch } = props; + useEffect(()=>{ + if(defaultBranch){ + setBranch(defaultBranch); + } + },[defaultBranch]); + + function resetSetting(){ const url = `/${owner}/${projectsId}.json`; axios.put(url, { @@ -21,7 +29,7 @@ export default ((props)=>{ }) .then((result) => { if (result) { - this.props.showNotification(`分支设置成功!`); + props.showNotification(`分支设置成功!`); } }) .catch((error) => { diff --git a/src/forge/Settings/BranchRule.jsx b/src/forge/Settings/BranchRule.jsx index b6f01d8e..8f2ea7ba 100644 --- a/src/forge/Settings/BranchRule.jsx +++ b/src/forge/Settings/BranchRule.jsx @@ -1,20 +1,54 @@ -import React , { forwardRef , useCallback } from 'react'; -import { Form , Input , Select , Button } from 'antd'; -import Title from '../Component/Title'; -import { WhiteBack , Cancel } from '../Component/layout'; -import styled from 'styled-components'; +import React, { forwardRef, useCallback, useState, useEffect } from "react"; +import { Form, Input, Select, Button } from "antd"; +import Title from "../Component/Title"; +import { WhiteBack, Cancel } from "../Component/layout"; +import styled from "styled-components"; +import axios from "axios"; -const {Option} = Select; -const Div = styled.div`{ - padding:20px 30px; -}` +const { Option } = Select; +const Div = styled.div` +{ + padding: 20px 30px; +} +`; export default Form.create()( - forwardRef(( { form })=>{ - const { getFieldDecorator } = form; + forwardRef(({ form, match, history }) => { + const [list, setList] = useState(undefined); + const { projectsId, owner } = match.params; + const { getFieldDecorator, validateFields } = form; + + useEffect(() => { + const url = `/${owner}/${projectsId}/collaborators.json`; + axios.get(url).then((result) => { + setList(result.data.members); + }) + .catch((error) => {}); + }, []); + + function getMember(list) { + return ( + list && + list.length > 0 && + list.map((item, key) => { + return ( + item.role !== "Manager" && ( + + ) + ); + }) + ); + } + function saveBranchRule() { + validateFields((error, values) => { + if (!error) { + } + }); + } + const helper = useCallback( - (label, name, rules, widget , className , isRequired ) => ( + (label, name, rules, widget, className, isRequired) => (
    - {label} + {label} {getFieldDecorator(name, { rules, validateFirst: true })(widget)} @@ -22,7 +56,7 @@ export default Form.create()( ), [] ); - return( + return ( 新建保护分支规则
    @@ -30,31 +64,48 @@ export default Form.create()( "设置分支/通配符", "sign", [{ required: true, message: "请输入分支/通配符" }], - ,'setStyleRule' + , + "setStyleRule" )} -

    例如:设置为“master”,则对名称为“master”的分支生效;设置为“*-stable“ 或 ”release*“,则对名称符合此通配符的所有保护分支生效。

    +

    + 例如:设置为“master”,则对名称为“master”的分支生效;设置为“*-stable“ + 或 ”release*“,则对名称符合此通配符的所有保护分支生效。 +

    {helper( "可推送代码成员", "psuhmember", - [], - - ,'setSelectWidth' + {getMember(list)} + , + "setSelectWidth" )} {helper( "可合并Pull Request成员", "pullmember", - [], - - ,'setSelectWidth' + {getMember(list)} + , + "setSelectWidth" )}
    - - 取消 + + { + history.push(`/projects/${owner}/${projectsId}/setting/branch`); + }} + > + 取消 +
    - ) + ); }) -) \ No newline at end of file +); diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index c46f4839..31ecdefd 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -65,7 +65,7 @@ class Index extends Component {

    -
  • -1 ? "active" : "" } @@ -76,7 +76,7 @@ class Index extends Component { 分支设置

    -
  • + */}
  • -1 ? "active" : ""} > From 89b78bc0469318db17bf8b5c08d32a793739fac4 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 27 Nov 2020 11:59:21 +0800 Subject: [PATCH 118/164] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=92=8C=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E6=96=87=E4=BB=B6branch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderRootDirectory.js | 7 +++++-- src/forge/Newfile/UserSubmitComponent.js | 16 ++++++---------- src/forge/Settings/Branch.js | 2 +- src/forge/Settings/Index.js | 4 ++-- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 02dcdadb..21a6a59f 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -406,6 +406,7 @@ class CoderRootDirectory extends Component { let branch = branchName || defaultBranch; const columns = [ { + key:"name", dataIndex: 'name', width:"30%", render: (text,item) => ( @@ -415,7 +416,8 @@ class CoderRootDirectory extends Component { ), }, { - dataIndex: "commit", + key:"message", + dataIndex: "message", width: "60%", render: (text, item) => item.commit && item.commit.message ? @@ -425,7 +427,8 @@ class CoderRootDirectory extends Component { : "" }, { - dataIndex: "commit", + key:"time_from_now", + dataIndex: "time_from_now", width: "10%", className: "edu-txt-right", render: (text, item) => diff --git a/src/forge/Newfile/UserSubmitComponent.js b/src/forge/Newfile/UserSubmitComponent.js index e2c57d72..e24d167b 100644 --- a/src/forge/Newfile/UserSubmitComponent.js +++ b/src/forge/Newfile/UserSubmitComponent.js @@ -54,9 +54,7 @@ class UserSubmitComponent extends Component { const { getTopCount } = this.props; getTopCount && getTopCount(values.branchname); } - let url = values.branchname - ? `/projects/${owner}/${projectsId}/branch/${values.branchname}` - : `/projects/${owner}/${projectsId}`; + let url = `/projects/${owner}/${projectsId}${values.branchname ? `/branch/${values.branchname}`: (branch ? `/branch/${branch}` : "")}`; this.props.history.push(url); } }) @@ -73,7 +71,7 @@ class UserSubmitComponent extends Component { // 确认修改文件 UpdateFile = () => { this.setState({ isSpin: true }); - const { branch, detail, content, filepath } = this.props; + const { branch, detail, content , currentBranch } = this.props; const { projectsId , owner } = this.props.match.params; const { submitType } = this.state; const url = `/${owner}/${projectsId}/update_file.json`; @@ -82,7 +80,7 @@ class UserSubmitComponent extends Component { axios .put(url, { filepath: detail.path, - branch: branch, + branch: submitType === "1" ? undefined : (currentBranch || branch), new_branch: submitType === "1" ? values.branchname : undefined, content: content, sha: detail.sha, @@ -91,12 +89,10 @@ class UserSubmitComponent extends Component { .then((result) => { this.setState({ isSpin: false }); if (result.data && result.data.status === 1) { - let url = values.branchname - ? `/projects/${owner}/${projectsId}/branch/${values.branchname}` - : `/projects/${owner}/${projectsId}`; - + debugger; + let url = `/projects/${owner}/${projectsId}${(values.branchname ? `/branch/${values.branchname}` : ((currentBranch || branch) ? `/branch/${currentBranch || branch}`:""))}`; this.props.history.push(url); - this.props.showNotification("修改成功!"); + this.props.showNotification("文件修改成功!"); } }) .catch((error) => { diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index 50f4b318..2a391bc6 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -64,7 +64,7 @@ export default ((props)=>{ settingRule()}>+ 新建规则 -
  • 限制分支的推送、合并。强制推送相关请去仓库设置
  • +
  • 限制分支的推送、合并。强制推送相关请去{props.history.push(`/projects/${owner}/${projectsId}/setting`)}}>仓库设置
  • 一个分支同时只能有一个保护分支规则生效,越早创建的规则优先级越高。
  • 保护分支规则只影响状态是【保护分支】的分支。【常规分支】和【只读分支】都不影响。
  • diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 31ecdefd..c46f4839 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -65,7 +65,7 @@ class Index extends Component {

    - {/*
  • -1 ? "active" : "" } @@ -76,7 +76,7 @@ class Index extends Component { 分支设置

    -
  • */} +
  • -1 ? "active" : ""} > From 90051063327af0d759b0272b97034962c44a34fd Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 27 Nov 2020 15:43:55 +0800 Subject: [PATCH 119/164] clear --- src/App.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/App.js b/src/App.js index 9d24d286..13623f56 100644 --- a/src/App.js +++ b/src/App.js @@ -211,13 +211,7 @@ class App extends Component { - {/* */} this.Modifyloginvalue()}> - {/* */} - {/* */} - {/* */} - {/* */} - {/* */} {/*项目*/} From 06f0c53d3b19fb03b33d7905774fb41a2fc284dc Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 27 Nov 2020 16:29:08 +0800 Subject: [PATCH 120/164] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=88=86?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/DevOps/Structure.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/DevOps/Structure.jsx b/src/forge/DevOps/Structure.jsx index 2654045a..87a2b6cc 100644 --- a/src/forge/DevOps/Structure.jsx +++ b/src/forge/DevOps/Structure.jsx @@ -35,7 +35,7 @@ function Structure(props,ref){ if (projectsId) { Init(); } - }, []); + }, [page]); let current_user = props.current_user; function Init(status) { From 2ba469f210c1c1a9f502617b6a5d87930f804068 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 30 Nov 2020 16:14:55 +0800 Subject: [PATCH 121/164] =?UTF-8?q?=E5=88=86=E6=94=AF=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Settings/BranchRule.jsx | 17 ++++++++++++----- src/forge/Settings/Index.js | 4 ++-- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/forge/Settings/BranchRule.jsx b/src/forge/Settings/BranchRule.jsx index 8f2ea7ba..c6464a6a 100644 --- a/src/forge/Settings/BranchRule.jsx +++ b/src/forge/Settings/BranchRule.jsx @@ -13,14 +13,16 @@ const Div = styled.div` `; export default Form.create()( forwardRef(({ form, match, history }) => { - const [list, setList] = useState(undefined); + const [ pullMember, setPullMember ] = useState(undefined); + const [ pushMember, setPushMember ] = useState(undefined); const { projectsId, owner } = match.params; const { getFieldDecorator, validateFields } = form; useEffect(() => { const url = `/${owner}/${projectsId}/collaborators.json`; axios.get(url).then((result) => { - setList(result.data.members); + setPullMember(result.data.members); + setPushMember(result.data.members); }) .catch((error) => {}); }, []); @@ -38,6 +40,7 @@ export default Form.create()( }) ); } + function saveBranchRule() { validateFields((error, values) => { if (!error) { @@ -45,6 +48,10 @@ export default Form.create()( }); } + function changePull(e){ + console.log("dddd",e); + } + const helper = useCallback( (label, name, rules, widget, className, isRequired) => (
    @@ -77,7 +84,7 @@ export default Form.create()( [{ required: true, message: "请选择可推送代码成员" }], , "setSelectWidth" )} @@ -85,9 +92,9 @@ export default Form.create()( "可合并Pull Request成员", "pullmember", [{ required: true, message: "请选择可合并Pull Request成员" }], - - {getMember(list)} + {getMember(pullMember)} , "setSelectWidth" )} diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index c46f4839..31ecdefd 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -65,7 +65,7 @@ class Index extends Component {

  • -
  • -1 ? "active" : "" } @@ -76,7 +76,7 @@ class Index extends Component { 分支设置

    -
  • + */}
  • -1 ? "active" : ""} > From 57363291f117fb32e8bb941deed92825f637f419 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 1 Dec 2020 16:49:24 +0800 Subject: [PATCH 122/164] change --- src/forge/Main/Index.js | 2 +- src/forge/Main/Index.scss | 2 +- src/forge/Main/IndexItem.js | 8 ++++---- src/forge/Settings/BranchRule.jsx | 16 +++++----------- src/forge/Settings/Index.js | 2 +- 5 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index 6a5bb67f..4952d429 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -277,7 +277,7 @@ class Index extends Component {
  • {item.visits} - 项目类型:{item.category && item.category.name} + {item.category && item.category.name}
    ) diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index 14744ae2..cb006f67 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -68,7 +68,7 @@ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; - text-align: center; + text-align: right; } } } \ No newline at end of file diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 698f0bed..87f336b1 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -53,16 +53,16 @@ class IndexItem extends Component { } - 赞 ({item.praises_count}) - fork ({item.forked_count}) + 赞 {item.praises_count} + fork {item.forked_count}

    {item.description}

    - {item.visits} - {item.category && item.category.id && {item.category.name}} + {/* {item.visits} */} + {/* {item.category && item.category.id && {item.category.name}} */} {item.last_update_time ? {item.time_ago} : ""} {item.language && item.language.id ? {item.language.name} : ""} diff --git a/src/forge/Settings/BranchRule.jsx b/src/forge/Settings/BranchRule.jsx index c6464a6a..9cdb951b 100644 --- a/src/forge/Settings/BranchRule.jsx +++ b/src/forge/Settings/BranchRule.jsx @@ -13,16 +13,14 @@ const Div = styled.div` `; export default Form.create()( forwardRef(({ form, match, history }) => { - const [ pullMember, setPullMember ] = useState(undefined); - const [ pushMember, setPushMember ] = useState(undefined); + const [ list, setList ] = useState(undefined); const { projectsId, owner } = match.params; const { getFieldDecorator, validateFields } = form; useEffect(() => { const url = `/${owner}/${projectsId}/collaborators.json`; axios.get(url).then((result) => { - setPullMember(result.data.members); - setPushMember(result.data.members); + setList(result.data.members); }) .catch((error) => {}); }, []); @@ -48,10 +46,6 @@ export default Form.create()( }); } - function changePull(e){ - console.log("dddd",e); - } - const helper = useCallback( (label, name, rules, widget, className, isRequired) => (
    @@ -84,7 +78,7 @@ export default Form.create()( [{ required: true, message: "请选择可推送代码成员" }], , "setSelectWidth" )} @@ -92,9 +86,9 @@ export default Form.create()( "可合并Pull Request成员", "pullmember", [{ required: true, message: "请选择可合并Pull Request成员" }], - - {getMember(pullMember)} + {getMember(list)} , "setSelectWidth" )} diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 31ecdefd..db80c8b3 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -128,7 +128,7 @@ class Index extends Component { ( - + )} > Date: Fri, 4 Dec 2020 19:26:14 +0800 Subject: [PATCH 123/164] =?UTF-8?q?=E5=88=86=E6=94=AF=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/IndexItem.js | 2 +- src/forge/Settings/Branch.js | 101 ++++++++-- src/forge/Settings/BranchRule.jsx | 313 ++++++++++++++++++++++++------ src/forge/Settings/Index.js | 6 +- src/forge/Settings/setting.scss | 40 ++++ src/forge/users/CIdispose.jsx | 1 - 6 files changed, 384 insertions(+), 79 deletions(-) diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 87f336b1..ab9a6a29 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -63,7 +63,7 @@ class IndexItem extends Component { {/* {item.visits} */} {/* {item.category && item.category.id && {item.category.name}} */} - {item.last_update_time ? {item.time_ago} : ""} + {item.last_update_time ? {item.time_ago} : ""} {item.language && item.language.id ? {item.language.name} : ""}
    diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index 2a391bc6..cdb644b8 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -2,8 +2,11 @@ import React , { useEffect, useState } from 'react'; import SelectBranch from '../Branch/Select'; import Title from '../Component/Title'; import styled from 'styled-components'; -import { Blueline , FlexAJ , NumUl , GreenUnder , AlignCenter , WhiteBack } from '../Component/layout'; +import { AlignCenter , WhiteBack , FlexAJ } from '../Component/layout'; import axios from 'axios'; +import { Button, Select } from 'antd'; +import { getBranch } from '../GetData/getData'; + const Div = styled.div`{ padding:20px 30px; min-height:500px; @@ -11,6 +14,13 @@ const Div = styled.div`{ export default ((props)=>{ const [ branch , setBranch ] = useState("master"); + const [ branchList , setBranchList ] = useState(undefined); + const [ protectBranch , setProtectBranch ] = useState(undefined); + const [ protectBranchList , setProtectBranchList ] = useState(undefined); + + const [ count , setCount ] = useState(0); + const [ page , setPage ] = useState(1); + const { projectsId , owner } = props.match.params; const projectDetail = props.projectDetail; @@ -21,7 +31,36 @@ export default ((props)=>{ } },[defaultBranch]); + useEffect(()=>{ + if(owner){ + getBranchs(projectsId,owner); + getProtectBranchList(owner,projectsId); + } + },[owner]) + // 获取已经设置过分支保护的分支列表 + function getProtectBranchList(owner,repo){ + const url = `/${owner}/${repo}/protected_branches.json`; + axios.get(url,{ + params:{ + page,limit:15 + } + }).then(result=>{ + if(result){ + setCount(result.data.total_count); + setProtectBranchList(result.data.protected_branches); + } + }).catch(error=>{}) + } + + // 获取分支列表(下拉、过滤掉已经设置过分支保护的分支) + async function getBranchs(id,owner){ + let re = await getBranch(id,owner); + setBranchList(re); + + } + + // 设为默认分支 function resetSetting(){ const url = `/${owner}/${projectsId}.json`; axios.put(url, { @@ -36,15 +75,18 @@ export default ((props)=>{ console.log(error); }); } - function settingRule(){ - props.history.push(`/projects/${owner}/${projectsId}/setting/branch/new`); + + // 跳转 + function settingRule(protectBranch){ + props.history.push(`/projects/${owner}/${projectsId}/setting/branch/${protectBranch}`); } + return( 分支设置
    -
    -

    默认分支

    +
    +

    默认分支

    默认分支被视作为代码库中的基本分支,是所有克隆、代码提交、合并请求的目标分支

    { resetSetting()}>设为默认分支
    -
    - - 保护分支规则 - settingRule()}>+ 新建规则 - - -
  • 限制分支的推送、合并。强制推送相关请去{props.history.push(`/projects/${owner}/${projectsId}/setting`)}}>仓库设置
  • -
  • 一个分支同时只能有一个保护分支规则生效,越早创建的规则优先级越高。
  • -
  • 保护分支规则只影响状态是【保护分支】的分支。【常规分支】和【只读分支】都不影响。
  • -
    +
    +

    分支保护

    + + + settingRule(protectBranch)}>设置分支保护 + + { + protectBranchList && protectBranchList.length > 0 && +
    + { + protectBranchList.map((item,key)=>{ + return( + + {item.branch_name} + + + ) + }) + } +
    + }
    diff --git a/src/forge/Settings/BranchRule.jsx b/src/forge/Settings/BranchRule.jsx index 9cdb951b..e11e7f61 100644 --- a/src/forge/Settings/BranchRule.jsx +++ b/src/forge/Settings/BranchRule.jsx @@ -1,21 +1,20 @@ import React, { forwardRef, useCallback, useState, useEffect } from "react"; -import { Form, Input, Select, Button } from "antd"; +import { Form, InputNumber , Select, Button , Checkbox , Radio } from "antd"; import Title from "../Component/Title"; -import { WhiteBack, Cancel } from "../Component/layout"; -import styled from "styled-components"; +import { Cancel } from "../Component/layout"; import axios from "axios"; -const { Option } = Select; -const Div = styled.div` -{ - padding: 20px 30px; -} -`; export default Form.create()( - forwardRef(({ form, match, history }) => { + forwardRef(({ form, match, history , showNotification }) => { + const [ protect , setProtect ] = useState(false); + const [ protects , setProtects ] = useState(false); + const [ mergeOptions , setMergeOptions ] = useState(undefined); + const [ approveOptions , setApproveOptions ] = useState(undefined); + const [ options , setOptions ] = useState(undefined); const [ list, setList ] = useState(undefined); - const { projectsId, owner } = match.params; - const { getFieldDecorator, validateFields } = form; + + const { projectsId, owner , branch } = match.params; + const { getFieldDecorator, validateFields , setFieldsValue } = form; useEffect(() => { const url = `/${owner}/${projectsId}/collaborators.json`; @@ -25,23 +24,65 @@ export default Form.create()( .catch((error) => {}); }, []); - function getMember(list) { - return ( - list && - list.length > 0 && - list.map((item, key) => { - return ( - item.role !== "Manager" && ( - - ) - ); - }) - ); + useEffect(()=>{ + if(branch){ + // 需要设置分支保护的分支名,获取分支保护详情 + getGuardDetail(owner,projectsId,branch); + } + },[branch]); + + function getGuardDetail(owner,projectsId,branch){ + const url = `/${owner}/${projectsId}/protected_branches/${branch}/edit.json`; + axios.get(url).then((result)=>{ + if(result){ + setProtect(result.data.protected); + setProtects(result.data.protected); + let protected_branch = result.data.protected_branch; + + if(protected_branch){ + let enable_push = protected_branch.enable_push_whitelist ? 2 : protected_branch.enable_push ? 1 : 0; + + setOptions(enable_push); + setMergeOptions(protected_branch.enable_merge_whitelist); + setApproveOptions(protected_branch.enable_approvals_whitelist); + + setFieldsValue({ + + enable_push, + ...protected_branch + }) + } + } + }).catch(error=>{}); } + function saveBranchRule() { validateFields((error, values) => { if (!error) { + let url = ""; + if(protects){ + // 为true则修改 + url = `/${owner}/${projectsId}/protected_branches/${branch}.json`; + }else{ + // 否则是保存 + url = `/${owner}/${projectsId}/protected_branches.json`; + } + axios({ + method:!protects ? "post" : (protect ? "patch" : "delete"), + url, + params: + { + branch_name:branch, + enable_push:values.enable_push !== 0 , + enable_push_whitelist:values.enable_push === 2 ? true : false, + ...values + } + }).then(result=>{ + if(result){ + showNotification("保存成功!"); + } + }).catch(error=>{}) } }); } @@ -50,49 +91,202 @@ export default Form.create()( (label, name, rules, widget, className, isRequired) => (
    {label} - - {getFieldDecorator(name, { rules, validateFirst: true })(widget)} + + {getFieldDecorator(name, { rules, validateFirst: true })(widget)}
    ), [] ); + // 启用分支保护 + function changeProtect(e){ + setProtect(e.target.checked); + } + // 切换保护选线 + function changeProtectOption(e){ + setOptions(e.target.value); + } + // 切换是否启用合并白名单 + function changeMergeOption(e){ + setMergeOptions(e.target.checked); + } + + // 是否启用批准仅限列入白名单的用户或团队 + function changeWhitelistUsernameOption(e){ + setApproveOptions(e.target.checked); + } return ( - +
    新建保护分支规则 -
    +
    +
    {helper( - "设置分支/通配符", - "sign", - [{ required: true, message: "请输入分支/通配符" }], - , + "", + "branchProtect", + [], + + 启用分支保护组织删除并限制Git推送和合并到分支 + , "setStyleRule" )} -

    - 例如:设置为“master”,则对名称为“master”的分支生效;设置为“*-stable“ - 或 ”release*“,则对名称符合此通配符的所有保护分支生效。 -

    - {helper( - "可推送代码成员", - "psuhmember", - [{ required: true, message: "请选择可推送代码成员" }], - , - "setSelectWidth" - )} - {helper( - "可合并Pull Request成员", - "pullmember", - [{ required: true, message: "请选择可合并Pull Request成员" }], - , - "setSelectWidth" - )} -
    +
    + {helper( + "", + "enable_push", + [], + + + + 禁用推送此分支不允许推送 + + + 启用推送任何拥有写访问权限的人将被允许推送到此分支(但不能强行推送) + + + 启用推送白名单只有列入白名单的用户或团队才能被允许推送到此分支(但不能强行推送) + + , + "" + )} +
    + {helper( + "", + "push_whitelist_usernames", + [], + , + "setStyleRule" + )} +
    + {helper( + "", + "enable_merge_whitelist", + [], + + 启用合并白名单仅允许白名单用户或团队合并合并请求到此分支 + , + "setStyleRule" + )} +
    + {helper( + "", + "merge_whitelist_usernames", + [], + , + "setStyleRule" + )} +
    + {helper( + "", + "enable_status_check", + [], + + 启用状态检查 + , + "setStyleRule" + )} +
    + {helper( + "所需的批准数", + "required_approvals", + [], + , + "inlineFlex" + )} + 只允许合并有足够审核人数的拉取请求 +
    + + {helper( + "", + "enable_approvals_whitelist", + [], + + 批准仅限列入白名单的用户或团队只有白名单用户或团队的审核才能计数 没有批准的白名单,任何有写访问权限的人的审核都将计数 + , + "setStyleRule" + )} +
    + {helper( + "", + "approvals_whitelist_usernames", + [], + , + "setStyleRule" + )} +
    + + {helper( + "", + "block_on_rejected_reviews", + [], + + 拒绝审核阻止了合并如果官方审查人员要求作出改动,即使有足够的批准,合并也不允许 + , + "setStyleRule" + )} + + {helper( + "", + "dismiss_stale_approvals", + [], + + 取消过时的批准当新的提交更改合并请求内容被推送到分支时,旧的批准将被撤销 + , + "setStyleRule" + )} + {helper( + "", + "require_signed_commits", + [], + + 需要签名提交 + , + "setStyleRule" + )} + {helper( + "", + "block_on_outdated_branch", + [], + + 如果拉取请求已经过时,阻止合并当头部分支落后基础分支时,不能合并 + , + "setStyleRule" + )} +
    + +
    @@ -105,8 +299,9 @@ export default Form.create()( 取消
    -
    - +
    +
    +
    ); }) ); diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index db80c8b3..1e294b35 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -65,7 +65,7 @@ class Index extends Component {

    - {/*
  • -1 ? "active" : "" } @@ -76,7 +76,7 @@ class Index extends Component { 分支设置

    -
  • */} +
  • -1 ? "active" : ""} > @@ -120,7 +120,7 @@ class Index extends Component { )} > ( )} diff --git a/src/forge/Settings/setting.scss b/src/forge/Settings/setting.scss index a9d5a103..dd2905a4 100644 --- a/src/forge/Settings/setting.scss +++ b/src/forge/Settings/setting.scss @@ -187,7 +187,29 @@ width: 100%; } } +.shortStyle{ + .setStyleRule{ + height: 35px; + } + .columsRadio{ + display: block; + height: 30px; + line-height: 30px; + } + .ant-row.ant-form-item{ + margin-bottom: 0px; + } +} +.inlineFlex{ + display: flex; + align-items: center; + & > span{ + margin-right: 10px; + color: #666; + } +} .setStyleRule{ + height: 35px; .ant-row.ant-form-item{ margin-bottom: 10px; } @@ -196,4 +218,22 @@ .ant-select.ant-select-enabled{ width: 100%; } +} +.setHeight{ + .ant-select-selection,.ant-select-selection__rendered{ + height: 40px; + line-height: 40px; + } +} +.protectBranchList{ + border:1px solid #eee; + border-radius: 5px; + margin-top: 25px; + &>div{ + padding:5px 15px; + border-bottom: 1px solid #eee; + } + &>div:last-child{ + border-bottom: none; + } } \ No newline at end of file diff --git a/src/forge/users/CIdispose.jsx b/src/forge/users/CIdispose.jsx index a0ec8f37..d53287e5 100644 --- a/src/forge/users/CIdispose.jsx +++ b/src/forge/users/CIdispose.jsx @@ -4,7 +4,6 @@ import { AlignCenter } from '../Component/layout'; import axios from 'axios'; import Modals from '../Component/Modal'; import PasswordAuthority from '../Component/PasswordAuthority'; -import { func } from 'prop-types'; const TIPS = "解除CI服务器绑定后,您所有的项目构建数据将被清空。确定解除绑定?"; function CIdispose(props){ From 6b203d9d242f0fad934854cc5887bf5b87aeaf46 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 4 Dec 2020 20:30:23 +0800 Subject: [PATCH 124/164] =?UTF-8?q?=E5=88=86=E6=94=AF=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Settings/BranchRule.jsx | 44 +++++++++++++++---------------- src/forge/Settings/Index.js | 16 +++++------ 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/src/forge/Settings/BranchRule.jsx b/src/forge/Settings/BranchRule.jsx index e11e7f61..00521890 100644 --- a/src/forge/Settings/BranchRule.jsx +++ b/src/forge/Settings/BranchRule.jsx @@ -14,7 +14,7 @@ export default Form.create()( const [ list, setList ] = useState(undefined); const { projectsId, owner , branch } = match.params; - const { getFieldDecorator, validateFields , setFieldsValue } = form; + const { getFieldDecorator, validateFields , setFieldsValue , getFieldsValue } = form; useEffect(() => { const url = `/${owner}/${projectsId}/collaborators.json`; @@ -29,7 +29,7 @@ export default Form.create()( // 需要设置分支保护的分支名,获取分支保护详情 getGuardDetail(owner,projectsId,branch); } - },[branch]); + },[]); function getGuardDetail(owner,projectsId,branch){ const url = `/${owner}/${projectsId}/protected_branches/${branch}/edit.json`; @@ -42,15 +42,14 @@ export default Form.create()( if(protected_branch){ let enable_push = protected_branch.enable_push_whitelist ? 2 : protected_branch.enable_push ? 1 : 0; + setFieldsValue({ + ...protected_branch, + enable_push + }) setOptions(enable_push); setMergeOptions(protected_branch.enable_merge_whitelist); setApproveOptions(protected_branch.enable_approvals_whitelist); - - setFieldsValue({ - - enable_push, - ...protected_branch - }) + console.log("111",getFieldsValue("enable_status_check")); } } }).catch(error=>{}); @@ -74,7 +73,7 @@ export default Form.create()( params: { branch_name:branch, - enable_push:values.enable_push !== 0 , + enable_push:values.enable_push !== 0 ?false : true, enable_push_whitelist:values.enable_push === 2 ? true : false, ...values } @@ -88,11 +87,11 @@ export default Form.create()( } const helper = useCallback( - (label, name, rules, widget, className, isRequired) => ( + (label, name, rules, widget, className, isRequired,flag) => (
    {label} - - {getFieldDecorator(name, { rules, validateFirst: true })(widget)} + + {getFieldDecorator(name, { rules, validateFirst: true , valuePropName:flag ? "checked":"value" })(widget)}
    ), @@ -134,7 +133,6 @@ export default Form.create()( "", "enable_push", [], - 禁用推送此分支不允许推送 @@ -204,7 +202,7 @@ export default Form.create()( 启用状态检查 , - "setStyleRule" + "setStyleRule",false,true )}
    {helper( @@ -221,7 +219,7 @@ export default Form.create()( "", "enable_approvals_whitelist", [], - + 批准仅限列入白名单的用户或团队只有白名单用户或团队的审核才能计数 没有批准的白名单,任何有写访问权限的人的审核都将计数 , "setStyleRule" @@ -251,38 +249,38 @@ export default Form.create()( "", "block_on_rejected_reviews", [], - + 拒绝审核阻止了合并如果官方审查人员要求作出改动,即使有足够的批准,合并也不允许 , - "setStyleRule" + "setStyleRule",false,true )} {helper( "", "dismiss_stale_approvals", [], - + 取消过时的批准当新的提交更改合并请求内容被推送到分支时,旧的批准将被撤销 , - "setStyleRule" + "setStyleRule",false,true )} {helper( "", "require_signed_commits", [], - + 需要签名提交 , - "setStyleRule" + "setStyleRule",false,true )} {helper( "", "block_on_outdated_branch", [], - + 如果拉取请求已经过时,阻止合并当头部分支落后基础分支时,不能合并 , - "setStyleRule" + "setStyleRule",false,true )}
    diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 1e294b35..4a22b3d3 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -43,8 +43,8 @@ class Index extends Component { const flag = pathname === `/projects/${owner}/${projectsId}/setting`; return ( - - +
    +
    • @@ -101,9 +101,9 @@ class Index extends Component {

    • */}
    - - - +
    +
    +
    {/* 协作者 */} - - - +
    +
    +
    ); } } From ee79efa6de14c8f638ffedbf87553566caad5d29 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 8 Dec 2020 17:16:07 +0800 Subject: [PATCH 125/164] bug --- src/forge/Branch/Select.jsx | 10 ++++--- src/forge/Component/PasswordAuthority.jsx | 1 + src/forge/Main/CoderRootCommit.js | 26 +++++++++++------- src/forge/Main/CoderRootDirectory.js | 14 +++++++++- src/forge/Settings/Branch.js | 32 ++++++++++++++++++----- src/forge/Settings/BranchRule.jsx | 2 +- src/forge/Settings/setting.scss | 4 +-- 7 files changed, 66 insertions(+), 23 deletions(-) diff --git a/src/forge/Branch/Select.jsx b/src/forge/Branch/Select.jsx index 55bb0345..c9d1212e 100644 --- a/src/forge/Branch/Select.jsx +++ b/src/forge/Branch/Select.jsx @@ -4,7 +4,7 @@ import './branch.css'; import { getBranch , getTag } from '../GetData/getData'; -export default (({ projectsId , branch , owner , history , changeBranch })=>{ +export default (({ projectsId , branch , owner , changeBranch , branchList })=>{ const [ showValue , setShowValue ] = useState(branch); const [ inputValue , setInputValue] = useState(undefined); const [ nav , setNav ] = useState(0); @@ -31,8 +31,12 @@ export default (({ projectsId , branch , owner , history , changeBranch })=>{ }) useEffect(()=>{ - getBranchs(projectsId,owner); - },[owner]) + if(branchList){ + setData(branchList); + setDatas(branchList); + setIsSpin(false); + } + },[branchList]) async function getBranchs(id,owner){ diff --git a/src/forge/Component/PasswordAuthority.jsx b/src/forge/Component/PasswordAuthority.jsx index 9951f32e..e15cb53f 100644 --- a/src/forge/Component/PasswordAuthority.jsx +++ b/src/forge/Component/PasswordAuthority.jsx @@ -11,6 +11,7 @@ function PasswordAuthority({ authorityValBox , successFunc , cancelFunc }){ // 取消授权-登录密码的输入 function cancelAuthority(){ + setAuthorityVal(undefined); cancelFunc(); } // 确认授权 diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index 0b3526ac..1e77de33 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -4,6 +4,7 @@ import { getImageUrl } from 'educoder'; import { truncateCommitId } from '../common/util'; import SelectBranch from '../Branch/Select'; import Nodata from '../Nodata'; +import { getBranch } from '../GetData/getData'; import axios from 'axios'; import {Link} from "react-router-dom"; @@ -16,12 +17,24 @@ class CoderRootCommit extends Component{ dataCount:undefined, limit:20, page:1, - isSpining:false + isSpining:false, + branchList:undefined } } componentDidMount=()=>{ this.Init(); + this.getBranchs(); + } + + // 获取分支列表 + getBranchs=()=>{ + const { projectsId , owner } = this.props.match.params; + axios.get(`/${owner}/${projectsId}/branches.json`).then(result=>{ + this.setState({ + branchList:result.data + }) + }).catch((error)=>{}) } componentDidUpdate=(prevProps)=>{ @@ -79,14 +92,6 @@ class CoderRootCommit extends Component{ // 切换分支 search:tag为根据标签搜索 changeBranch=(value)=>{ - // const { page , limit } = this.state; - // const { getTopCount } = this.props; - // this.setState({ - // isSpining:true, - // branch:value, - // }) - // this.getCommitList(value , page , limit); - // getTopCount && getTopCount(value); const { projectsId , owner } = this.props.match.params; this.props.history.push(`/projects/${owner}/${projectsId}/commits/branch/${value}`); } @@ -97,7 +102,7 @@ class CoderRootCommit extends Component{ this.getCommitList(branchName , page , limit); } render(){ - const { commitDatas , dataCount , limit , page , isSpining } = this.state; + const { commitDatas , dataCount , limit , page , isSpining , branchList } = this.state; const { projectDetail, commit_class , defaultBranch } = this.props; const { projectsId , owner , branchName } = this.props.match.params; let branch = branchName || defaultBranch; @@ -112,6 +117,7 @@ class CoderRootCommit extends Component{ changeBranch={this.changeBranch} owner={owner} history={this.props.history} + branchList={branchList} >
  • diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 21a6a59f..f81aa4fb 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -11,6 +11,7 @@ import CoderRootFileDetail from './CoderRootFileDetail'; import { truncateCommitId } from '../common/util'; import RenderHtml from '../../components/render-html'; import Nodata from '../Nodata'; +import { getBranch } from '../GetData/getData'; import axios from "axios"; /** @@ -62,7 +63,17 @@ class CoderRootDirectory extends Component { componentDidMount = () => { this.Init(); + this.getBranchs(); }; + // 获取分支列表 + getBranchs=()=>{ + const { projectsId , owner } = this.props.match.params; + axios.get(`/${owner}/${projectsId}/branches.json`).then(result=>{ + this.setState({ + branchList:result.data + }) + }).catch((error)=>{}) + } componentDidUpdate = (prevState) => { const { location } = this.props; @@ -399,7 +410,7 @@ class CoderRootDirectory extends Component { } render(){ - const { branchLastCommit , lastCommitAuthor , rootList ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url} = this.state; + const { branchLastCommit , lastCommitAuthor , rootList ,filePath , fileDetail , subFileType , readMeContent, isSpin , zip_url , tar_url , branchList} = this.state; const { isManager , isDeveloper , projectDetail , platform , defaultBranch } = this.props; const { projectsId , owner , branchName } = this.props.match.params; @@ -456,6 +467,7 @@ class CoderRootDirectory extends Component { changeBranch={this.changeBranch} owner={owner} history={this.props.history} + branchList={branchList} > : 分支:master diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index cdb644b8..fc9c9636 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -4,7 +4,7 @@ import Title from '../Component/Title'; import styled from 'styled-components'; import { AlignCenter , WhiteBack , FlexAJ } from '../Component/layout'; import axios from 'axios'; -import { Button, Select } from 'antd'; +import { Button, Select , Pagination } from 'antd'; import { getBranch } from '../GetData/getData'; const Div = styled.div`{ @@ -13,18 +13,26 @@ const Div = styled.div`{ }` export default ((props)=>{ + const LIMIT = 15; const [ branch , setBranch ] = useState("master"); const [ branchList , setBranchList ] = useState(undefined); - const [ protectBranch , setProtectBranch ] = useState(undefined); + const [ protectBranch , setProtectBranch ] = useState("master"); const [ protectBranchList , setProtectBranchList ] = useState(undefined); const [ count , setCount ] = useState(0); const [ page , setPage ] = useState(1); + let defaultBranch = props.defaultBranch; + useEffect(()=>{ + if(defaultBranch){ + setBranch(defaultBranch); + setProtectBranch(defaultBranch); + } + },[defaultBranch]); + const { projectsId , owner } = props.match.params; const projectDetail = props.projectDetail; - const { defaultBranch } = props; useEffect(()=>{ if(defaultBranch){ setBranch(defaultBranch); @@ -43,7 +51,7 @@ export default ((props)=>{ const url = `/${owner}/${repo}/protected_branches.json`; axios.get(url,{ params:{ - page,limit:15 + page,limit:LIMIT } }).then(result=>{ if(result){ @@ -57,7 +65,6 @@ export default ((props)=>{ async function getBranchs(id,owner){ let re = await getBranch(id,owner); setBranchList(re); - } // 设为默认分支 @@ -81,6 +88,11 @@ export default ((props)=>{ props.history.push(`/projects/${owner}/${projectsId}/setting/branch/${protectBranch}`); } + // 翻页 + function changePageNum(page){ + setPage(page); + } + return( 分支设置 @@ -96,6 +108,7 @@ export default ((props)=>{ changeBranch={setBranch} owner={owner} history={props.history} + branchList = {branchList} /> resetSetting()}>设为默认分支 @@ -105,6 +118,7 @@ export default ((props)=>{ - settingRule(protectBranch)}>设置分支保护 + 0?"color-blue ml20":"color-grey ml20"} onClick={()=>settingRule(protectBranch)}>设置分支保护 { protectBranchList && protectBranchList.length > 0 && @@ -139,6 +153,12 @@ export default ((props)=>{ }
    } + { + count > LIMIT && +
    + +
    + }
    diff --git a/src/forge/Settings/BranchRule.jsx b/src/forge/Settings/BranchRule.jsx index 00521890..660b986b 100644 --- a/src/forge/Settings/BranchRule.jsx +++ b/src/forge/Settings/BranchRule.jsx @@ -116,7 +116,7 @@ export default Form.create()( } return (
    - 新建保护分支规则 + 新建'{branch}'保护分支规则
    {helper( diff --git a/src/forge/Settings/setting.scss b/src/forge/Settings/setting.scss index dd2905a4..35726cba 100644 --- a/src/forge/Settings/setting.scss +++ b/src/forge/Settings/setting.scss @@ -189,7 +189,7 @@ } .shortStyle{ .setStyleRule{ - height: 35px; + min-height: 35px; } .columsRadio{ display: block; @@ -209,7 +209,7 @@ } } .setStyleRule{ - height: 35px; + min-height: 35px; .ant-row.ant-form-item{ margin-bottom: 10px; } From 851afbc6c4b4cfeb7c0f8133325670358ce7e96a Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 9 Dec 2020 14:19:55 +0800 Subject: [PATCH 126/164] =?UTF-8?q?=E5=B0=8F=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderRootCommit.js | 2 +- src/forge/Order/order.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index 1e77de33..11aacea4 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -139,7 +139,7 @@ class CoderRootCommit extends Component{

    {item.image_url?:""} - +

    diff --git a/src/forge/Order/order.css b/src/forge/Order/order.css index f96d4146..3d00c4ac 100644 --- a/src/forge/Order/order.css +++ b/src/forge/Order/order.css @@ -386,7 +386,7 @@ } /* 任务标签列表 */ .tagList > div { - border-bottom: 1px dashed #f4f4f4; + border-bottom: 1px dashed #efefef; display: flex; justify-content: space-around; padding: 15px 0px; From e95ef1105866441252b850b88235bc3f0c00d4f9 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 11 Dec 2020 18:14:25 +0800 Subject: [PATCH 127/164] style --- package-lock.json | 5 ++ package.json | 1 + src/common/marked.js | 3 +- src/components/render-html.jsx | 41 +++++++++------ src/forge/Order/order.js | 3 ++ .../tpm/challengesnew/tpm-md-editor.js | 50 +++++++++---------- 6 files changed, 62 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index 55cb6354..4aa513ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4962,6 +4962,11 @@ "domelementtype": "1" } }, + "dompurify": { + "version": "2.0.15", + "resolved": "https://registry.npm.taobao.org/dompurify/download/dompurify-2.0.15.tgz?cache=0&sync_timestamp=1607352578938&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdompurify%2Fdownload%2Fdompurify-2.0.15.tgz", + "integrity": "sha1-gOMA/D6JVHvQrxr/LrqIzhf8neo=" + }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", diff --git a/package.json b/package.json index 42d6722c..0ce7bac1 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "codemirror": "^5.53.0", "connected-react-router": "4.4.1", "css-loader": "^3.5.2", + "dompurify": "^2.0.15", "dotenv": "4.0.0", "dotenv-expand": "4.2.0", "echarts": "^4.7.0", diff --git a/src/common/marked.js b/src/common/marked.js index f81f7b13..3be3ba2b 100644 --- a/src/common/marked.js +++ b/src/common/marked.js @@ -48,7 +48,7 @@ function buildToc(coll, k, level, ctx) { }); ctx.push("") } - ctx.push("") + ctx.push(""); k = buildToc(coll, k, level, ctx) return k } @@ -157,7 +157,6 @@ renderer.heading = function (text, level, raw) { }) return '' + text + '' } - marked.setOptions({ silent: true, smartypants: true, diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index 5837cdf2..057a28f7 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -1,37 +1,44 @@ -import React, { useEffect, useRef, useMemo } from "react"; -import "katex/dist/katex.min.css"; -import { renderToString } from 'katex'; -import marked, { getTocContent, cleanToc, getMathExpressions, resetMathExpressions } from "../common/marked"; +import React, { useEffect, useRef, useMemo } from 'react' +import 'katex/dist/katex.min.css' +import marked, { getTocContent, cleanToc, getMathExpressions, resetMathExpressions } from '../common/marked'; import 'code-prettify' +import dompurify from 'dompurify' + +import { renderToString } from 'katex' const preRegex = /]*>/g - function _unescape(str) { let div = document.createElement('div') div.innerHTML = str - return div.childNodes.length === 0 ? "" : div.childNodes[0].nodeValue; + return div.childNodes.length === 0 ? "" : div.childNodes[0].nodeValue } -export default ({ value = '', className, style = {} }) => { + +export default ({ + value = '', + className, + style = {}, +}) => { let str = String(value) const html = useMemo(() => { let rs = marked(str) - const math_expressions = getMathExpressions() + const math_expressions = getMathExpressions(); if (str.match(/\[TOC\]/)) { rs = rs.replace("

    [TOC]

    ", getTocContent()) cleanToc() } rs = rs.replace(/(__special_katext_id_\d+__)/g, (_match, capture) => { const { type, expression } = math_expressions[capture] - return renderToString(_unescape(expression), { displayMode: type === 'block', throwOnError: false, output: 'html' }) + return renderToString(_unescape(expression) || '', { displayMode: type === 'block', throwOnError: false, output: 'html' }) }) rs = rs.replace(/▁/g, "▁▁▁") resetMathExpressions() - return rs + return dompurify.sanitize(rs) + }, [str]) - const el = useRef() + const el = useRef(); function onAncherHandler(e) { let target = e.target if (target.tagName.toUpperCase() === 'A') { @@ -40,7 +47,7 @@ export default ({ value = '', className, style = {} }) => { e.preventDefault() let viewEl = document.getElementById(ancher.replace('#', '')) if (viewEl) { - viewEl.parentNode.scrollTop = viewEl.offsetTop + viewEl.scrollIntoView(true) } } } @@ -61,6 +68,12 @@ export default ({ value = '', className, style = {} }) => { } } }, [html, el.current, onAncherHandler]) - - return (
    ) + return ( +
    + ) } diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index 412d7490..beadca85 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -212,7 +212,10 @@ class order extends Component { this.getOption(e, id, item.name, toGet)} + style={{textAlign:item.color ? "left" :"center"}} > + {/* 标签前面的颜色tag */} + {item.color && } {item.name} ); diff --git a/src/modules/tpm/challengesnew/tpm-md-editor.js b/src/modules/tpm/challengesnew/tpm-md-editor.js index 0fa0e1fd..014e1942 100644 --- a/src/modules/tpm/challengesnew/tpm-md-editor.js +++ b/src/modules/tpm/challengesnew/tpm-md-editor.js @@ -1,16 +1,16 @@ -import React, { Fragment, useEffect, useRef, useState } from 'react' -import { getUploadActionUrl, getUrl } from 'educoder' +import React, { Fragment, useEffect, useRef, useState } from 'react'; +import { getUploadActionUrl, getUrl } from 'educoder'; import ResizeObserver from 'resize-observer-polyfill'; -import '../../courses/css/Courses.css' -import './css/TPMchallengesnew.css' -import 'codemirror/lib/codemirror.css' +import '../../courses/css/Courses.css'; +import './css/TPMchallengesnew.css'; +import 'codemirror/lib/codemirror.css'; const $ = window.$ -const mdIcons = ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "link", "|", "inline-latex", "latex", '|', "image", "table", '|', "line-break", "watch", "clear"] +const mdIcons = ["bold", "italic", "|", "list-ul", "list-ol", "|", "code", "code-block", "link", "|", "inline-latex", "latex", '|', "image", "table", '|', "line-break", "watch", "clear"]; -const NULL_CH = '▁' +const NULL_CH = '▁'; function md_add_data(k, mdu, d) { window.sessionStorage.setItem(k + mdu, d); @@ -42,7 +42,7 @@ window.md_rec_data = md_rec_data; function md_elocalStorage(editor, mdu, id) { let oc = window.sessionStorage.getItem('content' + mdu) - if (oc !== null && oc != editor.getValue()) { + if (oc !== null && oc !== editor.getValue()) { $("#e_tips_" + id).data('editor', editor); let h = '您上次有已保存的数据,是否恢复 ? / 不恢复'; $("#e_tips_" + id).html(h) @@ -56,15 +56,15 @@ function md_elocalStorage(editor, mdu, id) { m = m < 10 ? '0' + m : m; s = s < 10 ? '0' + s : s; - if (editor.getValue().trim() != "") { + if (editor.getValue().trim() !== "") { md_add_data("content", mdu, editor.getValue()); let id2 = "#e_tips_" + id; - let textStart = " 数据已于 " + let textStart = " 数据已于 "; let text = textStart + h + ':' + m + ':' + s + " 保存 "; // 占位符 let oldHtml = $(id2).html(); - if (oldHtml && oldHtml != ' ' && oldHtml.startsWith(textStart) == false) { + if (oldHtml && oldHtml !== ' ' && oldHtml.startsWith(textStart) === false) { $(id2).html(oldHtml.split(' (')[0] + ` (${text})`); } else { $(id2).html(text); @@ -77,28 +77,28 @@ function md_elocalStorage(editor, mdu, id) { export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, className = '', noStorage = false, imageExpand = true, placeholder = '', width = '100%', height = 400, initValue = '', emoji, watch, showNullButton = false, showResizeBar = false, startInit = true }) => { - const editorEl = useRef() - const resizeBarEl = useRef() - const [editorInstance, setEditorInstance] = useState() - const containerId = `mdEditor_${mdID}` - const editorBodyId = `mdEditors_${mdID}` - const tipId = `e_tips_mdEditor_${mdID}` + const editorEl = useRef(); + const resizeBarEl = useRef(); + const [editorInstance, setEditorInstance] = useState(); + const containerId = `mdEditor_${mdID}`; + const editorBodyId = `mdEditors_${mdID}`; + const tipId = `e_tips_mdEditor_${mdID}`; function onLayout() { - let ro + let ro; if (editorEl.current) { ro = new ResizeObserver(entries => { for (let entry of entries) { if (entry.target.offsetHeight > 0 || entry.target.offsetWidth > 0) { - editorInstance.resize() - editorInstance.cm.refresh() - editorInstance.cm.focus() + editorInstance.resize(); + editorInstance.cm.refresh(); + editorInstance.cm.focus(); } } }) - ro.observe(editorEl.current) + ro.observe(editorEl.current); } - return ro + return ro; } useEffect(() => { @@ -211,7 +211,7 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla useEffect(() => { if (editorInstance && initValue !== undefined) { - if (initValue != null && initValue != editorInstance.getValue()) { + if (initValue !== null && initValue !== editorInstance.getValue()) { editorInstance.setValue(initValue.toString()) } } @@ -265,7 +265,7 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla
    {showResizeBar ? : null}
    - {noStorage == true ? null :
    } + {noStorage === true ? null :
    }
    ) From 5f36f9306ae75e10801c0de5ca50788332bb2415 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 14 Dec 2020 14:12:41 +0800 Subject: [PATCH 128/164] tag color --- src/forge/Order/order.js | 2 +- src/forge/Order/order_form.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index beadca85..c7a4e622 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -212,7 +212,7 @@ class order extends Component { this.getOption(e, id, item.name, toGet)} - style={{textAlign:item.color ? "left" :"center"}} + style={{textAlign:item.color ? "left" :"center",padding:"6px 15px"}} > {/* 标签前面的颜色tag */} {item.color && } diff --git a/src/forge/Order/order_form.js b/src/forge/Order/order_form.js index 66f5803a..db36c3ea 100644 --- a/src/forge/Order/order_form.js +++ b/src/forge/Order/order_form.js @@ -118,7 +118,7 @@ class order_form extends Component { return list.map((item, key) => { return ( ); }); From 68eb499a8c3f2aac24bc209313f7068ac9b9623e Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 14 Dec 2020 17:04:58 +0800 Subject: [PATCH 129/164] =?UTF-8?q?CI=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/users/CIdispose.jsx | 2 ++ src/forge/users/Infos.js | 11 ++++++++++- src/forge/users/InfosUser.js | 9 ++++++--- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index a369d843..a212448f 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/users/CIdispose.jsx b/src/forge/users/CIdispose.jsx index d53287e5..a0692de7 100644 --- a/src/forge/users/CIdispose.jsx +++ b/src/forge/users/CIdispose.jsx @@ -80,6 +80,8 @@ function CIdispose(props){ setStep(result.data.step); props.showNotification("服务器绑定成功!"); } + }).catch((error)=>{ + setBtnLoading(false); }) } }) diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index b88cd5a8..77cdc2b5 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -59,6 +59,13 @@ class Infos extends Component { componentDidMount = () => { this.fetchUser(); }; + componentDidUpdate=(prevProps)=>{ + const { username } = this.props.match.params; + const prevUser = prevProps.match.params.username; + if(prevUser && username && prevUser !== username){ + this.fetchUser(); + } + } fetchUser = () => { this.setState({ @@ -132,6 +139,8 @@ class Infos extends Component { render() { const { current_user, mygetHelmetapi } = this.props; + const { username } = this.props.match.params; + const { user, isSpin, project_type, route_type } = this.state; return (
    @@ -253,7 +262,7 @@ class Infos extends Component {
    { - current_user && current_user.login && + current_user && current_user.login && current_user.login === username &&
    • diff --git a/src/forge/users/InfosUser.js b/src/forge/users/InfosUser.js index 23af0238..3a185a78 100644 --- a/src/forge/users/InfosUser.js +++ b/src/forge/users/InfosUser.js @@ -29,14 +29,17 @@ class InfosUser extends Component { }; componentDidUpdate = (prevProps) => { - if (prevProps.project_type !== this.props.project_type) { + const { username } = this.props.match.params; + const prevUser = prevProps.match.params.username; + if (prevProps.project_type !== this.props.project_type || (prevUser && username && prevUser !== username)) { this.get_projects(); } }; get_projects = (isPublic) => { - const { user, project_type } = this.props; - const url = `/users/${user && user.login}/projects.json`; + const { username } = this.props.match.params; + const { project_type } = this.props; + const url = `/users/${username}/projects.json`; const { page, limit, search, sort_by, category , is_public } = this.state; this.setState({ isSpin: true, From 2129a222e51ccf8bfccb8e6c2991c76b5a979c58 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 15 Dec 2020 18:01:16 +0800 Subject: [PATCH 130/164] =?UTF-8?q?=E9=94=9A=E7=82=B9=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 5 +++++ src/AppConfig.js | 2 +- src/components/render-html.jsx | 22 +++++++++++++++++++--- src/forge/About/Index.jsx | 2 +- src/forge/Main/CoderRootDirectory.js | 2 +- src/forge/Main/CoderRootFileDetail.js | 2 +- src/forge/Merge/MessageCount.js | 2 +- src/forge/Order/Detail.js | 2 +- src/forge/comments/children_comments.js | 2 +- src/forge/comments/children_journals.js | 2 +- src/forge/comments/comments.js | 2 +- 11 files changed, 33 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4aa513ce..f5aabc0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3888,6 +3888,11 @@ "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", diff --git a/src/AppConfig.js b/src/AppConfig.js index a212448f..a369d843 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index 057a28f7..ebad16de 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -2,7 +2,7 @@ import React, { useEffect, useRef, useMemo } from 'react' import 'katex/dist/katex.min.css' import marked, { getTocContent, cleanToc, getMathExpressions, resetMathExpressions } from '../common/marked'; import 'code-prettify' -import dompurify from 'dompurify' +import dompurify from 'dompurify'; import { renderToString } from 'katex' @@ -14,12 +14,14 @@ function _unescape(str) { } + export default ({ value = '', className, style = {}, + url }) => { - let str = String(value) + let str = String(value); const html = useMemo(() => { let rs = marked(str) @@ -36,7 +38,21 @@ export default ({ resetMathExpressions() return dompurify.sanitize(rs) - }, [str]) + }, [str]); + + // 锚点跳转,链接地址里含#对应的id + useEffect(()=>{ + if(url && url.hash && html){ + let u = url.hash; + if(u){ + let id = decodeURIComponent(u.split("#")[1]); + let ele = document.getElementById(id); + if(ele){ + window.scrollTo(0, ele.offsetTop - window.innerHeight / 5); + } + } + } + },[url]) const el = useRef(); function onAncherHandler(e) { diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index 964c4e0a..c0a404e2 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -116,7 +116,7 @@ function Index(props){ :
      {content ? - + :
      暂无简介~
      } diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index f81aa4fb..35ce2a49 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -308,7 +308,7 @@ class CoderRootDirectory extends Component {
      {readMeContent[0].content ? - + : 暂无~ } diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index 343d2826..eacf623b 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -260,7 +260,7 @@ class CoderRootFileDetail extends Component { ) : ( md && readOnly ?
      - +
      : { - return ; + return ; }; setCopyVisible=(e)=>{ diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index 87d774a5..87405919 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -182,7 +182,7 @@ class Detail extends Component { }; commentCtx = (v) => { - return ; + return ; }; render() { diff --git a/src/forge/comments/children_comments.js b/src/forge/comments/children_comments.js index d1e22815..65cf7784 100644 --- a/src/forge/comments/children_comments.js +++ b/src/forge/comments/children_comments.js @@ -86,7 +86,7 @@ class children_comments extends Component { }; commentCtx = (v) => { - return ; + return ; }; Paginations =()=> { diff --git a/src/forge/comments/children_journals.js b/src/forge/comments/children_journals.js index cb9756ff..e7eaae8c 100644 --- a/src/forge/comments/children_journals.js +++ b/src/forge/comments/children_journals.js @@ -51,7 +51,7 @@ class children_journals extends Component { }; commentCtx = (v) => { - return ; + return ; }; Paginations =()=> { diff --git a/src/forge/comments/comments.js b/src/forge/comments/comments.js index 93e591c8..acb24cda 100644 --- a/src/forge/comments/comments.js +++ b/src/forge/comments/comments.js @@ -263,7 +263,7 @@ class comments extends Component { } commentCtx = (v) => { - return ; + return ; }; Paginations = ()=>{ const { page, limit, search_count } = this.state; From 45fc4dcdcdb812297c2d18eaf571306b6aca83bd Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 16 Dec 2020 11:37:56 +0800 Subject: [PATCH 131/164] position --- src/components/render-html.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index ebad16de..0445f624 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -44,11 +44,12 @@ export default ({ useEffect(()=>{ if(url && url.hash && html){ let u = url.hash; + debugger; if(u){ let id = decodeURIComponent(u.split("#")[1]); let ele = document.getElementById(id); if(ele){ - window.scrollTo(0, ele.offsetTop - window.innerHeight / 5); + window.scrollTo(0, ele.offsetTop + 220); } } } From 5d0afb265b1437f7a5162c37e5eaa52f94c52609 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 16 Dec 2020 13:52:44 +0800 Subject: [PATCH 132/164] =?UTF-8?q?=E9=95=9C=E5=83=8F=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Settings/Setting.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index 4aeeb4b2..729ea2a5 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -155,7 +155,7 @@ class Setting extends Component { const { CategoryList, LanguageList, private_check } = this.state; return (
      - + 基本设置 From 7795fe1d04872d166d713815d16a288ecc917a78 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 17 Dec 2020 14:35:36 +0800 Subject: [PATCH 133/164] markdown --- src/modules/tpm/challengesnew/tpm-md-editor.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/tpm/challengesnew/tpm-md-editor.js b/src/modules/tpm/challengesnew/tpm-md-editor.js index 014e1942..f41cd5e7 100644 --- a/src/modules/tpm/challengesnew/tpm-md-editor.js +++ b/src/modules/tpm/challengesnew/tpm-md-editor.js @@ -75,7 +75,7 @@ function md_elocalStorage(editor, mdu, id) { } -export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, className = '', noStorage = false, imageExpand = true, placeholder = '', width = '100%', height = 400, initValue = '', emoji, watch, showNullButton = false, showResizeBar = false, startInit = true }) => { +export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, className = '', noStorage = false, imageExpand = true, placeholder = '', width = '100%', height = 400, initValue = '', emoji, watch, showNullButton = false, showResizeBar = false, startInit = true , forMember}) => { const editorEl = useRef(); const resizeBarEl = useRef(); @@ -194,6 +194,15 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla } if (onChange) { editorInstance.cm.on('change', (cm) => { + if(forMember){ + document.onkeydown = (e) => { + if (e.key === "@") { + // 输入@键后在对应的位置显示可选的项目成员 + console.log("e",document.selectionStart); + console.log("e",document.getSelection()); + } + }; + } onChange(cm.getValue()) }) } From e3c1e7b82fcf8fe38cd18eb35db74be8422da037 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 17 Dec 2020 17:59:30 +0800 Subject: [PATCH 134/164] markdown --- .../tpm/challengesnew/tpm-md-editor.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/modules/tpm/challengesnew/tpm-md-editor.js b/src/modules/tpm/challengesnew/tpm-md-editor.js index f41cd5e7..ad25fa9c 100644 --- a/src/modules/tpm/challengesnew/tpm-md-editor.js +++ b/src/modules/tpm/challengesnew/tpm-md-editor.js @@ -75,7 +75,7 @@ function md_elocalStorage(editor, mdu, id) { } -export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, className = '', noStorage = false, imageExpand = true, placeholder = '', width = '100%', height = 400, initValue = '', emoji, watch, showNullButton = false, showResizeBar = false, startInit = true , forMember}) => { +export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, className = '', noStorage = false, imageExpand = true, placeholder = '', width = '100%', height = 400, initValue = '', emoji, watch, showNullButton = false, showResizeBar = false, startInit = true , forMember = true }) => { const editorEl = useRef(); const resizeBarEl = useRef(); @@ -194,15 +194,14 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla } if (onChange) { editorInstance.cm.on('change', (cm) => { - if(forMember){ - document.onkeydown = (e) => { - if (e.key === "@") { - // 输入@键后在对应的位置显示可选的项目成员 - console.log("e",document.selectionStart); - console.log("e",document.getSelection()); - } - }; - } + // if(forMember){ + // document.onkeydown = (e) => { + // if (e.key === "@") { + // // 输入@键后在对应的位置显示可选的项目成员 + + // } + // }; + // } onChange(cm.getValue()) }) } From a4dbda8c5d1a6c58943fa1225c4f67aa03330cc8 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 18 Dec 2020 14:01:38 +0800 Subject: [PATCH 135/164] =?UTF-8?q?=E5=88=86=E6=94=AF=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E5=88=97=E8=A1=A8=E4=B8=8D=E5=8F=AF=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/marked.js | 4 ++-- src/components/render-html.jsx | 5 +---- src/forge/Branch/Select.jsx | 6 +++--- src/forge/Settings/Branch.js | 31 +++++++++++-------------------- 4 files changed, 17 insertions(+), 29 deletions(-) diff --git a/src/common/marked.js b/src/common/marked.js index 3be3ba2b..d3220a9f 100644 --- a/src/common/marked.js +++ b/src/common/marked.js @@ -55,8 +55,8 @@ function buildToc(coll, k, level, ctx) { export function getTocContent() { buildToc(toc, 0, 0, ctx) - ctx.push("
    ") - return ctx.join("") + ctx.push(""); + return ctx.join(""); } const tokenizer = { diff --git a/src/components/render-html.jsx b/src/components/render-html.jsx index 0445f624..3601ea32 100644 --- a/src/components/render-html.jsx +++ b/src/components/render-html.jsx @@ -22,9 +22,8 @@ export default ({ url }) => { let str = String(value); - const html = useMemo(() => { - let rs = marked(str) + let rs = marked(str); const math_expressions = getMathExpressions(); if (str.match(/\[TOC\]/)) { rs = rs.replace("

    [TOC]

    ", getTocContent()) @@ -37,14 +36,12 @@ export default ({ rs = rs.replace(/▁/g, "▁▁▁") resetMathExpressions() return dompurify.sanitize(rs) - }, [str]); // 锚点跳转,链接地址里含#对应的id useEffect(()=>{ if(url && url.hash && html){ let u = url.hash; - debugger; if(u){ let id = decodeURIComponent(u.split("#")[1]); let ele = document.getElementById(id); diff --git a/src/forge/Branch/Select.jsx b/src/forge/Branch/Select.jsx index c9d1212e..4c10177a 100644 --- a/src/forge/Branch/Select.jsx +++ b/src/forge/Branch/Select.jsx @@ -4,7 +4,7 @@ import './branch.css'; import { getBranch , getTag } from '../GetData/getData'; -export default (({ projectsId , branch , owner , changeBranch , branchList })=>{ +export default (({ projectsId , branch , owner , changeBranch , branchList , tagflag = true })=>{ const [ showValue , setShowValue ] = useState(branch); const [ inputValue , setInputValue] = useState(undefined); const [ nav , setNav ] = useState(0); @@ -82,8 +82,8 @@ export default (({ projectsId , branch , owner , changeBranch , branchList })=>{ onChange={changeInputValue} style={{width:"220px"}} />
      -
    • changeNav(0)}>分支列表
    • -
    • changeNav(1)}>标签列表
    • +
    • changeNav(0)}>分支列表
    • + { tagflag &&
    • changeNav(1)}>标签列表
    • }
    diff --git a/src/forge/Settings/Branch.js b/src/forge/Settings/Branch.js index fc9c9636..d0a235d8 100644 --- a/src/forge/Settings/Branch.js +++ b/src/forge/Settings/Branch.js @@ -109,6 +109,7 @@ export default ((props)=>{ owner={owner} history={props.history} branchList = {branchList} + tagflag={false} /> resetSetting()}>设为默认分支 @@ -116,26 +117,16 @@ export default ((props)=>{

    分支保护

    - + 0?"color-blue ml20":"color-grey ml20"} onClick={()=>settingRule(protectBranch)}>设置分支保护 { From 5c91569bac9e70f906cf4a6ba688e0532590e7fc Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 18 Dec 2020 17:14:51 +0800 Subject: [PATCH 136/164] c --- src/common/marked.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/marked.js b/src/common/marked.js index d3220a9f..abfd657a 100644 --- a/src/common/marked.js +++ b/src/common/marked.js @@ -54,7 +54,7 @@ function buildToc(coll, k, level, ctx) { } export function getTocContent() { - buildToc(toc, 0, 0, ctx) + buildToc(toc, 0, 0, ctx); ctx.push(""); return ctx.join(""); } From fac62fc99e9e29806e7269078600f99aa966a517 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 21 Dec 2020 17:59:40 +0800 Subject: [PATCH 137/164] remove --- src/forge/Newfile/UserSubmitComponent.js | 6 ++---- src/forge/Newfile/upload_file.js | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/forge/Newfile/UserSubmitComponent.js b/src/forge/Newfile/UserSubmitComponent.js index e24d167b..956ec363 100644 --- a/src/forge/Newfile/UserSubmitComponent.js +++ b/src/forge/Newfile/UserSubmitComponent.js @@ -59,7 +59,7 @@ class UserSubmitComponent extends Component { } }) .catch((error) => { - this.setState({ isSpin: false }); + this.setState({ isSpin : false }); console.log(error); }); } else { @@ -89,7 +89,6 @@ class UserSubmitComponent extends Component { .then((result) => { this.setState({ isSpin: false }); if (result.data && result.data.status === 1) { - debugger; let url = `/projects/${owner}/${projectsId}${(values.branchname ? `/branch/${values.branchname}` : ((currentBranch || branch) ? `/branch/${currentBranch || branch}`:""))}`; this.props.history.push(url); this.props.showNotification("文件修改成功!"); @@ -175,8 +174,7 @@ class UserSubmitComponent extends Component { - 为此提交创建一个新的分支 - 并发起合并请求 + 为此提交创建一个新的分支并发起合并请求 { diff --git a/src/forge/Newfile/upload_file.js b/src/forge/Newfile/upload_file.js index 40281a53..1a9b1da0 100644 --- a/src/forge/Newfile/upload_file.js +++ b/src/forge/Newfile/upload_file.js @@ -53,7 +53,6 @@ class UploadFile extends Component { {...this.props} />
    -
    Date: Tue, 22 Dec 2020 10:31:10 +0800 Subject: [PATCH 138/164] name --- src/forge/Main/Detail.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 685e297d..920db676 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -483,7 +483,7 @@ class Detail extends Component { - Fork + 复刻 (Fork) { platform ? @@ -516,7 +516,7 @@ class Detail extends Component {
  • - 任务 + 易修 (Issue) {projectDetail && projectDetail.issues_count ? {projectDetail.issues_count} : ""}
  • From d66b0580b7548dec1ccffd2315444bcaead3a1cf Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 23 Dec 2020 17:39:50 +0800 Subject: [PATCH 139/164] issue --- config/webpack.config.prod.js | 3 --- package.json | 2 +- src/common/educoder.js | 6 ------ src/forge/About/Index.jsx | 2 +- src/forge/Main/Index.js | 4 ++-- src/forge/Main/IndexItem.js | 2 +- 6 files changed, 5 insertions(+), 14 deletions(-) diff --git a/config/webpack.config.prod.js b/config/webpack.config.prod.js index 838da647..5d71d600 100644 --- a/config/webpack.config.prod.js +++ b/config/webpack.config.prod.js @@ -141,7 +141,6 @@ module.exports = { name: "static/media/[name].[hash:8].[ext]", }, }, - // Process JS with Babel. { test: /\.(js|jsx|mjs)$/, include: paths.appSrc, @@ -161,10 +160,8 @@ module.exports = { ], }, }, - { test: /\.css$/, - use: [ { loader: MiniCssExtractPlugin.loader, diff --git a/package.json b/package.json index 0ce7bac1..edc6e18e 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "educoder", + "name": "forge", "version": "0.1.0", "private": true, "dependencies": { diff --git a/src/common/educoder.js b/src/common/educoder.js index 83cb8bf8..1fc86893 100644 --- a/src/common/educoder.js +++ b/src/common/educoder.js @@ -76,10 +76,4 @@ export { default as AliyunUploader } from './components/media/AliyunUploader' export { default as ImageLayer2 } from './hooks/ImageLayer2' // 外部 -export { default as CBreadcrumb } from '../modules/courses/common/CBreadcrumb' export { CNotificationHOC as CNotificationHOC } from '../modules/courses/common/CNotificationHOC' -export { default as ModalWrapper } from '../modules/courses/common/ModalWrapper' -export { default as NoneData } from '../modules/courses/coursesPublic/NoneData' - -export { default as WordNumberTextarea } from '../modules/modals/WordNumberTextarea' - diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index c0a404e2..b43d683b 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -116,7 +116,7 @@ function Index(props){ :
    {content ? - + :
    暂无简介~
    } diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index 4952d429..f968f14b 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -245,10 +245,10 @@ class Index extends Component { pagination=(total,limit,page)=>{ return( - total && total > limit && + total && total > limit ?
    -
    +
    :"" ) } diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index ab9a6a29..0d081f14 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import { Tooltip } from 'antd'; -import { getImageUrl , getImage } from 'educoder'; +import { getImageUrl } from 'educoder'; import { Link } from 'react-router-dom'; import '../css/index.scss'; import Nodata from '../Nodata'; From 2905bb41a7faf744bd87c308416c2e23e3c219c5 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 24 Dec 2020 09:36:02 +0800 Subject: [PATCH 140/164] =?UTF-8?q?md=E7=BC=96=E8=BE=91=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/About/Index.jsx | 2 +- src/forge/Merge/merge_form.js | 2 +- src/forge/comments/comments.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index b43d683b..7816ff5d 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -78,7 +78,7 @@ function Index(props){
    Date: Thu, 24 Dec 2020 10:20:29 +0800 Subject: [PATCH 141/164] =?UTF-8?q?=E5=8A=A8=E6=80=81-user=5Flogin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Activity/ActivityItem.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Activity/ActivityItem.js b/src/forge/Activity/ActivityItem.js index 819ed530..1baa2ce9 100644 --- a/src/forge/Activity/ActivityItem.js +++ b/src/forge/Activity/ActivityItem.js @@ -32,7 +32,7 @@ class ActivityItem extends Component {

    }

    - + {item.user_name} From 2ecdd73c7f635dd34a4b65393dd8d69af46defa2 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 28 Dec 2020 20:42:12 +0800 Subject: [PATCH 142/164] =?UTF-8?q?=E5=A4=96=E5=9B=B4=E8=B4=A1=E7=8C=AE?= =?UTF-8?q?=E8=80=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/common/TextUtil.js | 2 +- src/forge/Main/Detail.js | 40 +++++++++------ src/forge/Main/Index.js | 37 +++++++------- src/forge/Main/Index.scss | 12 +++++ src/forge/Main/IndexItem.js | 42 ++++++++++++++-- src/forge/Main/SpecialModal.jsx | 45 +++++++++++++++++ src/forge/Main/list.css | 1 + src/forge/New/Index.js | 25 ++++++++-- src/forge/Settings/Collaborator.js | 10 +++- src/forge/Settings/Setting.js | 7 ++- src/forge/Settings/setting.scss | 3 ++ src/forge/Upload/Index.js | 5 +- src/forge/Upload/single.jsx | 78 ++++++++++++++++++++++++++++++ src/forge/Upload/untitled | 21 -------- src/forge/UsersList/list.css | 3 ++ src/forge/css/index.scss | 2 +- 17 files changed, 263 insertions(+), 72 deletions(-) create mode 100644 src/forge/Main/SpecialModal.jsx create mode 100644 src/forge/Upload/single.jsx delete mode 100644 src/forge/Upload/untitled diff --git a/src/AppConfig.js b/src/AppConfig.js index ca941733..a369d843 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -58,7 +58,7 @@ export function initAxiosInterceptors(props) { // TODO 避免重复的请求 https://github.com/axios/axios#cancellation var proxy = "http://localhost:3000"; - proxy = "http://39.105.176.215:49999"; + proxy = "https://testforgeplus.trustie.net"; const requestMap = {}; window.setfalseInRequestMap = function (keyName) { diff --git a/src/common/TextUtil.js b/src/common/TextUtil.js index 94e73631..4a1441fc 100644 --- a/src/common/TextUtil.js +++ b/src/common/TextUtil.js @@ -68,7 +68,7 @@ export function appendFileSizeToUploadFile(item) { return `${item.title}${uploadNameSizeSeperator}${item.filesize}` } export function appendFileSizeToUploadFileAll(fileList) { - return fileList.map(item => { + return fileList && fileList.map(item => { if (item.name.indexOf(uploadNameSizeSeperator) == -1) { return Object.assign({}, item, { name: `${item.name}${uploadNameSizeSeperator}${bytesToSize(item.size)}` }) } diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index cccab05b..d4354a40 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -4,23 +4,13 @@ import { Link, Route, Switch } from 'react-router-dom'; import { Content } from '../Component/layout'; import '../css/index.scss' import './list.css'; +import SpecialModal from './SpecialModal'; import Loadable from 'react-loadable'; import Loading from '../../Loading'; import axios from 'axios'; -import img_1 from '../Images/1.png'; -import img_2 from '../Images/2.png'; -import img_3 from '../Images/3.png'; -import img_6 from '../Images/6.png'; -import img_7 from '../Images/7.png'; -import img_parise from '../Images/parise.png'; -import img_focus from '../Images/focus.png'; -import img_parised from '../Images/parised.png'; -import img_focused from '../Images/focused.png'; -import img_fork from '../Images/fork.png'; -import img_milepost from '../Images/milepost.png'; const Setting = Loadable({ loader: () => import('../Settings/Index'), loading: Loading, @@ -172,7 +162,9 @@ class Detail extends Component { defaultBranch:undefined, // 非本平台项目 - platform:false + platform:false, + visible:false, + user_apply_signatures:[] } } @@ -198,6 +190,14 @@ class Detail extends Component { open_devops:result.data.open_devops, platform:result.data.platform && result.data.platform !== 'educoder' }) + let signa = result.data.user_apply_signatures && result.data.user_apply_signatures[0]; + if(result.data.is_secret && (signa && signa.status !== "passed")){ + this.setState({ + visible:true, + is_secret:result.data.is_secret, + user_apply_signatures:signa + }) + } // 工作流:两种状态进入的链接不同 const pathname = this.props.history.location.pathname; @@ -378,13 +378,24 @@ class Detail extends Component { }) } + hideModal=()=>{ + this.setState({ + visible:false + }) + } + + sureModal=()=>{ + this.hideModal(); + this.props.history.push('/projects'); + } + render() { const { projectDetail, watchers_count, praises_count, forked_count, firstSync , secondSync , isManager, watched, praised, - project , open_devops , platform , defaultBranch } = this.state; + project , open_devops , platform , defaultBranch , project_id , user_apply_signatures , visible } = this.state; const url = this.props.history.location.pathname; const urlArr = url.split("/"); const urlFlag = (urlArr.length === 3); @@ -411,6 +422,7 @@ class Detail extends Component { } return (

    +
    @@ -503,7 +515,7 @@ class Detail extends Component {
    • - + 主页
    • diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index 9f4cfb8a..9cba30fe 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -1,7 +1,6 @@ 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 { Menu, Input , Spin, Pagination , Popover } from 'antd'; import '../css/index.scss' import './list.css'; import './Index.scss'; @@ -37,8 +36,8 @@ class Index extends Component { } componentDidMount = () => { - const { page, limit, search, sort, project_type, category_id , languageId } = this.state; - this.getListData(page, limit, search, sort, project_type, category_id , languageId); + const { page,search, sort, project_type, category_id , languageId } = this.state; + this.getListData(page,search, sort, project_type, category_id , languageId); this.getType(); @@ -73,14 +72,14 @@ class Index extends Component { } // 获取列表 - getListData = (page, limit, search, sort, project_type, category_id,languageId) => { + getListData = (page,search, sort, project_type, category_id,languageId) => { const { current_user } = this.props; const url = `/projects.json`; axios.get(url, { params: { user_id: current_user && current_user.user_id, page, - limit, + limit:15, search, sort_by: sort, project_type, @@ -131,8 +130,8 @@ class Index extends Component { search: undefined }) this.setTypeList(list, type) - const { page, limit, sort, category_id , languageId } = this.state; - this.getListData(page, limit, undefined, sort, type, category_id , languageId); + const { page,sort, category_id , languageId } = this.state; + this.getListData(page,undefined, sort, type, category_id , languageId); } // 获取类型 @@ -167,8 +166,8 @@ class Index extends Component { page: 1 }); this.setCategoryList(list, id) - const { limit, sort, project_type , languageId } = this.state; - this.getListData(1, limit, undefined, sort, project_type, id , languageId); + const { sort, project_type , languageId } = this.state; + this.getListData(1,undefined, sort, project_type, id , languageId); } // 排序 @@ -179,8 +178,8 @@ class Index extends Component { search: undefined, isSpin: true }) - const { limit, project_type, category_id , languageId } = this.state; - this.getListData(1, limit, undefined, e.key, project_type, category_id , languageId); + const {project_type, category_id , languageId } = this.state; + this.getListData(1,undefined, e.key, project_type, category_id , languageId); } // 搜索 @@ -192,8 +191,8 @@ class Index extends Component { project_type: undefined, sort: "updated_on" }) - const { limit, sort, category_id , languageId } = this.state; - this.getListData(1, limit, value, sort, undefined, category_id , languageId); + const {sort, category_id , languageId } = this.state; + this.getListData(1,value, sort, undefined, category_id , languageId); } changeSearchValue = (e) => { this.setState({ @@ -205,8 +204,8 @@ class Index extends Component { this.setState({ page }) - const { limit, search, sort, project_type, category_id , languageId } = this.state; - this.getListData(page, limit, search, sort, project_type, category_id , languageId); + const {search, sort, project_type, category_id , languageId } = this.state; + this.getListData(page,search, sort, project_type, category_id , languageId); } getoDetail=(login,identifier)=>{ @@ -219,8 +218,8 @@ class Index extends Component { isSpin:true, languageId:e === 0 ?undefined:e }) - const { page, limit, sort , project_type , category_id } = this.state; - this.getListData(page, limit, undefined, sort, project_type, category_id ,e === 0 ?undefined:e); + const { page,sort , project_type , category_id } = this.state; + this.getListData(page, undefined, sort, project_type, category_id ,e === 0 ?undefined:e); } menu =()=> { @@ -329,7 +328,7 @@ class Index extends Component {
    - + {this.pagination(total,limit,page)}
    diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index cb006f67..381572f6 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -71,4 +71,16 @@ text-align: right; } } +} +.singleBtn{ + display: inline-block; + .ant-upload-list-item{ + position: absolute; + bottom: 0px; + width: 100%; + left: 0px; + .ant-upload-list-item-name{ + text-align: left; + } + } } \ No newline at end of file diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index f0658f38..fa783767 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -6,23 +6,58 @@ import '../css/index.scss'; import Nodata from '../Nodata'; import './list.css'; import img_parise from '../Images/parise.png'; +import SpecialModal from './SpecialModal'; class IndexItem extends Component { + constructor(props){ + super(props); + this.state={ + visible:false, + user_apply_signatures:[], + project_id:undefined + } + } TurnToDetail = (login, url) => { this.props.history.push({ pathname: url, state: login }) } + + projectHref=(link , user_apply_signatures,project_id,is_secret)=>{ + let signa = user_apply_signatures && user_apply_signatures[0]; + if(is_secret && (signa && signa.status !== "passed")){ + this.setState({ + visible:true, + user_apply_signatures:user_apply_signatures.length>0 ? user_apply_signatures[0] : undefined, + project_id + }) + }else{ + this.props.history.push(link); + } + } + hideModal=()=>{ + this.setState({ + visible:false + }) + } + + sureModal=()=>{ + this.hideModal(); + const { getListData } = this.props; + getListData && getListData(1); + } + render() { const { projects } = this.props; + const { visible , user_apply_signatures , project_id } = this.state; const renderList = ( projects && projects.length > 0 ? projects.map((item, key) => { return (
    { item.platform === "educoder" ? - + : @@ -32,7 +67,7 @@ class IndexItem extends Component { }
    - + this.projectHref(`/projects/${item.author.login}/${item.identifier}`,item.user_apply_signatures, item.id,item.is_secret)} className="hide-1 color-grey-3 font-18 task-hide fwt-500 " style={{ whiteSpace: "wrap", display: 'flex', width: 400 }}> {item.author.name}/{item.name} { item.forked_from_project_id ? @@ -51,7 +86,7 @@ class IndexItem extends Component { :"" } - + 赞 {item.praises_count} fork {item.forked_count} @@ -74,6 +109,7 @@ class IndexItem extends Component { ) return (
    + {renderList}
    ) diff --git a/src/forge/Main/SpecialModal.jsx b/src/forge/Main/SpecialModal.jsx new file mode 100644 index 00000000..afd021f2 --- /dev/null +++ b/src/forge/Main/SpecialModal.jsx @@ -0,0 +1,45 @@ +import React , { useEffect , useState } from 'react'; +import { Modal } from 'antd'; +import UploadSingle from '../Upload/single'; +import './Index.scss'; +import axios from 'axios'; +import { getUrl } from 'educoder'; + +function SpecialModal({ visible , hideModal , sureModal , showNotification , user_apply_signatures , project_id }){ + const [ id ,setId ] = useState(undefined); + + + function loadFunc(id){ + setId(id); + } + + function sure(){ + if(!user_apply_signatures || (user_apply_signatures && user_apply_signatures.status !== "waiting")){ + const url = `/apply_signatures.json`; + axios.post(url,{ + attachment_id:id, + project_id:project_id + }).then(result=>{ + if(result && result.data.id){ + showNotification("已提交文件,正在等待审核!"); + sureModal(); + } + }) + }else{ + sureModal(); + } + } + return( + + { + !user_apply_signatures || (user_apply_signatures && user_apply_signatures.status !== "waiting") ? +
    +
    该项目为私有项目,请先下载开源协议,阅读并填写
    相关信息后,将协议上传,平台审核通过后即可进入当前项目
    +
    + : +

    您上传的文件正在审核中,通过后才能访问当前项目

    + } +
    + ) +} +export default SpecialModal; \ No newline at end of file diff --git a/src/forge/Main/list.css b/src/forge/Main/list.css index 522cd516..dd40d404 100644 --- a/src/forge/Main/list.css +++ b/src/forge/Main/list.css @@ -220,6 +220,7 @@ text-align: center; height: 40px; line-height: 28px; + border:1px solid transparent; } .headerMenu-wrapper{ font-size: 16px; diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 7d7a5ee0..3d6b4ec3 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -38,7 +38,9 @@ class Index extends Component { project_language_name: undefined, project_category_name: undefined, license_name: undefined, - ignore_name: undefined + ignore_name: undefined, + + licenseForDisabled:undefined } } componentDidMount = () => { @@ -114,7 +116,7 @@ class Index extends Component { _data = data.filter(item => item.name.toLowerCase().indexOf(name.toLowerCase()) > -1); } let list = _data && _data.map((item) => ( - )); @@ -124,6 +126,17 @@ class Index extends Component { } } + selectSerect=(flag)=>{ + if(flag){ + this.props.form.setFieldsValue({ + private:true + }) + } + this.setState({ + licenseForDisabled:flag + }) + } + subMitFrom = () => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { @@ -168,7 +181,8 @@ class Index extends Component { } ChangePlatform = (value, e, name, list) => { - this.setOptionsList(list, name, value) + this.setOptionsList(list, name, value); + this.setState({ [name + "_id"]: e.key, [name + "_name"]: value, @@ -249,6 +263,7 @@ class Index extends Component { project_category_list, license_list, ignore_list, + licenseForDisabled, mirrorCheck } = this.state; @@ -434,8 +449,8 @@ class Index extends Component { style={{ margin: "0px" }} className="privatePart" > - {getFieldDecorator('private')( - 将项目设为私有(只有项目所有人或拥有权限的项目成员才能看到) + {getFieldDecorator('private',{valuePropName:"checked"})( + 将项目设为私有(只有项目所有人或拥有权限的项目成员才能看到) )} { diff --git a/src/forge/Settings/Collaborator.js b/src/forge/Settings/Collaborator.js index d1e6d7d1..cda25a5c 100644 --- a/src/forge/Settings/Collaborator.js +++ b/src/forge/Settings/Collaborator.js @@ -290,8 +290,10 @@ class Collaborator extends Component { return "text-green"; } else if (role === "Developer") { return "text-primary"; - } else { + } else if(role === "Reporter"){ return "text-yellow"; + }else{ + return "text-gray"; } }; const member_roles = (item) => { @@ -302,7 +304,11 @@ class Collaborator extends Component { - ) : ( + ) : + item.is_apply_signature ? + + : + ( {operation && operation[0].name} diff --git a/src/forge/Settings/Setting.js b/src/forge/Settings/Setting.js index 729ea2a5..2c1989af 100644 --- a/src/forge/Settings/Setting.js +++ b/src/forge/Settings/Setting.js @@ -15,6 +15,7 @@ class Setting extends Component { CategoryList: undefined, LanguageList: undefined, private_check: undefined, + is_secret:false }; } @@ -52,10 +53,11 @@ class Setting extends Component { .then((result) => { if (result) { this.props.form.setFieldsValue({ - ...result.data, + ...result.data }); this.setState({ private_check: result.data.private, + is_secret:result.data.is_secret }); } }) @@ -152,7 +154,7 @@ class Setting extends Component { render() { const { getFieldDecorator } = this.props.form; - const { CategoryList, LanguageList, private_check } = this.state; + const { CategoryList, LanguageList, private_check , is_secret } = this.state; return (
    @@ -177,6 +179,7 @@ class Setting extends Component { 将仓库设为私有 diff --git a/src/forge/Settings/setting.scss b/src/forge/Settings/setting.scss index 35726cba..3d1d6aeb 100644 --- a/src/forge/Settings/setting.scss +++ b/src/forge/Settings/setting.scss @@ -151,6 +151,9 @@ .text-yellow{color: #FF6E21 !important;} .text-delete{color: #BBBBBB; } .text-delete:hover{color: #db2828; } +.text-grey{ + color: #999; +} .new-tag-div{ padding: 15px; height: 75px; diff --git a/src/forge/Upload/Index.js b/src/forge/Upload/Index.js index 2c751b16..d2113f6f 100644 --- a/src/forge/Upload/Index.js +++ b/src/forge/Upload/Index.js @@ -1,5 +1,5 @@ import React, { Component } from "react"; -import { Upload, Button, Icon } from 'antd'; +import { Upload , Icon } from 'antd'; import { getUploadActionUrl, appendFileSizeToUploadFileAll } from 'educoder'; import axios from 'axios'; @@ -45,8 +45,7 @@ class Index extends Component { deleteAttachment = (file) => { const url = `/attachments/${file.response ? file.response.id : file.uid}.json` - axios.delete(url, { - }).then((response) => { + axios.delete(url).then((response) => { if (response.data) { if (response.data.status === 0) { this.setState((state) => { diff --git a/src/forge/Upload/single.jsx b/src/forge/Upload/single.jsx new file mode 100644 index 00000000..45e3f1a5 --- /dev/null +++ b/src/forge/Upload/single.jsx @@ -0,0 +1,78 @@ +import React, { useEffect , useState } from "react"; +import { Upload } from 'antd'; +import { getUploadActionUrl, appendFileSizeToUploadFileAll } from 'educoder'; + +import axios from 'axios'; + +function Single({ children , showNotification , className , load , size }) { + const [ fileList , setFileList ] = useState(undefined); + // 移除 + function onAttachmentRemove(file){ + if (!file.percent || file.percent === 100) { + deleteAttachment(file); + return false; + } + } + + function deleteAttachment(file){ + let uid = file.response ? file.response.id : file.uid; + const url = `/attachments/${uid}.json` + axios.delete(url).then((response) => { + if (response.data && response.data.status === 0) { + let list = fileList.filter(item=> item.response && item.response.id !== uid); + setFileList(list); + fileIdList(list); + } + }).catch(error=>{}); + } + + + function handleChange(info){ + if (info.file.status === 'uploading' || info.file.status === 'done' || info.file.status === 'removed') { + let fileList = [info.file]; + + let list = appendFileSizeToUploadFileAll(fileList); + setFileList(list); + if ( info.file.status === 'done') { + let f = info.fileList && info.fileList.length>0 && info.fileList[info.fileList.length-1]; + if(f && f.response && f.response.status === -1){ + showNotification(f.response.message) + setFileList(f); + } + fileIdList(fileList); + } + } + } + + function fileIdList(fileList){ + let l = fileList && fileList.length > 0 && fileList[0]; + let array = [l && l.response && l.response.id]; + load && load(array); + } + + function beforeUpload(file){ + if(!size) return; + const isLt100M = file.size / 1024 / 1024 < size; + if (!isLt100M) { + this.props.showNotification(`文件大小必须小于${size}MB!`); + } + return isLt100M; + } + + //判断是否已经提交,如已提交评论则上一条评论数据清除 + const upload = { + name: 'file', + fileList: fileList, + action: `${getUploadActionUrl()}`, + onChange: handleChange, + onRemove: onAttachmentRemove, + beforeUpload: beforeUpload + }; + + return ( + + {children} + + ) +} +export default Single; \ No newline at end of file diff --git a/src/forge/Upload/untitled b/src/forge/Upload/untitled deleted file mode 100644 index 2796e4d7..00000000 --- a/src/forge/Upload/untitled +++ /dev/null @@ -1,21 +0,0 @@ - -1.请求URL: https://code.ihub.org.cn/api/v1/mirrors/create.json - -2.请求方式: POST - -3.参数: - -{ - "image_url": "xxx.git", #必填,且后缀必为.git, - "language": "Ruby", #必填,如数据库不存在,则会创建新的记录 -} - - -4. 返回值: { - "status": 1, - "message": "同步成功,项目ID===1806" -} - -5. 返回值说明: 仅有当有返回值,且返回值的status 的值为1, 才是创建成功,其余均为创建失败 - - diff --git a/src/forge/UsersList/list.css b/src/forge/UsersList/list.css index 2de17ea1..2a8e63b6 100644 --- a/src/forge/UsersList/list.css +++ b/src/forge/UsersList/list.css @@ -62,6 +62,9 @@ .text-yellow{ color: #FFA802 !important } +.text-grey{ + color: #999; +} .text-gray { color: #888888; } diff --git a/src/forge/css/index.scss b/src/forge/css/index.scss index 82844d4e..55f8ba03 100644 --- a/src/forge/css/index.scss +++ b/src/forge/css/index.scss @@ -159,7 +159,7 @@ form{ background-color: #fff; .list-affix{ min-height: 20px; - max-height: 60vh; + max-height: 180px; overflow-y: auto; } & li{ From 7b2f233cae0dd85d555876652f03478458709df0 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 29 Dec 2020 11:38:08 +0800 Subject: [PATCH 143/164] =?UTF-8?q?=E9=9A=90=E8=97=8Fdevops?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/Detail.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index d4354a40..6ea90526 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -542,7 +542,7 @@ class Detail extends Component { } - { + {/* { platform &&
  • @@ -550,7 +550,7 @@ class Detail extends Component { {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""}
  • - } + } */}
  • From 1bab0b01f7c8d3f6c94a6e88bf4787ea5e7a648a Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 29 Dec 2020 16:18:20 +0800 Subject: [PATCH 144/164] debug --- src/forge/Main/IndexItem.js | 25 +++++++++++++++---------- src/forge/Upload/single.jsx | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index fa783767..884e0c16 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -24,16 +24,21 @@ class IndexItem extends Component { }) } - projectHref=(link , user_apply_signatures,project_id,is_secret)=>{ - let signa = user_apply_signatures && user_apply_signatures[0]; - if(is_secret && (signa && signa.status !== "passed")){ - this.setState({ - visible:true, - user_apply_signatures:user_apply_signatures.length>0 ? user_apply_signatures[0] : undefined, - project_id - }) + projectHref=(link , user_apply_signatures,project_id,is_secret , id)=>{ + const { user , showLoginDialog } = this.props; + if(user && user.login){ + let signa = user_apply_signatures && user_apply_signatures[0]; + if((is_secret && (!signa || (signa && signa.status !== "passed"))) && user.login !== id ){ + this.setState({ + visible:true, + user_apply_signatures:user_apply_signatures.length>0 ? user_apply_signatures[0] : undefined, + project_id + }) + }else{ + this.props.history.push(link); + } }else{ - this.props.history.push(link); + showLoginDialog && showLoginDialog(); } } hideModal=()=>{ @@ -67,7 +72,7 @@ class IndexItem extends Component { }
    - this.projectHref(`/projects/${item.author.login}/${item.identifier}`,item.user_apply_signatures, item.id,item.is_secret)} className="hide-1 color-grey-3 font-18 task-hide fwt-500 " style={{ whiteSpace: "wrap", display: 'flex', width: 400 }}> + this.projectHref(`/projects/${item.author.login}/${item.identifier}`,item.user_apply_signatures, item.id,item.is_secret,item.author.login)} className="hide-1 color-grey-3 font-18 task-hide fwt-500 " style={{ whiteSpace: "wrap", display: 'flex', width: 400 }}> {item.author.name}/{item.name} { item.forked_from_project_id ? diff --git a/src/forge/Upload/single.jsx b/src/forge/Upload/single.jsx index 45e3f1a5..e9b43a05 100644 --- a/src/forge/Upload/single.jsx +++ b/src/forge/Upload/single.jsx @@ -54,7 +54,7 @@ function Single({ children , showNotification , className , load , size }) { if(!size) return; const isLt100M = file.size / 1024 / 1024 < size; if (!isLt100M) { - this.props.showNotification(`文件大小必须小于${size}MB!`); + showNotification(`文件大小必须小于${size}MB!`); } return isLt100M; } From 033134fa83f2bc6e798b9c72ca5aa1c078660fc8 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 29 Dec 2020 16:28:08 +0800 Subject: [PATCH 145/164] json --- src/common/UrlTool.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 5b101e7a..6b3d3564 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -162,7 +162,7 @@ export function getmyUrl(geturl) { } export function getUploadActionUrl(path, goTest) { - return `${getUrl()}/api/attachments.json?debug=${window._debugType || 'admin'}`; + return `${getUrl()}/api/attachments.json`; } export function getUploadLogoActionUrl() { From 0dcaea3db4ef32d6d21e2add83ce7f019f07064b Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 31 Dec 2020 14:13:31 +0800 Subject: [PATCH 146/164] =?UTF-8?q?=E6=A3=80=E6=B5=8B=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BA=86=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Main/SpecialModal.jsx | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index a369d843..ca941733 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -58,7 +58,7 @@ export function initAxiosInterceptors(props) { // TODO 避免重复的请求 https://github.com/axios/axios#cancellation var proxy = "http://localhost:3000"; - proxy = "https://testforgeplus.trustie.net"; + proxy = "http://39.105.176.215:49999"; const requestMap = {}; window.setfalseInRequestMap = function (keyName) { diff --git a/src/forge/Main/SpecialModal.jsx b/src/forge/Main/SpecialModal.jsx index afd021f2..26394804 100644 --- a/src/forge/Main/SpecialModal.jsx +++ b/src/forge/Main/SpecialModal.jsx @@ -14,6 +14,10 @@ function SpecialModal({ visible , hideModal , sureModal , showNotification , use } function sure(){ + if(!id || (id && id.length === 0)){ + showNotification("请先提交文件进行审核!"); + return; + } if(!user_apply_signatures || (user_apply_signatures && user_apply_signatures.status !== "waiting")){ const url = `/apply_signatures.json`; axios.post(url,{ From 6eef4bd09eb6d11fcceb76aec934e2cc9cc11d3d Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 31 Dec 2020 15:16:26 +0800 Subject: [PATCH 147/164] =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/SpecialModal.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/forge/Main/SpecialModal.jsx b/src/forge/Main/SpecialModal.jsx index 26394804..1454be67 100644 --- a/src/forge/Main/SpecialModal.jsx +++ b/src/forge/Main/SpecialModal.jsx @@ -14,11 +14,11 @@ function SpecialModal({ visible , hideModal , sureModal , showNotification , use } function sure(){ - if(!id || (id && id.length === 0)){ - showNotification("请先提交文件进行审核!"); - return; - } if(!user_apply_signatures || (user_apply_signatures && user_apply_signatures.status !== "waiting")){ + if(!id || (id && id.length === 0)){ + showNotification("请先提交文件进行审核!"); + return; + } const url = `/apply_signatures.json`; axios.post(url,{ attachment_id:id, From 3f8f1b80836b764d28e451e66fe58f604e0a94b1 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 4 Jan 2021 16:28:19 +0800 Subject: [PATCH 148/164] =?UTF-8?q?=E7=89=B9=E6=AE=8A=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 4 +- src/common/UrlTool.js | 8 +- src/forge/Main/Detail.js | 3 +- src/forge/Settings/Index.js | 27 ++++ src/forge/Settings/SpecialProject.jsx | 187 ++++++++++++++++++++++++++ src/forge/Settings/setting.scss | 1 + 6 files changed, 223 insertions(+), 7 deletions(-) create mode 100644 src/forge/Settings/SpecialProject.jsx diff --git a/src/AppConfig.js b/src/AppConfig.js index ca941733..82a5cb78 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,14 +27,14 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '15243705227' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); cookie.remove('autologin_trustie', { path: '/' }); setpostcookie() } -clearAllCookie(); +// clearAllCookie(); function setpostcookie() { const str = window.location.pathname; if (str.indexOf("/wxcode") !== -1) { diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 6b3d3564..9b4d5191 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -6,12 +6,12 @@ const { Search } = Input; const $ = window.$; const isDev = window.location.port == 3007; const isdev2= window.location.hostname ==='www.educoder.net' -export const TEST_HOST = "https://testforgeplus.trustie.net/" +export const TEST_HOST = "http://39.105.176.215:49999" export function getImageUrl(path) { // https://www.educoder.net // https://testbdweb.trustie.net // const local = 'http://localhost:3000' - const local = 'https://testforgeplus.trustie.net'; + const local = 'http://39.105.176.215:49999'; if (isDev) { return `${local}/${path}` } @@ -22,7 +22,7 @@ export function getImage(path) { // https://www.educoder.net // https://testbdweb.trustie.net // const local = 'http://localhost:3000' - const local = 'https://testforgeplus.trustie.net/'; + const local = 'http://39.105.176.215:49999'; if(path.indexOf("http://")===-1){ if (isDev) { return `${local}/images/${path}` @@ -93,7 +93,7 @@ export function setImagesUrl(path){ } export function getUrl(path, goTest) { - const local = 'https://testforgeplus.trustie.net' + const local = 'http://39.105.176.215:49999' if (isDev) { return `${local}${path?path:''}` } diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 6ea90526..1ddef304 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -181,6 +181,7 @@ class Detail extends Component { } getProject = (num) => { + const {user} = this.props; const { projectsId , owner } = this.props.match.params; const url = `/${owner}/${projectsId}/simple.json`; axios.get(url).then((result) => { @@ -191,7 +192,7 @@ class Detail extends Component { platform:result.data.platform && result.data.platform !== 'educoder' }) let signa = result.data.user_apply_signatures && result.data.user_apply_signatures[0]; - if(result.data.is_secret && (signa && signa.status !== "passed")){ + if(result.data.is_secret && (!signa || (signa && signa.status !== "passed")) && user.login !== owner){ this.setState({ visible:true, is_secret:result.data.is_secret, diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 4a22b3d3..2196018e 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -28,6 +28,10 @@ const Tags = Loadable({ loader: () => import("./new_tags"), loading: Loading, }); +const Special = Loadable({ + loader: () => import("./SpecialProject"), + loading: Loading, +}); const Manage = Loadable({ loader: () => import("./ManageWeb"), loading: Loading, @@ -39,6 +43,7 @@ const ManageNew = Loadable({ class Index extends Component { render() { const { projectsId , owner } = this.props.match.params; + const { user } = this.props; const { pathname } = this.props.history.location; const flag = pathname === `/projects/${owner}/${projectsId}/setting`; @@ -87,6 +92,20 @@ class Index extends Component {

  • + { + user && user.login === owner ? +
  • -1 ? "active" : ""} + > +

    + + + 特殊开源许可证项目管理 + +

    +
  • + :"" + } {/*
  • )} > + + ( + + )} + > {/* 修改仓库信息 */} + ( diff --git a/src/forge/Settings/SpecialProject.jsx b/src/forge/Settings/SpecialProject.jsx new file mode 100644 index 00000000..197af884 --- /dev/null +++ b/src/forge/Settings/SpecialProject.jsx @@ -0,0 +1,187 @@ +import React , { useEffect , useState} from 'react'; +import { Input , Table , Pagination, Button , Dropdown , Menu } from 'antd'; +import { Banner , WhiteBack , AlignCenterBetween } from '../Component/layout'; +import axios from 'axios'; + +const { Search } = Input; + +const LIMIT = 15; +function SpecialProject(props){ + const [ page , setPage] = useState(1); + const [ searchValue , SetSearchValue ] = useState(undefined); + const [ total , setTotal ] = useState(0); + const [ list , setList ] = useState(undefined); + const [ status , setStatus ] = useState(undefined); + const [ loading ,setLoading ] = useState(true); + + const { owner , projectsId} = props.match.params; + console.log(props); + const { project_id } = props; + + useEffect(()=>{ + if(project_id){ + setLoading(true); + Init(searchValue, status); + } + },[page,project_id]); + + function Init(search,status){ + const url = `/apply_signatures.json`; + axios.get(url,{ + params:{ + project_id, + page,limit:LIMIT,search,status + } + }).then(result=>{ + setLoading(false); + if(result){ + setList(result.data.apply_signatures); + setTotal(result.data.total_count); + } + }).catch(error=>{}) + } + + function changePage(page){ + setLoading(true); + setPage(page); + } + + const column = [ + { + dataIndex:"column", + key:1, + width:"12%", + title:"序号", + render:(txt,item,index)=>{ + return `${index+1}` + } + }, + { + dataIndex:"name", + key:2, + title:"申请人", + render:(text,item,m)=>{ + return item.user && {item.user.name} + } + }, + { + dataIndex:"email", + key:2, + title:"邮箱", + width:"22%", + render:(text,item,m)=>{ + return item.user && {item.user.email} + } + }, + { + dataIndex:"attachment", + key:3, + title:"附件", + width:"28%", + render:(text,item,m)=>{ + return item.attachment && {item.attachment.filename} + } + }, + { + dataIndex:"operation", + key:4, + width:"18%", + title:"操作", + render:(text, item) =>{ + return( + + { + item.status === "waiting" && + + + + + } + { + item.status === "unpassed" && + 已拒绝 + } + { + item.status === "passed" && + 已同意 + } + + ) + } + } + ] + // 拒绝&同意 + function operation(ids,s){ + setLoading(true); + const url = `/apply_signatures/${ids}.json`; + axios.put(url,{ + project_id:project_id, + status:s + }).then(result=>{ + setLoading(false); + if(result){ + props.showNotification(`${s==="passed"?"同意":"拒绝"}此申请已操作成功!`); + Init(searchValue,status); + } + }).catch(error=>{setLoading(false)}) + } + + function searchList(){ + setLoading(true); + Init(searchValue,status); + } + + const menu=( + + 全部 + 审核中 + 已拒绝 + 已同意 + + ) + + function chooseStatus(e){ + setStatus(e.key); + Init(searchValue, e.key); + } + + + return( + + 项目管理 + + SetSearchValue(e.target.value)} + onSearch={searchList} + /> + + + {status ==="waiting"?"审核中":status==="unpassed"?"已拒绝":status==="passed"?"已同意":"全部"} + + + + + record.id} + pagination={false} + dataSource={list} + loading={loading} + >
    + { + total > LIMIT && +
    + +
    + } + +
    + ) +} +export default SpecialProject; \ No newline at end of file diff --git a/src/forge/Settings/setting.scss b/src/forge/Settings/setting.scss index 3d1d6aeb..affc9838 100644 --- a/src/forge/Settings/setting.scss +++ b/src/forge/Settings/setting.scss @@ -139,6 +139,7 @@ .padding15-10{ padding:15px 10px; } +.center{text-align: center;} .w-100{width: 100%;} .fwb{font-weight: 600;} .text-black{color: #333;} From dde7fa730af2642b7b90dea331bd57ff87b81098 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 4 Jan 2021 16:43:15 +0800 Subject: [PATCH 149/164] =?UTF-8?q?=E5=90=8C=E4=B8=8A-update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppConfig.js | 2 +- src/forge/Main/Detail.js | 3 +-- src/forge/Main/IndexItem.js | 25 +++++++++++++------------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index 82a5cb78..e271ed76 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '15243705227' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 1ddef304..0247b6b3 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -202,8 +202,7 @@ class Detail extends Component { // 工作流:两种状态进入的链接不同 const pathname = this.props.history.location.pathname; - let p = checkPathname(pathname); - if(p==="devops"){ + if(pathname===`/projects/${owner}/${projectsId}/devops`){ if(result.data.open_devops && pathname === `/projects/${owner}/${projectsId}/devops`){ this.props.history.push(`/projects/${owner}/${projectsId}/devops/list`); }else if(result.data.open_devops===false && pathname !== `/projects/${owner}/${projectsId}/devops`){ diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 884e0c16..3441b76e 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -26,19 +26,20 @@ class IndexItem extends Component { projectHref=(link , user_apply_signatures,project_id,is_secret , id)=>{ const { user , showLoginDialog } = this.props; - if(user && user.login){ - let signa = user_apply_signatures && user_apply_signatures[0]; - if((is_secret && (!signa || (signa && signa.status !== "passed"))) && user.login !== id ){ - this.setState({ - visible:true, - user_apply_signatures:user_apply_signatures.length>0 ? user_apply_signatures[0] : undefined, - project_id - }) - }else{ - this.props.history.push(link); - } + debugger; + if(is_secret && (!user || (user && !user.login))){ + showLoginDialog(); + return; + } + let signa = user_apply_signatures && user_apply_signatures[0]; + if((is_secret && (!signa || (signa && signa.status !== "passed"))) && user.login !== id ){ + this.setState({ + visible:true, + user_apply_signatures:user_apply_signatures.length>0 ? user_apply_signatures[0] : undefined, + project_id + }) }else{ - showLoginDialog && showLoginDialog(); + this.props.history.push(link); } } hideModal=()=>{ From 5bda100e327a5f82f44c5c6cdba94a18d79cbb2f Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 5 Jan 2021 09:23:58 +0800 Subject: [PATCH 150/164] update --- src/AppConfig.js | 2 +- src/forge/Main/IndexItem.js | 1 - src/forge/Settings/Index.js | 4 ++-- src/forge/Settings/SpecialProject.jsx | 3 +-- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index e271ed76..82a5cb78 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '15243705227' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 3441b76e..30979954 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -26,7 +26,6 @@ class IndexItem extends Component { projectHref=(link , user_apply_signatures,project_id,is_secret , id)=>{ const { user , showLoginDialog } = this.props; - debugger; if(is_secret && (!user || (user && !user.login))){ showLoginDialog(); return; diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 2196018e..1fecef5c 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -43,8 +43,8 @@ const ManageNew = Loadable({ class Index extends Component { render() { const { projectsId , owner } = this.props.match.params; - const { user } = this.props; const { pathname } = this.props.history.location; + const { projectDetail } = this.props; const flag = pathname === `/projects/${owner}/${projectsId}/setting`; return ( @@ -93,7 +93,7 @@ class Index extends Component {

  • { - user && user.login === owner ? + projectDetail && projectDetail.permission && projectDetail.permission === "Owner" ?
  • -1 ? "active" : ""} > diff --git a/src/forge/Settings/SpecialProject.jsx b/src/forge/Settings/SpecialProject.jsx index 197af884..883b5d0a 100644 --- a/src/forge/Settings/SpecialProject.jsx +++ b/src/forge/Settings/SpecialProject.jsx @@ -15,7 +15,6 @@ function SpecialProject(props){ const [ loading ,setLoading ] = useState(true); const { owner , projectsId} = props.match.params; - console.log(props); const { project_id } = props; useEffect(()=>{ @@ -133,7 +132,7 @@ function SpecialProject(props){ const menu=( - 全部 + 全部 审核中 已拒绝 已同意 From 350f9426eaf9edbc4f0eca29d0452e48df0a971d Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 5 Jan 2021 10:33:58 +0800 Subject: [PATCH 151/164] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/DevOps/Index.jsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/forge/DevOps/Index.jsx b/src/forge/DevOps/Index.jsx index 77b82eb0..1855da42 100644 --- a/src/forge/DevOps/Index.jsx +++ b/src/forge/DevOps/Index.jsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React , { useEffect } from 'react'; import { WhiteBack } from '../Component/layout'; import './ops.scss'; @@ -15,6 +15,19 @@ const Infos = Loadable({ loading: Loading, }) export default ((props)=>{ + const { projectsId , owner } = props.match.params; + const open_devops = props.projectDetail && props.projectDetail.open_devops; + + // 工作流:两种状态进入的链接不同 + useEffect(()=>{ + if(open_devops !== undefined){ + if(open_devops){ + props.history.replace(`/projects/${owner}/${projectsId}/devops/list`); + }else{ + props.history.replace(`/projects/${owner}/${projectsId}/devops`); + } + } + },[open_devops]) return( From c68a3dbd6f082ce2ae8ddb4c3f932c27ac1907f5 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 11 Jan 2021 18:14:59 +0800 Subject: [PATCH 152/164] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=88=90=E5=91=98?= =?UTF-8?q?=E8=AE=BF=E9=97=AE=E7=89=B9=E6=AE=8A=E5=BC=80=E6=BA=90=E8=AE=B8?= =?UTF-8?q?=E5=8F=AF=E8=AF=81=E9=A1=B9=E7=9B=AE=E4=B8=8D=E7=94=A8=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/IndexItem.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index 30979954..8841a7ae 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -23,15 +23,22 @@ class IndexItem extends Component { state: login }) } - - projectHref=(link , user_apply_signatures,project_id,is_secret , id)=>{ + /** + * link:跳转到详情的地址 + * user_apply_signatures:是否已经发送访问特殊开源项目的文件 + * project_id:项目id + * is_secret:是否是特殊开源许可证项目 + * id:创建者login + * is_member:是否是项目成员(如果是项目成员可以直接进入项目) + * */ + projectHref=(link , user_apply_signatures,project_id,is_secret , id,is_member)=>{ const { user , showLoginDialog } = this.props; if(is_secret && (!user || (user && !user.login))){ showLoginDialog(); return; } let signa = user_apply_signatures && user_apply_signatures[0]; - if((is_secret && (!signa || (signa && signa.status !== "passed"))) && user.login !== id ){ + if((is_secret && !is_member && (!signa || (signa && signa.status !== "passed"))) && user.login !== id ){ this.setState({ visible:true, user_apply_signatures:user_apply_signatures.length>0 ? user_apply_signatures[0] : undefined, @@ -72,7 +79,7 @@ class IndexItem extends Component { }
    - this.projectHref(`/projects/${item.author.login}/${item.identifier}`,item.user_apply_signatures, item.id,item.is_secret,item.author.login)} className="hide-1 color-grey-3 font-18 task-hide fwt-500 " style={{ whiteSpace: "wrap", display: 'flex', width: 400 }}> + this.projectHref(`/projects/${item.author.login}/${item.identifier}`,item.user_apply_signatures, item.id,item.is_secret,item.author.login,item.is_member)} className="hide-1 color-grey-3 font-18 task-hide fwt-500 " style={{ whiteSpace: "wrap", display: 'flex', width: 400 }}> {item.author.name}/{item.name} { item.forked_from_project_id ? From 5a6b7bd717fb7b7ec27e4637b7b17bf246bc3a1b Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 12 Jan 2021 09:30:30 +0800 Subject: [PATCH 153/164] update --- src/AppConfig.js | 2 +- src/forge/Main/Detail.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index 82a5cb78..1743bdc5 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -27,7 +27,7 @@ if (isDev) { } debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' : window.location.search.indexOf('debug=s') !== -1 ? 'student' : - window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || '15243705227' + window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'p86402359' } function clearAllCookie() { cookie.remove('_educoder_session', { path: '/' }); diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 0247b6b3..d86d694c 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -192,7 +192,7 @@ class Detail extends Component { platform:result.data.platform && result.data.platform !== 'educoder' }) let signa = result.data.user_apply_signatures && result.data.user_apply_signatures[0]; - if(result.data.is_secret && (!signa || (signa && signa.status !== "passed")) && user.login !== owner){ + if(result.data.is_secret && !result.data.is_member && (!signa || (signa && signa.status !== "passed")) && user.login !== owner){ this.setState({ visible:true, is_secret:result.data.is_secret, From d8d464a3322f46203b7ed1cfc7b4d428965bf853 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 12 Jan 2021 17:45:54 +0800 Subject: [PATCH 154/164] pullrequest --- src/forge/Merge/MessageCount.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 75921701..507c62dd 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -300,7 +300,7 @@ class MessageCount extends Component {
    {data.pull_request.is_original ? data.pull_request.fork_project_user : data.issue.project_author_name}:{data.pull_request.head} From c746e9e634c45f969e55c03956002f816e797b32 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 13 Jan 2021 14:21:12 +0800 Subject: [PATCH 155/164] pulls --- src/forge/Merge/MessageCount.js | 40 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 507c62dd..71e74668 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -40,6 +40,7 @@ class MessageCount extends Component { SpinMerge: false, edit_spin: false, pr_status: undefined, + pull_request:undefined, copyVisible:false, }; @@ -69,11 +70,12 @@ class MessageCount extends Component { axios .get(url) .then((result) => { - if (result) { + if (result && result.data) { this.setState({ data: result.data, SpinFlag: false, - pr_status: result.data && result.data.pull_request && result.data.pull_request.status, + pr_status: result.data.pull_request && result.data.pull_request.status, + pull_request:result.data.pull_request }); } else { this.setState({ SpinFlag: false }); @@ -120,12 +122,12 @@ class MessageCount extends Component { SpinMerge: true, }); const { projectsId , owner } = this.props.match.params; - const { data, title, body, mergekey, pr_status } = this.state; - const url = `/${owner}/${projectsId}/pulls/${data.pull_request.id}/pr_merge.json`; + const { title, body, mergekey, pull_request } = this.state; + const url = `/${owner}/${projectsId}/pulls/${pull_request.id}/pr_merge.json`; axios .post(url, { project_id: projectsId, - id: data.pull_request.id, + id: pull_request.id, do: mergekey, body: body, title: title, @@ -249,9 +251,15 @@ class MessageCount extends Component { isSpin, ismesrge, SpinFlag, - copyVisible + copyVisible, + pull_request } = this.state; const { current_user, projectDetail } = this.props; + + const permission = projectDetail && (projectDetail.permission === "Admin" || projectDetail.permission === "Owner"); + const userLogin = current_user && current_user.login && (pull_request && pull_request.create_user === current_user.login); + const operate = current_user && projectDetail && pr_status === 0 && (permission || userLogin); + const menu = ( this.getOption(e)}> @@ -280,13 +288,13 @@ class MessageCount extends Component {
    - {data.issue.subject} + { data.issue && data.issue.subject} - {data.pull_request && ( + {pull_request && ( {pr_status === 1 ? "已合并" @@ -300,10 +308,10 @@ class MessageCount extends Component {
    - {data.pull_request.is_original ? data.pull_request.fork_project_user : data.issue.project_author_name}:{data.pull_request.head} + {pull_request.is_original ? pull_request.fork_project_user : data.issue.project_author_name}:{pull_request.head} @@ -315,11 +323,11 @@ class MessageCount extends Component { {/* {data.pull_request.is_fork ? data.pull_request.base : `${data.pull_request.pull_request_user}:${data.pull_request.base}`} */} - {data.issue.project_author_name}:{data.pull_request.base} + {data.issue.project_author_name}:{pull_request.base}
    @@ -401,9 +409,7 @@ class MessageCount extends Component { 下载为 */} - {current_user && projectDetail && - pr_status === 0 && - projectDetail.permission !=="Reporter" && ( + {operate && (
  • 账号管理
  • 我的消息
  • - + 账号安全
  • - + 创客管理
  • From de550d5f42f2d6a01fdaa37a2e6bbf18d36199ef Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 4 Feb 2021 15:05:37 +0800 Subject: [PATCH 158/164] remove --- src/modules/tpm/NewHeader.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 8b72f1bf..81b9678f 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -16,7 +16,6 @@ import logo from './images/logo.png'; import { result } from 'lodash'; const $ = window.$ - window._header_componentHandler = null; // 非trustie链接则新开页跳转 const str = ['www.trustie.net','forgeplus.trustie.net','forum.trustie.net','testforgeplus.trustie.net'] @@ -95,10 +94,6 @@ class NewHeader extends Component { this.setState({ user: newProps.user }) - if (newProps.Headertop !== undefined) { - old_url = newProps.Headertop.old_url - } - } getCookie = (key) => { var arr, reg = RegExp('(^| )' + key + '=([^;]+)(;|$)'); From 617f139f529fc490f0c6dcf272803784be6a1ba5 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 4 Feb 2021 15:13:08 +0800 Subject: [PATCH 159/164] fault --- src/modules/tpm/NewHeader.js | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 81b9678f..5df70ca5 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -46,8 +46,7 @@ class NewHeader extends Component { headtypess: "/", mygetHelmetapi2: null, goshowqqgtounp: false, - visiblemyss: false, - settingData:undefined + visiblemyss: false } } componentDidMount() { @@ -546,9 +545,7 @@ class NewHeader extends Component { let url = "/setting.json"; axios.get(url).then((response) => { if (response && response.data) { - this.setState({ - settingData:result.data.setting - }) + this.setState({ mygetHelmetapi2: response.data.setting }); try { if (response.data.setting.tab_logo_url) { this.gettablogourldata(response); @@ -605,8 +602,7 @@ class NewHeader extends Component { headtypesonClickbool, headtypess, mygetHelmetapi2, - goshowqqgtounp, - settingData + goshowqqgtounp } = this.state; /*用户名称 用户头像url*/ let activeIndex = false; @@ -833,25 +829,25 @@ class NewHeader extends Component {
  • 账号管理
  • 我的消息
  • - + 账号安全
  • - + 创客管理
  • From 2c3d917bd46063f08849f4eb377a147b44561661 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 9 Feb 2021 10:44:41 +0800 Subject: [PATCH 160/164] mygetHelmetapi2 --- src/AppConfig.js | 2 +- src/modules/tpm/NewHeader.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/AppConfig.js b/src/AppConfig.js index 1743bdc5..9cd885eb 100644 --- a/src/AppConfig.js +++ b/src/AppConfig.js @@ -58,7 +58,7 @@ export function initAxiosInterceptors(props) { // TODO 避免重复的请求 https://github.com/axios/axios#cancellation var proxy = "http://localhost:3000"; - proxy = "http://39.105.176.215:49999"; + proxy = "http://osredmforge.educoder.net"; const requestMap = {}; window.setfalseInRequestMap = function (keyName) { diff --git a/src/modules/tpm/NewHeader.js b/src/modules/tpm/NewHeader.js index 5df70ca5..5c2ac829 100644 --- a/src/modules/tpm/NewHeader.js +++ b/src/modules/tpm/NewHeader.js @@ -829,25 +829,25 @@ class NewHeader extends Component {
  • 账号管理
  • 我的消息
  • - + 账号安全
  • - + 创客管理
  • From efc2443bb85267dbaddb8ee128575d228d0d2948 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Thu, 25 Feb 2021 16:58:59 +0800 Subject: [PATCH 161/164] =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/Index.js | 45 +++++++++++++++------------------------- src/forge/users/Infos.js | 2 +- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index 9cba30fe..d127775d 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -22,7 +22,6 @@ class Index extends Component { sort: undefined, total: 0, isSpin: true, - project_type: undefined, category_id: undefined, typeList: undefined, @@ -36,8 +35,8 @@ class Index extends Component { } componentDidMount = () => { - const { page,search, sort, project_type, category_id , languageId } = this.state; - this.getListData(page,search, sort, project_type, category_id , languageId); + const { page,search, sort,category_id , languageId } = this.state; + this.getListData(page,search, sort,category_id , languageId); this.getType(); @@ -72,7 +71,7 @@ class Index extends Component { } // 获取列表 - getListData = (page,search, sort, project_type, category_id,languageId) => { + getListData = (page,search, sort,category_id,language_id) => { const { current_user } = this.props; const url = `/projects.json`; axios.get(url, { @@ -82,9 +81,8 @@ class Index extends Component { limit:15, search, sort_by: sort, - project_type, category_id, - language_id:languageId + language_id } }).then((result) => { if (result) { @@ -111,7 +109,7 @@ class Index extends Component { this.setState({ typeList: list.map((item, key) => { return ( -
  • this.changeType(`${item.project_type}`, list)}> +
  • this.changeType(`${item.id}`, list)}>

    {item.name} {item.projects_count} @@ -123,15 +121,15 @@ class Index extends Component { } // 切换类型 - changeType = (type, list) => { + changeType = (id, list) => { this.setState({ isSpin: true, - project_type: type, + languageId: id, search: undefined }) - this.setTypeList(list, type) - const { page,sort, category_id , languageId } = this.state; - this.getListData(page,undefined, sort, type, category_id , languageId); + this.setTypeList(list, id) + const { page,sort, category_id} = this.state; + this.getListData(page,undefined, sort,category_id , id); } // 获取类型 @@ -166,8 +164,8 @@ class Index extends Component { page: 1 }); this.setCategoryList(list, id) - const { sort, project_type , languageId } = this.state; - this.getListData(1,undefined, sort, project_type, id , languageId); + const { sort,languageId } = this.state; + this.getListData(1,undefined, sort,id , languageId); } // 排序 @@ -178,8 +176,8 @@ class Index extends Component { search: undefined, isSpin: true }) - const {project_type, category_id , languageId } = this.state; - this.getListData(1,undefined, e.key, project_type, category_id , languageId); + const {category_id , languageId } = this.state; + this.getListData(1,undefined, e.key,category_id , languageId); } // 搜索 @@ -192,7 +190,7 @@ class Index extends Component { sort: "updated_on" }) const {sort, category_id , languageId } = this.state; - this.getListData(1,value, sort, undefined, category_id , languageId); + this.getListData(1,value, sort,category_id , languageId); } changeSearchValue = (e) => { this.setState({ @@ -204,23 +202,14 @@ class Index extends Component { this.setState({ page }) - const {search, sort, project_type, category_id , languageId } = this.state; - this.getListData(page,search, sort, project_type, category_id , languageId); + const {search, sort,category_id , languageId } = this.state; + this.getListData(page,search, sort, category_id , languageId); } getoDetail=(login,identifier)=>{ this.props.history.push(`/projects/${login}/${identifier}`); } - // 选择语言类别 - changeLanguage=(e)=>{ - this.setState({ - isSpin:true, - languageId:e === 0 ?undefined:e - }) - const { page,sort , project_type , category_id } = this.state; - this.getListData(page, undefined, sort, project_type, category_id ,e === 0 ?undefined:e); - } menu =()=> { return( diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js index f5b6ca9a..6b8ea202 100644 --- a/src/forge/users/Infos.js +++ b/src/forge/users/Infos.js @@ -227,7 +227,7 @@ class Infos extends Component {