diff --git a/public/css/iconfont.css b/public/css/iconfont.css index 2aa4e5fe6..39ebe18fe 100644 --- a/public/css/iconfont.css +++ b/public/css/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 2340181 */ - src: url('iconfont.woff2?t=1652927945088') format('woff2'), - url('iconfont.woff?t=1652927945088') format('woff'), - url('iconfont.ttf?t=1652927945088') format('truetype'); + src: url('iconfont.woff2?t=1653550272457') format('woff2'), + url('iconfont.woff?t=1653550272457') format('woff'), + url('iconfont.ttf?t=1653550272457') format('truetype'); } .iconfont { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-tuichuicon:before { + content: "\e936"; +} + .icon-bangzhuzhongxinicon1:before { content: "\e935"; } diff --git a/public/css/iconfont.js b/public/css/iconfont.js index 818422324..0b03f5640 100644 --- a/public/css/iconfont.js +++ b/public/css/iconfont.js @@ -1 +1 @@ -!function(a){var l,c,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,l){l.parentNode.insertBefore(a,l)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}l=function(){var a,l=document.createElement("div");l.innerHTML=z,z=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?p(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),l()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(h=l,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file +!function(a){var l,c,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,l){l.parentNode.insertBefore(a,l)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}l=function(){var a,l=document.createElement("div");l.innerHTML=z,z=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?p(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),l()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(h=l,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index 8292425fe..9dc3ea5e5 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,13 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "29934961", + "name": "退出icon", + "font_class": "tuichuicon", + "unicode": "e936", + "unicode_decimal": 59702 + }, { "icon_id": "29811507", "name": "帮助中心icon", diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index aaf41b746..5ea5e9206 100644 Binary files a/public/css/iconfont.ttf and b/public/css/iconfont.ttf differ diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff index 7ad90ffbf..6b8a4f2ee 100644 Binary files a/public/css/iconfont.woff and b/public/css/iconfont.woff differ diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2 index f45e4e1d4..ce5758a2e 100644 Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index 60b2fc3b8..7838c39d0 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -644,7 +644,8 @@ class Detail extends Component { open_devops={open_devops} platform={platform} urlFlag={urlFlag} - isManager={isManager} + showNotification={this.props.showNotification} + current_user={current_user} /> } diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index 8a0472ce0..c344710b8 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -2,9 +2,12 @@ import React, { useEffect, useState } from 'react'; import { Skeleton , Tooltip} from 'antd'; import { Link } from 'react-router-dom'; import { numFormat } from 'educoder'; +import QuitBox from './quit'; +import axios from 'axios'; -function DetailBanner({ history,list , owner , projectsId , isManager , url , pathname , state , urlFlag , projectDetail , platform ,open_devops }){ +function DetailBanner({ history,list , owner , projectsId ,showNotification , url , pathname , state , urlFlag , projectDetail , platform ,open_devops ,current_user }){ const [ menuName , setMenuName ] = useState(undefined); + const [ visible , setVisible ] = useState(false); useEffect(()=>{ if(list){ // 没有资源库banner但是通过连接进资源库页面时 @@ -19,8 +22,20 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa setMenuName(list); } },[list]); + + function onSuccess(){ + const url = `/${owner}/${projectsId}/quit.json`; + axios.post(url).then(result=>{ + if(result){ + showNotification("已成功退出仓库!"); + history.push(`/${current_user && current_user.login}`); + } + }).catch(error=>{}) + } + return(
+ setVisible(false)} name={projectDetail && projectDetail.name} onSuccess={onSuccess}/> { menuName && projectDetail ?
+ } + > +
+ + 确定退出 {name} 仓库吗? +

请进行确认以防数据的丢失

+
+ + ) +} +export default QuitBox; \ No newline at end of file