From 308a75ac0b44dd84215256fdf9983bc705be0c9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= <2897217417@qq.com> Date: Fri, 2 Dec 2022 11:36:36 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=BA=93=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6=E6=94=BE=E5=BC=80=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Branch/Select.jsx | 2 +- src/forge/New/Index.js | 2 +- src/forge/Upload/read.js | 69 ++++++++++++++----------------------- 3 files changed, 28 insertions(+), 45 deletions(-) diff --git a/src/forge/Branch/Select.jsx b/src/forge/Branch/Select.jsx index a39f9556..5dd2e99b 100644 --- a/src/forge/Branch/Select.jsx +++ b/src/forge/Branch/Select.jsx @@ -57,7 +57,7 @@ export default (({ projectsId , branch , owner , changeBranch , branchList , tag
setVisible(visible ? false : true)}> {/* {nav === 0 ?"分支":"标签"} */} - + {showValue} diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 4e1fb100..616cc052 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -561,7 +561,7 @@ class Index extends Component { className="privatePart" > {getFieldDecorator('is_mirror')( - 该仓库将是一个镜像(设置为镜像后,该项目为只读,不能进行push等相关操作) + 该仓库将是一个镜像(设置为镜像后,该仓库为只读,每24小时定时同步一次) )} } diff --git a/src/forge/Upload/read.js b/src/forge/Upload/read.js index 92137412..6f513647 100644 --- a/src/forge/Upload/read.js +++ b/src/forge/Upload/read.js @@ -1,8 +1,5 @@ import React, { Component } from "react"; import { Upload, Icon } from "antd"; -import { getUploadActionUrl, appendFileSizeToUploadFileAll } from "educoder"; - -import axios from "axios"; const { Dragger } = Upload; class Read extends Component { constructor(props) { @@ -22,57 +19,43 @@ class Read extends Component { }); }; - handleChange = (info) => { - let reader = new FileReader(); - reader.readAsText(info.fileList[0].originFileObj, "UTF-8"); - reader.onload = (e) => { - this.state.fileContent = e.target.result; - this.props.load && this.props.load(this.state); - }; - }; - - beforeUpload = (file) => { - const forbidden_type = [ - "jpg", - "jpeg", - "png", - "ico", - "bmp", - "gif", - "pdf", - "csv", - "xlsx", - "xls", - "tif", - "svg", - "psd", - "cdr", - "webp", - "vnd.openxmlformats-officedocument.spreadsheetml.sheet", - "vnd.ms-powerpoint", - "vnd.openxmlformats-officedocument.presentationml.presentation", - "vnd.ms-excel" - ]; const { fileList } = this.state; const { size } = this.props; const isLt100M = file.size / 1024 / 1024 < size; - const file_type = file.type.split("/").slice(-1)[0]; if (fileList && fileList.length > 0) { this.props.showNotification("文件已存在, 请删除后再上传"); + return false; } else if (!isLt100M) { this.props.showNotification(`文件大小必须小于${size}MB!`); - } else if (file_type && forbidden_type.indexOf(file_type) !== -1) { - this.props.showNotification(`仅支持文本格式,不支持图片,excel等不可以txt读取的文件`); + return false; } else { this.setState({ fileList: [file], fileName: file.name, }) } - return false; }; + // 上传 文件转base64 + customRequest = (option) =>{ + const formData = new FormData(); + formData.append('files[]', option.file); + const reader = new FileReader(); + reader.readAsDataURL(option.file); + const {load} = this.props; + reader.onloadend = function(e){ + if(e.target.result){ + option.onSuccess(); + const base64 = e.target.result.substring(e.target.result.indexOf('base64')+7, e.target.result.length); + load({ + fileName: option.file.name, + fileContent: base64 + }); + } + } + } + render() { //判断是否已经提交,如已提交评论则上一条评论数据清除 const { icon, size } = this.props; @@ -80,10 +63,10 @@ class Read extends Component { const upload = { name: "file", fileList: fileList, - onChange: this.handleChange, + customRequest: this.customRequest, onRemove: this.onAttachmentRemove, - beforeUpload: this.beforeUpload - }; + beforeUpload: this.beforeUpload, + }; return ( @@ -95,9 +78,9 @@ class Read extends Component {

拖动文件或点击此处上传

-

+ {/*

暂仅支持文本格式,不支持图片,excel等不可以txt读取的文件 -

+

*/}

文件名请使用英文且不得超过{size}MB

From ec47699ef82d21609d784a961a85d52c47a4aa83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= <2897217417@qq.com> Date: Wed, 7 Dec 2022 18:32:52 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9-=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5/?= =?UTF-8?q?=E7=BB=84=E7=BB=87/=E9=A1=B9=E7=9B=AE=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=E5=85=B3=E6=B3=A8fork=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Notice/Index.jsx | 8 ++++++++ src/forge/Team/Group/GroupDetails.jsx | 9 ++++++++- src/forge/Team/Group/GroupNew.jsx | 14 +++++++++++++- src/forge/Team/List.jsx | 8 ++++++++ src/forge/Team/Setting/TeamSettingIndex.jsx | 8 ++++++++ src/forge/Team/Sub/Detail.jsx | 2 +- src/forge/Team/Sub/SubDetail.jsx | 7 +++++++ src/forge/Team/TeamGroup.jsx | 11 ++++++++++- src/forge/Team/TeamMember.jsx | 8 ++++++++ src/forge/UsersList/fork_users.js | 13 +++++++++++++ src/forge/UsersList/praise_users.js | 14 ++++++++++++++ src/forge/UsersList/watch_users.js | 15 +++++++++++++++ src/forge/users/GeneralView/Index.jsx | 15 +++++++++++++-- src/forge/users/InfosUser.js | 11 +++++++++++ src/forge/users/Statistics/Index.jsx | 8 ++++++++ src/forge/users/Team.jsx | 10 ++++++++++ src/forge/users/devOpsCI.jsx | 9 +++++++++ 17 files changed, 164 insertions(+), 6 deletions(-) diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx index 73a2561b..7cd05a04 100644 --- a/src/forge/Notice/Index.jsx +++ b/src/forge/Notice/Index.jsx @@ -27,6 +27,14 @@ function Index(props){ const [ flag , setFlag ] = useState(true); const { current_user } = props; + useEffect(()=>{ + if(user){ + // 更改网页标题 + const {username, login} = user; + document.title = `${menu === "undo" ? '接收仓库' : '成员申请'}-${username}/${login}`; + } + },[user, menu]) + useEffect(()=>{ if((username && current_user && (current_user.login !== username))){ props.history.push(`/${username}`); diff --git a/src/forge/Team/Group/GroupDetails.jsx b/src/forge/Team/Group/GroupDetails.jsx index 1122ce72..f03a79c0 100644 --- a/src/forge/Team/Group/GroupDetails.jsx +++ b/src/forge/Team/Group/GroupDetails.jsx @@ -25,7 +25,7 @@ export default ((props) => { const [ members , setMembers ] = useState(undefined); const [ group , setGroup ] = useState(undefined); const { OIdentifier, groupId } = props.match.params; - const { current_user } = props; + const { current_user, organizeDetail } = props; useEffect(()=>{ if(groupId){ @@ -42,6 +42,13 @@ export default ((props) => { }).catch(error=>{}) } + useEffect(()=>{ + if(group && organizeDetail){ + const {nickname} = organizeDetail; + document.title = `${group.nickname}-${nickname}` + } + }, [organizeDetail, group]) + useEffect(()=>{ if(nav === "0"){ getMember(OIdentifier, groupId,page); diff --git a/src/forge/Team/Group/GroupNew.jsx b/src/forge/Team/Group/GroupNew.jsx index ad6ff2a1..7155b827 100644 --- a/src/forge/Team/Group/GroupNew.jsx +++ b/src/forge/Team/Group/GroupNew.jsx @@ -1,7 +1,19 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import GroupFrom from './GroupForm' +import axios from 'axios'; function GropNew(props){ + const OIdentifier = props.match.params.OIdentifier; + // 更改网页标签 + useEffect(()=>{ + OIdentifier && axios.get(`/organizations/${OIdentifier}.json`).then(result=>{ + if(result && result.data){ + const {nickname} = result.data; + document.title = `新建团队-${nickname}` + } + }).catch(error=>{}) + },[OIdentifier]) + return(
diff --git a/src/forge/Team/List.jsx b/src/forge/Team/List.jsx index aa3a48c1..c21e3e5f 100644 --- a/src/forge/Team/List.jsx +++ b/src/forge/Team/List.jsx @@ -23,6 +23,14 @@ function List(props){ const OIdentifier = props.match.params.OIdentifier; const organizeDetail = props.organizeDetail; + useEffect(()=>{ + if(organizeDetail){ + // 更改网页标题 + const {nickname} = organizeDetail; + document.title = `${nickname}` + } + },[organizeDetail]) + useEffect(()=>{ if(OIdentifier){ setIsSpin(true); diff --git a/src/forge/Team/Setting/TeamSettingIndex.jsx b/src/forge/Team/Setting/TeamSettingIndex.jsx index 462a92d1..02f6eda3 100644 --- a/src/forge/Team/Setting/TeamSettingIndex.jsx +++ b/src/forge/Team/Setting/TeamSettingIndex.jsx @@ -27,6 +27,14 @@ const Hooks = Loadable({ export default (( props )=>{ const pathname = props.location.pathname; const OIdentifier = props.match.params.OIdentifier; + const {organizeDetail} = props; + + useEffect(()=>{ + if(organizeDetail){ + const {nickname} = organizeDetail; + document.title = `组织设置-${nickname}` + } + }, [organizeDetail]) function returnActive (pathname){ let a = 0; diff --git a/src/forge/Team/Sub/Detail.jsx b/src/forge/Team/Sub/Detail.jsx index f591c864..4c2b7b20 100644 --- a/src/forge/Team/Sub/Detail.jsx +++ b/src/forge/Team/Sub/Detail.jsx @@ -114,7 +114,7 @@ function Detail(props){ { - return + return }} > {/* 组织成员 */} diff --git a/src/forge/Team/Sub/SubDetail.jsx b/src/forge/Team/Sub/SubDetail.jsx index 6bf79b96..b0b6dbe5 100644 --- a/src/forge/Team/Sub/SubDetail.jsx +++ b/src/forge/Team/Sub/SubDetail.jsx @@ -44,6 +44,13 @@ export default ((props)=>{ } }).catch(error=>{}) } + + useEffect(()=>{ + if(detail){ + const {nickname, organization} = detail; + document.title = `团队设置-${nickname}-${organization.nickname}` + } + }, [detail]) return(
diff --git a/src/forge/Team/TeamGroup.jsx b/src/forge/Team/TeamGroup.jsx index 1920caed..44062090 100644 --- a/src/forge/Team/TeamGroup.jsx +++ b/src/forge/Team/TeamGroup.jsx @@ -1,9 +1,18 @@ -import React from 'react'; +import React, {useEffect} from 'react'; import { Banner } from '../Component/layout'; import GroupItems from './TeamGroupItems'; const limit = 14; function TeamGroup({organizeDetail,history,current_user}){ + + useEffect(()=>{ + if(organizeDetail){ + // 更改网页标题 + const {nickname} = organizeDetail; + document.title = `组织团队-${nickname}` + } + },[organizeDetail]) + return(
组织团队 diff --git a/src/forge/Team/TeamMember.jsx b/src/forge/Team/TeamMember.jsx index 7bffb65d..676e0d7f 100644 --- a/src/forge/Team/TeamMember.jsx +++ b/src/forge/Team/TeamMember.jsx @@ -20,6 +20,14 @@ function TeamMember({organizeDetail,current_user,history,match}){ } },[organizeDetail,page]); + useEffect(()=>{ + if(organizeDetail){ + // 更改网页标题 + const {nickname} = organizeDetail; + document.title = `组织成员-${nickname}` + } + },[organizeDetail]) + function getData(){ setIsSpin(true); const url = `/organizations/${organizeDetail.id}/organization_users.json`; diff --git a/src/forge/UsersList/fork_users.js b/src/forge/UsersList/fork_users.js index a3d9c2a2..4eeeebc2 100644 --- a/src/forge/UsersList/fork_users.js +++ b/src/forge/UsersList/fork_users.js @@ -19,8 +19,21 @@ class ForkUsers extends Component { componentDidMount = () => { this.getUsersList(); + this.updateTitle(); }; + componentDidUpdate=()=>{ + this.updateTitle(); + } + + updateTitle=()=>{ + const {projectDetail} = this.props; + if(projectDetail){ + const {author, name} = projectDetail; + document.title = `Fork用户-${author.name}/${name}` + } + } + getUsersList = (page, limit) => { this.setState({ isSpin: true, diff --git a/src/forge/UsersList/praise_users.js b/src/forge/UsersList/praise_users.js index 31f36421..4972de11 100644 --- a/src/forge/UsersList/praise_users.js +++ b/src/forge/UsersList/praise_users.js @@ -1,7 +1,21 @@ import React, { Component } from "react"; import CommonUsers from "./common_users" class PraiseUsers extends Component { + componentDidMount=()=>{ + this.updateTitle(); + } + componentDidUpdate=()=>{ + this.updateTitle(); + } + updateTitle=()=>{ + const {projectDetail} = this.props; + if(projectDetail){ + const {author, name} = projectDetail; + document.title = `点赞用户-${author.name}/${name}` + } + } + render() { const { owner , projectsId } = this.props.match.params; return ( diff --git a/src/forge/UsersList/watch_users.js b/src/forge/UsersList/watch_users.js index a78efcb0..ebfa8652 100644 --- a/src/forge/UsersList/watch_users.js +++ b/src/forge/UsersList/watch_users.js @@ -1,6 +1,21 @@ import React, { Component } from "react"; import CommonUsers from "./common_users" class WatchUsers extends Component { + componentDidMount=()=>{ + this.updateTitle(); + } + componentDidUpdate=()=>{ + this.updateTitle(); + } + + updateTitle=()=>{ + const {projectDetail} = this.props; + if(projectDetail){ + const {author, name} = projectDetail; + document.title = `关注用户-${author.name}/${name}` + } + } + render() { const { owner , projectsId } = this.props.match.params; return ( diff --git a/src/forge/users/GeneralView/Index.jsx b/src/forge/users/GeneralView/Index.jsx index 04c0768e..167842f6 100644 --- a/src/forge/users/GeneralView/Index.jsx +++ b/src/forge/users/GeneralView/Index.jsx @@ -32,7 +32,18 @@ function Index(props) { const username = props.match.params.username; const current_user = props.current_user; - const user = props.user; + const {menuKey, user} = props; + + useEffect(()=>{ + if(user){ + const {username, login} = user; + if(menuKey === '0'){ + document.title = `${username}(${login})` + }else{ + document.title = `个人简介-${username}/${login}` + } + } + },[menuKey]) useEffect(()=>{ if(user){ @@ -97,7 +108,7 @@ function Index(props) { }).catch(error=>{}) } return( - props && props.menuKey === "0" ? + menuKey && menuKey === "0" ?
{ + this.updateTitle(); this.get_projects(); }; componentDidUpdate = (prevProps) => { + this.updateTitle(); const { username } = this.props.match.params; const prevUser = prevProps.match.params.username; if (prevProps.project_type !== this.props.project_type || (prevUser && username && prevUser !== username)) { @@ -36,6 +38,15 @@ class InfosUser extends Component { } }; + // 更改网页标题 + updateTitle=()=>{ + const {user} = this.props; + if(user){ + const {username, login} = user; + document.title = `参与项目-${username}/${login}` + } + } + get_projects = (isPublic) => { const { username } = this.props.match.params; const { project_type } = this.props; diff --git a/src/forge/users/Statistics/Index.jsx b/src/forge/users/Statistics/Index.jsx index 21d6d0bd..a0688c81 100644 --- a/src/forge/users/Statistics/Index.jsx +++ b/src/forge/users/Statistics/Index.jsx @@ -30,11 +30,19 @@ function Index(props) { const [ cData, setCData ] = useState(undefined); const [ cloudData, setCloudData ] = useState(undefined); + const {user} = props; const disabledDate = current => { return current && current > moment().endOf('day'); }; + useEffect(()=>{ + if(user){ + const {username, login} = user; + document.title = `数据统计-${username}/${login}` + } + }, []) + // 获取角色定位接口数据 useEffect(()=>{ getRoleSta(); diff --git a/src/forge/users/Team.jsx b/src/forge/users/Team.jsx index bb0bf6ee..d73e89e1 100644 --- a/src/forge/users/Team.jsx +++ b/src/forge/users/Team.jsx @@ -17,6 +17,16 @@ function Team(props){ const [ search ,setSearch ] = useState(undefined); const { checkIfLogin , showLoginDialog , current_user } = props; const { username } = props.match.params; + const {user} = props; + + useEffect(()=>{ + if(user){ + // 更改网页标题 + const {username, login} = user; + document.title = `参与组织-${username}/${login}`; + } + },[user]) + useEffect(()=>{ if(username){ getList(search); diff --git a/src/forge/users/devOpsCI.jsx b/src/forge/users/devOpsCI.jsx index 563120a6..567a6da6 100644 --- a/src/forge/users/devOpsCI.jsx +++ b/src/forge/users/devOpsCI.jsx @@ -7,6 +7,15 @@ import CIList from './CIList'; function DevOpsCI(props){ const [ selectKey , setSelectKey ] = useState("dispose"); + const {user} = props; + + useEffect(()=>{ + if(user){ + // 更改网页标题 + const {username, login} = user; + document.title = `DevOps引擎-${username}/${login}`; + } + },[user]) function changeKeys(e){ setSelectKey(e.key); From 37499aa2014b1cfb4accd687e7188ae256335886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= <2897217417@qq.com> Date: Thu, 8 Dec 2022 11:01:52 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=BD=91=E9=A1=B5=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 4 +-- src/forge/About/Index.jsx | 10 +++---- src/forge/AboutUs/AboutUs.jsx | 1 + src/forge/Activity/Activity.js | 14 ++++++++++ src/forge/Component/SiderBar.js | 2 +- src/forge/DevOps/Index.jsx | 9 ++++++- src/forge/Main/CoderDepot.jsx | 26 ++++++++++++++++--- src/forge/Main/CoderRootCommit.js | 11 ++++++++ src/forge/Main/CoderRootFileDetail.js | 15 ++++++++++- src/forge/Main/Detail.js | 1 - src/forge/Main/Diff.jsx | 10 ++++++- src/forge/Main/Index.js | 1 + src/forge/Main/projecthome/Index.jsx | 1 + src/forge/Main/tag/Index.jsx | 8 ++++++ src/forge/Main/tree/Index.jsx | 7 +++++ src/forge/Main/version/New.jsx | 6 +++++ src/forge/Main/version/version.js | 10 ++++++- src/forge/Merge/CreateMerge.js | 11 ++++++++ src/forge/Merge/MessageCount.js | 15 +++++++++++ src/forge/Merge/UpdateMerge.js | 14 ++++++++++ src/forge/Merge/merge.js | 13 ++++++++++ src/forge/New/Index.js | 8 ++++++ src/forge/Newfile/Index.js | 17 ++++++++++++ src/forge/Newfile/codeReview/index.jsx | 12 ++++++--- src/forge/Newfile/m_editor.js | 2 -- src/forge/Newfile/upload_file.js | 17 ++++++++++++ src/forge/Newfile/webIDE.jsx | 8 +++++- src/forge/Order/Detail.js | 14 ++++++++++ src/forge/Order/Milepost.js | 13 ++++++++++ src/forge/Order/MilepostDetail.js | 11 ++++++++ src/forge/Order/UpdateMilepost.js | 15 ++++++++++- src/forge/Order/newMilepost.js | 17 +++++++++++- src/forge/Order/order.js | 14 ++++++++-- src/forge/Order/order_form.js | 17 ++++++++++++ .../SecuritySetting/notice/manager/Index.jsx | 1 + .../SecuritySetting/notice/myNotice/Index.jsx | 5 +++- src/forge/SecuritySetting/sub/New.jsx | 8 ++++-- src/forge/SecuritySetting/sub/SSH.jsx | 4 +++ src/forge/Server/List.jsx | 8 ++++++ src/forge/Server/data.jsx | 4 +++ src/forge/Server/reposyncer/index.jsx | 9 +++++++ src/forge/Settings/Branch.js | 6 +++++ src/forge/Settings/BranchRule.jsx | 9 ++++++- src/forge/Settings/Collaborator.js | 10 ++++++- src/forge/Settings/Setting.js | 13 +++++++++- src/forge/Settings/Webhooks/Index.jsx | 8 ++++++ src/forge/Settings/Webhooks/New.jsx | 9 ++++++- src/forge/Settings/new_tags.js | 11 ++++++++ src/forge/TeachingPractice/Teaching.jsx | 5 +++- src/forge/Team/Group/GroupDetailProject.jsx | 1 + src/forge/Team/New.jsx | 1 + src/forge/Wiki/EditWiki.jsx | 10 +++++++ src/forge/Wiki/Index.jsx | 11 ++++++++ src/forge/Wiki/Preview.jsx | 11 +++++--- src/forge/users/Infos.js | 2 +- src/forge/users/Material/Base.jsx | 4 +++ src/forge/users/Material/Password.jsx | 1 + src/glcc/index.jsx | 4 +++ src/home/Index.jsx | 7 ++++- src/modules/tpm/NewHeader.js | 1 - src/modules/tpm/TPMIndexHOC.js | 2 -- 61 files changed, 476 insertions(+), 43 deletions(-) diff --git a/src/App.js b/src/App.js index 9d774569..28b3f786 100644 --- a/src/App.js +++ b/src/App.js @@ -232,7 +232,7 @@ class App extends Component { this.setState({ mygetHelmetapi: undefined }); - document.title = "Forge"; + // document.title = "GitLink | 确实开源"; var link = document.createElement('link'), oldLink = document.getElementById('dynamic-favicon'); link.id = 'dynamic-favicon'; @@ -246,7 +246,7 @@ class App extends Component { //获取数据的时候 gettablogourldata = (response) => { - document.title = response.data.setting.name; + // document.title = `app${response.data.setting.name}`; var link = document.createElement('link'), oldLink = document.getElementById('dynamic-favicon'); link.id = 'dynamic-favicon'; diff --git a/src/forge/About/Index.jsx b/src/forge/About/Index.jsx index b36b815c..0546278f 100644 --- a/src/forge/About/Index.jsx +++ b/src/forge/About/Index.jsx @@ -16,14 +16,14 @@ function Index(props){ const [ fileList , setFileList ] = useState(undefined); const [ editOpration , setEditOpration ] = useState(false); const { owner , projectsId } = props.match.params; - - const { isManager , isDeveloper , current_user } = props; - + const { isManager , isDeveloper , current_user, projectDetail } = props; + useEffect(()=>{ - if(owner && projectsId){ + if(owner && projectsId && projectDetail){ Init(); + document.title = `主页-${projectDetail.author.name}/${projectDetail.name}`; } - },[owner,projectsId]) + },[owner,projectsId, projectDetail]) useEffect(()=>{ if( (current_user && current_user.login) && (isManager === true || isDeveloper === true)){ diff --git a/src/forge/AboutUs/AboutUs.jsx b/src/forge/AboutUs/AboutUs.jsx index 2113f7c7..7f63044a 100644 --- a/src/forge/AboutUs/AboutUs.jsx +++ b/src/forge/AboutUs/AboutUs.jsx @@ -32,6 +32,7 @@ function AboutUs(){ const [units, setUnits] = useState([]); useEffect(()=>{ + document.title="关于我们"; //添加浏览器滚动监听事件 window.addEventListener('scroll', scrollListener); //请求topics.json接口获取合作单位信息 diff --git a/src/forge/Activity/Activity.js b/src/forge/Activity/Activity.js index 1525cb49..5f04acfc 100644 --- a/src/forge/Activity/Activity.js +++ b/src/forge/Activity/Activity.js @@ -53,6 +53,7 @@ class Activity extends Component{ } } componentDidMount=()=>{ + this.updateDocumentTitle(); const { time,type,status,page } = this.state; this.setState({ isSpin:true @@ -60,6 +61,19 @@ class Activity extends Component{ this.getInfo(time,type,status,page); } + componentDidUpdate(){ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail && document.title.indexOf('动态-') === -1){ + const { author, name} = projectDetail; + document.title = `动态-${author.name}/${name}`; + } + } + getInfo =(time,type,status,page)=>{ const { projectsId , owner } = this.props.match.params; const url = `/${owner}/${projectsId}/activity.json`; diff --git a/src/forge/Component/SiderBar.js b/src/forge/Component/SiderBar.js index 61e6f85e..b3900311 100644 --- a/src/forge/Component/SiderBar.js +++ b/src/forge/Component/SiderBar.js @@ -161,7 +161,7 @@ function SiderBar(props) {
{/* /Gitlink/forgeplus */} {failApply &&
{failApply}
} - +
) diff --git a/src/forge/DevOps/Index.jsx b/src/forge/DevOps/Index.jsx index 8feaf29d..8cc6bc81 100644 --- a/src/forge/DevOps/Index.jsx +++ b/src/forge/DevOps/Index.jsx @@ -33,10 +33,17 @@ const Params = Loadable({ }) export default ((props)=>{ - const {isManager, project} = props; + const {isManager, project, projectDetail} = props; const { projectsId, owner } = props.match.params; const [jianmu_devops, setJianmu_devops] = useState(undefined); + useEffect(()=>{ + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `引擎-${author.name}/${name}`; + } + }, [projectDetail]) + useEffect(()=>{ // 请求simple接口获取jianmu_devops const url = `/${owner}/${projectsId}/simple.json`; diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index aff47e0b..fd6b6661 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -41,7 +41,7 @@ function CoderDepot(props){ const [ fileInfo ,setFileInfo ] = useState(undefined);//文件内容信息 const [ zip_url , setZip_url ] = useState(undefined); const [ tar_url , setTar_url ] = useState(undefined); - const [ readOnly , setReadOnly] = useState(true); + const [ readOnly , setReadOnly] = useState(undefined); const [ isSpin , setIsSpin] = useState(true); const [ visible ,setVisible ] = useState(false); const [ mainFlag ,setMainFlag ] = useState(false); @@ -65,7 +65,6 @@ function CoderDepot(props){ //distribution:判断此用户是否可以创建发行版 const distribution = details && details.type != 2 && (details.permission === "Admin" || details.permission === "Owner" || details.permission === "Manager"); const { bannerList } = props; - useEffect(()=>{ if(bannerList && bannerList.length>0){ let a = bannerList.filter(i=>i.menu_name === "pulls"); @@ -102,6 +101,19 @@ function CoderDepot(props){ } },[details]) + useEffect(()=>{ + // 设置网页标题 + if(details){ + const { author, name, description, default_branch} = details; + if(branchName && branchName !== default_branch){ + // 处于某分支/标签 + document.title = `${author.name}/${name}-${branchName}`; + }else{ + document.title = `${author.name}/${name}${description?': '+description:''}`; + } + } + }, [treeValuePath, details, branchName]) + useEffect(()=>{ if(treeValue){ setTreeValuePath(decodeURIComponent(treeValue).split('/')); @@ -127,6 +139,7 @@ function CoderDepot(props){ },[projectsId,owner,pathname,defaultBranch]) useEffect(()=>{ + setReadOnly(props.history.location.search.indexOf('edit') !== -1); axios.get(`/${owner}/${projectsId}/releases.json`).then((result)=>{ if(result && result.data){ const release = { @@ -289,12 +302,18 @@ function CoderDepot(props){ function onEdit(readOnly){ setReadOnly(readOnly); setEditReadme(false); + const {history} = props; + if(readOnly){ + history.push(history.location.pathname); + }else{ + history.push(`${history.location.pathname}?edit`); + } } function ChangeFile(path, readOnly){ //点击直接跳转页面 加载一次路由 let enBranch = branchName || defaultBranch; let checkvalue = turnbar(enBranch); - props.history.push(`/${owner}/${projectsId}/tree/${checkvalue}/${path}`); + props.history.push(`/${owner}/${projectsId}/tree/${checkvalue}/${path}?edit`); setType("file"); setEditReadme(true); }; @@ -537,6 +556,7 @@ function CoderDepot(props){ currentBranch={branchName || defaultBranch} branch={branchName || defaultBranch} type={projectDetail.type} + treeValuePath={treeValuePath} > } diff --git a/src/forge/Main/CoderRootCommit.js b/src/forge/Main/CoderRootCommit.js index b3beef41..3df0bfef 100644 --- a/src/forge/Main/CoderRootCommit.js +++ b/src/forge/Main/CoderRootCommit.js @@ -31,10 +31,20 @@ class CoderRootCommit extends Component{ } componentDidMount=()=>{ + this.updateDocumentTitle(); this.Init(); this.getBranchs(); } + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail && document.title.indexOf('提交-') === -1){ + const { author, name} = projectDetail; + document.title = `提交-${author.name}/${name}`; + } + } + // 获取分支列表 getBranchs=()=>{ const { projectsId , owner } = this.props.match.params; @@ -46,6 +56,7 @@ class CoderRootCommit extends Component{ } componentDidUpdate=(prevProps)=>{ + this.updateDocumentTitle(); const { location } = this.props; const prevlocation = prevProps && prevProps.location; if (location !== prevlocation) { diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index a50c30f4..d73fdea0 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -27,6 +27,7 @@ class CoderRootFileDetail extends Component { } componentDidMount = () => { + this.updateDocumentTitle(); window.scrollTo(0, 0); const { detail , mdFlag } = this.props; this.setState({ @@ -36,6 +37,7 @@ class CoderRootFileDetail extends Component { }; componentDidUpdate=(prevProps)=>{ + this.updateDocumentTitle(); const { replace_content } = this.props && this.props.detail; const prevcontent = prevProps.detail && prevProps.detail.replace_content; if (replace_content && prevcontent) { @@ -47,6 +49,16 @@ class CoderRootFileDetail extends Component { } } + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail, treeValuePath, location} = this.props; + const readOnly = location && location.search.indexOf('edit') === -1 + if(projectDetail && treeValuePath){ + const { author, name} = projectDetail; + document.title = `${readOnly ? treeValuePath.join('/') : '编辑'+treeValuePath[treeValuePath.length-1]}-${author.name}/${name}`; + } + } + languages_total = () => { const { detail } = this.props; const file_name = detail.path.split("/").pop().split(".").pop(); @@ -200,7 +212,6 @@ class CoderRootFileDetail extends Component { render() { const { - readOnly, detail, current_user, isManager, @@ -210,6 +221,8 @@ class CoderRootFileDetail extends Component { md, type } = this.props; + // 文件只读状态 + const readOnly = this.props.history.location.search.indexOf('edit') === -1 const { language, languages, description } = this.state; let flag = current_user && current_user.login && (isManager || isDeveloper); const Option = Select.Option; diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 02fce636..6a165223 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -403,7 +403,6 @@ class Detail extends Component { forked_count: result.data.forked_count, defaultBranch: result.data.default_branch }); - document.title = `${result.data.author.name}/${result.data.name}${result.data.description?':'+result.data.description:''}`; } } }).catch((error) => { }) diff --git a/src/forge/Main/Diff.jsx b/src/forge/Main/Diff.jsx index 51eca881..bb644fc0 100644 --- a/src/forge/Main/Diff.jsx +++ b/src/forge/Main/Diff.jsx @@ -49,13 +49,21 @@ const Infos = styled.div` `; //提交详情页 export default (props) => { - const {match , history } = props; + const {match , history, projectDetail } = props; const [data, setData] = useState({undefined}); const [commit, setCommit] = useState(undefined); const [parents, setParents] = useState(undefined); const [committer, setCommitter] = useState(undefined); const [isSpin, setIsSpin] = useState(true); const { sha , projectsId, owner } = match.params; + + useEffect(()=>{ + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `${commit && commit.message ? commit.message+'-' : ''}${sha}-${author.name}/${name}`; + } + }, [projectDetail, sha, commit]) + useEffect(() => { if (projectsId && owner && sha) { const url = `/${owner}/${projectsId}/commits/${sha}.json`; diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index 087abecc..c95fe565 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -59,6 +59,7 @@ class Index extends Component { this.getLanguage(); // this.getRecommandOri(); + document.title='开源项目'; } // 获取语言列表 diff --git a/src/forge/Main/projecthome/Index.jsx b/src/forge/Main/projecthome/Index.jsx index 81cd8b0c..227ed445 100644 --- a/src/forge/Main/projecthome/Index.jsx +++ b/src/forge/Main/projecthome/Index.jsx @@ -24,6 +24,7 @@ function Index() { useEffect(()=>{ getCate(); + document.title='开源项目'; },[]) useEffect(()=>{ diff --git a/src/forge/Main/tag/Index.jsx b/src/forge/Main/tag/Index.jsx index a80515ac..4c8beb06 100644 --- a/src/forge/Main/tag/Index.jsx +++ b/src/forge/Main/tag/Index.jsx @@ -18,6 +18,14 @@ function Tags(props) { const [total,setTotal] =useState(0); const [limit,setLimit] =useState(10); const { projectsId, owner } = props.match.params; + const { projectDetail} = props; + + useEffect(()=>{ + if(projectDetail && document.title.indexOf('所有标签-') === -1){ + const { author, name} = projectDetail; + document.title = `所有标签-${author.name}/${name}`; + } + }, [projectDetail]) useEffect(() => { if (projectsId) { diff --git a/src/forge/Main/tree/Index.jsx b/src/forge/Main/tree/Index.jsx index 3f4bc0c0..f1b9b920 100644 --- a/src/forge/Main/tree/Index.jsx +++ b/src/forge/Main/tree/Index.jsx @@ -20,6 +20,13 @@ function Index(props) { getList(); },[]) + useEffect(()=>{ + if(projectDetail && document.title.indexOf('所有分支-') === -1){ + const { author, name} = projectDetail; + document.title = `所有分支-${author.name}/${name}`; + } + }, [projectDetail]) + const menu =(zip_url,tar_url)=> ( diff --git a/src/forge/Main/version/New.jsx b/src/forge/Main/version/New.jsx index 38fb6bf8..e388e407 100644 --- a/src/forge/Main/version/New.jsx +++ b/src/forge/Main/version/New.jsx @@ -42,6 +42,12 @@ export default Form.create()( } },[projectDetail]) + useEffect(()=>{ + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `${versionId ? "编辑" : "创建"}发行版-${author.name}/${name}`; + } + }, [projectDetail, versionId]) useEffect(() => { if (versionId) { diff --git a/src/forge/Main/version/version.js b/src/forge/Main/version/version.js index 2d731249..1dde17da 100644 --- a/src/forge/Main/version/version.js +++ b/src/forge/Main/version/version.js @@ -17,12 +17,20 @@ function version(props) { const [ releases , setReleases ] = useState(undefined); const [ isSpin , setIsSpin ] = useState(true); const { projectsId ,owner } = props.match.params; - const { location } = props; + const { location, projectDetail } = props; const type = props.projectDetail && props.projectDetail.type; const turnFromNew = location && location.query && location.query.turnFromNew; useEffect(()=>{ getIssueList(); },[]) + + useEffect(()=>{ + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `发行版-${author.name}/${name}`; + } + }, [projectDetail]) + // 获取列表数据 function getIssueList(){ const url = `/${owner}/${projectsId}/releases.json`; diff --git a/src/forge/Merge/CreateMerge.js b/src/forge/Merge/CreateMerge.js index 26e2ed52..932ecf06 100644 --- a/src/forge/Merge/CreateMerge.js +++ b/src/forge/Merge/CreateMerge.js @@ -96,6 +96,7 @@ class CreateMerge extends Component { } componentDidMount = () => { + this.updateDocumentTitle(); // 初始化时根据url获取目标仓库、分支,源仓库、分支; // 再获取对应的仓库列表、分支列表 // 再调用比较接口 @@ -105,6 +106,7 @@ class CreateMerge extends Component { }; componentDidUpdate = (preProps) => { + this.updateDocumentTitle(); // url变化触发时(切换源分支、切换目标仓库、切换目标分支;回退) const oldPathname = preProps.location.pathname; const newPathname = this.props.location.pathname; @@ -115,6 +117,15 @@ class CreateMerge extends Component { } }; + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail && document.title.indexOf('新建合并请求-') === -1){ + const { author, name} = projectDetail; + document.title = `新建合并请求-${author.name}/${name}`; + } + } + //获取新建合并请求数据 getMergeInfo = (branchParams,init) => { this.setState({ isSpin: true }); diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 8b4f8f30..3a3db57a 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -43,7 +43,12 @@ class MessageCount extends Component { }; } + componentDidUpdate(){ + this.updateDocumentTitle(); + } + componentDidMount = () => { + this.updateDocumentTitle(); this.setState({ SpinFlag: true, }); @@ -58,6 +63,16 @@ class MessageCount extends Component { } }; + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + const {data} = this.state; + if(projectDetail && data){ + const { author, name} = projectDetail; + document.title = `${data.issue.subject}-合并请求-${author.name}/${name}`; + } + } + bindFootRef = (footRef) => { this.footRef = footRef; } diff --git a/src/forge/Merge/UpdateMerge.js b/src/forge/Merge/UpdateMerge.js index 2c97e3b4..d9167fa2 100644 --- a/src/forge/Merge/UpdateMerge.js +++ b/src/forge/Merge/UpdateMerge.js @@ -21,6 +21,20 @@ class UpdateMerge extends Component { this.getmergelist(); }; + componentDidUpdate(){ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + const {data} = this.state; + if(projectDetail && data){ + const { author, name} = projectDetail; + document.title = `${data.title}-合并请求-${author.name}/${name}`; + } + } + //获取新建分枝数据 getmergelist = () => { this.setState({ isSpin: true }); diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js index 0f6aeea4..e7a6c7de 100644 --- a/src/forge/Merge/merge.js +++ b/src/forge/Merge/merge.js @@ -68,6 +68,19 @@ class merge extends Component { this.getIssueList(); }; + componentDidUpdate(){ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `合并请求-${author.name}/${name}`; + } + } + getSelectList = () => { const { projectsId,owner } = this.props.match.params; diff --git a/src/forge/New/Index.js b/src/forge/New/Index.js index 616cc052..86709b9c 100644 --- a/src/forge/New/Index.js +++ b/src/forge/New/Index.js @@ -54,18 +54,26 @@ class Index extends Component { } } componentDidMount = () => { + this.updateDocumentTitle(); // 获取拥有者列表 this.getOwner(); //判断是否为删除新建项目失败后返回,并执行对应逻辑 this.isDeleteProjectBack(); } componentDidUpdate=(prevPros)=>{ + this.updateDocumentTitle(); if(prevPros && this.props && !this.props.checkIfLogin()){ this.props.history.push("/403") return } } + // 更新网页标题 + updateDocumentTitle(){ + const { projectsType } = this.props.match.params; + document.title = `${projectsType && projectsType === "mirror" ? "导入" : "新建"}项目`; + } + getOwner=()=>{ const { OIdentifier } = this.props.match.params; const { user_id } = this.props && this.props.current_user; diff --git a/src/forge/Newfile/Index.js b/src/forge/Newfile/Index.js index 31ef5865..6e0ea20e 100644 --- a/src/forge/Newfile/Index.js +++ b/src/forge/Newfile/Index.js @@ -15,6 +15,23 @@ class Index extends Component { }; } + componentDidUpdate(){ + this.updateDocumentTitle(); + } + + componentDidMount(){ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail && document.title.indexOf('新建文件-') === -1){ + const { author, name} = projectDetail; + document.title = `新建文件-${author.name}/${name}`; + } + } + // 命名文件 changeFileName = (e) => { this.setState({ diff --git a/src/forge/Newfile/codeReview/index.jsx b/src/forge/Newfile/codeReview/index.jsx index 40349124..d50a4505 100644 --- a/src/forge/Newfile/codeReview/index.jsx +++ b/src/forge/Newfile/codeReview/index.jsx @@ -82,6 +82,15 @@ const CodeReview = (props) => { ); }, []); + useEffect(()=>{ + // 设置网页标题 + if(pr && projectDetail){ + const { title} = pr; + const { author, name} = projectDetail; + document.title = `代码评审-${title}-${author.name}/${name}`; + } + }, [pr, projectDetail]) + useEffect(() => { if (!pluginActivated) { return; @@ -109,7 +118,6 @@ const CodeReview = (props) => { function EditorEmpty() { const system=windowsOrMac(); - console.log(system); return
@@ -246,8 +254,6 @@ const CodeReview = (props) => { zIndex: 1002, }; - console.log('propsIDE:'); - console.log(propsIDE); return (
diff --git a/src/forge/Newfile/m_editor.js b/src/forge/Newfile/m_editor.js index 94fa4b55..77cf86f7 100644 --- a/src/forge/Newfile/m_editor.js +++ b/src/forge/Newfile/m_editor.js @@ -35,8 +35,6 @@ class m_editor extends Component { render() { const { editorValue, changeValue } = this.state; const { readOnly, editorType, currentBranch, descName, checkName, detail, match: { params },filepath,ideTheme } = this.props; - console.log('params') - console.log(params) const editor_options = { lineNumbers: "on", lineWrapping: true, //强制换行 diff --git a/src/forge/Newfile/upload_file.js b/src/forge/Newfile/upload_file.js index 2e2f49b6..85655b86 100644 --- a/src/forge/Newfile/upload_file.js +++ b/src/forge/Newfile/upload_file.js @@ -15,6 +15,23 @@ class UploadFile extends Component { }; } + componentDidUpdate(){ + this.updateDocumentTitle(); + } + + componentDidMount(){ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail && document.title.indexOf('上传文件-') === -1){ + const { author, name} = projectDetail; + document.title = `上传文件-${author.name}/${name}`; + } + } + // 获取上传后的文件id数组 UploadFunc = (fileList) => { this.setState({ diff --git a/src/forge/Newfile/webIDE.jsx b/src/forge/Newfile/webIDE.jsx index ec6361a8..f0e0478c 100644 --- a/src/forge/Newfile/webIDE.jsx +++ b/src/forge/Newfile/webIDE.jsx @@ -74,12 +74,18 @@ const layoutConfig = { const platform = 'gitlink'; const WebIDE = ( props) => { - const { match: { params: { owner, projectsId, branchName } }, } = props; + const { match: { params: { owner, projectsId, branchName } }, mygetHelmetapi } = props; let origin=window.location.origin; if(origin.indexOf('localhost')>-1){ origin='https://testforgeplus.trustie.net'; } + useEffect(()=>{ + if(mygetHelmetapi && mygetHelmetapi.name){ + document.title= mygetHelmetapi.name + } + },[mygetHelmetapi]) + return ({ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + const {data} = this.state; + if(projectDetail && data){ + const { author, name} = projectDetail; + document.title = `${data.subject}-疑修-${author.name}/${name}`; + } + } + getDetail = () => { const { projectsId, orderId, owner } = this.props.match.params; const url = `/${owner}/${projectsId}/issues/${orderId}.json`; diff --git a/src/forge/Order/Milepost.js b/src/forge/Order/Milepost.js index 442852b6..45121ccc 100644 --- a/src/forge/Order/Milepost.js +++ b/src/forge/Order/Milepost.js @@ -26,9 +26,22 @@ class Milepost extends Component { spinings: true } } + componentDidUpdate(){ + this.updateDocumentTitle(); + } componentDidMount = () => { this.getList(1, this.state.status, 'desc'); + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `里程碑-${author.name}/${name}`; + } } getList = (page, status, order_type, order_name) => { diff --git a/src/forge/Order/MilepostDetail.js b/src/forge/Order/MilepostDetail.js index 02ca7505..9505fe53 100644 --- a/src/forge/Order/MilepostDetail.js +++ b/src/forge/Order/MilepostDetail.js @@ -59,6 +59,7 @@ class MilepostDetail extends Component { } componentDidUpdate=(prevProps)=>{ + this.updateDocumentTitle(); const prebannerList = prevProps && prevProps.bannerList; const bannerList = this.props && this.props.bannerList; if(prebannerList !== bannerList){ @@ -71,6 +72,16 @@ class MilepostDetail extends Component { } } + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + const {data} = this.state; + if(projectDetail && data){ + const { author, name} = projectDetail; + document.title = `${data.name}-里程碑-${author.name}/${name}`; + } + } + getSelectList = () => { const { projectsId , owner } = this.props.match.params; const url = `/${owner}/${projectsId}/issues/index_chosen.json`; diff --git a/src/forge/Order/UpdateMilepost.js b/src/forge/Order/UpdateMilepost.js index 2cc5d789..72c288c3 100644 --- a/src/forge/Order/UpdateMilepost.js +++ b/src/forge/Order/UpdateMilepost.js @@ -22,6 +22,20 @@ class UpdateMilepost extends Component { this.getmeil(); } + componentDidUpdate=()=>{ + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + const {data} = this.state; + if(projectDetail && data){ + const { author, name} = projectDetail; + document.title = `${data.name}-里程碑-${author.name}/${name}`; + } + } + onPanelChange = (time, mode) => { this.setState({ value: time @@ -53,7 +67,6 @@ class UpdateMilepost extends Component { name: result.data.name, description: result.data.description }); - } }).catch((error) => { console.log(error); diff --git a/src/forge/Order/newMilepost.js b/src/forge/Order/newMilepost.js index 7b7c184e..a5aeb08c 100644 --- a/src/forge/Order/newMilepost.js +++ b/src/forge/Order/newMilepost.js @@ -16,11 +16,26 @@ class NewMilepost extends Component { isSpin: false } } + + componentDidMount = () => { + this.updateDocumentTitle(); + } + componentDidUpdate=(prevPros)=>{ if(prevPros && this.props && !this.props.checkIfLogin()){ this.props.history.push("/403") return } + this.updateDocumentTitle(); + } + + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `新建里程碑-${author.name}/${name}`; + } } // componentDidMount = () => { // this.check_is_login(); @@ -101,7 +116,7 @@ class NewMilepost extends Component { required: true, message: '请输入标题' }], })( - + )}
diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index f43de37c..33a03c55 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -75,10 +75,12 @@ class order extends Component { }; } - - + componentDidUpdate(){ + this.updateDocumentTitle(); + } componentDidMount = () => { + this.updateDocumentTitle(); const datas = cookie.load('states'); let states = datas === "undefined" ? undefined : datas; if(states){ @@ -94,6 +96,14 @@ class order extends Component { } }; + // 更新网页标题 + updateDocumentTitle(){ + const {projectDetail} = this.props; + if(projectDetail){ + const { author, name} = projectDetail; + document.title = `疑修-${author.name}/${name}`; + } + } getSelectList = () => { this.setState({ diff --git a/src/forge/Order/order_form.js b/src/forge/Order/order_form.js index 3cb3f07f..7eb22d6d 100644 --- a/src/forge/Order/order_form.js +++ b/src/forge/Order/order_form.js @@ -44,11 +44,28 @@ class order_form extends Component { this.props.history.push("/403") return } + this.updateDocumentTitle(); } componentDidMount = () => { this.getSelectList(); }; + // 更新网页标题 + updateDocumentTitle(){ + const {form_type, projectDetail} = this.props; + const {subject} = this.state; + if(projectDetail && form_type){ + const { author, name} = projectDetail; + if(form_type === 'feedback'){ + document.title = `意见反馈` + }else if(form_type === 'new'){ + document.title = `新建疑修-${author.name}/${name}` + }else{ + subject && (document.title = `${subject}-疑修-${author.name}/${name}`); + } + } + } + copyIssueAtWhoInit = (description) =>{ if (description.indexOf("@") !== -1){ this.setState({isSpin: true}); diff --git a/src/forge/SecuritySetting/notice/manager/Index.jsx b/src/forge/SecuritySetting/notice/manager/Index.jsx index 5ba82d60..a2200f95 100644 --- a/src/forge/SecuritySetting/notice/manager/Index.jsx +++ b/src/forge/SecuritySetting/notice/manager/Index.jsx @@ -40,6 +40,7 @@ function NoticeManager(props){ } useEffect(()=>{ + document.title = '通知管理'; axios.get("/template_message_settings.json").then(response => { if (response && response.status === 200) { setSettingTypes(response.data.setting_types); diff --git a/src/forge/SecuritySetting/notice/myNotice/Index.jsx b/src/forge/SecuritySetting/notice/myNotice/Index.jsx index 1a8ddf9d..23c75550 100644 --- a/src/forge/SecuritySetting/notice/myNotice/Index.jsx +++ b/src/forge/SecuritySetting/notice/myNotice/Index.jsx @@ -27,6 +27,10 @@ function MyNotice(props) { const [currentPage, setCurrentPage] = useState(1);//当前页数 const [onlyUnread, setOnlyUnread] = useState(); + useEffect(()=>{ + document.title = "我的通知"; + }, []) + //登录情况下,通过地址访问,直接跳转:/settings/profile //未登录情况下,通过地址访问,直接跳转:/explore useEffect(()=>{ @@ -244,7 +248,6 @@ function MyNotice(props) { })} {false && messageList && messageList.map(item => { - console.log('item',item); // 系统消息 if (noticeType === "0") { // 消息类别 diff --git a/src/forge/SecuritySetting/sub/New.jsx b/src/forge/SecuritySetting/sub/New.jsx index cd2e2090..9a0aaed9 100644 --- a/src/forge/SecuritySetting/sub/New.jsx +++ b/src/forge/SecuritySetting/sub/New.jsx @@ -1,4 +1,4 @@ -import React , { forwardRef, useState } from 'react'; +import React , { forwardRef, useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; import { Button, Form , Input } from 'antd'; import Axios from 'axios'; @@ -8,6 +8,10 @@ function New({ form , showNotification , history }) { const { getFieldDecorator, validateFields , setFieldsValue } = form; const [ msg , setMsg ] = useState(undefined); + useEffect(()=>{ + document.title = '添加SSH密钥' + }, []) + function submit() { validateFields((error,values)=>{ if(!error){ @@ -51,7 +55,7 @@ function New({ form , showNotification , history }) {