-
标签命名建议
+
标签命名建议
通常的做法是在版本名称前加上字母 v 前缀, v1.0 或者 v2.3.4。
@@ -232,13 +232,13 @@ export default Form.create()(
-
语义化版本
+
语义化版本
如果你是第一次发布版本,我们强烈建议你阅读语义化版本。
-
附件大小说明
+
附件大小说明
单个附件不能超过 100M(GVP 项目200M),每个仓库总附件不可超过
1G(推荐项目不可超过 5G;GVP 项目不可超过
diff --git a/src/forge/Main/version/version.js b/src/forge/Main/version/version.js
index 9feec8894..44b20919c 100644
--- a/src/forge/Main/version/version.js
+++ b/src/forge/Main/version/version.js
@@ -2,19 +2,24 @@ import React, { useEffect , useState } from "react";
import { Link } from 'react-router-dom';
import { Spin , Button } from 'antd';
import { getImageUrl } from 'educoder';
+import {truncateCommitId} from '../../common/util';
import Empty from './Empty';
import './version.scss';
import axios from 'axios';
+import Tree from '../img/tree-black.png';
import RenderHtml from '../../../components/render-html';
function version(props) {
+ console.log(props);
const [ data , setData ] = useState(undefined);
const [ releases , setReleases ] = useState(undefined);
const [ isSpin , setIsSpin ] = useState(true);
const { projectsId ,owner } = props.match.params;
- const { isManager , isDeveloper } = props;
+ const { isManager, isDeveloper, location , user } = props;
const type = props.projectDetail && props.projectDetail.type;
-
+ const turnFromNew = location && location.query && location.query.turnFromNew;
+ const current_user_login = user && user.login;
+ owner && console.log(owner);
useEffect(()=>{
getIssueList();
},[])
@@ -24,6 +29,9 @@ function version(props) {
axios.get(url).then((result) => {
if (result) {
setData(result.data);
+ const { releases = [] } = result.data;
+ //默认第一个展开(body参数)
+ releases.length && (releases[0].bodyshow = true);
setReleases(result.data.releases);
setIsSpin(false);
}
@@ -31,7 +39,6 @@ function version(props) {
console.log(error);
})
}
-
// 显示版本描述
function showBody(key,flag){
var lists = releases.concat();
@@ -39,7 +46,67 @@ function version(props) {
lists.splice();
setReleases(lists);
}
-
+ //删除
+ function deleteRelease(releaseId) {
+ console.log(releaseId);
+ if(releaseId){
+ axios.delete(`/${owner}/${projectsId}/releases/${releaseId}.json`).then((result)=>{
+ if(result){
+ getIssueList();
+ }
+ })
+ }
+ }
+ function release(item,key){
+ return (
+
+
+ {item.draft}
+
+
+ {item.tag_name}{item.draft === "预发行" ?"(standalone)":""}
+
+
+
+ {truncateCommitId(item.sha)}
+
+
+
+
+ 发布{item.name}{item.draft === "预发行" ?"(standalone)版本":""}
+
+ {
+ (isManager || isDeveloper) && type !==2 &&
+
+ }
+ {current_user_login == owner && {deleteRelease(item.version_id)}}>}
+
+
+
+ showBody(key,item.bodyshow)}>
+
+ {item.user_name}
+ 发布于{item.created_at}
+
+ {
+ item.bodyshow &&
+
+
+
+ }
+
+
+ {item.tag_name}.TAR.gz
+ {item.tag_name}.ZIP
+
+ {/* 发行版附件下载 */}
+ {item.attachments && item.attachments.map((item)=>{
+ return(
{item.title})
+ })}
+
+
+ )
+ }
function renderList(releases){
if (releases && releases.length > 0) {
return (
@@ -51,47 +118,7 @@ function version(props) {
}
- {
- releases.map((item, key) => {
- return (
-
-
- {item.draft}
-
-
- {item.tag_name}{item.draft === "预发行" ?"(standalone)":""}
-
-
-
-
- 发布{item.name}{item.draft === "预发行" ?"(standalone)版本":""}
- {
- (isManager || isDeveloper) && type !==2 &&
-
- }
-
-
- showBody(key,item.bodyshow)}>
-
- {item.user_name}
- 发布于{item.created_at}
-
- {
- item.bodyshow &&
-
-
-
- }
-
-
- {item.tag_name}.TAR.gz
- {item.tag_name}.ZIP
-
-
-
- )
- })
- }
+ {!turnFromNew ? releases.map((item, key) => release(item,key)) : release(releases[0],0)}
)
diff --git a/src/forge/Main/version/version.scss b/src/forge/Main/version/version.scss
index 6f04e060d..7985f3740 100644
--- a/src/forge/Main/version/version.scss
+++ b/src/forge/Main/version/version.scss
@@ -42,7 +42,7 @@
content: '';
width: 8px;
height: 8px;
- background-color: #5091FF;
+ background-color: #466AFF;
border-radius: 50%;
}
.sendAuthorImg{
@@ -51,6 +51,9 @@
border-radius: 50%;
margin-right: 5px;
}
+ .body-show{
+ padding: 5px 10px 10px 10px;
+ }
}
.versionTag{
display: inline;
@@ -242,6 +245,9 @@
flex:1;
padding-right: 40px;
box-sizing: border-box;
+ .ant-select-auto-complete.ant-select .ant-input:hover,.ant-input:hover {
+ border-color: rgba(153, 153, 153, 0.8);
+ }
}
.versionTips{
width:268px;
@@ -298,7 +304,7 @@
position: relative;
&>p{
position: absolute;
- bottom: 0px;
+ bottom: -5px;
}
}
.itemInline .ant-row{
diff --git a/src/forge/Merge/Files.jsx b/src/forge/Merge/Files.jsx
index 64f09a787..c5bd17688 100644
--- a/src/forge/Merge/Files.jsx
+++ b/src/forge/Merge/Files.jsx
@@ -10,6 +10,7 @@ const {Link} =Anchor;
function Files({data,history,owner,projectsId}){
const [ files , setFiles ] = useState(data && data.files);
const [ copyfileTipTitle, setCopyfileTipTitle] = useState("复制文件路径");
+ const [ isOpen, setIsOpen] = useState(false);
useEffect(()=>{
if(data){
@@ -38,15 +39,14 @@ function Files({data,history,owner,projectsId}){
}
const folderOpen = (
-
-
- {files && files.length>1 && files.map((item, key) => {
+
+
+ {files && files.map((item, key) => {
return (
-
{item.flag && showDown(item.flag, key, item.isBin);}}>
+
+ {item.flag && showDown(item.flag, key, item.isBin);setIsOpen(false);}}>
- {/* {!item.isBin ? showDown(item.flag, key, item.isBin)}> : ""} */}
{item.name}
@@ -56,26 +56,27 @@ function Files({data,history,owner,projectsId}){
{item.deletion >0 && -{item.deletion}}
- }
- />
+
+
)
})}
-
+
)
return(
-
-
-
-
+
+ {setIsOpen(!isOpen)}}>
+
+
共有 {data && data.files_count} 个文件 被更改,包括
{ data && data.total_addition ? {data && data.total_addition} 次插入:"" }
{ data && data.total_addition && data.total_deletion ? " 和 ":""}
{ data && data.total_deletion ? {data && data.total_deletion} 次删除:""}
-
+
+ {isOpen && folderOpen}
{
files && files.length>0 &&
@@ -83,10 +84,11 @@ function Files({data,history,owner,projectsId}){
{
files.map((item,key)=>{
return(
-
+
+
- {!item.isBin ? showDown(item.flag,key,item.isBin)}>:""}
+ {!item.isBin ? showDown(item.flag,key,item.isBin)}>:""}
showDown(item.flag,key,item.isBin)}>{item.name}
.ant-anchor-link-title {
- color: #466AFF;
-}
-.ant-popover-inner-content{
+.folders{
+ position: absolute;
+ z-index: 2;
+ left: 0px;
+ top: 37px;
color: #333333;
width: 75rem;
+ box-shadow: 0px 4px 8px 2px rgba(212, 212, 212, 0.5);
+ border-radius: 4px;
+ border: 1px solid rgba(153, 153, 153, 0.32);
+ .ant-anchor-link-active > .ant-anchor-link-title {
+ color: #466AFF;
+ }
+ .ant-anchor-link {
+ padding: 0px;
+ }
.folderList{
- max-height: 280px;
+ max-height: 275px;
overflow:auto;
.files{
border: 0px;
diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx
index 1b3dc8422..e4f5cf7a6 100644
--- a/src/forge/Team/Setting/TeamSettingCommon.jsx
+++ b/src/forge/Team/Setting/TeamSettingCommon.jsx
@@ -122,11 +122,7 @@ export default Form.create()(
validator:checkname
}
],
-<<<<<<< HEAD
,true
-=======
- ,true
->>>>>>> 465ae57b071299c682f2c8d57d3380aa647c7d23
)}
{helper(
"组织名称:",
diff --git a/src/forge/Upload/Index.js b/src/forge/Upload/Index.js
index 1858e5fd1..713803aa3 100644
--- a/src/forge/Upload/Index.js
+++ b/src/forge/Upload/Index.js
@@ -109,7 +109,7 @@ class Index extends Component {
:
{icon || }
- 拖动文件或点击此处上传
+ 拖动文件或点击此处上传
)
}
diff --git a/src/forge/css/index.scss b/src/forge/css/index.scss
index 9c2c60b4b..dfca6e632 100644
--- a/src/forge/css/index.scss
+++ b/src/forge/css/index.scss
@@ -88,12 +88,18 @@ ul,ol,dl{
display: flex;
flex-wrap: wrap;
align-items: center;
+ &>span, & a:link, a:visited{
+ color: #333;
+ }
+ &>span{
+ cursor: default;
+ }
}
.commitDesc{
flex:1;
line-height:20px;
word-break: break-all;
- width: 48rem;
+ width: 49rem;
overflow: hidden;
white-space: normal;
&:hover{
@@ -327,4 +333,13 @@ button.ant-btn-primary.btnblue{
background-color:rgba(70, 106, 255, 0.85);
border-color:rgba(70, 106, 255, 0.85);
}
+}
+button.btngrey{
+ background-color:#FFFFFF;
+ border-color:#D0D0D0;
+ color: #666666;
+ &:hover,&:focus{
+ border-color:rgba(153, 153, 153, 0.5);
+ color: #666666;
+ }
}
\ No newline at end of file