This commit is contained in:
caishi 2020-08-13 15:44:02 +08:00
parent b5811aa33b
commit aa28f8a99d
30 changed files with 145 additions and 181 deletions

View File

@ -21,13 +21,13 @@ class ActivityItem extends Component {
// 如果是任务
item.trend_type === "Issue" ?
<p className="itemLine">
<Link to={`/projects/${owner}/${projectsId}/orders/${item.trend_id}/detail`} className="color-blue font-16">{item.name}</Link>
<Link to={`/projects/${owner}/${projectsId}/issues/${item.trend_id}/detail`} className="color-blue font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span>
</p >
:
// 如果是合并请求
<p className="itemLine">
<Link to={`/projects/${owner}/${projectsId}/merge/${item.trend_id}/Messagecount`} className="color-blue font-16">{item.name}</Link>
<Link to={`/projects/${owner}/${projectsId}/pulls/${item.trend_id}/Messagecount`} className="color-blue font-16">{item.name}</Link>
<span className="activity_type">{item.trend_type}</span>
</p >
}

View File

@ -40,7 +40,7 @@ export default ((props)=>{
</p>
</div>
<span>
<Link to={`/projects/${owner}/${projectsId}/merge/new`} className="mr20 color-blue mr30">创建合并请求</Link>
<Link to={`/projects/${owner}/${projectsId}/pulls/new`} className="mr20 color-blue mr30">创建合并请求</Link>
<Dropdown overlay={menu(item.zip_url,item.tar_url)} trigger={['click']} placement="bottomRight" className="color-green-file">
<a className="ant-dropdown-link">
<Tooltip title={`下载分支${item.name}`}><Icon type="cloud-download" className="font-18"/></Tooltip>

View File

@ -97,7 +97,7 @@ class CoderRootIndex extends Component{
(props) => (<FileNew {...this.props} {...props} {...this.state} getTopCount={this.getTopCount} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/coders/commit"
<Route path="/projects/:owner/:projectsId/coders/commits"
render={
() => (<CoderRootCommit {...this.props} {...this.state} commit_class="main" getTopCount={this.getTopCount} />)
}
@ -108,19 +108,19 @@ class CoderRootIndex extends Component{
() => (<Diff {...this.props} {...this.state}/>)
}
></Route>
<Route path="/projects/:owner/:projectsId/coders/version/new"
<Route path="/projects/:owner/:projectsId/coders/releases/new"
render={
() => (<CoderRootVersionNew {...this.props} {...this.state} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/coders/version/:versionId/update"
<Route path="/projects/:owner/:projectsId/coders/releases/:versionId/update"
render={
(props) => (<CoderRootVersionUpdate {...this.props} {...this.state} {...props} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/coders/version"
<Route path="/projects/:owner/:projectsId/coders/releases"
render={
() => (<CoderRootVersion {...this.props} {...this.state} />)
}

View File

@ -151,7 +151,7 @@ class Detail extends Component {
}
componentDidUpdate = (prevState) => {
if ((prevState.match.params.projectsId !== this.props.match.params.projectsId)) {
if (prevState && this.props && (prevState.match.params.projectsId !== this.props.match.params.projectsId)) {
this.getProject();
}
}
@ -338,7 +338,7 @@ class Detail extends Component {
<span>forked from </span>
<Link to={`/users/${projectDetail.fork_info.fork_project_user_login}`} className="show-user-link color-grey-ccc">{projectDetail.fork_info.fork_project_user_name}</Link>
<span> / </span>
<Link to={`/projects/${projectDetail.forked_from_project_id}/coders`} className="color-grey-ccc">{projectDetail.fork_info.fork_form_name}</Link>
<Link to={`/projects/${projectDetail.fork_info.fork_project_user_login}/${projectDetail.fork_info.fork_project_identifier}/coders`} className="color-grey-ccc">{projectDetail.fork_info.fork_form_name}</Link>
</React.Fragment> : ""
);
@ -362,7 +362,7 @@ class Detail extends Component {
{
projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ?
<Tooltip placement={'right'} title={text}>
<Link to={`/projects/${projectDetail.forked_from_project_id}/coders`}
<Link to={`/projects/${projectDetail.fork_info.fork_project_user_login}/${projectDetail.fork_info.fork_project_identifier}/coders`}
className="ml10" >
<i className="iconfont icon-fork font-18 fl mt6" style={{ color: "#8D90E3" }}></i>
</Link>
@ -393,7 +393,7 @@ class Detail extends Component {
<img src={watched ? img_focused : img_focus} alt="" width="14px" />
{watched ? '取消关注' : '关注'}
</a>
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${owner}/${projectsId}/watch_users`, state }}>
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${owner}/${projectsId}/watchers`, state }}>
{watchers_count}
</Link>
</span>
@ -402,7 +402,7 @@ class Detail extends Component {
<img src={praised ? img_parised : img_parise} width="13px" alt="" />
{praised ? '取消点赞' : '点赞'}
</a>
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${owner}/${projectsId}/praise_users`, state }}>
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${owner}/${projectsId}/stargazers`, state }}>
{praises_count}
</Link>
</span>
@ -425,16 +425,16 @@ class Detail extends Component {
<img alt="" src={img_1} width="18" />代码库
</Link>
</li>
<li className={(url.indexOf("/orders") > -1 && !(url.indexOf("Milepost") > 0 || url.indexOf("meilpost") > 0 || url.indexOf("tags") > 0)) ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/orders`, state }}>
<li className={(url.indexOf("/issues") > -1 && !(url.indexOf("Milepost") > 0 || url.indexOf("meilpost") > 0 || url.indexOf("tags") > 0)) ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/issues`, state }}>
<img alt="" src={img_2} width="12" />任务
{projectDetail && projectDetail.issues_count ? <span>{projectDetail.issues_count}</span> : ""}
</Link>
</li>
{
projectDetail && parseInt(projectDetail.type) !== 2 &&
<li className={url.indexOf("merge") > -1 ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/merge`, state }}>
<li className={url.indexOf("pulls") > -1 ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/pulls`, state }}>
<img alt="" src={img_3} width="13" />合并请求
{projectDetail && projectDetail.pull_requests_count ? <span>{projectDetail.pull_requests_count}</span> : ""}
</Link>
@ -446,14 +446,14 @@ class Detail extends Component {
{projectDetail && projectDetail.ops_count ? <span>{projectDetail.ops_count}</span> : ""}
</Link>
</li> */}
<li className={(url.indexOf("/Milepost") > -1 || url.indexOf("meilpost") > -1) ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/orders/Milepost`, state }}>
<li className={url.indexOf("/milestones") > -1 ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/milestones`, state }}>
<img alt="" src={img_milepost} width="16" />里程碑
{projectDetail && projectDetail.versions_count ? <span>{projectDetail.versions_count}</span> :""}
</Link>
</li>
<li className={url.indexOf("/trends") > -1 ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/trends`, state }}>
<li className={url.indexOf("/activity") > -1 ? "active" : ""}>
<Link to={{ pathname: `/projects/${owner}/${projectsId}/activity`, state }}>
<img alt="" src={img_6} width="16" />动态
</Link>
</li>
@ -482,7 +482,7 @@ class Detail extends Component {
}
></Route>
{/* 标签列表 */}
<Route path="/projects/:owner/:projectsId/orders/tags"
<Route path="/projects/:owner/:projectsId/issues/tags"
render={
(props) => (<TagList {...this.props} {...props} {...this.state} {...common} />)
}
@ -494,93 +494,93 @@ class Detail extends Component {
}
></Route>
{/* 任务详情 */}
<Route path="/projects/:owner/:projectsId/orders/:orderId/detail"
<Route path="/projects/:owner/:projectsId/issues/:orderId/detail"
render={
(props) => (<OrderDetail {...this.props} {...this.state} {...props} {...common} />)
}
></Route>
{/* 里程碑 */}
<Route path="/projects/:owner/:projectsId/orders/Milepost"
{/*修改里程碑*/}
<Route path="/projects/:owner/:projectsId/milestones/:meilid/edit"
render={
(props) => (<OrderMilepost {...this.props} {...props} {...this.state} {...common} />)
(props) => (<OrderupdateMilepost {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 新建里程碑 */}
<Route path="/projects/:owner/:projectsId/orders/meilpost"
<Route path="/projects/:owner/:projectsId/milestones/new"
render={
(props) => (<OrdernewMilepost {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/*里程碑详情*/}
<Route path="/projects/:owner/:projectsId/orders/:meilid/MilepostDetail"
<Route path="/projects/:owner/:projectsId/milestones/:meilid"
render={
(props) => (<MilepostDetail {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/*修改里程碑*/}
<Route path="/projects/:owner/:projectsId/orders/:meilid/meilpost"
{/* 里程碑 */}
<Route path="/projects/:owner/:projectsId/milestones"
render={
(props) => (<OrderupdateMilepost {...this.props} {...props} {...this.state} {...common} />)
(props) => (<OrderMilepost {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 里程碑页面新建任务 */}
<Route path="/projects/:owner/:projectsId/orders/:milepostId/new"
<Route path="/projects/:owner/:projectsId/issues/:milepostId/new"
render={
(props) => (<OrderNew {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 新建任务 */}
<Route path="/projects/:owner/:projectsId/orders/new"
<Route path="/projects/:owner/:projectsId/issues/new"
render={
(props) => (<OrderNew {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 修改详情 */}
<Route path="/projects/:owner/:projectsId/orders/:orderId/updatedetail"
<Route path="/projects/:owner/:projectsId/issues/:orderId/updatedetail"
render={
(props) => (<OrderupdateDetail {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 复制详情 */}
<Route path="/projects/:owner/:projectsId/orders/:orderId/copyetail"
<Route path="/projects/:owner/:projectsId/issues/:orderId/copyetail"
render={
(props) => (<OrdercopyDetail {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 动态 */}
<Route path="/projects/:owner/:projectsId/trends"
<Route path="/projects/:owner/:projectsId/activity"
render={
(props) => (<TrendsIndex {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
{/* 代码Index */}
<Route path="/projects/:owner/:projectsId/orders"
<Route path="/projects/:owner/:projectsId/issues"
render={
(props) => (<OrderIndex {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/merge/new"
<Route path="/projects/:owner/:projectsId/pulls/new"
render={
(props) => (<CreateMerge {...this.props} {...props} {...this.state} {...common} is_fork={true} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/merge/:mergeId/UpdateMerge"
<Route path="/projects/:owner/:projectsId/pulls/:mergeId/UpdateMerge"
render={
(props) => (<UpdateMerge {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/merge/:mergeId/Messagecount"
<Route path="/projects/:owner/:projectsId/pulls/:mergeId/Messagecount"
render={
(props) => (<MessageCount {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/merge/:mergeId/MergeSubmit"
<Route path="/projects/:owner/:projectsId/pulls/:mergeId/MergeSubmit"
render={
(props) => (<MessageCount {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/merge"
<Route path="/projects/:owner/:projectsId/pulls"
render={
(props) => (<MergeIndexDetail {...this.props} {...props} {...this.state} {...common} />)
}
@ -595,12 +595,12 @@ class Detail extends Component {
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/watch_users"
<Route path="/projects/:owner/:projectsId/watchers"
render={
(props) => (<WatchUsers {...this.props} {...props} {...this.state} {...common} />)
}
></Route>
<Route path="/projects/:owner/:projectsId/praise_users"
<Route path="/projects/:owner/:projectsId/stargazers"
render={
(props) => (<PraiseUsers {...this.props} {...props} {...this.state} {...common} />)
}

View File

@ -8,7 +8,7 @@ class DetailTop extends Component {
const { pathname } = this.props.location;
return (
<p className="branch-wrapper">
<Link to={`/projects/${owner}/${projectsId}/coders/commit`} className={pathname.indexOf("/coders/commit") > 0 ? "active" : ""}>
<Link to={`/projects/${owner}/${projectsId}/coders/commits`} className={pathname.indexOf("/coders/commits") > 0 ? "active" : ""}>
<i className="iconfont icon-tijiaojilu font-20 mr3 font-bd"></i>
<span>{(coderCount && coderCount.commits_count) || 0}</span>
</Link>
@ -20,7 +20,7 @@ class DetailTop extends Component {
<i className="iconfont icon-biaoqian3 font-18 mr3"></i>
<span>{(coderCount && coderCount.tags_count) || 0}</span>
</Link>
<Link to={`/projects/${owner}/${projectsId}/coders/version`} className={pathname.indexOf("/coders/version") > 0 ? "active" : ""}>
<Link to={`/projects/${owner}/${projectsId}/coders/releases`} className={pathname.indexOf("/coders/releases") > 0 ? "active" : ""}>
<i className="iconfont icon-fahangban font-18 mr3"></i>
<span>{(coderCount && coderCount.version_releasesed_count) || 0}</span>
</Link>

View File

@ -32,8 +32,8 @@ class MergeDetail extends Component {
}
getDetail = () => {
const { projectsId, mergeid } = this.props.match.params;
const url = `/projects/${projectsId}/pull_requests/${mergeid}.json`;
const { projectsId, mergeid ,owner } = this.props.match.params;
const url = `/projects/${owner}/${projectsId}/pulls/${mergeid}.json`;
axios.get(url).then((result) => {
if (result) {
this.setState({
@ -107,8 +107,8 @@ class MergeDetail extends Component {
//关闭任务
closedetail = (id) => {
const { projectsId, orderId } = this.props.match.params;
const url = `/projects/${projectsId}/issues/${orderId}/close_issue.json`;
const { projectsId, orderId , owner } = this.props.match.params;
const url = `/${owner}/${projectsId}/issues/${orderId}/close_issue.json`;
axios.post(url, {
project_id: projectsId,
id: orderId,
@ -161,7 +161,7 @@ class MergeDetail extends Component {
})
}
render() {
const { projectsId, mergeid } = this.props.match.params;
const { projectsId, mergeid , owner } = this.props.match.params;
const { data, journalsdata, showFiles } = this.state;
const { getFieldDecorator } = this.props.form;
const url = this.props.history.location.pathname;
@ -228,7 +228,7 @@ class MergeDetail extends Component {
<div>
{
data && data.issue.user_permission ?
<Link to={`/projects/${projectsId}/merge/${mergeid}/updatemerge`} className="color-blue fr">编辑</Link>
<Link to={`/projects/${owner}/${projectsId}/pulls/${mergeid}/updatemerge`} className="color-blue fr">编辑</Link>
: ''
}
</div>
@ -248,8 +248,8 @@ class MergeDetail extends Component {
<div className="detailHeader-wrapper">
<div className="normal f-wrap-between">
<ul className="headerMenu-wrapper">
<li className={url.indexOf("Messagecount") > 0 ? "active" : ""}><Link to={`/projects/${projectsId}/merge/${mergeid}/Messagecount`}>对话内容</Link></li>
<li className={url.indexOf("MergeSubmit") > 0 ? "active" : ""}><Link to={`/projects/${projectsId}/merge/${mergeid}/MergeSubmit`}>代码提交</Link></li>
<li className={url.indexOf("Messagecount") > 0 ? "active" : ""}><Link to={`/projects/${owner}/${projectsId}/pulls/${mergeid}/Messagecount`}>对话内容</Link></li>
<li className={url.indexOf("MergeSubmit") > 0 ? "active" : ""}><Link to={`/projects/${owner}/${projectsId}/pulls/${mergeid}/MergeSubmit`}>代码提交</Link></li>
</ul>
</div>
</div>

View File

@ -53,7 +53,7 @@ class MergeItem extends Component {
<div className="flex-1">
<p className="mb15 df" style={{ alignItems: "center" }}>
<Link
to={`/projects/${owner}/${projectsId}/merge/${item.pull_request_id}/Messagecount`}
to={`/projects/${owner}/${projectsId}/pulls/${item.pull_request_id}/Messagecount`}
className="hide-1 font-15 color-grey-3 fwb lineh-30 mr10"
style={{ maxWidth: "300px" }}
>
@ -158,7 +158,7 @@ class MergeItem extends Component {
{item.journals_count ? (
<Link
className="mr5 color-grey-8"
to={`/projects/${projectsId}/merge/${item.pull_request_id}/Messagecount`}
to={`/projects/${projectsId}/pulls/${item.pull_request_id}/Messagecount`}
>
<i className="iconfont icon-huifu1 font-15 mr5 ver-middle"></i>
{item.journals_count}

View File

@ -83,26 +83,24 @@ class NewMerge extends Component {
this.ischeckmerge();
}
newMergelist = (projectsId) => {
newMergelist = (id) => {
this.setState({isSpin: true})
const { owner } = this.props.match.params;
const { owner , projectsId } = this.props.match.params;
const url = `/${owner}/${projectsId}/pulls/get_branches.json`;
axios
.get(url)
.then((result) => {
if (result) {
this.setState({
merge_branches: result.data
})
this.set_default_merge()
}
this.setState({isSpin: false})
})
.catch((error) => {
this.setState({isSpin: false})
console.log(error);
});
axios.get(url).then((result) => {
if (result) {
this.setState({
merge_branches: result.data
})
this.set_default_merge()
}
this.setState({isSpin: false})
})
.catch((error) => {
this.setState({isSpin: false})
console.log(error);
});
};
selectBrach = (type, value) => {
@ -112,6 +110,8 @@ class NewMerge extends Component {
selectProjectName = (value) => {
const { project_id, projects_names } = this.state;
const { owner } = this.props.match.params;
console.log(value);
let is_fork_id = parseInt(value) !== parseInt(project_id)
this.setState({
@ -123,7 +123,7 @@ class NewMerge extends Component {
merge_user_login: is_fork_id ? projects_names[0].project_user_login : undefined
}
})
this.props.history.push(`/projects/${value}/merge/new`);
// this.props.history.push(`/projects/${owner}/${value}/pulls/new`);
this.newMergelist(value);
};

View File

@ -221,11 +221,11 @@ class merge extends Component {
this.props.showLoginDialog();
return;
} else {
this.props.history.push(`/projects/${owner}/${projectsId}/merge/new`);
this.props.history.push(`/projects/${owner}/${projectsId}/pulls/new`);
}
}
render() {
const { projectsId } = this.props.match.params;
const { projectsId , owner } = this.props.match.params;
const {
issue_chosen,
issues,
@ -423,7 +423,7 @@ class merge extends Component {
</Spin>
</div>
) : (
<NoneData _html="暂时还没有相关数据哦!" projectsId={projectsId} />
<NoneData _html="暂时还没有相关数据哦!" projectsId={projectsId} owner={owner} />
)}
{/* <div className="topWrapper" style={{ borderBottom: "none" }}>
<p className="topWrapper_type_infos">

View File

@ -161,7 +161,7 @@ class MergeForm extends Component {
this.setState({
isSpin: false,
});
this.props.history.push(`/projects/${owner}/${projectsId}/merge`);
this.props.history.push(`/projects/${owner}/${projectsId}/pulls`);
const { getDetail } = this.props;
getDetail && getDetail();
} else {
@ -191,7 +191,7 @@ class MergeForm extends Component {
isSpin: false,
});
this.props.history.push(
`/projects/${owner}/${projectsId}/merge/${mergeId}/Messagecount`
`/projects/${owner}/${projectsId}/pulls/${mergeId}/Messagecount`
);
} else {
this.setState({
@ -284,8 +284,8 @@ class MergeForm extends Component {
className="ml30"
href={
merge_type === "new"
? `/projects/${owner}/${projectsId}/merge`
: `/projects/${owner}/${projectsId}/merge/${mergeId}/detail`
? `/projects/${owner}/${projectsId}/pulls`
: `/projects/${owner}/${projectsId}/pulls/${mergeId}/detail`
}
>
<span className="plr10">取消</span>

View File

@ -2,7 +2,7 @@ import React , { Component } from 'react';
import { Link } from "react-router-dom";
class Nodata extends Component{
render(){
const { _html, projectsId } = this.props;
const { _html, projectsId , owner } = this.props;
return(
<div className="none_panels">
<div>
@ -12,7 +12,7 @@ class Nodata extends Component{
<h3>欢迎使用合并请求</h3>
<div className="color-grey-8">
合并请求可以帮助您与他人协作编写代码在使用之前请先创建一个 <Link className="color-blue" to={`/projects/${projectsId}/merge/new`}>合并请求</Link>
合并请求可以帮助您与他人协作编写代码在使用之前请先创建一个 <Link className="color-blue" to={`/projects/${owner}/${projectsId}/owner/new`}>合并请求</Link>
</div>
</div>
</div>

View File

@ -85,7 +85,7 @@ class Detail extends Component {
})
.then((result) => {
if (result) {
this.props.history.push(`/projects/${projectsId}/orders`);
this.props.history.push(`/projects/${projectsId}/issues`);
}
})
.catch((error) => {
@ -132,7 +132,7 @@ class Detail extends Component {
.then((result) => {
if (result) {
this.props.history.push(
`/projects/${owner}/${projectsId}/orders/${result.data.issue_id}/copyetail`
`/projects/${owner}/${projectsId}/issues/${result.data.issue_id}/copyetail`
);
}
})
@ -269,7 +269,7 @@ class Detail extends Component {
</Popconfirm>
<Link
to={`/projects/${owner}/${projectsId}/orders/${orderId}/updatedetail`}
to={`/projects/${owner}/${projectsId}/issues/${orderId}/updatedetail`}
className="color-blue fr"
>
编辑

View File

@ -184,7 +184,7 @@ class Milepost extends Component {
</ul>
{
data && data.user_admin_or_member ?
<Link to={`/projects/${owner}/${projectsId}/orders/meilpost`} className="topWrapper_btn">新的里程碑</Link>
<Link to={`/projects/${owner}/${projectsId}/milestones/new`} className="topWrapper_btn">新的里程碑</Link>
: ''
}
</div>
@ -201,7 +201,7 @@ class Milepost extends Component {
<div className="milepostwidth">
<div className="grid-item width100">
<i className="iconfont icon-lubiaosignpost3 font-12 mr3"></i>
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/MilepostDetail`} className="font-16">{item.name}</Link>
<Link to={`/projects/${owner}/${projectsId}/milestones/${item.id}`} className="font-16">{item.name}</Link>
</div>
</div>
</div>
@ -225,7 +225,7 @@ class Milepost extends Component {
<div className="milepostleft">
<div className="grid-item mr15 color-grey-9">
<i className="iconfont icon-bianji3 font-14 mr5"></i>
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/meilpost`} className="color-grey-9">编辑</Link>
<Link to={`/projects/${owner}/${projectsId}/milestones/${item.id}/edit`} className="color-grey-9">编辑</Link>
</div>
<div className="grid-item mr15 color-grey-9">
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>

View File

@ -203,8 +203,8 @@ class MilepostDetail extends Component {
<div className="topmilepost">
<p className="font-18">{data && data.name}</p>
<div className="milepostdiv">
<Link to={`/projects/${owner}/${projectsId}/orders/${meilid}/meilpost`} className="topWrapper_btn" style={{ marginRight: 15 }} >编辑里程碑</Link>
<Link to={`/projects/${owner}/${projectsId}/orders/${meilid}/new`} className="topWrapper_btn">创建任务</Link>
<Link to={`/projects/${owner}/${projectsId}/milestones/${meilid}/edit`} className="topWrapper_btn" style={{ marginRight: 15 }} >编辑里程碑</Link>
<Link to={`/projects/${owner}/${projectsId}/issues/${meilid}/new`} className="topWrapper_btn">创建任务</Link>
</div>
</div>
<div className="grid-item mr10">

View File

@ -31,7 +31,7 @@ class OrderItem extends Component {
<div className="milepostwidth">
<div className="grid-item width100">
<i className="iconfont icon-lubiaosignpost3 font-12 mr3"></i>
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/MilepostDetail`} className="font-16">{item.name}</Link>
<Link to={`/projects/${owner}/${projectsId}/milestones/${item.id}`} className="font-16">{item.name}</Link>
</div>
</div>
</div>
@ -66,7 +66,7 @@ class OrderItem extends Component {
<div className="milepostleft">
<div className="grid-item mr15 color-grey-9">
<i className="iconfont icon-bianji3 font-14 mr5"></i>
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/meilpost`} className="color-grey-9">编辑</Link>
<Link to={`/projects/${owner}/${projectsId}/milestones/${item.id}/edit`} className="color-grey-9">编辑</Link>
</div>
<div className="grid-item mr15 color-grey-9">
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>

View File

@ -4,11 +4,11 @@ import './order.css'
class Nav extends Component{
render(){
const { projectsId } = this.props.match.params;
const { projectsId , owner } = this.props.match.params;
return(
<p className="topWrapper_nav">
<NavLink activeClassName="active" className="issue-type-button" to={`/projects/${projectsId}/orders/tags`}>标签</NavLink>
<NavLink activeClassName="active" className="issue-type-button" to={`/projects/${projectsId}/orders/Milepost`}>里程碑</NavLink>
<NavLink activeClassName="active" className="issue-type-button" to={`/projects/${owner}/${projectsId}/issues/tags`}>标签</NavLink>
<NavLink activeClassName="active" className="issue-type-button" to={`/projects/${owner}/${projectsId}/milestones`}>里程碑</NavLink>
</p>
)
}

View File

@ -54,7 +54,7 @@ class OrderItem extends Component {
{current_user && current_user.login && checkbox}
<div className="flex-1">
<p className="mb15 df" style={{alignItems:"center"}}>
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/detail`} target="_blank" title={item.name} className="hide-1 font-16 color-grey-3 lineh-30 mr10" style={{maxWidth:"300px"}}>{item.name}</Link>
<Link to={`/projects/${owner}/${projectsId}/issues/${item.id}/detail`} target="_blank" title={item.name} className="hide-1 font-16 color-grey-3 lineh-30 mr10" style={{maxWidth:"300px"}}>{item.name}</Link>
{TagInfo(item.priority,"mr10")}
</p>
<p className="color-grey-6 font-12">
@ -91,12 +91,12 @@ class OrderItem extends Component {
<li style={{color:`${item.done_ratio === "100%"?"#28BD6C":"#F73030"}`}}>{item.done_ratio || "--"}</li>
<li>
<div className="milepostleft">
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/detail`}><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</Link>
<Link to={`/projects/${owner}/${projectsId}/issues/${item.id}/detail`}><i className="iconfont icon-pinglun1 mr3 font-16"></i>{item.journals_count}</Link>
{
current_user && current_user.login ?
<div style={{ display: this.state.orderid === item.id && this.state.isdisplay ? 'flex' : 'none' }}>
<div className="mr8 ml8 color-grey-9">
<Link to={`/projects/${owner}/${projectsId}/orders/${item.id}/updatedetail`} className="color-grey-9"><i className="iconfont icon-bianji3 font-14 mr5"></i></Link>
<Link to={`/projects/${owner}/${projectsId}/issues/${item.id}/updatedetail`} className="color-grey-9"><i className="iconfont icon-bianji3 font-14 mr5"></i></Link>
</div>
<div className="color-grey-9">
<Popconfirm placement="bottom" title={'您确定要删除吗'} okText="是" cancelText="否" onConfirm={() => this.deletedetail(item.id)}>

View File

@ -79,7 +79,7 @@ class UpdateMilepost extends Component {
}).then(result => {
if (result) {
this.setState({ isSpin: false })
this.props.history.push(`/projects/${owner}/${projectsId}/orders/Milepost`);
this.props.history.push(`/projects/${owner}/${projectsId}/milestones`);
}

View File

@ -66,7 +66,7 @@ class NewMilepost extends Component {
}).then(result => {
if (result) {
this.setState({ isSpin: false })
this.props.history.push(`/projects/${owner}/${projectsId}/orders/Milepost`);
this.props.history.push(`/projects/${owner}/${projectsId}/milestones`);
}
}).catch(error => {

View File

@ -343,7 +343,7 @@ class order extends Component {
const { projectsId , owner } = this.props.match.params;
if (this.props.checkIfLogin()) {
return(
<Link className="topWrapper_btn ml10" target="_blank" to={`/projects/${owner}/${projectsId}/orders/new`}>
<Link className="topWrapper_btn ml10" target="_blank" to={`/projects/${owner}/${projectsId}/issues/new`}>
+&nbsp;创建任务
</Link>
)
@ -415,7 +415,7 @@ class order extends Component {
// 批量修改
updateIssues = () => {
const { checkedValue, select_params } = this.state;
const { projectsId } = this.props.match.params;
const { projectsId , owner } = this.props.match.params;
if (!select_params.update_author_id && !select_params.update_fixed_version_id && !select_params.update_status_id) {
this.resetSelectParams();
@ -424,7 +424,7 @@ class order extends Component {
this.setState({
isSpin: true
})
const url = `/projects/${projectsId}/issues/series_update.json`;
const url = `/${owner}/${projectsId}/issues/series_update.json`;
axios.post(url, {
ids: checkedValue,
assigned_to_id: select_params.update_author_id,

View File

@ -163,7 +163,7 @@ class order_form extends Component {
}).then((result) => {
if (result && result.data.id) {
this.props.showNotification("任务创建成功!");
this.props.history.push(`/projects/${owner}/${projectsId}/orders/${result.data.id}/detail`);
this.props.history.push(`/projects/${owner}/${projectsId}/issues/${result.data.id}/detail`);
this.setState({
description: "",
isSpin: false,
@ -189,7 +189,7 @@ class order_form extends Component {
...values,
}).then((result) => {
if (result) {
this.props.history.push(`/projects/${owner}/${projectsId}/orders/${orderId}/detail`);
this.props.history.push(`/projects/${owner}/${projectsId}/issues/${orderId}/detail`);
this.props.showNotification("任务更新成功!");
}
})
@ -362,7 +362,7 @@ class order_form extends Component {
type="default"
className="ml30"
onClick={()=>
this.props.history.push(form_type === "new" ? `/projects/${owner}/${projectsId || orderId}/orders` : `/projects/${owner}/${projectsId}/orders/${orderId}/detail`)}
this.props.history.push(form_type === "new" ? `/projects/${owner}/${projectsId || orderId}/issues` : `/projects/${owner}/${projectsId}/issues/${orderId}/detail`)}
>
<span className="plr10">取消</span>
</Button>

View File

@ -11,6 +11,7 @@ class CommonUsers extends Component {
user_type: this.props.user_type,
type_title: this.props.type_title,
project_id: this.props.project_id,
owner:this.props.owner,
users: null,
count: 0,
limit: 20,
@ -27,28 +28,25 @@ class CommonUsers extends Component {
this.setState({
isSpin: true,
});
const { user_type, project_id } = this.state;
const url = `/projects/${project_id}/${user_type}.json`;
axios
.get(url, {
params: {
page,
limit,
},
})
.then((result) => {
if (result) {
this.setState({
count: result.data.count,
users: result.data.users,
isSpin: false,
});
}
})
.catch((error) => {
console.log(error);
});
const { user_type, project_id ,owner } = this.state;
const url = `/${owner}/${project_id}/${user_type}.json`;
axios.get(url, {
params: {
page,
limit,
},
}).then((result) => {
if (result) {
this.setState({
count: result.data.count,
users: result.data.users,
isSpin: false,
});
}
})
.catch((error) => {
console.log(error);
});
};
// 翻页

View File

@ -25,9 +25,9 @@ class ForkUsers extends Component {
this.setState({
isSpin: true,
});
const { projectsId } = this.props.match.params;
const { projectsId , owner } = this.props.match.params;
const url = `/projects/${projectsId}/fork_users.json`;
const url = `/${owner}/${projectsId}/members.json`;
axios
.get(url, {
params: {

View File

@ -1,28 +1,12 @@
import React, { Component } from "react";
import CommonUsers from "./common_users"
class PraiseUsers extends Component {
constructor(props) {
super(props);
this.state = {
projectId: null
};
}
componentDidMount = () => {
this.get_projectId();
};
get_projectId = () => {
this.setState({
projectId: this.props.match.params.projectsId
})
};
render() {
const { projectId } = this.state;
const { owner , projectsId } = this.props.match.params;
return (
<div >
{projectId && <CommonUsers user_type="praise_users" type_title="点赞列表" project_id={projectId} current_user={this.props.current_user} />}
{projectsId && <CommonUsers user_type="stargazers" type_title="点赞列表" project_id={projectsId} current_user={this.props.current_user} owner={owner} />}
</div>
);
}

View File

@ -1,28 +1,11 @@
import React, { Component } from "react";
import CommonUsers from "./common_users"
class WatchUsers extends Component {
constructor(props) {
super(props);
this.state = {
projectId: null
};
}
componentDidMount = () => {
this.get_projectId();
};
get_projectId = () => {
this.setState({
projectId: this.props.match.params.projectsId
})
};
render() {
const { projectId } = this.state;
const { owner , projectsId } = this.props.match.params;
return (
<div>
{projectId && <CommonUsers user_type="watch_users" type_title="关注列表" project_id={projectId} current_user={this.props.current_user} />}
{projectsId && <CommonUsers user_type="watchers" type_title="关注列表" project_id={projectsId} current_user={this.props.current_user} owner={owner} />}
</div>
);
}

View File

@ -103,7 +103,7 @@ export default Form.create()(
.then(result => {
if (result) {
showNotification("版本修改成功!");
history.push(`/projects/${owner}/${projectsId}/coders/version`);
history.push(`/projects/${owner}/${projectsId}/coders/releases`);
}
});
} else {
@ -116,7 +116,7 @@ export default Form.create()(
.then(result => {
if (result) {
showNotification("版本发布成功!");
history.push(`/projects/${owner}/${projectsId}/coders/version`);
history.push(`/projects/${owner}/${projectsId}/coders/releases`);
}
});
}
@ -233,7 +233,7 @@ export default Form.create()(
</Button>
<Button
onClick={() =>
history.push(`/projects/${owner}/${projectsId}/coders/version`)
history.push(`/projects/${owner}/${projectsId}/coders/releases`)
}
style={{
backgroundColor: "rgba(187,187,187,1)",

View File

@ -75,7 +75,7 @@ class version extends Component {
<div className="versionInfo_right">
<span className="versionName">
<span className="task-hide">{item.name}</span>
<Link to={`/projects/${owner}/${projectsId}/coders/version/${item.version_id}/update`} className="color-blue ml3 font-12">编辑</Link>
<Link to={`/projects/${owner}/${projectsId}/coders/releases/${item.version_id}/update`} className="color-blue ml3 font-12">编辑</Link>
</span>
<span className="color-grey-3">
<i className={`${item.bodyshow ? "iconfont icon-sanjiaoxing-down color-grey-8 mr3 font-14":"iconfont icon-triangle color-grey-8 mr3 font-14"}`} onClick={()=>this.showBody(key,item.bodyshow)}></i>
@ -112,7 +112,7 @@ class version extends Component {
<span className="font-18 color-grey-3">版本发布</span>
{
data && data.user_permission ?
<Link to={`/projects/${owner}/${projectsId}/coders/version/new`} className="topWrapper_btn_new">+ 发布新版</Link>
<Link to={`/projects/${owner}/${projectsId}/coders/releases/new`} className="topWrapper_btn_new">+ 发布新版</Link>
: ''
}
</div>

View File

@ -167,9 +167,9 @@ class Infos extends Component {
</div>
<div className="width100 inline-block mt20">
<Link
to={`/users/${user && user.login}/watch_users`}
className={`with50 text-center pull-left ${route_type === "watch_users" ? "text-primary" : ""}`}
onClick={() =>this.route_link("watch_users")}
to={`/users/${user && user.login}/watchers`}
className={`with50 text-center pull-left ${route_type === "watchers" ? "text-primary" : ""}`}
onClick={() =>this.route_link("watchers")}
>
<div>{current_user && user && user.login === current_user.login ? "我关注的" : "TA关注的"}</div>
<span>{user && user.watching_count}</span>
@ -252,9 +252,9 @@ class Infos extends Component {
<div>
<Switch {...this.props}>
<Route
path="/users/:username/watch_users"
path="/users/:username/watchers"
render={() => {
return <WatchsUser {...this.props} {...this.state} userType="watch_users" />;
return <WatchsUser {...this.props} {...this.state} userType="watchers" />;
}}
></Route>
<Route

View File

@ -28,8 +28,7 @@ class CommonList extends Component {
this.setState({
isSpin: true,
});
axios
.get(url, {
axios.get(url, {
params: {
page,
limit,
@ -88,7 +87,7 @@ class CommonList extends Component {
<Spin spinning={isSpin}>
<div className="pd20 minH-670">
<div className="grid-item pb20 bbt">
<h3>{userType === "watch_users" ? `${title_type}关注的` : `关注${title_type}`}</h3>
<h3>{userType === "watchers" ? `${title_type}关注的` : `关注${title_type}`}</h3>
<div className="text-right">
<Search
placeholder="输入名称进行搜索"

View File

@ -5,7 +5,7 @@ class WatcherUsers extends Component {
const {user, current_user} = this.props
return (
<div className="minH-650">
{user && user.login && <CommonLists userType="watch_users" login={user.login} current_user={current_user} />}
{user && user.login && <CommonLists userType="watchers" login={user.login} current_user={current_user} />}
</div>
);
}