From 78517853357b85be20483faef0bf923d788fcf32 Mon Sep 17 00:00:00 2001 From: caishi Date: Wed, 25 Aug 2021 14:25:35 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Group/GroupForm.jsx | 4 ++-- src/forge/users/Team.jsx | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/forge/Team/Group/GroupForm.jsx b/src/forge/Team/Group/GroupForm.jsx index e27161e0..9d54b034 100644 --- a/src/forge/Team/Group/GroupForm.jsx +++ b/src/forge/Team/Group/GroupForm.jsx @@ -239,7 +239,7 @@ export default Form.create()( 合并请求(启用合并请求和代码评审) - + 版本发布(跟踪项目版本和下载) @@ -249,7 +249,7 @@ export default Form.create()( - cancelEdit()}>取消 + cancelEdit()}>取消 diff --git a/src/forge/users/Team.jsx b/src/forge/users/Team.jsx index 9378106e..bf401d2c 100644 --- a/src/forge/users/Team.jsx +++ b/src/forge/users/Team.jsx @@ -5,6 +5,7 @@ import Search from '../Component/Search'; import Item from './Team-item'; import Nodata from '../Nodata'; import axios from 'axios'; +import { Link } from 'react-router-dom'; const limit = 15; function Team(props){ @@ -14,7 +15,7 @@ function Team(props){ const [ sort_direction , setSort_direction ] = useState("asc"); const [ sort_by ,setSort_by ] = useState("created_at"); const [ search ,setSearch ] = useState(undefined); - + const { checkIfLogin , showLoginDialog } = props; const { username } = props.match.params; useEffect(()=>{ if(username){ @@ -47,14 +48,6 @@ function Team(props){ ) - function newFunc() { - const { checkIfLogin , showLoginDialog } = props; - if(checkIfLogin()){ - props.history.push(`/organize/new`); - }else{ - showLoginDialog && showLoginDialog(); - } - } return(
@@ -62,7 +55,10 @@ function Team(props){ setSearch(e.target.value)} placeholder="请输入组织名称关键字进行搜索" onSearch={onSearch}/>

- 新建组织 + { + checkIfLogin() && + 新建组织 + } 排序 From d64eb738f7583d9d299123449b843bda98762ae0 Mon Sep 17 00:00:00 2001 From: caishi Date: Wed, 25 Aug 2021 14:25:35 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=9B=A2=E9=98=9F=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Team/Group/GroupForm.jsx | 4 ++-- src/forge/users/Team.jsx | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/forge/Team/Group/GroupForm.jsx b/src/forge/Team/Group/GroupForm.jsx index e27161e0..9d54b034 100644 --- a/src/forge/Team/Group/GroupForm.jsx +++ b/src/forge/Team/Group/GroupForm.jsx @@ -239,7 +239,7 @@ export default Form.create()( 合并请求(启用合并请求和代码评审) - + 版本发布(跟踪项目版本和下载) @@ -249,7 +249,7 @@ export default Form.create()(

- cancelEdit()}>取消 + cancelEdit()}>取消 diff --git a/src/forge/users/Team.jsx b/src/forge/users/Team.jsx index 9378106e..bf401d2c 100644 --- a/src/forge/users/Team.jsx +++ b/src/forge/users/Team.jsx @@ -5,6 +5,7 @@ import Search from '../Component/Search'; import Item from './Team-item'; import Nodata from '../Nodata'; import axios from 'axios'; +import { Link } from 'react-router-dom'; const limit = 15; function Team(props){ @@ -14,7 +15,7 @@ function Team(props){ const [ sort_direction , setSort_direction ] = useState("asc"); const [ sort_by ,setSort_by ] = useState("created_at"); const [ search ,setSearch ] = useState(undefined); - + const { checkIfLogin , showLoginDialog } = props; const { username } = props.match.params; useEffect(()=>{ if(username){ @@ -47,14 +48,6 @@ function Team(props){ ) - function newFunc() { - const { checkIfLogin , showLoginDialog } = props; - if(checkIfLogin()){ - props.history.push(`/organize/new`); - }else{ - showLoginDialog && showLoginDialog(); - } - } return(
@@ -62,7 +55,10 @@ function Team(props){ setSearch(e.target.value)} placeholder="请输入组织名称关键字进行搜索" onSearch={onSearch}/>

- 新建组织 + { + checkIfLogin() && + 新建组织 + } 排序 From d8ab7c0759dfe3be069a4184d1e588f25970aa58 Mon Sep 17 00:00:00 2001 From: caishi Date: Thu, 26 Aug 2021 17:29:28 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=89=88-=E7=AC=AC=E4=BA=8C=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Component/AddGroup.jsx | 1 + src/forge/Main/CoderDepot.jsx | 11 +++++---- src/forge/Merge/merge.js | 2 +- src/forge/New/Index.js | 12 ++++------ src/forge/Settings/Collaborator.js | 15 ++++++++---- src/forge/Settings/CollaboratorGroup.jsx | 22 ++++++++--------- src/forge/Team/Group/GroupForm.jsx | 25 ++++++++++++++------ src/forge/Team/List.jsx | 2 +- src/forge/Team/Setting/TeamSettingCommon.jsx | 2 +- 9 files changed, 54 insertions(+), 38 deletions(-) diff --git a/src/forge/Component/AddGroup.jsx b/src/forge/Component/AddGroup.jsx index 656175d5..feff6f37 100644 --- a/src/forge/Component/AddGroup.jsx +++ b/src/forge/Component/AddGroup.jsx @@ -55,6 +55,7 @@ function AddGroup({organizeId,getGroupID}){ function addCollaborator(){ getGroupID && getGroupID(id); + setID(undefined); } return( diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index cfe3c6a8..165f06ca 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -147,6 +147,7 @@ function CoderDepot(props){ setReadme(result.data.readme); setEditReadme(false); setHide(true); + console.log("dddd:",result.data.entries); } setTimeout(function(){setIsSpin(false);},500); }).catch(error=>{setIsSpin(false);}) @@ -383,7 +384,7 @@ function CoderDepot(props){ { - dirInfo || fileInfo ? + (dirInfo && dirInfo.length>0) || (fileInfo && fileInfo.length>0) ?

{ lastCommit && @@ -425,7 +426,7 @@ function CoderDepot(props){ }) } { - fileInfo && + fileInfo && fileInfo.length > 0 && :"" + (dirInfo && dirInfo.length === 0) && !fileInfo ? :"" } {/* readme文件显示(显示文件详情时不显示readme文件) */} { dirInfo && (readme && readme.content) ? :"" } @@ -511,11 +512,11 @@ function CoderDepot(props){ } {/* 贡献者 */} { - projectDetail && projectDetail.contributors && + projectDetail && projectDetail.contributors && projectDetail.contributors.length >0 && } {/* 语言 */} - { projectDetail && projectDetail.languages && + { projectDetail && projectDetail.languages && projectDetail.languages.length >0 && diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js index 90e35dcc..5bb128c1 100644 --- a/src/forge/Merge/merge.js +++ b/src/forge/Merge/merge.js @@ -255,7 +255,7 @@ class merge extends Component { />
{ - data && data.user_admin_or_member && + data && data.user_admin_or_developer && this.checkOperation()}> + 新建合并请求 diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 130699b2..18f2aa9a 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -71,6 +71,7 @@ class Index extends Component { getOwner=()=>{ const { OIdentifier } = this.props.match.params; const { user_id } = this.props && this.props.current_user; + const url = `/owners.json`; axios.get(url).then(result=>{ if(result && result.data){ @@ -79,16 +80,13 @@ class Index extends Component { OwnerList: owner, }) if(OIdentifier){ - owner = owner.filter(item=>item.name === OIdentifier); - this.props.form.setFieldsValue({ - user_id:OIdentifier - }) + owner = owner.filter(item=>item.login === OIdentifier); }else if(user_id){ owner = owner.filter(item=>item.id === user_id); - this.props.form.setFieldsValue({ - user_id:owner && owner[0].name - }) } + this.props.form.setFieldsValue({ + user_id:owner && owner[0].name + }) owner && this.setState({ owners_id:owner[0].id, owners_name:owner[0].name diff --git a/src/forge/Settings/Collaborator.js b/src/forge/Settings/Collaborator.js index 0b94eee5..0a50cae1 100644 --- a/src/forge/Settings/Collaborator.js +++ b/src/forge/Settings/Collaborator.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState , useRef } from "react"; import {WhiteBack} from '../Component/layout'; import AddMember from '../Component/AddMember'; import AddGroup from '../Component/AddGroup'; @@ -8,9 +8,11 @@ import Group from './CollaboratorGroup'; function Collaborator(props){ const [ nav , setNav] = useState("1"); const [ newId , setNewId] = useState(undefined); + const [ addOperation , setAddOperation] = useState(true); const [ newGroupId , setNewGroupId] = useState(undefined); const {projectsId ,owner} = props.match.params; + const author = props && props.projectDetail && props.projectDetail.author; function getID(id){ @@ -19,6 +21,7 @@ function Collaborator(props){ function getGroupID(id){ setNewGroupId(id); } + return ( @@ -27,15 +30,17 @@ function Collaborator(props){ author && author.type === "Organization" ? {setNav("1");setNewId(undefined)}}>协作者管理 - {setNav("2");setNewId(undefined)}}>团队管理 + {setNav("2");setNewId(undefined);setNewGroupId(undefined)}}>团队管理 : 协作者管理 } { - nav === "1" ? + nav === "1" && - : + } + { + (nav !== "1" && addOperation) && }
@@ -44,7 +49,7 @@ function Collaborator(props){ nav === "1" ? : - + } diff --git a/src/forge/Settings/CollaboratorGroup.jsx b/src/forge/Settings/CollaboratorGroup.jsx index c6ab6ffb..eb9430f3 100644 --- a/src/forge/Settings/CollaboratorGroup.jsx +++ b/src/forge/Settings/CollaboratorGroup.jsx @@ -10,7 +10,7 @@ const roles = { read: "报告者", }; const limit = 15; -function CollaboratorGroup({ newGroupId, owner, projectsId }) { +function CollaboratorGroup({ newGroupId, owner, projectsId , setAddOperation }) { const [list, setList] = useState(undefined); const [isSpin, setIsSpin] = useState(true); const [page, setPage] = useState(1); @@ -34,6 +34,7 @@ function CollaboratorGroup({ newGroupId, owner, projectsId }) { setList(result.data.teams); setTotal(result.data.total_count); setIsSpin(false); + setAddOperation(result.data.can_add); } }) .catch((error) => {}); @@ -47,16 +48,15 @@ function CollaboratorGroup({ newGroupId, owner, projectsId }) { // 添加团队 function addGroup(id) { const url = `/${owner}/${projectsId}/teams.json`; - axios - .post(url, { - team_id: id, - }) - .then((result) => { - if (result && result.data) { - getData(); - } - }) - .catch((error) => {}); + axios.post(url, { + team_id: id, + }) + .then((result) => { + if (result && result.data) { + getData(); + } + }) + .catch((error) => {}); } // 删除团队 diff --git a/src/forge/Team/Group/GroupForm.jsx b/src/forge/Team/Group/GroupForm.jsx index 9d54b034..3e5407ad 100644 --- a/src/forge/Team/Group/GroupForm.jsx +++ b/src/forge/Team/Group/GroupForm.jsx @@ -34,6 +34,13 @@ export default Form.create()( const { getFieldDecorator, validateFields, setFieldsValue } = form; const { OIdentifier, groupId } = match.params; + useEffect(()=>{ + setFieldsValue({ + authorize:"read", + includes_all_project:0 + }) + },[]) + useEffect(() => { if (GroupDetail) { setOnwers(GroupDetail.authorize === "owner"); @@ -42,6 +49,7 @@ export default Form.create()( setSwtichBox(GroupDetail.units) setFieldsValue({ ...GroupDetail, + includes_all_project:GroupDetail.includes_all_project ? 1 :0 }) setDescNum(GroupDetail.description ? GroupDetail.description.length : 0); } @@ -72,11 +80,13 @@ export default Form.create()( setIsSpin(true) validateFields((error, values) => { if (!error) { - values.unit_types = switch_box + // values.unit_types = switch_box + values.unit_types = ['code','pulls','issues','releases','wiki']; if (groupId) { // 表示编辑,否则为新建 const url = `/organizations/${OIdentifier}/teams/${groupId}.json`; axios.put(url, { - ...values + ...values, + includes_all_project:values.includes_all_project === 1?true:false }).then(result => { if (result && result.data) { showNotification("基本设置更新成功!"); @@ -86,7 +96,8 @@ export default Form.create()( } else { const url = `/organizations/${OIdentifier}/teams.json`; axios.post(url, { - ...values + ...values, + includes_all_project:values.includes_all_project === 1?true:false }).then(result => { if (result && result.data) { showNotification("团队创建成功!"); @@ -204,8 +215,8 @@ export default Form.create()( "includes_all_project", [], - 指定项目(团队成员将只能访问添加到团队的项目。 选择此项 将不会 自动删除已经添加的项目) - 所有项目(团队可以访问所有项目。选择此选项将 添加所有现有的 项目到指定团队) + 指定项目(团队成员将只能访问添加到团队的项目。 选择此项 将不会 自动删除已经添加的项目) + 所有项目(团队可以访问所有项目。选择此选项将 添加所有现有的 项目到指定团队) , false, 0,onwers ? "hide":"" )} {helper( @@ -225,7 +236,7 @@ export default Form.create()( , false, 20,onwers ? "hide":"" )} -
+ {/*

允许访问项目单元:

@@ -247,7 +258,7 @@ export default Form.create()( wiki(编辑此仓库的相关文档说明) -
+
*/} cancelEdit()}>取消 diff --git a/src/forge/Team/List.jsx b/src/forge/Team/List.jsx index b43fb75d..8cf96587 100644 --- a/src/forge/Team/List.jsx +++ b/src/forge/Team/List.jsx @@ -75,7 +75,7 @@ function List(props){

- { organizeDetail && organizeDetail.is_admin ? + { organizeDetail && organizeDetail.can_create_project ? + 新建项目 diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 5be03db0..e52361ad 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -168,7 +168,7 @@ export default Form.create()( '权限:', "repo_admin_change_team_access", [], - 仓库管理员可以添加或移除团队的访问权限,false,true + 项目管理员可以添加或移除团队的访问权限,false,true )} {helper( From e7fd980116f155a51500a6b6742dabb8e7cb1c35 Mon Sep 17 00:00:00 2001 From: caishi Date: Fri, 27 Aug 2021 10:53:00 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=9B=A2=E9=98=9F?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Main/CoderDepot.jsx | 4 ++-- src/forge/Settings/CollaboratorGroup.jsx | 6 +++++- src/forge/Team/RightBox.jsx | 7 ++++++- src/forge/Team/TeamGroupItems.jsx | 7 ++++++- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index 165f06ca..227aac79 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -384,7 +384,7 @@ function CoderDepot(props){ { - (dirInfo && dirInfo.length>0) || (fileInfo && fileInfo.length>0) ? + (dirInfo && dirInfo.length>0) || fileInfo ?

{ lastCommit && @@ -426,7 +426,7 @@ function CoderDepot(props){ }) } { - fileInfo && fileInfo.length > 0 && + fileInfo && { - return {value}; + if(item.is_admin || item.is_member){ + return {value}; + }else{ + return {value}; + } }, }, { diff --git a/src/forge/Team/RightBox.jsx b/src/forge/Team/RightBox.jsx index 0603a454..daa339f2 100644 --- a/src/forge/Team/RightBox.jsx +++ b/src/forge/Team/RightBox.jsx @@ -97,7 +97,12 @@ function RightBox({ OIdentifier , history , admin }) { return(
- {item.name} + { + (item.is_admin || item.is_member) ? + {item.name} + : + {item.name} + } {item.num_users}名成员 {item.num_projects}个仓库 diff --git a/src/forge/Team/TeamGroupItems.jsx b/src/forge/Team/TeamGroupItems.jsx index e96a310d..f3f5b876 100644 --- a/src/forge/Team/TeamGroupItems.jsx +++ b/src/forge/Team/TeamGroupItems.jsx @@ -75,7 +75,12 @@ function TeamGroupItems({organizeDetail,limit, count , history}){ return(

- {item.nickname} + { + (item.is_admin || item.is_member) ? + {item.nickname} + : + {item.nickname} + } { item.is_admin && item.authorize!=="owner" && disMissGroup(item.id)}>解散团队} { item.is_member && } From dee7b23f3e5cd73872d136feaaad95e4f7f6b945 Mon Sep 17 00:00:00 2001 From: caishi Date: Fri, 27 Aug 2021 11:44:41 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=BD=AC=E7=A7=BB=E5=88=B0=E7=BB=84?= =?UTF-8?q?=E7=BB=87-=E6=8F=90=E7=A4=BA=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Divert/DivertModal.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forge/Divert/DivertModal.jsx b/src/forge/Divert/DivertModal.jsx index a6ecdc05..40dd6829 100644 --- a/src/forge/Divert/DivertModal.jsx +++ b/src/forge/Divert/DivertModal.jsx @@ -104,7 +104,7 @@ function DivertModal({form , visible , onSuccess , onCancel,owner,repo}){ :

    -
  • 仓库仅可以转移到您已经加入的组织中,不可以转移到未加入的组织中
  • +
  • 仓库仅可以转移到您具有管理权限的组织中
  • 涉及到仓库改名操作,请提前做好仓库备份并且在转移后对本地仓库的remote进行修改
  • 转移仓库到组织后,你和组织创建者/管理员同时拥有对该仓库的管理操作
From a1b5395b8c47b8027cc4ef02f01902b920027eaa Mon Sep 17 00:00:00 2001 From: caishi Date: Fri, 27 Aug 2021 14:04:27 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=90=88=E5=B9=B6=E8=AF=B7=E6=B1=82-?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=9D=A1=E4=BB=B6=E6=94=B9=E6=88=90user=5Fad?= =?UTF-8?q?min=5For=5Fmember?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Merge/MergeItem.js | 4 ++-- src/forge/Merge/merge.js | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index 32f3f811..f21cc3f5 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -49,7 +49,7 @@ class MergeItem extends Component { }; render() { - const { issues, project_name, project_author_name , user_admin_or_member} = this.props; + const { issues, project_name, project_author_name , user_admin_or_developer} = this.props; const { projectsId , owner } = this.props.match.params; const { current_user } = this.props; const renderList = () => { @@ -183,7 +183,7 @@ class MergeItem extends Component { ) : ( "" )} - {user_admin_or_member && item.pull_request_status === 0 ? ( + {user_admin_or_developer && item.pull_request_status === 0 ? (
{data && data.search_count && data.search_count > 0 ? (
- + user_admin_or_developer={data && data.user_admin_or_developer} + >
):""} {search_count > select_params.limit ? (