forked from Gitlink/forgeplus-react
个人建站
This commit is contained in:
parent
16886e2086
commit
147e9edcc2
|
@ -32,7 +32,7 @@ export function initAxiosInterceptors(props) {
|
||||||
// 判断网络是否连接
|
// 判断网络是否连接
|
||||||
initOnlineOfflineListener();
|
initOnlineOfflineListener();
|
||||||
|
|
||||||
var proxy = "http://172.20.32.202:4000";
|
var proxy = "https://testforgeplus.trustie.net/";
|
||||||
|
|
||||||
//响应前的设置
|
//响应前的设置
|
||||||
axios.interceptors.request.use(
|
axios.interceptors.request.use(
|
||||||
|
|
|
@ -308,7 +308,7 @@ function Details(props){
|
||||||
}).then(result=>{
|
}).then(result=>{
|
||||||
if(result && result.data && result.data.project_issues_index){
|
if(result && result.data && result.data.project_issues_index){
|
||||||
window.scrollTo(0,0);
|
window.scrollTo(0,0);
|
||||||
props.showNotification("任务复制成功!");
|
props.showNotification("疑修复制成功!");
|
||||||
props.history.push(`/${owner}/${projectsId}/issues/${result.data.project_issues_index}`);
|
props.history.push(`/${owner}/${projectsId}/issues/${result.data.project_issues_index}`);
|
||||||
}
|
}
|
||||||
}).catch(error=>{})
|
}).catch(error=>{})
|
||||||
|
|
|
@ -6,6 +6,8 @@ import axios from "axios";
|
||||||
import { AlignCenter, AlignTop } from "../../Component/layout";
|
import { AlignCenter, AlignTop } from "../../Component/layout";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { getImageUrl } from "../../../common/UrlTool";
|
import { getImageUrl } from "../../../common/UrlTool";
|
||||||
|
import { ImageLayerOfCommentHOC } from "../../../modules/page/layers/ImageLayerOfCommentHOC";
|
||||||
|
import { withRouter } from "react-router";
|
||||||
const { TextArea } = Input;
|
const { TextArea } = Input;
|
||||||
|
|
||||||
function CreateSite(props) {
|
function CreateSite(props) {
|
||||||
|
@ -18,6 +20,11 @@ function CreateSite(props) {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
document.title = "创建站点";
|
document.title = "创建站点";
|
||||||
|
setFieldsValue({
|
||||||
|
identifier: `http://${current_user.login}.${site_page_deploy_domain || 'gitlink.net'}`,
|
||||||
|
repository_name: `${current_user.login}.${site_page_deploy_domain || 'gitlink.net'}`,
|
||||||
|
name: `${current_user.login}.${site_page_deploy_domain || 'gitlink.net'}`
|
||||||
|
})
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
|
@ -56,7 +63,8 @@ function CreateSite(props) {
|
||||||
...values,
|
...values,
|
||||||
clone_addr: theme && theme.clone_url,
|
clone_addr: theme && theme.clone_url,
|
||||||
theme: theme && theme.name,
|
theme: theme && theme.name,
|
||||||
user_id: current_user.user_id
|
user_id: current_user.user_id,
|
||||||
|
identifier: values.identifier.split("http://")[1]
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
if(res && res.status === 200){
|
if(res && res.status === 200){
|
||||||
message.success("新建成功");
|
message.success("新建成功");
|
||||||
|
@ -94,18 +102,20 @@ function CreateSite(props) {
|
||||||
>
|
>
|
||||||
{getFieldDecorator("identifier", {
|
{getFieldDecorator("identifier", {
|
||||||
rules: [{ required: true, message: "请输入站点标识" },
|
rules: [{ required: true, message: "请输入站点标识" },
|
||||||
{pattern: /^[a-zA-Z0-9]{2,100}$/, message: '长度2-100,只能包含数字和字母'}],
|
// {pattern: /^[a-zA-Z0-9]{2,100}$/, message: '长度2-100,只能包含数字和字母'}
|
||||||
|
],
|
||||||
})(
|
})(
|
||||||
<Input
|
<Input
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setTag(e.target.value);
|
setTag(e.target.value);
|
||||||
}}
|
}}
|
||||||
placeholder="请输入站点标识"
|
placeholder="请输入站点标识"
|
||||||
|
disabled
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<span style={{wordBreak: 'break-all'}}>
|
{/* <span style={{wordBreak: 'break-all'}}>
|
||||||
http://{current_user.login}.{site_page_deploy_domain}/{tag}
|
http://{current_user.login}.{site_page_deploy_domain}/{tag}
|
||||||
</span>
|
</span> */}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="建站工具" label="建站工具">
|
<Form.Item name="建站工具" label="建站工具">
|
||||||
{getFieldDecorator("language_frame", {initialValue: 0})(
|
{getFieldDecorator("language_frame", {initialValue: 0})(
|
||||||
|
@ -124,9 +134,9 @@ function CreateSite(props) {
|
||||||
<AlignTop style={{flexWrap: 'wrap'}}>
|
<AlignTop style={{flexWrap: 'wrap'}}>
|
||||||
{themes && themes.map(item=>{
|
{themes && themes.map(item=>{
|
||||||
const {image, name, clone_url} = item;
|
const {image, name, clone_url} = item;
|
||||||
return <div className="mr20 themeBox" onClick={()=>{setTheme(item)}}>
|
return <div className="mr20 themeBox imageLayerParent" onClick={()=>{setTheme(item)}}>
|
||||||
<i className={`iconfont icon-wancheng ${theme && theme.clone_url === clone_url ? 'active' : ''}`}></i>
|
<i className={`iconfont icon-wancheng ${theme && theme.clone_url === clone_url ? 'active' : ''}`}></i>
|
||||||
<img src={getImageUrl(image)} alt="" width="125px" height="85px"/>
|
<img src={getImageUrl(image)} alt="" width="125px" height="85px" className="imageTarget"/>
|
||||||
<p className="task-hide" style={{maxWidth: '120px'}}>{name}</p>
|
<p className="task-hide" style={{maxWidth: '120px'}}>{name}</p>
|
||||||
</div>
|
</div>
|
||||||
})}
|
})}
|
||||||
|
@ -147,7 +157,7 @@ function CreateSite(props) {
|
||||||
rules: [{ required: true, message: "请输入项目标识" },
|
rules: [{ required: true, message: "请输入项目标识" },
|
||||||
{pattern: /^[a-zA-Z0-9][a-zA-Z0-9_.-]{2,100}[a-zA-Z0-9]$/, message: "长度2-100,只能包含数字、字母、下划线、中划线、英文句号,必须以数字和字母开头,不能以下划线/中划线/英文句号开头和结尾"}],
|
{pattern: /^[a-zA-Z0-9][a-zA-Z0-9_.-]{2,100}[a-zA-Z0-9]$/, message: "长度2-100,只能包含数字、字母、下划线、中划线、英文句号,必须以数字和字母开头,不能以下划线/中划线/英文句号开头和结尾"}],
|
||||||
})(
|
})(
|
||||||
<Input placeholder="请输入项目标识"/>
|
<Input placeholder="请输入项目标识" disabled/>
|
||||||
)}
|
)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</AlignCenter>
|
</AlignCenter>
|
||||||
|
@ -159,7 +169,7 @@ function CreateSite(props) {
|
||||||
rules: [{ required: true, message: "请输入项目名称" },
|
rules: [{ required: true, message: "请输入项目名称" },
|
||||||
{type: 'string', max: 50, min: 1, message: "长度1-50"}],
|
{type: 'string', max: 50, min: 1, message: "长度1-50"}],
|
||||||
})(
|
})(
|
||||||
<Input placeholder="请输入项目名称"/>
|
<Input placeholder="请输入项目名称" disabled/>
|
||||||
)}
|
)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item name="项目简介" label="项目简介">
|
<Form.Item name="项目简介" label="项目简介">
|
||||||
|
@ -185,4 +195,7 @@ function CreateSite(props) {
|
||||||
</Fragment>
|
</Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
export default Form.create()(CreateSite);
|
export default withRouter(ImageLayerOfCommentHOC({
|
||||||
|
imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget",
|
||||||
|
parentSelector: ".newContainer",
|
||||||
|
})(Form.create()(CreateSite)));
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
.mySites_head{
|
.mySites_head{
|
||||||
height: 65px;
|
height: 65px;
|
||||||
line-height: 64px;
|
|
||||||
border-bottom: 1px solid rgba(224, 230, 245, 1);
|
border-bottom: 1px solid rgba(224, 230, 245, 1);
|
||||||
color:#151d40;
|
color:#151d40;
|
||||||
font-size:17px;
|
font-size:17px;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { useState, useEffect, Fragment } from "react";
|
import React, { useState, useEffect, Fragment } from "react";
|
||||||
import { Button, Pagination, Spin } from "antd";
|
import { Button, Pagination, Spin, Tooltip } from "antd";
|
||||||
import './index.scss';
|
import './index.scss';
|
||||||
import '../../users/Material/Index.scss';
|
import '../../users/Material/Index.scss';
|
||||||
import '../bot/exploit/index.scss'
|
import '../bot/exploit/index.scss'
|
||||||
|
@ -38,7 +38,9 @@ function MySiteList(props){
|
||||||
return <Spin spinning={loading}>
|
return <Spin spinning={loading}>
|
||||||
<FlexAJ className="mySites_head">
|
<FlexAJ className="mySites_head">
|
||||||
<span>我的站点</span>
|
<span>我的站点</span>
|
||||||
{id_card_verify && website_permission && <Button type="primary" onClick={()=>{history.push(`/settings/mysite/create`)}}>新建站点</Button>}
|
{id_card_verify && website_permission && total >= 1 ? <Tooltip title="您已存在站点,请勿重复创建">
|
||||||
|
<Button type="primary" disabled>新建站点</Button>
|
||||||
|
</Tooltip> : <Button type="primary" onClick={()=>{history.push(`/settings/mysite/create`)}}>新建站点</Button>}
|
||||||
</FlexAJ>
|
</FlexAJ>
|
||||||
{/* 站点权限被管理员关闭 */}
|
{/* 站点权限被管理员关闭 */}
|
||||||
{id_card_verify && !website_permission && <div className="tipsBox font-15 mt20">您的站点权限被锁定,请联系平台管理员。</div>}
|
{id_card_verify && !website_permission && <div className="tipsBox font-15 mt20">您的站点权限被锁定,请联系平台管理员。</div>}
|
||||||
|
|
|
@ -48,7 +48,7 @@ function ServerIndex(props){
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
{/* 个人建站服务 */}
|
{/* 个人建站服务 */}
|
||||||
{projectDetail && projectDetail.author.type === "User" && <Route path="/:owner/:projectsId/service/pages"
|
{projectDetail && projectDetail.web_site && projectDetail.author.type === "User" && <Route path="/:owner/:projectsId/service/pages"
|
||||||
render={
|
render={
|
||||||
() => (<Pages {...props}/>)
|
() => (<Pages {...props}/>)
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,8 @@ function Main(props){
|
||||||
<Link to={`/${owner}/${projectsId}/service/reposyncer`} className="btnhover">查看详情</Link>
|
<Link to={`/${owner}/${projectsId}/service/reposyncer`} className="btnhover">查看详情</Link>
|
||||||
</span>
|
</span>
|
||||||
</li> */}
|
</li> */}
|
||||||
{projectDetail && projectDetail.author.type === "User" && <li>
|
{/* 是站点仓库则显示,否则隐藏 */}
|
||||||
|
{projectDetail && projectDetail.web_site && projectDetail.author.type === "User" && <li>
|
||||||
<span className="servername">
|
<span className="servername">
|
||||||
<img src={require('./img/logo.png')} alt=""/>
|
<img src={require('./img/logo.png')} alt=""/>
|
||||||
<a onClick={openDetail}>个人建站服务</a>
|
<a onClick={openDetail}>个人建站服务</a>
|
||||||
|
|
|
@ -277,6 +277,8 @@ class Setting extends Component {
|
||||||
let mirror = projectDetail && projectDetail.mirror;
|
let mirror = projectDetail && projectDetail.mirror;
|
||||||
let type = projectDetail && projectDetail.type;
|
let type = projectDetail && projectDetail.type;
|
||||||
const forked_from_project_id = this.props && this.props.projectDetail && this.props.projectDetail.forked_from_project_id;
|
const forked_from_project_id = this.props && this.props.projectDetail && this.props.projectDetail.forked_from_project_id;
|
||||||
|
// 站点仓库不允许修改项目名称和标识
|
||||||
|
const isWebSiteRepo = projectDetail && projectDetail.web_site;
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<DivertModal
|
<DivertModal
|
||||||
|
@ -298,7 +300,7 @@ class Setting extends Component {
|
||||||
message: "请输入项目名称",
|
message: "请输入项目名称",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
})(<Input placeholder="请输入项目名称" />)}
|
})(<Input placeholder="请输入项目名称" disabled={isWebSiteRepo}/>)}
|
||||||
{
|
{
|
||||||
projectDetail && projectDetail.type && projectDetail.type !== 0 ?
|
projectDetail && projectDetail.type && projectDetail.type !== 0 ?
|
||||||
<span className="color-grey-9">该项目导入于 <a className="color-grey-6" target="_blank" href={projectDetail.mirror_url}>{projectDetail.mirror_url}</a></span>
|
<span className="color-grey-9">该项目导入于 <a className="color-grey-6" target="_blank" href={projectDetail.mirror_url}>{projectDetail.mirror_url}</a></span>
|
||||||
|
@ -335,7 +337,7 @@ class Setting extends Component {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
})(
|
})(
|
||||||
<Input placeholder="项目标识请使用与项目相关的英文关键字" maxLength="100" />
|
<Input placeholder="项目标识请使用与项目相关的英文关键字" maxLength="100" disabled={isWebSiteRepo}/>
|
||||||
)}
|
)}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item label="项目简介">
|
<Form.Item label="项目简介">
|
||||||
|
|
Loading…
Reference in New Issue