diff --git a/src/forge/DevOps/About.jsx b/src/forge/DevOps/About.jsx index 64f60aef1..778a0e46a 100644 --- a/src/forge/DevOps/About.jsx +++ b/src/forge/DevOps/About.jsx @@ -1,11 +1,9 @@ import React, { forwardRef, useCallback, useState , useEffect } from "react"; import activate from "../Images/activate.png"; -import { Blueback } from "../Component/layout"; +import { Blueback , AlignCenter } from "../Component/layout"; import styled from "styled-components"; -import { Link } from "react-router-dom"; -import { Form, Input , Spin } from "antd"; +import { Form, Input , Spin , Modal } from "antd"; import axios from "axios"; -import { ceil } from "lodash"; const P = styled.p` { @@ -21,21 +19,19 @@ const P = styled.p` function About(props, ref) { const { form: { getFieldDecorator, validateFields , setFieldsValue } } = props; const [isSpining, setIsSpining] = useState(true); + const [ authorityValBox , setAuthorityValBox ] = useState(false); + const [ authorityVal , setAuthorityVal ] = useState(undefined); + const [ authorityValFlag , setAuthorityValFlag ] = useState(false); //0: 标识未开启devops //1: 标识用户已填写了云服务器相关信息,但并未开启认证 const [step, setStep] = useState(undefined); // step大于1时:为true,不能再修改服务器信息 - - const [ redirectUrl ,setRedirectUrl ] = useState(undefined); - const [ cloudAccount , setCloudAccount] = useState(undefined); - const owner = props.match.params.owner; const projectsId = props.match.params.projectsId; const AuthorLogin = props.author && props.author.login; const CurrentLogin = props.current_user && props.current_user.login; - let current_user = props.current_user; useEffect(()=>{ if(CurrentLogin === AuthorLogin){ @@ -54,8 +50,7 @@ function About(props, ref) { if(result && result.data ){ setIsSpining(false); setStep(result.data.step); - setCloudAccount(result.data.cloud_account); - setRedirectUrl(result.data.cloud_account &&result.data.cloud_account.authenticate_url); + setFieldsValue({...result.data.cloud_account}); } }).catch(error=>{ console.log(error); @@ -77,20 +72,24 @@ function About(props, ref) { function goStep() { validateFields((error, values) => { if (!error) { - setIsSpining(true); - const url = `/${owner}/${projectsId}/cloud_accounts.json`; - axios.post(url, {...values}).then((result) => { - setIsSpining(false); - if (result && result.data.redirect_url) { - props.showNotification("服务器信息配置完成!"); - setRedirectUrl(result.data.redirect_url); - setStep(1); - } - }) - .catch((error) => { - console.log(error); - setIsSpining(false); - }); + if(step > 0){ + setAuthorityValBox(true); + }else{ + setIsSpining(true); + const url = `/${owner}/${projectsId}/cloud_accounts.json`; + axios.post(url, {...values}).then((result) => { + setIsSpining(false); + if (result && result.data.redirect_url) { + props.showNotification("服务器信息配置完成!"); + setStep(1); + setAuthorityValBox(true); + } + }) + .catch((error) => { + console.log(error); + setIsSpining(false); + }); + } } }); } @@ -112,8 +111,35 @@ function About(props, ref) { setIsSpining(false); }) } + // 取消授权-登录密码的输入 + function cancelAuthority(){ + setAuthorityValBox(false); + } + // 确认授权 + function okAuthority(){ + if(!authorityVal){ + setAuthorityValFlag(true); + return; + } + const url = `/users/ci/oauth_grant.json`; + axios.get(url,{ + params:{password:authorityVal} + }).then(result=>{ + if(result){ + setAuthorityValBox(false); + setStep(result.data.step); + } + }).catch(error=>{}); + } return ( + +

请输入您的登录密码,确认授权DevOps应用

+ + 密码: + setAuthorityVal(e.target.value)} style={{width:"220px"}}> + +

定义DevOps工作流,帮助您检测bug、发布代码…

@@ -123,19 +149,20 @@ function About(props, ref) { { AuthorLogin === CurrentLogin ? - { step === 0 ? + { step <=1 ?

请仔细核对您的服务器信息,一旦确认提交将无法修改

{helper( "服务器IP地址:", - "ip_num", + "ip", [{ required: true, message: "请输入服务器IP地址" }], 0} />, true )} @@ -143,26 +170,22 @@ function About(props, ref) { "服务器用户名:", "account", [{ required: true, message: "请输入服务器用户名" }], - , + 0}/>, true )} {helper( "服务器密码:", "secret", [{ required: true, message: "请输入服务器密码" }], - , + 0}/>, true )} 下一步
:""} - {step >= 1 && + {step > 1 &&
- {/* { - step === 1 && current_user && !current_user.ci_certification && -

初始化配置已完成,请前往:
{redirectUrl} 进入认证

- } */} 开始激活
} diff --git a/src/forge/DevOps/ops.scss b/src/forge/DevOps/ops.scss index 6e0c4fa11..15ba0c60f 100644 --- a/src/forge/DevOps/ops.scss +++ b/src/forge/DevOps/ops.scss @@ -124,6 +124,10 @@ } } +.flags{ + border: 1px solid red; + border-radius: 5px; +} // ops详情 .opsDetailPanel{ height: 100vh;