dongchenok.jar 88 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593
  1. <!DOCTYPE html>
  2. <html lang='zh-CN'>
  3. <head>
  4. <title>jar/dongchenok.jar · DODBOY/88 - Gitee.com</title>
  5. <meta content='on' http-equiv='x-dns-prefetch-control'>
  6. <link href='//e.gitee.com' rel='dns-prefetch'>
  7. <link href='//files.gitee.com' rel='dns-prefetch'>
  8. <link href='//toscode.gitee.com' rel='dns-prefetch'>
  9. <link href='https://cn-assets.gitee.com' rel='dns-prefetch'>
  10. <link href='https://portrait.gitee.com' rel='dns-prefetch'>
  11. <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="https://cn-assets.gitee.com/assets/favicon-9007bd527d8a7851c8330e783151df58.ico" />
  12. <link rel="canonical" href="https://gitee.com/dodboy/88" />
  13. <meta content='gitee.com/dodboy/88 git https://gitee.com/dodboy/88.git' name='go-import'>
  14. <meta charset='utf-8'>
  15. <meta content='always' name='referrer'>
  16. <meta content='Gitee' property='og:site_name'>
  17. <meta content='Object' property='og:type'>
  18. <meta content='https://gitee.com/dodboy/88/blob/master/jar/dongchenok.jar' property='og:url'>
  19. <meta content='https://gitee.com/static/images/logo_themecolor.png' itemprop='image' property='og:image'>
  20. <meta content='jar/dongchenok.jar · DODBOY/88 - Gitee.com' itemprop='name' property='og:title'>
  21. <meta content='Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200万的开发者选择 Gitee。' property='og:description'>
  22. <meta content='码云,Gitee,代码托管,Git,Git@OSC,Gitee.com,开源,内源,项目管理,版本控制,开源代码,代码分享,项目协作,开源项目托管,免费代码托管,Git代码托管,Git托管服务' name='Keywords'>
  23. <meta content='Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200万的开发者选择 Gitee。' itemprop='description' name='Description'>
  24. <meta content='pc,mobile' name='applicable-device'>
  25. <meta content="IE=edge" http-equiv="X-UA-Compatible" />
  26. <meta name="csrf-param" content="authenticity_token" />
  27. <meta name="csrf-token" content="e5d2InmN3vdp4Nbb1MXURXfBGGApxtxlvgJhZMNbfyYScLykvCH0tq2qhkZ8ILnUgAd6NZPku79DBBtZJMJVGg==" />
  28. <link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/application-1e5404b3e344301306468c0f1e2768f0.css" />
  29. <script>
  30. //<![CDATA[
  31. window.gon = {};gon.locale="zh-CN";gon.sentry_dsn=null;gon.baidu_register_hm_push=null;gon.sensor={"server_url":"https://haveaniceday.gitee.com:3443/sa?project=production","sdk_url":"https://cn-assets.gitee.com/assets/static/sensors-sdk-2f850fa5b654ad55ac0993fda2f37ba5.js","page_type":"其他"};gon.info={"controller_path":"blob","action_name":"show","current_user":false};gon.tour_env={"current_user":null,"action_name":"show","original_url":"https://gitee.com/dodboy/88/blob/master/jar/dongchenok.jar","controller_path":"blob"};gon.http_clone="https://gitee.com/dodboy/88.git";gon.user_project="dodboy/88";gon.manage_branch="管理分支";gon.manage_tag="管理标签";gon.enterprise_id=0;gon.create_reaction_path="/dodboy/88/reactions";gon.ipipe_base_url="https://go-api.gitee.com";gon.artifact_base_url="https://go-repo.gitee.com";gon.gitee_go_remote_url="https://go.gitee.com/assets";gon.gitee_go_active=false;gon.current_project_is_mirror=false;gon.show_repo_comment=false;gon.diagram_viewer_path="https://diagram-viewer.giteeusercontent.com";gon.ref="master";
  32. //]]>
  33. </script>
  34. <script src="https://cn-assets.gitee.com/assets/static/sensor-6269b9ad61bbcdaff20078e5dcff62d5.js"></script>
  35. <script src="https://cn-assets.gitee.com/assets/static/sentry-5.1.0-a823fb0be1b61c5d7ca4a89f0536cb0a.js"></script>
  36. <script src="https://cn-assets.gitee.com/assets/application-eeeb0963395105e70ea28ab8daa4a528.js"></script>
  37. <script src="https://cn-assets.gitee.com/assets/lib/jquery.timeago.zh-CN-4a4818e98c1978d2419ab19fabcba740.js"></script>
  38. <link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/assets/projects/application-46b94c31ba11ae8c37eacce2bdb5603e.css" />
  39. <script src="https://cn-assets.gitee.com/assets/projects/app-9e2d277091428536167de1d8fba0e8cb.js"></script>
  40. <script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
  41. <script>
  42. var title = document.title.replace(/( - Gitee| - 码云)$/, '')
  43. imgUrl = '';
  44. document.addEventListener('DOMContentLoaded', function(event) {
  45. var imgUrlEl = document.querySelector('.readme-box .markdown-body > img, .readme-box .markdown-body :not(a) > img');
  46. imgUrl = imgUrlEl && imgUrlEl.getAttribute('src');
  47. if (!imgUrl) {
  48. imgUrlEl = document.querySelector('meta[itemprop=image]');
  49. imgUrl = imgUrlEl && imgUrlEl.getAttribute('content');
  50. imgUrl = imgUrl || "https://gitee.com/static/images/logo_themecolor.png";
  51. }
  52. wx.config({
  53. debug: false,
  54. appId: "wxff219d611a159737",
  55. timestamp: "1716974393",
  56. nonceStr: "2e55298aef356872c2549c30a033e669",
  57. signature: "e1c15c9f16d009803ffdc4edb4100073db3958f6",
  58. jsApiList: [
  59. 'onMenuShareTimeline',
  60. 'onMenuShareAppMessage'
  61. ]
  62. });
  63. wx.ready(function () {
  64. wx.onMenuShareTimeline({
  65. title: title, // 分享标题
  66. link: "https://gitee.com/dodboy/88/blob/master/jar/dongchenok.jar", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  67. imgUrl: imgUrl // 分享图标
  68. });
  69. wx.onMenuShareAppMessage({
  70. title: title, // 分享标题
  71. link: "https://gitee.com/dodboy/88/blob/master/jar/dongchenok.jar", // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  72. desc: document.querySelector('meta[name=Description]').getAttribute('content'),
  73. imgUrl: imgUrl // 分享图标
  74. });
  75. });
  76. wx.error(function(res){
  77. console.error('err', res)
  78. });
  79. })
  80. </script>
  81. <script type='text/x-mathjax-config'>
  82. MathJax.Hub.Config({
  83. tex2jax: {
  84. inlineMath: [['$','$'], ['\\(','\\)']],
  85. displayMath: [["$$","$$"],["\\[","\\]"]],
  86. processEscapes: true,
  87. skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
  88. ignoreClass: "container|files",
  89. processClass: "markdown-body"
  90. }
  91. });
  92. </script>
  93. <script src="https://cn-assets.gitee.com/uploads/resources/MathJax-2.7.2/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
  94. <script>
  95. (function () {
  96. var messages = {
  97. 'zh-CN': {
  98. addResult: '增加 <b>{term}</b>',
  99. count: '已选择 {count}',
  100. maxSelections: '最多 {maxCount} 个选择',
  101. noResults: '未找到结果',
  102. serverError: '连接服务器时发生错误'
  103. },
  104. 'zh-TW': {
  105. addResult: '增加 <b>{term}</b>',
  106. count: '已選擇 {count}',
  107. maxSelections: '最多 {maxCount} 個選擇',
  108. noResults: '未找到結果',
  109. serverError: '連接服務器時發生錯誤'
  110. }
  111. }
  112. if (messages[gon.locale]) {
  113. $.fn.dropdown.settings.message = messages[gon.locale]
  114. }
  115. }());
  116. </script>
  117. <script>
  118. var userAgent = navigator.userAgent;
  119. var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
  120. if(isLessIE11){
  121. var can_access = ""
  122. if (can_access != "true"){
  123. window.location.href = "/incompatible.html";
  124. }
  125. }
  126. document.addEventListener("error", function (ev) {
  127. var elem = ev.target;
  128. if (elem.tagName.toLowerCase() === 'img') {
  129. elem.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAAAAACIM/FCAAACh0lEQVR4Ae3ch5W0OgyG4dt/mQJ2xgQPzJoM1m3AbALrxzrf28FzsoP0HykJEEAAAUQTBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEkKK0789+GK/I2ezfQB522PnS1qc8pGgXvr4tE4aY0XOUWlGImThWgyCk6DleixzE7qwBkg/MGiDPlVVAyp1VQGrPKiACDhFI6VkF5LmzCki+sg7IwDoglnVAil0IMkeG9CyUiwsxLFUVFzJJOQaKCjFCDN9RXMjIX7W6ztZXZDKKCyn8sWJvH+nca7WHDN9lROlAliPH9iRKCPI4cswFJQWxB46toLQgQ9jhn5QYZA9DOkoMUoQde5YapAxDWkoNYsOQR3KQd9CxUnIQF4S49CB9ENKlBxmDEKsFUgMCCCCAAHIrSF61f6153Ajy8nyiPr8L5MXnmm4CyT2fzN4DUvHZ+ntA2tOQBRBAAAEEEEAAAQQQ7ZBaC6TwSiDUaYHQ2yuB0MN+ft+43whyrs4rgVCjBUKTFshLC6TUAjGA3AxSaYFYLZBOC2RUAsk8h5qTg9QcbEoOsoQhQ2qQhsO5xCD5dgB5JQaZ+KBKGtKecvR81Ic0ZDjByKdDx0rSEDZ/djQbH+bkIdvfJFm98BfV8hD2zprfVdlu9PxVeyYAkciREohRAplJCaRSAplJCcQogTjSAdlyHRBvSAekJR0QRzogA+mADJkOiCPSAPEtqYBshlRAXC43hxix2QiOuEZkVERykGyNo9idIZKE0HO7XrG6OiMShlDWjstVzdPgXtUH9v0CEidAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQP4HgjZxTpdEii0AAAAASUVORK5CYII=";
  130. }
  131. }, true);
  132. </script>
  133. </head>
  134. <body class='git-project lang-zh-CN'>
  135. <header class='common-header fixed noborder' id='git-header-nav'>
  136. <div class='ui container'>
  137. <div class='ui menu header-menu header-container'>
  138. <div class='git-nav-expand-bar'>
  139. <i class='iconfont icon-mode-table'></i>
  140. </div>
  141. <div class='gitee-nav__sidebar'>
  142. <div class='gitee-nav__sidebar-container'>
  143. <div class='gitee-nav__sidebar-top'>
  144. <div class='gitee-nav__avatar-box'></div>
  145. <div class='gitee-nav__buttons-box'>
  146. <a class="ui button small fluid orange" href="/login">登录</a>
  147. <a class="ui button small fluid basic is-register" href="/signup">注册</a>
  148. </div>
  149. </div>
  150. <div class='gitee-nav__sidebar-middle'>
  151. <div class='gitee-nav__sidebar-list'>
  152. <ul>
  153. <li class='gitee-nav__sidebar-item'>
  154. <a href="/explore"><i class='iconfont icon-ic-discover'></i>
  155. <span class='gitee-nav__sidebar-name'>开源</span>
  156. </a></li>
  157. <li class='gitee-nav__sidebar-item'>
  158. <a href="/enterprises"><i class='iconfont icon-ic-enterprise'></i>
  159. <span class='gitee-nav__sidebar-name'>企业版</span>
  160. </a></li>
  161. <li class='gitee-nav__sidebar-item'>
  162. <a href="/education"><i class='iconfont icon-ic-education'></i>
  163. <span class='gitee-nav__sidebar-name'>高校版</span>
  164. </a></li>
  165. <li class='gitee-nav__sidebar-item split-line'></li>
  166. <li class='gitee-nav__sidebar-item'>
  167. <a href="/search"><i class='iconfont icon-ic-search'></i>
  168. <span class='gitee-nav__sidebar-name'>搜索</span>
  169. </a></li>
  170. <li class='gitee-nav__sidebar-item'>
  171. <a href="/help"><i class='iconfont icon-help-circle'></i>
  172. <span class='gitee-nav__sidebar-name'>帮助中心</span>
  173. </a></li>
  174. <li class='gitee-nav__sidebar-item'>
  175. <a href="/terms"><i class='iconfont icon-file'></i>
  176. <span class='gitee-nav__sidebar-name'>使用条款</span>
  177. </a></li>
  178. <li class='gitee-nav__sidebar-item'>
  179. <a href="/about_us"><i class='iconfont icon-issuepx'></i>
  180. <span class='gitee-nav__sidebar-name'>关于我们</span>
  181. </a></li>
  182. </ul>
  183. </div>
  184. </div>
  185. <div class='gitee-nav__sidebar-bottom'>
  186. <div class='gitee-nav__sidebar-close-button'>
  187. <i class='fa fa-angle-double-left'></i>
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. <!-- /todo 10周年活动结束后 恢复 -->
  193. <div class='item gitosc-logo'>
  194. <a href="https://gitee.com"><img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline image' height='28' src='/static/images/logo.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='95'>
  195. <img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline black image' height='28' src='/static/images/logo-black.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='95'>
  196. </a></div>
  197. <a title="开源" class="item " href="/explore">开源
  198. </a><a title="企业版" class="item " sa_evt="click_GiteeCommunity_tab_En" href="/enterprises">企业版
  199. </a><a title="高校版" class="item " href="/education">高校版
  200. </a><a title="私有云" class="item" target="_blank" href="https://gitee.cn?utm_source=giteecom">私有云
  201. </a><a title="Gitee AI" class="item mr-3" id="gitee-blog" target="_blank" href="https://ai.gitee.com/?utm_sources=site_nav">Gitee AI
  202. <sup class='ui red label'>
  203. NEW
  204. </sup>
  205. </a><div class='center responsive-logo'>
  206. <a href="https://gitee.com"><img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline image' height='24' src='/static/images/logo.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='85'>
  207. <img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='ui inline black image' height='24' src='/static/images/logo-black.svg?t=158106664' title='Gitee - 基于 Git 的代码托管和研发协作平台' width='85'>
  208. </a></div>
  209. <div class='right menu userbar right-header' id='git-nav-user-bar'>
  210. <form class="ui item" id="navbar-search-form" data-text-require="搜索关键字不能少于1个" data-text-filter="搜索格式不正确" action="/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
  211. <input type="hidden" name="type" id="navbar-search-type" />
  212. <input type="hidden" name="fork_filter" id="fork_filter" value="on" />
  213. <div class='ui search header-search'>
  214. <input type="text" name="q" id="navbar-search-input" value="" class="prompt" placeholder="搜开源" />
  215. </div>
  216. </form>
  217. <script>
  218. var can_search_in_repo = 1,
  219. repo = "VFhwWmQwNUVZekJOZW1Sb1RucFplbHBuUFQxaE56WXpaZz09YTc2M2Y=",
  220. reponame = "dodboy/88";
  221. $(function() {
  222. var $search = $('#navbar-search-form .ui.search');
  223. $search.search({
  224. apiSettings: {
  225. url: '/search/relative_project?q={query}',
  226. onResponse: function (res) {
  227. if (res && res.status === 200 && res.data) {
  228. var query = htmlSafe($search.search('get value'));
  229. res.data.map(function (item) {
  230. item.path_ns = '/' + item.path_ns;
  231. item.icon = 'iconfont icon-project-public';
  232. });
  233. res.data.unshift({
  234. name_ns: "在全站搜索 <b class='hl'>" + query +"</b> 相关项目",
  235. path_ns: '/search?fork_filter=on&q=' + query,
  236. icon: 'iconfont icon-search'
  237. });
  238. return res;
  239. } else {
  240. return { data: [] };
  241. }
  242. }
  243. },
  244. fields: {
  245. results: 'data',
  246. description: 'name_ns',
  247. url: 'path_ns',
  248. icon: 'icon'
  249. },
  250. minCharacters: 1,
  251. maxResults: 10,
  252. searchDelay: 250,
  253. showNoResults: false,
  254. transition: 'fade'
  255. });
  256. });
  257. </script>
  258. <div class='ui item' id='feature-update-notice'>
  259. <div class='notice-update-icon'>
  260. <a class="notice-update-popup click-knowed" title="" href="javascript:void(0)"><img alt="功能更新" title="" class="bubl_icon bubl-off-icon" src="https://cn-assets.gitee.com/assets/bulb_off-24ee940be20998aace89a3f040cbc704.svg" />
  261. <img alt="功能更新" title="" class="bubl_icon bubl-on-icon" src="https://cn-assets.gitee.com/assets/bulb_on-3986b1dc417285398e3d15671bd8f261.svg" />
  262. </a></div>
  263. <div class='feature-update-notice-panel menu'>
  264. <div class='notice-img'>
  265. <img alt="" title="" class="notice-img-show" src="" />
  266. </div>
  267. <div class='notice-update-title'></div>
  268. <div class='notice-update-des'></div>
  269. <div class='notice-btn-list d-flex-between'>
  270. <button name="button" type="button" class="ui basic orange button btn-notice btn-knowed click-knowed" style="margin-right: 0">我知道了</button>
  271. <a class="ui button orange btn-notice btn-details click-knowed" target="_blank" href="">查看详情</a>
  272. </div>
  273. </div>
  274. </div>
  275. <a class="item git-nav-user__login-item" sa_evt="login_show" sa_referrer_url="" sa_referrer_action="站导航右上角-登录按钮" sa_referrer_type="其他" href="/login">登录
  276. </a><a class="item git-nav-user__register-item" sa_evt="register_show" sa_referrer_url="" sa_referrer_action="站导航右上角-注册按钮" sa_referrer_type="其他" href="/signup">注册
  277. </a><script>
  278. $('.destroy-user-session').on('click', function() {
  279. $.cookie('access_token', null, { path: '/' });
  280. })
  281. </script>
  282. </div>
  283. </div>
  284. </div>
  285. </header>
  286. <script>
  287. Gitee.initNavbar()
  288. Gitee.initRepoRemoteWay()
  289. $.cookie('user_locale',null)
  290. </script>
  291. <script>
  292. var userAgent = navigator.userAgent;
  293. var isLessIE11 = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
  294. if(isLessIE11){
  295. var can_access = ""
  296. if (can_access != "true"){
  297. window.location.href = "/incompatible.html";
  298. }
  299. }
  300. </script>
  301. <div class='fixed-notice-infos'>
  302. <div class='all-messages'>
  303. </div>
  304. <div class='ui container'>
  305. <div class='flash-messages' id='messages-container'></div>
  306. </div>
  307. <script>
  308. (function() {
  309. $(function() {
  310. var $error_box, alertTip, notify_content, notify_options, template;
  311. template = '<div data-notify="container" class="ui {0} message" role="alert">' + '<i data-notify="dismiss" class="close icon"></i>' + '<span data-notify="message">{2}</span>' + '</div>';
  312. notify_content = null;
  313. notify_options = {};
  314. alertTip = '';
  315. $error_box = $(".flash_error.flash_error_box");
  316. if (notify_options.type === 'error' && $error_box.length > 0 && !$.isEmptyObject(notify_content.message)) {
  317. if (notify_content.message === 'captcha_fail') {
  318. alertTip = "验证码不正确";
  319. } else if (notify_content.message === 'captcha_expired') {
  320. alertTip = "验证码已过期,请点击刷新";
  321. } else if (notify_content.message === 'not_found_in_database') {
  322. alertTip = "帐号或者密码错误";
  323. } else if (notify_content.message === 'not_found_and_show_captcha') {
  324. alertTip = "帐号或者密码错误";
  325. } else if (notify_content.message === 'phone_captcha_fail') {
  326. alertTip = "手机验证码不通过";
  327. } else {
  328. alertTip = notify_content.message;
  329. }
  330. return $error_box.html(alertTip).show();
  331. } else if (notify_content) {
  332. if ("show" === 'third_party_binding') {
  333. return $('#third_party_binding-message').html(notify_content.message).addClass('ui message red');
  334. }
  335. notify_options.delay = 3000;
  336. notify_options.template = template;
  337. notify_options.offset = {
  338. x: 10,
  339. y: 30
  340. };
  341. notify_options.element = '#messages-container';
  342. return $.notify(notify_content, notify_options);
  343. }
  344. });
  345. }).call(this);
  346. </script>
  347. </div>
  348. <script>
  349. (function() {
  350. $(function() {
  351. var setCookie;
  352. setCookie = function(name, value) {
  353. $.cookie(name, value, {
  354. path: '/',
  355. expires: 365
  356. });
  357. };
  358. $('#remove-bulletin, #remove-bulletin-dashboard').on('click', function() {
  359. setCookie('remove_bulletin', "gitee-maintain-1716862306");
  360. $('#git-bulletin').hide();
  361. });
  362. $('#remove-member-bulletin').on('click', function() {
  363. setCookie('remove_member_bulletin', "gitee_member_bulletin");
  364. $(this).parent().hide();
  365. });
  366. return $('#remove-gift-bulletin').on('click', function() {
  367. setCookie('remove_gift_bulletin', "gitee-gift-bulletin");
  368. $(this).parent().hide();
  369. });
  370. });
  371. }).call(this);
  372. </script>
  373. <script>
  374. function closeMessageBanner(pthis, type, val) {
  375. var json = {}
  376. val = typeof val === 'undefined' ? null : val
  377. $(pthis).parent().remove()
  378. if (type === 'out_of_enterprise_member') {
  379. json = {type: type, data: val}
  380. } else if (type === 'enterprise_overdue') {
  381. json = {type: type, data: val}
  382. }
  383. $.post('/profile/close_flash_tip', json)
  384. }
  385. </script>
  386. <div class='site-content'>
  387. <div class='git-project-header'>
  388. <div class='fixed-notice-infos'>
  389. <div class='ui info icon floating message green' id='fetch-ok' style='display: none'>
  390. <div class='content'>
  391. <div class='header status-title'>
  392. <i class='info icon status-icon'></i>
  393. 代码拉取完成,页面将自动刷新
  394. </div>
  395. </div>
  396. </div>
  397. <div class='ui info icon floating message error' id='fetch-error' style='display: none'>
  398. <div class='content'>
  399. <div class='header status-title'>
  400. <i class='info icon status-icon'></i>
  401. <span class='error_msg'></span>
  402. </div>
  403. </div>
  404. </div>
  405. </div>
  406. <div class='ui container'>
  407. <div class='git-project-header-details'>
  408. <div class='git-project-header-container'>
  409. <div class='git-project-header-actions'>
  410. <div class='ui tiny modal project-donate-modal' id='project-donate-modal'>
  411. <i class='iconfont icon-close close'></i>
  412. <div class='header'>捐赠</div>
  413. <div class='content'>
  414. 捐赠前请先登录
  415. </div>
  416. <div class='actions'>
  417. <a class='ui blank button cancel'>取消</a>
  418. <a class='ui orange ok button' href='/login'>前往登录</a>
  419. </div>
  420. </div>
  421. <div class='ui small modal wepay-qrcode'>
  422. <i class='iconfont icon-close close'></i>
  423. <div class='header'>
  424. 扫描微信二维码支付
  425. <span class='wepay-cash'></span>
  426. </div>
  427. <div class='content weqcode-center'>
  428. <img id='wepay-qrcode' src=''>
  429. </div>
  430. <div class='actions'>
  431. <div class='ui cancel blank button'>取消</div>
  432. <div class='ui ok orange button'>支付完成</div>
  433. </div>
  434. </div>
  435. <div class='ui mini modal' id='confirm-alipay-modal'>
  436. <div class='header'>支付提示</div>
  437. <div class='content'>
  438. 将跳转至支付宝完成支付
  439. </div>
  440. <div class='actions'>
  441. <div class='ui approve orange button'>确定</div>
  442. <div class='ui blank cancel button'>取消</div>
  443. </div>
  444. </div>
  445. <span class='ui buttons basic watch-container'>
  446. <div class='ui dropdown button js-project-watch' data-watch-type='unwatch'>
  447. <input type='hidden' value=''>
  448. <i class='iconfont icon-watch'></i>
  449. <div class='text'>
  450. Watch
  451. </div>
  452. <i class='dropdown icon'></i>
  453. <div class='menu'>
  454. <a data-value="unwatch" class="item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/dodboy/88/unwatch"><i class='iconfont icon-msg-read'></i>
  455. 不关注
  456. </a><a data-value="watching" class="item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/dodboy/88/watch"><i class='iconfont icon-msg-read'></i>
  457. 关注所有动态
  458. </a><a data-value="releases_only" class="disabled item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/dodboy/88/release_only_watch"><i class='iconfont icon-msg-read'></i>
  459. 仅关注版本发行动态
  460. </a><a data-value="ignoring" class="item" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Watch" sa_referrer_type="其他" rel="nofollow" data-method="post" href="/dodboy/88/ignoring_watch"><i class='iconfont icon-msg-read'></i>
  461. 关注但不提醒动态
  462. </a></div>
  463. </div>
  464. <style>
  465. .js-project-watch .text .iconfont {
  466. display: none; }
  467. .js-project-watch a, .js-project-watch a:hover {
  468. color: #000; }
  469. .js-project-watch .item > .iconfont {
  470. visibility: hidden;
  471. margin-left: -10px; }
  472. .js-project-watch .selected .iconfont {
  473. visibility: visible; }
  474. .js-project-watch .menu {
  475. margin-top: 4px !important; }
  476. </style>
  477. <script>
  478. $('.js-project-watch').dropdown({
  479. action: 'select',
  480. onChange: function(value, text, $selectedItem) {
  481. var type = value === 'unwatch' ? 'Watch' : 'Watching';
  482. $(this).children('.text').text(type);
  483. $(this).dropdown('set selected', value)
  484. }
  485. });
  486. </script>
  487. <a class="ui button action-social-count" title="1" href="/dodboy/88/watchers">1
  488. </a></span>
  489. <span class='basic buttons star-container ui'>
  490. <a class="ui button star" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Star" sa_referrer_type="其他" href="/login"><i class='iconfont icon-star'></i>
  491. Star
  492. </a><a class="ui button action-social-count " title="0" href="/dodboy/88/stargazers">0
  493. </a></span>
  494. <span class='ui basic buttons fork-container' title='无权 Fork 此仓库'>
  495. <a class="ui button fork" title="你必须登录后才可以fork一个仓库" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="Fork" sa_referrer_type="其他" href="/login"><i class='iconfont icon-fork'></i>
  496. Fork
  497. </a><a class="ui button action-social-count disabled-style" title="0" href="/dodboy/88/members">0
  498. </a></span>
  499. </div>
  500. <h2 class='git-project-title mt-0 mb-0'>
  501. <span class="project-title"><i class="project-icon iconfont icon-project-public" title="这是一个公开仓库"></i> <a title="DODBOY" class="author" href="/dodboy">DODBOY</a> / <a title="88" class="repository" target="" style="padding-bottom: 0px; margin-right: 4px" sa_evt="repoClick" sa_location="其他" sa_url="" sa_repo_id="36047437" href="/dodboy/88">88</a></span><span class="project-badges"><style>
  502. .gitee-modal {
  503. width: 500px !important; }
  504. </style>
  505. </span>
  506. <input type="hidden" name="project_title" id="project_title" value="DODBOY/88" />
  507. </h2>
  508. </div>
  509. </div>
  510. </div>
  511. <script>
  512. var title_import_url = "https://gitcode.com/DODBOY/88.git";
  513. var title_post_url = "/dodboy/88/update_import";
  514. var title_fork_url = "/dodboy/88/sync_fork";
  515. var title_project_path = "88";
  516. var title_p_name = "88";
  517. var title_p_id= "36047437";
  518. var title_description = "";
  519. var title_form_authenticity_token = "h5jVpLgFlUOmAqpw/lMH4sd8zDehPy2RiRLo+CkYajrufx8ifam/AmJI+u1WtmpzMLquYhsdSkt0FJLFzoFABg==";
  520. var watch_type = "unwatch";
  521. var checkFirst = false;
  522. $('.js-project-watch').dropdown('set selected', watch_type);
  523. $('.checkbox.sync-wiki').checkbox();
  524. $('.checkbox.sync-prune').checkbox();
  525. $('.checkbox.team-member-checkbox').checkbox();
  526. </script>
  527. <style>
  528. i.loading, .icon-sync.loading {
  529. -webkit-animation: icon-loading 1.2s linear infinite;
  530. animation: icon-loading 1.2s linear infinite;
  531. }
  532. .qrcode_cs {
  533. float: left;
  534. }
  535. .check-sync-wiki {
  536. float: left;
  537. height: 28px;
  538. line-height: 28px;
  539. }
  540. .sync-wiki-warn {
  541. color: #e28560;
  542. }
  543. </style>
  544. <div class='git-project-nav'>
  545. <div class='ui container'>
  546. <div class='ui secondary pointing menu'>
  547. <a class="item active" href="/dodboy/88"><i class='iconfont icon-code'></i>
  548. 代码
  549. </a><a class="item " href="/dodboy/88/issues"><i class='iconfont icon-task'></i>
  550. Issues
  551. <span class='ui mini circular label'>
  552. 0
  553. </span>
  554. </a><a class="item " href="/dodboy/88/pulls"><i class='iconfont icon-pull-request'></i>
  555. Pull Requests
  556. <span class='ui mini circular label'>
  557. 0
  558. </span>
  559. </a><a class="item " href="/dodboy/88/wikis"><i class='iconfont icon-wiki'></i>
  560. Wiki
  561. </a><a class="item " href="/dodboy/88/graph/master"><i class='iconfont icon-statistics'></i>
  562. 统计
  563. </a><a class="item " href="/dodboy/88/gitee_go"><i class='iconfont icon-workflow'></i>
  564. 流水线
  565. </a><div class='item'>
  566. <div class='ui pointing top right dropdown git-project-service'>
  567. <div>
  568. <i class='iconfont icon-service'></i>
  569. 服务
  570. <i class='dropdown icon'></i>
  571. </div>
  572. <div class='menu' style='display:none'>
  573. <a class="item" href="/dodboy/88/pages"><img src="/static/images/logo-en.svg" alt="Logo en" />
  574. <div class='item-title'>
  575. Gitee Pages
  576. </div>
  577. </a><a class="item" href="/dodboy/88/javadoc"><img src="https://cn-assets.gitee.com/assets/maven-bd58aee84f266d64d4b8ce5b006a9fcf.png" alt="Maven" />
  578. <div class='item-title'>
  579. JavaDoc
  580. </div>
  581. </a><a class="item" href="/dodboy/88/phpdoc"><img src="https://cn-assets.gitee.com/assets/phpdoc-a99f87c2feaa2fd99e5065377a39487e.png" alt="Phpdoc" />
  582. <div class='item-title'>
  583. PHPDoc
  584. </div>
  585. </a><a class="item" href="/dodboy/88/quality_analyses?platform=sonar_qube"><img src="https://cn-assets.gitee.com/assets/sonar_mini-5e1b54bb9f6c951d97fb778ef623afea.png" alt="Sonar mini" />
  586. <div class='item-title'>
  587. 质量分析
  588. </div>
  589. </a><a class="item" target="_blank" href="https://gitee.com/help/articles/4193"><img src="https://cn-assets.gitee.com/assets/jenkins_for_gitee-554ec65c490d0f1f18de632c48acc4e7.png" alt="Jenkins for gitee" />
  590. <div class='item-title'>
  591. Jenkins for Gitee
  592. </div>
  593. </a><a class="item" target="_blank" href="https://gitee.com/help/articles/4318"><img src="https://cn-assets.gitee.com/assets/cloudbase-1197b95ea3398aff1df7fe17c65a6d42.png?20200925" alt="Cloudbase" />
  594. <div class='item-title'>
  595. 腾讯云托管
  596. </div>
  597. </a><a class="item" target="_blank" href="https://gitee.com/help/articles/4330"><img src="https://cn-assets.gitee.com/assets/cloud_serverless-686cf926ced5d6d2f1d6e606d270b81e.png" alt="Cloud serverless" />
  598. <div class='item-title'>
  599. 腾讯云 Serverless
  600. </div>
  601. </a><a class="item" href="/dodboy/88/open_sca"><img src="https://cn-assets.gitee.com/assets/open_sca/logo-9049ced662b2f9936b8001e6f9cc4952.png" alt="Logo" />
  602. <div class='item-title'>
  603. 悬镜安全
  604. </div>
  605. </a><a class="item" target="_blank" href="https://help.gitee.com/devops/connect/Aliyun-SAE"><img src="https://cn-assets.gitee.com/assets/SAE-f3aa9366a1e2b7fff4747402eb8f10c3.png" alt="Sae" />
  606. <div class='item-title'>
  607. 阿里云 SAE
  608. </div>
  609. </a><a class="item" id="update-codeblitz-link" target="_blank" href="https://codeblitz.cloud.alipay.com/gitee/dodboy/88/tree/master/jar/dongchenok.jar"><img style="width:100px;margin-top:4px" src="https://cn-assets.gitee.com/assets/Codeblitz-8824e38875a106e16e29ff57ec977b08.png" alt="Codeblitz" />
  610. <div class='item-title'>
  611. Codeblitz
  612. </div>
  613. </a><button class='ui orange basic button quit-button' id='quiting-button'>
  614. 我知道了,不再自动展开
  615. </button>
  616. </div>
  617. </div>
  618. </div>
  619. </div>
  620. </div>
  621. </div>
  622. <script>
  623. $('.git-project-nav .ui.dropdown').dropdown({ action: 'nothing' });
  624. var gitee_reward_config = JSON.parse(localStorage.getItem('gitee_reward_config') || null) || false
  625. var $settingText = $('.setting-text')
  626. // 如果没有访问过
  627. if(!gitee_reward_config) $settingText.addClass('red-dot')
  628. $('.git-project-service').dropdown({
  629. on: 'click',
  630. action: 'nothing',
  631. onShow: function () {
  632. const branch = 'master'
  633. let newUrl = `https://codeblitz.cloud.alipay.com/gitee/dodboy/88/tree/`
  634. const url = decodeURIComponent(window.location.pathname);
  635. const startIndex = url.indexOf('master');
  636. if (startIndex !== -1) {
  637. newUrl = newUrl + url.substring(startIndex); // 从分支名开始截取
  638. }else{
  639. newUrl = newUrl + branch
  640. }
  641. const linkElement = document.getElementById("update-codeblitz-link");
  642. linkElement.setAttribute("href", newUrl);
  643. },
  644. })
  645. </script>
  646. <style>
  647. .git-project-nav i.checkmark.icon {
  648. color: green;
  649. }
  650. #quiting-button {
  651. display: none;
  652. }
  653. .git-project-nav .dropdown .menu.hidden:after {
  654. visibility: hidden !important;
  655. }
  656. </style>
  657. <script>
  658. isSignIn = false
  659. isClickGuide = false
  660. $('#git-versions.dropdown').dropdown();
  661. $.ajax({
  662. url:"/dodboy/88/access/add_access_log",
  663. type:"GET"
  664. });
  665. $('#quiting-button').on('click',function() {
  666. $('.git-project-service').click();
  667. if (isSignIn) {
  668. $.post("/projects/set_service_guide")
  669. }
  670. $.cookie("Serve_State", true, { expires: 3650, path: '/'})
  671. $('#quiting-button').hide();
  672. });
  673. if (!(isClickGuide || $.cookie("Serve_State") == 'true')) {
  674. $('.git-project-service').click()
  675. $('#quiting-button').show()
  676. }
  677. </script>
  678. </div>
  679. <div class='ui container'>
  680. <div class='register-guide'>
  681. <div class='register-container'>
  682. <div class='regist'>
  683. 加入 Gitee
  684. </div>
  685. <div class='description'>
  686. 与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
  687. </div>
  688. <a class="ui orange button free-registion" sa_evt="register_show" sa_referrer_url="" sa_referrer_action="免费加入" sa_referrer_type="其他" href="/signup?from=project-guide">免费加入</a>
  689. <div class='login'>
  690. 已有帐号?
  691. <a href="/login?from=project-guide">立即登录</a>
  692. </div>
  693. </div>
  694. </div>
  695. <div class='git-project-content-wrapper'>
  696. <div class='ui grid' id='project-wrapper'>
  697. <div class='sixteen wide column'>
  698. <div class='git-project-content' id='git-project-content'>
  699. <div class='row'>
  700. <div class='git-project-desc-wrapper'>
  701. <script>
  702. $('.git-project-desc-wrapper .ui.dropdown').dropdown();
  703. if (false) {
  704. gon.project_new_blob_path = "/dodboy/88/new/master/jar/dongchenok.jar"
  705. bindShowModal({
  706. el: $('.no-license .project-license__create'),
  707. complete: function(data, modal) {
  708. if (!data.haveNoChoice && !data.data) {
  709. Flash.show('请选择一项开源许可证')
  710. } else {
  711. location.href = gon.project_new_blob_path + '?license=' + data.data
  712. }
  713. },
  714. skip: function () {
  715. location.href = gon.project_new_blob_path + '?license'
  716. }
  717. });
  718. }
  719. $(".project-admin-action-box .reject").click(function() {
  720. var reason = $('[name=review-reject-reason]').val();
  721. if (!reason) {
  722. Flash.error('请选择不通过理由')
  723. return
  724. }
  725. $.ajax({
  726. type: 'POST',
  727. url: "/admin/shumei_content/shumei_check/reject_project_public",
  728. data: {
  729. reason: reason,
  730. status: 'rejected',
  731. project_id: 36047437
  732. },
  733. success: function(result){
  734. if(result.status == 'success'){
  735. window.location.reload();
  736. }else{
  737. Flash.error(result.message)
  738. }
  739. }
  740. })
  741. })
  742. $(".project-admin-action-box .approve").click(function(){
  743. $.ajax({
  744. type: 'POST',
  745. url: "/admin/shumei_content/shumei_check/reject_project_public",
  746. data: {
  747. status: 'approved',
  748. project_id: 36047437
  749. },
  750. success: function(result){
  751. if(result.status == 'success'){
  752. window.location.reload();
  753. }else{
  754. Flash.error(result.message)
  755. }
  756. }
  757. })
  758. })
  759. $(".project-admin-action-box .waiting").click(function(){
  760. $.ajax({
  761. type: 'POST',
  762. url: "/admin/shumei_content/shumei_check/reject_project_public",
  763. data: {
  764. status: 'waiting',
  765. project_id: 36047437
  766. },
  767. success: function(result){
  768. if(result.status == 'success'){
  769. window.location.reload();
  770. }else{
  771. Flash.error(result.message)
  772. }
  773. }
  774. })
  775. })
  776. $('i.help.circle.icon').popup({
  777. popup: '.no-license .ui.popup',
  778. position: 'right center'
  779. });
  780. $('#remove-no-license-message').on('click', function() {
  781. $.cookie("skip_repo_no_license_message_36047437", 'hide', { expires: 365 });
  782. $('#user-no-license-message').hide();
  783. return;
  784. });
  785. </script>
  786. </div>
  787. </div>
  788. <div class='git-project-bread' id='git-project-bread'>
  789. <div class='ui horizontal list mr-1'>
  790. <div class='item git-project-branch-item'>
  791. <input type="hidden" name="path" id="path" value="jar/dongchenok.jar" />
  792. <div class='ui top left pointing dropdown gradient button dropdown-has-tabs' id='git-project-branch'>
  793. <input type="hidden" name="ref" id="ref" value="master" />
  794. <div class='default text'>
  795. master
  796. </div>
  797. <i class='dropdown icon'></i>
  798. <div class='menu'>
  799. <div class='ui left icon input'>
  800. <i class='iconfont icon-search dropdown-search-icon'></i>
  801. <input class='search-branch' placeholder='搜索分支' type='text'>
  802. </div>
  803. <div class='tab-menu project-branch-tab-menu'>
  804. <div class='tab-menu-actions d-align-center'>
  805. <div class='tab-menu-action' data-tab='branches'>
  806. <a class="ui link button" href="/dodboy/88/branches">管理</a>
  807. </div>
  808. <div class='tab-menu-action' data-tab='tags'>
  809. <a class="ui link button" href="/dodboy/88/tags">管理</a>
  810. </div>
  811. </div>
  812. <div class='tab-menu-item' data-placeholder='搜索分支' data-tab='branches'>
  813. 分支 (1)
  814. </div>
  815. </div>
  816. <div class='tab scrolling menu' data-tab='branches' id='branches_panel'>
  817. <div data-value="master" class="item"><span>master</span></div>
  818. </div>
  819. </div>
  820. </div>
  821. <style>
  822. .iconfont.icon-shieldlock {
  823. color: #8c92a4;
  824. }
  825. .dropdown-search-icon {
  826. position: absolute;
  827. top: 8px;
  828. left: 11px;
  829. }
  830. </style>
  831. <style>
  832. #git-project-branch .project-branch-tab-menu {
  833. width: 400px !important;
  834. margin: 0 16px !important;
  835. padding-left: 0px !important;
  836. padding-right: 0px !important;
  837. border-bottom: 1px solid #dfe3e9 !important; }
  838. #git-project-branch .tab-menu-actions {
  839. position: absolute;
  840. right: 0px !important;
  841. bottom: 0.357em; }
  842. #git-project-branch .tab-menu-action {
  843. position: relative !important;
  844. right: 0px !important;
  845. bottom: 0px !important; }
  846. #git-project-branch .menu::after {
  847. display: none !important; }
  848. </style>
  849. <script>
  850. var $branchesDropdown = $('#branches_panel');
  851. var $tagsDropdown = $('#tags_panel');
  852. var $searchNameInput = $('.search-branch');
  853. var concurrentRequestLock = false;
  854. var filterXSS = window.filterXSS;
  855. var search_text = "";
  856. var branch_page_number = 1;
  857. var branch_total_pager = Math.ceil(1 / 20) || 1
  858. var flag_is_loading = false;
  859. var flag_page_number = 1;
  860. var flag_total_pager = Math.ceil(0 / 20) || 1
  861. $branchesDropdown.scroll(function() {
  862. var branchesPanel = document.getElementById('branches_panel');
  863. var numOfBranches = $branchesDropdown.children().length;
  864. if (branchesPanel.clientHeight + branchesPanel.scrollTop + 37 > branchesPanel.scrollHeight && numOfBranches < 1) {
  865. debounceLoadMoreBranches.call();
  866. }
  867. });
  868. function resetFlagVal() {
  869. flag_is_loading = false;
  870. flag_page_number = 1;
  871. flag_total_pager = 1;
  872. concurrentRequestLock = false
  873. search_text = "";
  874. branch_page_number = 1;
  875. branch_total_pager = 1
  876. }
  877. $searchNameInput.on('input', window.globalUtils.debouce(function (e) {
  878. resetFlagVal()
  879. var $currentTab = $('.tab-menu-action.active');
  880. var numOfBranches = $branchesDropdown.children().length;
  881. var searchWord = $searchNameInput.val().trim();
  882. search_text = searchWord
  883. if($currentTab.data('tab') === 'branches') {
  884. if (searchWord !== "") {
  885. loadData(searchWord,1);
  886. } else {
  887. loadData();
  888. }
  889. }
  890. var numOfTags = $tagsDropdown.children().length;
  891. if($currentTab.data('tab') === 'tags') {
  892. if (searchWord !== "") {
  893. fetchTags(searchWord,1);
  894. } else {
  895. fetchTags();
  896. }
  897. }
  898. }, 500));
  899. function toggleNoResultView($popPanel) {
  900. let no_data_html= `<div class='mt-1 mb-1 d-flex-center'> <span>暂无数据</span> </div>`
  901.   $popPanel.append(no_data_html)
  902. }
  903. var debounceLoadMoreBranches = window.globalUtils.debouce(function () {
  904. if (concurrentRequestLock) return;
  905. branch_page_number += 1;
  906. if (branch_page_number > branch_total_pager) return;
  907. loadData(search_text, branch_page_number);
  908. }, 350);
  909. function loadData(search, page) {
  910. if (concurrentRequestLock) { return; }
  911. concurrentRequestLock = true;
  912. var searchParams = search || "";
  913. var pageParams = page || 1;
  914. $.ajax({
  915. url: "/" + gon.user_project + "/branches/names.json",
  916. type: 'GET',
  917. data: {
  918. search: searchParams,
  919. page: pageParams,
  920. },
  921. dataType: 'json',
  922. success: function (data) {
  923. branch_total_pager = data.total_pages;
  924. var html = '';
  925. if (pageParams === 1) {
  926. $branchesDropdown.empty();
  927. }
  928. data.branches.forEach(function (branch) {
  929. var protectRule = '';
  930. var branchName = filterXSS(branch.name);
  931. if(branch.branch_type.value === 1) {
  932. var rule = filterXSS(branch.protection_rule.wildcard);
  933. protectRule = `<i
  934. class="iconfont icon-shieldlock protected-branch-popup"
  935. data-title="受保护分支"
  936. data-content='保护规则: ${rule}'
  937. >
  938. </i>`
  939. }
  940. html += `<div data-value='${branchName}' class="item">
  941. <span>${branchName}</span> ${protectRule}
  942. </div>`
  943. });
  944. $branchesDropdown.append(html);
  945. $('.protected-branch-popup').popup()
  946. if (pageParams === 1 && data.count === 0) {
  947. toggleNoResultView($branchesDropdown);
  948. }
  949. },
  950. complete: function () {
  951. concurrentRequestLock = false;
  952. }
  953. });
  954. }
  955. $tagsDropdown.scroll(function() {
  956. var tagsPanel = document.getElementById('tags_panel');
  957. var numOfTags = $tagsDropdown.children().length;
  958. if (tagsPanel.clientHeight + tagsPanel.scrollTop + 37 > tagsPanel.scrollHeight && numOfTags < 0) {
  959. debounceLoadMore.call();
  960. }
  961. });
  962. var debounceLoadMore = window.globalUtils.debouce(function () {
  963. if (flag_is_loading) return;
  964. flag_page_number += 1;
  965. if (flag_page_number > flag_total_pager) return;
  966. fetchTags(search_text, flag_page_number);
  967. }, 350);
  968. function fetchTags(search, page) {
  969. var searchParams = search || "";
  970. var pageParams = page || 1;
  971. if (flag_is_loading) return;
  972. flag_is_loading = true;
  973. $.ajax({
  974. url: "/" + gon.user_project + "/tags/names.json",
  975. data: {
  976. search: searchParams,
  977. page: pageParams,
  978. },
  979. type: "GET",
  980. xhrFields: {
  981. withCredentials: true,
  982. },
  983. success: function (data) {
  984. flag_total_pager = data.total_pages;
  985. if (pageParams === 1) {
  986. $tagsDropdown.html('');
  987. }
  988. data.tags.forEach((tag) => {
  989. const itemDiv = document.createElement('div');
  990. itemDiv.classList.add('item');
  991. itemDiv.setAttribute('data-value', tag.name);
  992. itemDiv.innerText = window.filterXSS(tag.name);
  993. $tagsDropdown.append(itemDiv)
  994. });
  995. if (pageParams === 1 && data.count === 0) {
  996. toggleNoResultView($tagsDropdown);
  997. }
  998. },
  999. error: function () {
  1000. },
  1001. complete: function () {
  1002. flag_is_loading = false;
  1003. },
  1004. });
  1005. }
  1006. $('.project-branch-tab-menu').on('click','.tab-menu-item', function (e) {
  1007. var $currentTab = $(this).data('tab')
  1008. if($currentTab === 'branches') {
  1009. $searchNameInput.val('')
  1010. search_text = '';
  1011. loadData()
  1012. }
  1013. if($currentTab === 'tags') {
  1014. $searchNameInput.val('')
  1015. search_text = '';
  1016. fetchTags();
  1017. }
  1018. })
  1019. </script>
  1020. <script>
  1021. $(function () {
  1022. Gitee.initTabsInDropdown($('#git-project-branch').dropdown({
  1023. fullTextSearch: true,
  1024. selectOnKeydown: false,
  1025. action: function (text,value,el) {
  1026. var oItemOrInitObject = el[0] || el
  1027. var isNotSelect = oItemOrInitObject.dataset.tab && oItemOrInitObject.dataset.tab === 'branches'
  1028. if(isNotSelect){
  1029. console.warn("You didn't choose a branch")
  1030. return
  1031. }
  1032. var path = $('#path').val();
  1033. var href = ['/dodboy/88/tree', encodeURIComponent(value), path].join('/');
  1034. window.location.href = href;
  1035. return true
  1036. },
  1037. onNoResults: function (searchTerm) {
  1038. //未找到结果
  1039. return true
  1040. },
  1041. }));
  1042. $('.protected-branch-popup').popup()
  1043. })
  1044. </script>
  1045. </div>
  1046. </div>
  1047. <div class='git-project-right-actions pull-right'>
  1048. <div class='ui orange button' id='btn-dl-or-clone'>
  1049. 克隆/下载
  1050. <i class='dropdown icon'></i>
  1051. </div>
  1052. <div class='ui small modal' id='git-project-download-panel'>
  1053. <i class='iconfont icon-close close'></i>
  1054. <div class='header'>
  1055. 克隆/下载
  1056. </div>
  1057. <div class='content'>
  1058. <div class='ui secondary pointing menu mb-2 menu-container'>
  1059. <a class='item active' data-text='' data-type='http' data-url='https://gitee.com/dodboy/88.git'>HTTPS</a>
  1060. <a class='item' data-text='' data-type='ssh' data-url='git@gitee.com:dodboy/88.git'>SSH</a>
  1061. <a class='item' data-text="该仓库未启用SVN访问,请仓库管理员前往【&lt;a target='_blank' href=/dodboy/88/settings#function&gt;仓库设置&lt;/a&gt;】开启。" data-type='svn' data-url=''>SVN</a>
  1062. <a class='item' data-text="该仓库未启用SVN访问,请仓库管理员前往【&lt;a target='_blank' href=/dodboy/88/settings#function&gt;仓库设置&lt;/a&gt;】开启。" data-type='svn_ssh' data-url=''>SVN+SSH</a>
  1063. <a class="ui basic orange button button-box unlogin-download-btn" sa_evt="loginInform_show" sa_referrer_url="" sa_referrer_action="克隆/下载" sa_referrer_type="其他" href="javascript:void(0);"><i class='icon download'></i>
  1064. 下载ZIP
  1065. </a><div class='ui custom popup popup'>
  1066. <div class='popup-container actions'>
  1067. <div class='content'>
  1068. 该操作需登录 Gitee 帐号,请先登录后再操作。
  1069. </div>
  1070. <a class="ui orange button ok icon" href="/login?from=download_repository_zip">立即登录
  1071. </a><a class="ui blank button cancel" href="/signup?from=download_repository_zip">没有帐号,去注册
  1072. </a></div>
  1073. </div>
  1074. </div>
  1075. <div class='ui fluid right labeled small input download-url-panel mb-2'>
  1076. <input type="text" name="project_url_clone" id="project_url_clone" value="https://gitee.com/dodboy/88.git" onclick="focus();select()" readonly="readonly" />
  1077. <div class='ui basic label copy-icon-box'>
  1078. <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#project_url_clone' id='btn-copy-project_clone_url1'></i>
  1079. </div>
  1080. </div>
  1081. <div class='tip-box mb-2'>
  1082. 提示
  1083. </div>
  1084. <div class='mb-1 clone-url-title'>
  1085. 下载代码请复制以下命令到终端执行
  1086. </div>
  1087. <div class='ui fluid right labeled small input download-url-panel mb-2'>
  1088. <input type="text" name="project_clone_url" id="project_clone_url" value="https://gitee.com/dodboy/88.git" onclick="focus();select()" readonly="readonly" />
  1089. <div class='ui basic label copy-icon-box'>
  1090. <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#project_clone_url' id='btn-copy-project_clone_url'></i>
  1091. </div>
  1092. </div>
  1093. <div class='ui fluid right labeled warning-text forbid-warning-text'>
  1094. </div>
  1095. <div class='http-ssh-item mb-2'>
  1096. <div>
  1097. 为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
  1098. </div>
  1099. <div class='textarea-box mt-2'>
  1100. <textarea class='textarea-content-box' id='global-config-clone' readonly>git config --global user.name userName &#10git config --global user.email userEmail</textarea>
  1101. <i class='icon iconfont icon-clone mr-2 btn-copy-clone text-dark' data-clipboard-target='#global-config-clone' id='btn-copy-global-config'></i>
  1102. </div>
  1103. </div>
  1104. <div class='ssh-item item-panel-box'>
  1105. <div class='mb-2'>
  1106. 初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
  1107. </div>
  1108. <div class='mb-1'>
  1109. <span>1</span>
  1110. 生成 RSA 密钥
  1111. </div>
  1112. <div class='ui fluid right labeled small input mb-2'>
  1113. <input type="text" name="ssh_keygen_clone" id="ssh_keygen_clone" value="ssh-keygen -t rsa" onclick="focus();select()" readonly="readonly" />
  1114. <div class='ui basic label copy-icon-box'>
  1115. <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#ssh_keygen_clone' id='btn-copy-ssh_keygen'></i>
  1116. </div>
  1117. </div>
  1118. <div class='mb-1'>
  1119. <span>2</span>
  1120. 获取 RSA 公钥内容,并配置到<a href='/profile/sshkeys' target="_blank"> SSH公钥 </a> 中
  1121. </div>
  1122. <div class='ui fluid right labeled small input mb-2'>
  1123. <input type="text" name="id_rsa_clone" id="id_rsa_clone" value="cat ~/.ssh/id_rsa.pub" onclick="focus();select()" readonly="readonly" />
  1124. <div class='ui basic label copy-icon-box'>
  1125. <i class='icon iconfont icon-clone mr-0 btn-copy-clone' data-clipboard-target='#id_rsa_clone' id='btn-copy-d_rsa'></i>
  1126. </div>
  1127. </div>
  1128. </div>
  1129. <div class='svn-item item-panel-box'>
  1130. <div class='mb-1 mt-2'>
  1131. 在 Gitee 上使用 SVN,请访问<a href='https://help.gitee.com/enterprise/code-manage/%E4%BB%A3%E7%A0%81%E6%89%98%E7%AE%A1/%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93/Gitee%20SVN%E6%94%AF%E6%8C%81' target="_blank"> 使用指南 </a>
  1132. </div>
  1133. </div>
  1134. <div class='http-item item-panel-box'>
  1135. <div class='mb-2 mt-2'>
  1136. 使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议<a href='/profile/personal_access_tokens' target="_blank"> 配置并使用私人令牌 </a>替代登录密码进行克隆、推送等操作
  1137. </div>
  1138. <div>Username for 'https://gitee.com': userName</div>
  1139. <div class='mb-1'>
  1140. <span>Password for 'https://userName@gitee.com':</span>
  1141. <span>#</span>
  1142. <span>
  1143. 私人令牌
  1144. </span>
  1145. </div>
  1146. </div>
  1147. </div>
  1148. </div>
  1149. <style>
  1150. #git-project-download-panel {
  1151. top: 90px !important; }
  1152. #git-project-download-panel input {
  1153. color: #40485b !important; }
  1154. #git-project-download-panel .textarea-box {
  1155. width: 100%;
  1156. height: 60px;
  1157. color: #9d9d9d;
  1158. border-radius: 2px;
  1159. background-color: #F5F5F5 !important;
  1160. display: -webkit-box;
  1161. display: -ms-flexbox;
  1162. display: flex;
  1163. -webkit-box-align: center;
  1164. -ms-flex-align: center;
  1165. align-items: center; }
  1166. #git-project-download-panel .menu-container {
  1167. font-weight: bold;
  1168. border-color: rgba(0, 0, 0, 0.1) !important;
  1169. border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; }
  1170. #git-project-download-panel .menu-container .item {
  1171. padding: 7px 12px !important; }
  1172. #git-project-download-panel .hr-item {
  1173. color: rgba(39, 41, 43, 0.15) !important; }
  1174. #git-project-download-panel .textarea-content-box {
  1175. width: 100%;
  1176. height: 60px;
  1177. resize: none;
  1178. border: 0px !important;
  1179. background-color: #F5F5F5 !important;
  1180. color: #40485b !important; }
  1181. #git-project-download-panel .btn-copy-clone {
  1182. cursor: pointer;
  1183. color: rgba(0, 0, 0, 0.87) !important; }
  1184. #git-project-download-panel .copy-icon-box {
  1185. background-color: #F5F5F5 !important;
  1186. border-left: 0px !important; }
  1187. #git-project-download-panel .button-box {
  1188. border: 0px !important;
  1189. float: right !important;
  1190. padding-right: 0 !important; }
  1191. #git-project-download-panel .tip-box {
  1192. border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
  1193. padding-bottom: 4px;
  1194. font-weight: 700; }
  1195. #git-project-download-panel .popup-container {
  1196. padding: 8px 12px 4px 12px;
  1197. text-align: center;
  1198. font-size: 14px; }
  1199. #git-project-download-panel .popup-container .ok {
  1200. margin: 12px auto;
  1201. width: 25%;
  1202. min-width: 125px;
  1203. display: block; }
  1204. #git-project-download-panel .popup-container .cancel {
  1205. margin-left: 0; }
  1206. </style>
  1207. <script>
  1208. $(function () {
  1209. var $btnClone = $('#btn-dl-or-clone')
  1210. var $modalDownload = $('#git-project-download-panel');
  1211. var $input = $('#project_clone_url')
  1212. var $inputUrl = $('#project_url_clone')
  1213. var cloneUrlTitle= $('.clone-url-title')
  1214. $('#btn-dl-or-clone').on('click', function (e) {
  1215. e.preventDefault();
  1216. $modalDownload.modal('show');
  1217. })
  1218. $modalDownload.find('.menu > .item').on('click', function(e) {
  1219. var $item = $(this).addClass('active');
  1220. $item.siblings().removeClass('active');
  1221. var dataUrl = $item.attr('data-url');
  1222. var cloneUrl = $item.attr('data-url');
  1223. var dataType = $item.attr('data-type')
  1224. var cloneToLocal = '下载代码请复制以下命令到终端执行'
  1225. if(dataType=='http'){
  1226. $modalDownload.find('.http-item').show();
  1227. $('.content > .item-panel-box:not(.http-item)').hide();
  1228. $modalDownload.find('.http-ssh-item').show();
  1229. cloneUrl = 'git clone '+dataUrl
  1230. }else if(dataType=='ssh'){
  1231. $modalDownload.find('.ssh-item').show();
  1232. $('.content > .item-panel-box:not(.ssh-item)').hide();
  1233. $modalDownload.find('.http-ssh-item').show();
  1234. cloneUrl = 'git clone '+dataUrl
  1235. }else if(dataType=='svn') {
  1236. $('.content > .item-panel-box:not(.svn-item)').hide();
  1237. $modalDownload.find('.svn-item').show();
  1238. $modalDownload.find('.http-ssh-item').hide();
  1239. cloneUrl = 'svn checkout '+dataUrl
  1240. }else {
  1241. $('.content > .item-panel-box:not(.svn-item)').hide();
  1242. $modalDownload.find('.svn-item').show();
  1243. $modalDownload.find('.http-ssh-item').hide();
  1244. cloneUrl = 'svn checkout '+dataUrl
  1245. }
  1246. if (dataUrl) {
  1247. $modalDownload.find('.download-url-panel').show();
  1248. $input.val(cloneUrl);
  1249. $inputUrl.val(dataUrl)
  1250. cloneUrlTitle.show();
  1251. $modalDownload.find('.forbid-warning-text').html('');
  1252. } else {
  1253. $modalDownload.find('.download-url-panel').hide();
  1254. //$modalDownload.find('.svn-item').hide();
  1255. cloneUrlTitle.hide();
  1256. $modalDownload.find('.forbid-warning-text').html($item.attr('data-text') || '');
  1257. }
  1258. $.cookie('remote_way', $item.attr('data-type'), { expires: 365, path: '/' });
  1259. }).filter('[data-type="' + ($.cookie('remote_way') || 'http') + '"]').trigger('click');
  1260. $('.btn-copy-clone').popup({
  1261. content: '点击复制',
  1262. }).on('click', function(e) {
  1263. e.stopPropagation();
  1264. return false;
  1265. }).each(function(_, btnCopy) {
  1266. var $btnCopy = $(btnCopy);
  1267. new Clipboard(btnCopy).on('success', function() {
  1268. $btnCopy.popup('destroy').popup({
  1269. content: '已复制',
  1270. on: 'manual'
  1271. }).popup('show');
  1272. setTimeout(function() {
  1273. $btnCopy.popup('destroy').popup({
  1274. content: '点击复制'
  1275. });
  1276. }, 2000);
  1277. });
  1278. });
  1279. var $downloadBtn= $('.unlogin-download-btn')
  1280. var $popupContainer = $('.popup-container')
  1281. $downloadBtn.popup({
  1282. popup : $('.custom.popup'),
  1283. position : 'bottom right',
  1284. }).on('click', function(e) {
  1285. $downloadBtn.popup('destroy').popup({
  1286. popup : $('.custom.popup'),
  1287. on: 'manual',
  1288. position : 'bottom right',
  1289. }).popup('show');
  1290. setTimeout(function() {
  1291. $downloadBtn.popup('hide');
  1292. }, 2000);
  1293. })
  1294. })
  1295. </script>
  1296. </div>
  1297. <div class='d-inline pull-right' id='git-project-root-actions'>
  1298. <div class='ui horizontal list repo-action-list d-flex d-align-center repo-action-list-right'>
  1299. <div class='item search-box-container'>
  1300. <div class='ui icon input search-input' id='search-box'>
  1301. <input class='search-file-name' id='search-file-name' maxlength='40' placeholder='搜索文件' type='text'>
  1302. </div>
  1303. <a class='d-flex d-align-center' id='search-file-btn'>
  1304. <span class='iconify' data-icon='gitee:search' style='font-size: 16px;color:#979CAC;margin-right:10px'></span>
  1305. </a>
  1306. <div class='filter-file-container' style='display: none;'></div>
  1307. </div>
  1308. <script>
  1309. $('#git-tree-file').dropdown({
  1310. action: 'hide',
  1311. onHide: function () {
  1312. $('.plus-box').removeClass('click-active')
  1313. },
  1314. onShow: function () {
  1315. $('.plus-box').addClass('click-active')
  1316. }
  1317. });
  1318. $('.disabled-upload-readonly').popup({
  1319. content: "只读目录不允许上传文件",
  1320. className: {
  1321. popup: 'ui popup',
  1322. },
  1323. position: 'bottom center',
  1324. })
  1325. $('.disabled-create-folder').popup({
  1326. content: "只读目录不允许创建目录",
  1327. className: {
  1328. popup: 'ui popup',
  1329. },
  1330. position: 'bottom center',
  1331. })
  1332. $('.disabled-create-file').popup({
  1333. content: "只读目录不允许创建文件",
  1334. className: {
  1335. popup: 'ui popup',
  1336. },
  1337. position: 'bottom center',
  1338. })
  1339. $('.disabled-create-submodule').popup({
  1340. content: "只读目录不允许创建子模块",
  1341. className: {
  1342. popup: 'ui popup',
  1343. },
  1344. position: 'bottom center',
  1345. })
  1346. $('.disabled-upload-readonly, .disabled-create-folder, .disabled-create-file, .disabled-create-submodule').click(function() {
  1347. return false
  1348. })
  1349. </script>
  1350. <style>
  1351. .disabled-upload-readonly, .disabled-create-file, .disabled-create-folder, .disabled-create-submodule {
  1352. background-color: #dcddde !important;
  1353. color: rgba(0, 0, 0, 0.4) !important;
  1354. opacity: 0.3 !important;
  1355. background-image: none !important;
  1356. -webkit-box-shadow: none !important;
  1357. box-shadow: none !important; }
  1358. </style>
  1359. <div class='item toschina-content__hidden webIDE-box' data-content='Web IDE'>
  1360. <a class="ui d-flex d-align-center webide ml-1" target="_blank" href="/-/ide/project/dodboy/88/edit/master/-/jar/dongchenok.jar"><span class='iconify' data-icon='gitee:computer' style='font-size: 16px;color:#979CAC;margin-right:12px'></span>
  1361. </a></div>
  1362. </div>
  1363. <script>
  1364. $('.webIDE-box').popup()
  1365. </script>
  1366. <script src="https://cn-assets.gitee.com/assets/file_search/app-7488efdce7782c80c4936145b910d07e.js"></script>
  1367. </div>
  1368. <div class='breadcrumb_path path-breadcrumb-contrainer' id='git-project-breadcrumb'>
  1369. <div class='ui breadcrumb path project-path-breadcrumb' id='path-breadcrumb'>
  1370. <a data-direction="back" class="section repo-name" style="font-weight: bold" href="/dodboy/88/tree/master">88
  1371. </a><div class='divider'>
  1372. /
  1373. </div>
  1374. <strong>
  1375. <a data-direction="back" class="section" href="/dodboy/88/tree/master/jar"><span class='cblue'>
  1376. jar
  1377. </span>
  1378. </a></strong>
  1379. <div class='divider'>
  1380. /
  1381. </div>
  1382. <strong>
  1383. dongchenok.jar
  1384. </strong>
  1385. <i class='iconfont icon-clone' data-clipboard-text='jar/dongchenok.jar' id='btn-copy-file-path'></i>
  1386. </div>
  1387. <style>
  1388. #btn-copy-file-path {
  1389. vertical-align: middle;
  1390. cursor: pointer;
  1391. }
  1392. </style>
  1393. <script>
  1394. $btnCopy = $('#btn-copy-file-path')
  1395. $btnCopy.popup({
  1396. content: '复制路径'
  1397. })
  1398. if ($btnCopy[0]) {
  1399. new Clipboard($btnCopy[0]).on('success', function() {
  1400. $btnCopy.popup('destroy').popup({
  1401. content: '已复制',
  1402. on: 'manual'
  1403. }).popup('show');
  1404. setTimeout(function () {
  1405. $btnCopy.popup('destroy').popup({
  1406. content: '复制路径'
  1407. });
  1408. }, 2000)
  1409. });
  1410. }
  1411. </script>
  1412. </div>
  1413. <div class='ui horizontal list repo-action-list branches-tags' style='display: none;'>
  1414. <div class='item'>
  1415. <a class="ui blank button" href="/dodboy/88/branches"><i class='iconfont icon-branches'></i>
  1416. 分支 1
  1417. </a></div>
  1418. <div class='item mr-3'>
  1419. <a class="ui blank button" href="/dodboy/88/tags"><i class='iconfont icon-tag'></i>
  1420. 标签 0
  1421. </a></div>
  1422. </div>
  1423. </div>
  1424. <script src="https://cn-assets.gitee.com/webpacks/parse_blob_form_scheme-c196873aa4bc8cd09e53.bundle.js"></script>
  1425. <script>
  1426. if(window.gon.locale == 'en')
  1427. $('.branches-tags').css('margin-top', '12px')
  1428. // 仓库页面切换路径时: 刷新 yaml 错误检查
  1429. $(window).on('pjax-complete:file-show', function () {
  1430. window.parseBlobFormScheme && window.parseBlobFormScheme($('.js-blob-data').data('blob'));
  1431. });
  1432. </script>
  1433. <style>
  1434. .ui.dropdown .menu > .header {
  1435. text-transform: none; }
  1436. </style>
  1437. <script>
  1438. $(function () {
  1439. var $tip = $('#apk-download-tip');
  1440. if (!$tip.length) {
  1441. return;
  1442. }
  1443. $tip.find('.btn-close').on('click', function () {
  1444. $tip.hide();
  1445. });
  1446. });
  1447. (function(){
  1448. function pathAutoRender() {
  1449. var $parent = $('#git-project-bread'),
  1450. $child = $('#git-project-bread').children('.ui.horizontal.list'),
  1451. mainWidth = 0;
  1452. $child.each(function (i,item) {
  1453. mainWidth += $(item).width()
  1454. });
  1455. $('.breadcrumb.path.fork-path').remove();
  1456. if (mainWidth > 995) {
  1457. $('#path-breadcrumb').hide();
  1458. $parent.append('<div class="ui breadcrumb path fork-path">' + $('#path-breadcrumb').html() + '<div/>')
  1459. } else {
  1460. $('#path-breadcrumb').show();
  1461. }
  1462. }
  1463. window.pathAutoRender = pathAutoRender;
  1464. pathAutoRender();
  1465. })();
  1466. </script>
  1467. <div class='row column tree-holder' id='tree-holder'>
  1468. <div class='tree-content-holder' id='tree-content-holder'>
  1469. <div class='file_holder'>
  1470. <div class='file_title'>
  1471. <div class='blob-header-title'>
  1472. <div class='blob-description'>
  1473. <i class="iconfont icon-file"></i>
  1474. <span class='file_name' title='dongchenok.jar'>
  1475. dongchenok.jar
  1476. </span>
  1477. <small>568.03 KB</small>
  1478. </div>
  1479. <div class='options'><div class='ui mini buttons basic'>
  1480. <a class="ui button edit-raw" target="_blank" href="/dodboy/88/raw/master/jar/dongchenok.jar">原始数据</a>
  1481. <a class="ui button edit-history" href="/dodboy/88/commits/master/jar/dongchenok.jar">历史</a>
  1482. </div>
  1483. <script>
  1484. "use strict";
  1485. try {
  1486. if((gon.wait_fork!=undefined && gon.wait_fork==true) || (gon.wait_fetch!=undefined && gon.wait_fetch==true)){
  1487. $('.edit-blob').popup({content:"当前仓库正在后台处理中,暂时无法编辑", on: 'hover', delay: { show: 200, hide: 200 }});
  1488. $('.edit-blob').click(function(e){
  1489. e.preventDefault();
  1490. })
  1491. }
  1492. var setUrl = function() {
  1493. var params = window.location.search
  1494. if (params==undefined || $.trim(params).length==0) return;
  1495. $('span.options').children('.basic').find('a').each(function(index,ele){
  1496. var origin_href = $(ele).attr('href');
  1497. if (origin_href!="#" && origin_href.indexOf('?') == -1){
  1498. $(ele).attr('href',origin_href+params);
  1499. }
  1500. });
  1501. }
  1502. setUrl();
  1503. var clipboard = null,
  1504. $btncopy = $("#copy-text");
  1505. clipboard = new Clipboard("#copy-text", {
  1506. text: function(trigger) {
  1507. return $("#blob_raw").val();
  1508. }
  1509. })
  1510. clipboard.on('success', function(e) {
  1511. $btncopy.popup('hide');
  1512. $btncopy.popup('destroy');
  1513. $btncopy.popup({content: '已复制', position: 'bottom center'});
  1514. $btncopy.popup('show');
  1515. })
  1516. clipboard.on('error', function(e) {
  1517. var giteeModal = new GiteeModalHelper({okText: '确定'});
  1518. giteeModal.alert("一键复制", '复制失败,请手动复制');
  1519. })
  1520. $(function() {
  1521. $btncopy.popup({
  1522. content: '点击复制',
  1523. position: 'bottom center'
  1524. })
  1525. })
  1526. } catch (error) {
  1527. console.log('blob/action error:' + error);
  1528. }
  1529. $('.disabled-edit-readonly').popup({
  1530. content: "只读文件不可编辑",
  1531. className: {
  1532. popup: 'ui popup',
  1533. },
  1534. position: 'bottom center',
  1535. })
  1536. $('.disabled-edit-readonly, .disabled-edit-status').click(function() {
  1537. return false
  1538. })
  1539. $('.has_tooltip').popup({
  1540. position: 'top center'
  1541. });
  1542. </script>
  1543. <style>
  1544. .disabled-edit-readonly, .disabled-edit-status {
  1545. background-color: #dcddde !important;
  1546. color: rgba(0, 0, 0, 0.4) !important;
  1547. opacity: 0.3 !important;
  1548. background-image: none !important;
  1549. -webkit-box-shadow: none !important;
  1550. box-shadow: none !important;
  1551. cursor: default !important; }
  1552. .drawio-iframe-code-card {
  1553. position: relative; }
  1554. .drawio-iframe-code-card textarea {
  1555. width: 100%;
  1556. height: 140px;
  1557. resize: none; }
  1558. .drawio-iframe-code-card .icon-clone {
  1559. position: absolute;
  1560. right: 32px;
  1561. bottom: 32px; }
  1562. .drawio-iframe-code-card iframe {
  1563. border-radius: 2px;
  1564. border: 1px solid #DEDEDF; }
  1565. </style>
  1566. </div>
  1567. </div>
  1568. <div class='blob-header-title mt-1 ubblock_tip'>
  1569. </div>
  1570. <div class='contributor-description'><span class='recent-commit' style='margin-top: 0.7rem'>
  1571. <a class="commit-author-link js-popover-card " data-username="dongchenys" href="/dongchenys">dongchenys</a>
  1572. <span>提交于</span>
  1573. <span class='timeago commit-date' title='2024-03-26 11:33:03 +0000'>
  1574. 2024-03-26 11:33
  1575. </span>
  1576. .
  1577. <a href="/dodboy/88/commit/cac94bf78b9ca7554e1ebd07b8dda59661a61b01">1</a>
  1578. </span>
  1579. </div>
  1580. </div>
  1581. <div class='clearfix'></div>
  1582. <div class='file_content blob_file'>
  1583. <center>
  1584. <a href="/dodboy/88/raw/master/jar/dongchenok.jar"><div class='padded'>
  1585. <h4>
  1586. <i class='icon-download-alt'></i>
  1587. <br>
  1588. 下载 (568.03 KB)
  1589. </h4>
  1590. </div>
  1591. </a></center>
  1592. </div>
  1593. </div>
  1594. </div>
  1595. <div class='tree_progress'></div>
  1596. <div class='ui small modal' id='modal-linejump'>
  1597. <div class='ui custom form content'>
  1598. <div class='field'>
  1599. <div class='ui right action input'>
  1600. <input placeholder='跳转至某一行...' type='number'>
  1601. <div class='ui orange button'>
  1602. 跳转
  1603. </div>
  1604. </div>
  1605. </div>
  1606. </div>
  1607. </div>
  1608. <div class='complaint'>
  1609. <div class='ui modal small form' id='landing-comments-complaint-modal'>
  1610. <i class='iconfont icon-close close'></i>
  1611. <div class='header'>
  1612. 举报
  1613. </div>
  1614. <div class='content'>
  1615. <div class='appeal-success-tip hide'>
  1616. <i class='iconfont icon-ic_msg_success'></i>
  1617. <div class='appeal-success-text'>
  1618. 举报成功
  1619. </div>
  1620. <span>
  1621. 我们将于2个工作日内通过站内信反馈结果给你!
  1622. </span>
  1623. </div>
  1624. <div class='appeal-tip'>
  1625. 请认真填写举报原因,尽可能描述详细。
  1626. </div>
  1627. <div class='ui form appeal-form'>
  1628. <div class='inline field'>
  1629. <label class='left-part appeal-type-wrap'>
  1630. 举报类型
  1631. </label>
  1632. <div class='ui dropdown selection' id='appeal-comments-types'>
  1633. <div class='text default'>
  1634. 请选择举报类型
  1635. </div>
  1636. <i class='dropdown icon'></i>
  1637. <div class='menu'></div>
  1638. </div>
  1639. </div>
  1640. <div class='inline field'>
  1641. <label class='left-part'>
  1642. 举报原因
  1643. </label>
  1644. <textarea class='appeal-reason' id='appeal-comment-reason' name='msg' placeholder='请说明举报原因' rows='3'></textarea>
  1645. </div>
  1646. <div class='ui message callback-msg hide'></div>
  1647. <div class='ui small error text message exceeded-size-tip'></div>
  1648. </div>
  1649. </div>
  1650. <div class='actions'>
  1651. <div class='ui button blank cancel'>
  1652. 取消
  1653. </div>
  1654. <div class='ui orange icon button disabled ok' id='complaint-comment-confirm'>
  1655. 发送
  1656. </div>
  1657. </div>
  1658. </div>
  1659. <script>
  1660. var $complaintCommentsModal = $('#landing-comments-complaint-modal'),
  1661. $complainCommentType = $complaintCommentsModal.find('#appeal-comments-types'),
  1662. $complaintModalTip = $complaintCommentsModal.find('.callback-msg'),
  1663. $complaintCommentsContent = $complaintCommentsModal.find('.appeal-reason'),
  1664. $complaintCommentBtn = $complaintCommentsModal.find('#complaint-comment-confirm'),
  1665. complaintSending = false,
  1666. initedCommentsType = false;
  1667. function initCommentsTypeList() {
  1668. if (!initedCommentsType) {
  1669. $.ajax({
  1670. url: "/appeals/fetch_types",
  1671. method: 'get',
  1672. data: {'type': 'comment'},
  1673. success: function (data) {
  1674. var result = '';
  1675. for (var i = 0; i < data.length; i++) {
  1676. result = result + "<div class='item' data-value='" + data[i].id + "'>" + data[i].name + "</div>";
  1677. }
  1678. $complainCommentType.find('.menu').html(result);
  1679. }
  1680. });
  1681. $complainCommentType.dropdown({showOnFocus: false});
  1682. initedCommentsType = true;
  1683. }
  1684. }
  1685. $complainCommentType.on('click', function() {
  1686. $complaintCommentsModal.modal({
  1687. autofocus: false,
  1688. onApprove: function() {
  1689. return false;
  1690. },
  1691. onHidden: function() {
  1692. restoreCommonentDefault();
  1693. }
  1694. }).modal('show');
  1695. });
  1696. $complaintCommentsContent.on('change keyup', function(e) {
  1697. var content = $(this).val();
  1698. if ($.trim(content).length > 0 && $complainCommentType.dropdown('get value').length > 0 ) {
  1699. $complaintCommentBtn.removeClass('disabled');
  1700. return;
  1701. }
  1702. $complaintCommentBtn.addClass('disabled');
  1703. });
  1704. $complainCommentType.dropdown({
  1705. showOnFocus: false,
  1706. onChange: function(value, text, $selectedItem) {
  1707. if (value.length > 0 && $.trim($complaintCommentsContent.val()).length > 0) {
  1708. $complaintCommentBtn.removeClass('disabled');
  1709. return
  1710. }
  1711. $complaintCommentBtn.addClass('disabled');
  1712. }
  1713. });
  1714. function restoreCommonentDefault() {
  1715. $complainCommentType.dropdown('restore defaults');
  1716. $complaintCommentsContent.val('');
  1717. $('.exceeded-size-tip').text('').hide();
  1718. $complaintModalTip.text('').hide();
  1719. setTimeout(function() {
  1720. setCommentSendTip(false);
  1721. }, 1500);
  1722. }
  1723. $complaintCommentBtn.on('click',function(e){
  1724. var reason = $complaintCommentsContent.val();
  1725. var appealableId = $('#landing-comments-complaint-modal').attr('data-id');
  1726. if (complaintSending) {
  1727. return;
  1728. }
  1729. var appealType = $complainCommentType.dropdown('get value');
  1730. var formData = new FormData();
  1731. formData.append('appeal_type_id', appealType);
  1732. formData.append('reason', reason);
  1733. formData.append('appeal_type','Note');
  1734. formData.append('target_id',appealableId);
  1735. $.ajax({
  1736. type: 'POST',
  1737. url: "/appeals",
  1738. cache: false,
  1739. contentType: false,
  1740. processData: false,
  1741. data: formData,
  1742. beforeSend: function() {
  1743. setCommentSendStatus(true);
  1744. },
  1745. success: function(res) {
  1746. if (res.status == 200) {
  1747. setCommentSendTip(true);
  1748. setTimeout(function() {
  1749. $complaintCommentsModal.modal('hide');
  1750. restoreCommonentDefault();
  1751. }, 3000);
  1752. }
  1753. setCommentSendStatus(false);
  1754. },
  1755. error: function(err) {
  1756. showCommonTips(err.responseJSON.message, 'error');
  1757. setCommentSendStatus(false);
  1758. }
  1759. })
  1760. });
  1761. function showCommonTips(text, type) {
  1762. $complaintModalTip.text(text).show();
  1763. if (type == 'error') {
  1764. $complaintModalTip.removeClass('success').addClass('error');
  1765. } else {
  1766. $complaintModalTip.removeClass('error').addClass('success');
  1767. }
  1768. }
  1769. function setCommentSendStatus(value) {
  1770. complaintSending = value;
  1771. if (complaintSending) {
  1772. $complaintCommentBtn.addClass('loading');
  1773. $complaintCommentsContent.attr('readonly', true);
  1774. $complainCommentType.attr('readonly', true);
  1775. } else {
  1776. $complaintCommentBtn.removeClass('loading');
  1777. $complaintCommentsContent.attr('readonly', false);
  1778. $complainCommentType.attr('readonly', false);
  1779. }
  1780. }
  1781. function setCommentSendTip(value) {
  1782. if (value) {
  1783. $('.appeal-success-tip').removeClass('hide');
  1784. $('.appeal-tip').addClass('hide');
  1785. $('.appeal-form').addClass('hide');
  1786. $('#landing-comments-complaint-modal .actions').addClass('hide');
  1787. } else {
  1788. $('.appeal-success-tip').addClass('hide');
  1789. $('.appeal-tip').removeClass('hide');
  1790. $('.appeal-form').removeClass('hide');
  1791. $('#landing-comments-complaint-modal .actions').removeClass('hide');
  1792. }
  1793. }
  1794. </script>
  1795. <div class='ui small modal' id='misjudgment_appeal_modal'>
  1796. <i class='close icon'></i>
  1797. <div class='header dividing ui'>
  1798. 误判申诉
  1799. </div>
  1800. <div class='content'>
  1801. <p>此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。</p>
  1802. <p>如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。</p>
  1803. <div class='buttons'>
  1804. <div class='ui button blank cancel'>取消</div>
  1805. <div class='ui button orange submit'>提交</div>
  1806. </div>
  1807. </div>
  1808. </div>
  1809. <style>
  1810. #misjudgment_appeal_modal .buttons {
  1811. float: right;
  1812. margin-top: 30px;
  1813. margin-bottom: 20px; }
  1814. #misjudgment_appeal_modal .buttons .cancel {
  1815. margin-right: 20px; }
  1816. </style>
  1817. <script>
  1818. var $misjudgmentAppealModal = $('#misjudgment_appeal_modal');
  1819. $('.cancel').on('click',function(){
  1820. $misjudgmentAppealModal.modal('hide');
  1821. });
  1822. var $jsSubmitAppeal = $misjudgmentAppealModal.find('.submit')
  1823. $jsSubmitAppeal.on('click', function(e) {
  1824. e.preventDefault();
  1825. $(this).addClass('loading').addClass('disabled');
  1826. var type = $(this).attr('data-type');
  1827. var id = $(this).attr('data-id');
  1828. var projectId = $(this).attr('data-project-id');
  1829. var appealType = $(this).attr('data-appeal-type');
  1830. $.ajax({
  1831. type: "PUT",
  1832. url: "/misjudgment_appeal",
  1833. data: {
  1834. type: type,
  1835. id: id,
  1836. project_id: projectId,
  1837. appeal_type: appealType
  1838. },
  1839. success: function(data) {
  1840. Flash.info('提交成功');
  1841. $jsSubmitAppeal.removeClass('loading');
  1842. $misjudgmentAppealModal.modal('hide');
  1843. location.reload()
  1844. },
  1845. error: function(e) {
  1846. Flash.error('提交失败:'+e.responseText);
  1847. $jsSubmitAppeal.removeClass('loading').removeClass('disabled');
  1848. location.reload()
  1849. }
  1850. });
  1851. })
  1852. </script>
  1853. </div>
  1854. <script>
  1855. "use strict";
  1856. $('.js-check-star').checkbox('set unchecked')
  1857. </script>
  1858. </div>
  1859. </div>
  1860. </div>
  1861. <div class='four wide column' style='display: none;'>
  1862. <div class='project__right-side'>
  1863. <div class='side-item intro'>
  1864. <div class='header'>
  1865. <h4>简介</h4>
  1866. </div>
  1867. <div class='content'>
  1868. <span class='git-project-desc-text text-muted'>暂无描述</span>
  1869. <a class='hide spread' href='javascript:void(0);'>
  1870. 展开
  1871. <i class='caret down icon'></i>
  1872. </a>
  1873. <a class='retract hide' href='javascript:void(0);'>
  1874. 收起
  1875. <i class='caret up icon'></i>
  1876. </a>
  1877. <div class='intro-list'>
  1878. <div class='blank d-flex d-flex-between dropdown item js-project-label_show label-list-line-feed project-label-list ui' data-labels='[]' data-url='/dodboy/88/update_description'>
  1879. <div class='mixed-label'>
  1880. </div>
  1881. <div class='default'>暂无标签</div>
  1882. </div>
  1883. <div class='hide item'>
  1884. <i class='iconfont icon-link'></i>
  1885. <span class='git-project-homepage'>
  1886. <a rel="nofollow" id="homepage" target="_blank" href="/dodboy/88/blob/master/jar/dongchenok.jar">/dodboy/88/blob/master/jar/dongchenok.jar</a>
  1887. </span>
  1888. </div>
  1889. <div class='item'>
  1890. <i class='iconfont icon-tag-program'></i>
  1891. <span class='summary-languages'>
  1892. JavaScript
  1893. </span>
  1894. <div class='ui popup summary-languages-popup'>
  1895. <div class='row'>
  1896. <div class='lang'>
  1897. <a href="/explore/all?lang=JavaScript">JavaScript</a>
  1898. </div>
  1899. <div class='lang-bar'>
  1900. <div class='bar' style='width: 100.0%;'></div>
  1901. </div>
  1902. <a class="percentage" href="/explore/all?lang=JavaScript">100.0%</a>
  1903. </div>
  1904. </div>
  1905. </div>
  1906. <div class='item box-licence'>
  1907. <i class='iconfont icon-licence'></i>
  1908. <span id='license-popup'>
  1909. GPL-2.0
  1910. </span>
  1911. <div class='ui popup dark'>使用 GPL-2.0 开源许可协议</div>
  1912. </div>
  1913. </div>
  1914. </div>
  1915. <div class='content intro-form'>
  1916. <div class='ui small input'>
  1917. <textarea name='project[description]' placeholder='描述' rows='5'></textarea>
  1918. </div>
  1919. <div class='ui small input'>
  1920. <input data-regex-value='(^$)|(^(http|https):\/\/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).*)|(^(http|https):\/\/[a-zA-Z0-9]+([_\-\.]{1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,10}(:[0-9]{1,10})?(\?.*)?(\/.*)?$)' name='project[homepage]' placeholder='主页(eg: https://gitee.com)' type='text'>
  1921. </div>
  1922. <button class='ui orange button mt-1 btn-save'>
  1923. 保存更改
  1924. </button>
  1925. <div class='ui blank button btn-cancel-edit'>
  1926. 取消
  1927. </div>
  1928. </div>
  1929. </div>
  1930. <div class='side-item release'>
  1931. <div class='header'>
  1932. <h4>发行版</h4>
  1933. </div>
  1934. <div class='content'>
  1935. <span class='text-muted'>
  1936. 暂无发行版
  1937. </span>
  1938. </div>
  1939. </div>
  1940. <div class='side-item contrib' data-url='/dodboy/88/contributors_count?ref=master' id='contributor'>
  1941. <div class='header'>
  1942. <h4>
  1943. 贡献者
  1944. <span class='text-muted' id='contributor-count'></span>
  1945. </h4>
  1946. <a class="ui link button pull-right" href="/dodboy/88/contributors?ref=master">全部</a>
  1947. </div>
  1948. <div class='content' id='contributor-list'></div>
  1949. <div class='ui active centered inline loader' id='contributor-loader'></div>
  1950. </div>
  1951. <div class='side-item events' data-url='/dodboy/88/events.json' id='proj-events'>
  1952. <div class='header'>
  1953. <h4>近期动态</h4>
  1954. </div>
  1955. <div class='content'>
  1956. <div class='ui comments' id='event-list'></div>
  1957. <a class="loadmore hide" href="javascript:void(0);">加载更多
  1958. <i class='icon dropdown'></i>
  1959. </a><center>
  1960. <div class='text-muted nomore hide'>不能加载更多了</div>
  1961. <div class='ui inline loader active'></div>
  1962. </center>
  1963. </div>
  1964. </div>
  1965. </div>
  1966. <div class='ui modal tiny' id='edit-project-description'>
  1967. <i class='iconfont icon-close close'></i>
  1968. <div class='header'>编辑仓库简介</div>
  1969. <div class='content'>
  1970. <div class='item mb-2'>
  1971. <div class='title label'>简介内容</div>
  1972. <div class='ui small input'>
  1973. <textarea maxlength='200' name='project[description]' placeholder='描述' rows='5'></textarea>
  1974. </div>
  1975. </div>
  1976. <div class='item mb-2'>
  1977. <div class='title label'>主页</div>
  1978. <div class='ui small input'>
  1979. <input data-regex-value='(^$)|(^(http|https):\/\/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).*)|(^(http|https):\/\/[a-zA-Z0-9]+([_\-\.]{1}[a-zA-Z0-9]+)*\.[a-zA-Z]{2,10}(:[0-9]{1,10})?(\?.*)?(\/.*)?$)' name='project[homepage]' placeholder='主页(eg: https://gitee.com)' type='text'>
  1980. </div>
  1981. </div>
  1982. </div>
  1983. <div class='actions'>
  1984. <button class='ui button blank cancel'>取消</button>
  1985. <button class='ui button orange btn-save'>保存更改</button>
  1986. </div>
  1987. </div>
  1988. <style>
  1989. #license-popup {
  1990. color: #005980;
  1991. cursor: pointer; }
  1992. </style>
  1993. <script>
  1994. window.gon.projectRightSide = {
  1995. homepage: null,
  1996. description: "",
  1997. url: '/dodboy/88/update_description',
  1998. i18n: {
  1999. invalidHomepage: '不是有效的 http 地址',
  2000. descriptionLimitExceeded: '简介长度不得超过%{limit}个字符',
  2001. noDescription: '暂无描述',
  2002. noPermission: '无权限操作!',
  2003. requestError: '修改发生错误,请稍后重试!'
  2004. }
  2005. }
  2006. window.gon.cloneArrSelectedLabel = [] || []
  2007. $(function () {
  2008. var $editModal = $('#edit-project-description')
  2009. $editModal.modal({
  2010. onShow: function () {
  2011. window.globalUtils.getFocus($editModal.find('textarea'))
  2012. }
  2013. })
  2014. $('.project__right-side').on('click', '.header .btn-edit', function () {
  2015. $editModal.modal('show')
  2016. })
  2017. $('#license-popup').popup({ position: 'bottom center', lastResort: 'bottom center' })
  2018. $('.js-project-label_show').projectLabel({
  2019. i18n: {
  2020. empty: "标签名不能为空",
  2021. verify: "标签名只允许包含中文、字母、数字或者中划线(-),不能以中划线开头,且长度少于35个字符",
  2022. max: "最多选择 5 个标签"
  2023. }
  2024. })
  2025. })
  2026. </script>
  2027. </div>
  2028. </div>
  2029. </div>
  2030. <script>
  2031. (function() {
  2032. $(function() {
  2033. Tree.init();
  2034. return TreeCommentActions.init();
  2035. });
  2036. }).call(this);
  2037. </script>
  2038. <script>
  2039. function scrollToReadmeBox() {
  2040. var readmeBox = document.getElementById('git-readme');
  2041. if (readmeBox) {
  2042. const topPos = readmeBox.offsetTop;
  2043. window.scrollTo({ top: topPos, behavior: "smooth" });
  2044. }
  2045. }
  2046. $(".box-licence").click(function(event) {
  2047. $('.lisence-content').show()
  2048. $('.lisence-edit').show()
  2049. $('.readme-content').hide()
  2050. $('.readme-edit').hide()
  2051. $('.file_title_license').addClass('active-title')
  2052. $('.file_title_readme').removeClass('active-title')
  2053. scrollToReadmeBox()
  2054. });
  2055. </script>
  2056. <script src="/static/javascripts/file-icons.js"></script>
  2057. </div>
  2058. <script>
  2059. (function() {
  2060. var donateModal;
  2061. Gitee.modalHelper = new GiteeModalHelper({
  2062. alertText: '提示',
  2063. okText: '确定'
  2064. });
  2065. donateModal = new ProjectDonateModal({
  2066. el: '#project-donate-modal',
  2067. alipayUrl: '/dodboy/88/alipay',
  2068. wepayUrl: '/dodboy/88/wepay',
  2069. nameIsBlank: '名称不能为空',
  2070. nameTooLong: '名称过长(最多为 36 个字符)',
  2071. modalHelper: Gitee.modalHelper
  2072. });
  2073. if (null === 'true') {
  2074. donateModal.show();
  2075. }
  2076. $('#project-donate').on('click', function() {
  2077. return donateModal.show();
  2078. });
  2079. }).call(this);
  2080. </script>
  2081. <script>
  2082. Tree.initHighlightTheme('white')
  2083. </script>
  2084. </div>
  2085. <div class='gitee-project-extension'>
  2086. <div class='extension public'>1</div>
  2087. <div class='extension https'>https://gitee.com/dodboy/88.git</div>
  2088. <div class='extension ssh'>git@gitee.com:dodboy/88.git</div>
  2089. <div class='extension namespace'>dodboy</div>
  2090. <div class='extension repo'>88</div>
  2091. <div class='extension name'>88</div>
  2092. <div class='extension branch'>master</div>
  2093. </div>
  2094. <script>
  2095. $(function() {
  2096. GitLab.GfmAutoComplete.dataSource = "/dodboy/88/autocomplete_sources"
  2097. GitLab.GfmAutoComplete.Emoji.assetBase = '/assets/emoji'
  2098. GitLab.GfmAutoComplete.setup();
  2099. });
  2100. </script>
  2101. <footer id='git-footer-main'>
  2102. <div class='ui container'>
  2103. <div class='logo-row'>
  2104. <a href="https://gitee.com"><img alt='Gitee - 基于 Git 的代码托管和研发协作平台' class='logo-img' src='/static/images/logo-black.svg?t=158106666'>
  2105. </a></div>
  2106. <div class='name-important'>
  2107. 深圳市奥思网络科技有限公司版权所有
  2108. </div>
  2109. <div class='ui two column grid d-flex-center'>
  2110. <div class='eight wide column git-footer-left'>
  2111. <div class='ui four column grid' id='footer-left'>
  2112. <div class='column'>
  2113. <div class='ui link list'>
  2114. <div class='item'>
  2115. <a class="item" href="/all-about-git">Git 大全</a>
  2116. </div>
  2117. <div class='item'>
  2118. <a class="item" rel="nofollow" href="https://oschina.gitee.io/learn-git-branching/">Git 命令学习</a>
  2119. </div>
  2120. <div class='item'>
  2121. <a class="item" rel="nofollow" href="https://copycat.gitee.com/">CopyCat 代码克隆检测</a>
  2122. </div>
  2123. <div class='item'>
  2124. <a class="item" href="/appclient">APP与插件下载</a>
  2125. </div>
  2126. </div>
  2127. </div>
  2128. <div class='column'>
  2129. <div class='ui link list'>
  2130. <div class='item'>
  2131. <a class="item" href="/gitee_reward">Gitee Reward</a>
  2132. </div>
  2133. <div class='item'>
  2134. <a class="item" href="/gitee-stars">Gitee 封面人物</a>
  2135. </div>
  2136. <div class='item'>
  2137. <a class="item" href="/gvp">GVP 项目</a>
  2138. </div>
  2139. <div class='item'>
  2140. <a class="item" rel="nofollow" href="https://blog.gitee.com/">Gitee 博客</a>
  2141. </div>
  2142. <div class='item'>
  2143. <a class="item" href="/enterprises#nonprofit-plan">Gitee 公益计划</a>
  2144. </div>
  2145. <div class='item'>
  2146. <a class="item" href="https://gitee.com/features/gitee-go">Gitee 持续集成</a>
  2147. </div>
  2148. </div>
  2149. </div>
  2150. <div class='column'>
  2151. <div class='ui link list'>
  2152. <div class='item'>
  2153. <a class="item" href="/api/v5/swagger">OpenAPI</a>
  2154. </div>
  2155. <div class='item'>
  2156. <a class="item" href="https://help.gitee.com">帮助文档</a>
  2157. </div>
  2158. <div class='item'>
  2159. <a class="item" href="/self_services">在线自助服务</a>
  2160. </div>
  2161. <div class='item'>
  2162. <a class="item" href="/help/articles/4378">更新日志</a>
  2163. </div>
  2164. </div>
  2165. </div>
  2166. <div class='column'>
  2167. <div class='ui link list'>
  2168. <div class='item'>
  2169. <a class="item" href="/about_us">关于我们</a>
  2170. </div>
  2171. <div class='item'>
  2172. <a class="item" rel="nofollow" href="https://www.oschina.net/news/131099/oschina-hiring">加入我们</a>
  2173. </div>
  2174. <div class='item'>
  2175. <a class="item" href="/terms">使用条款</a>
  2176. </div>
  2177. <div class='item'>
  2178. <a class="item" href="/oschina/git-osc/issues">意见建议</a>
  2179. </div>
  2180. <div class='item'>
  2181. <a class="item" href="/links.html">合作伙伴</a>
  2182. </div>
  2183. </div>
  2184. </div>
  2185. </div>
  2186. </div>
  2187. <div class='eight wide column right aligned followus git-footer-right'>
  2188. <div class='qrcode mr-1'>
  2189. <div class='qrcode-box'>
  2190. <img alt="技术交流QQ群" src="https://cn-assets.gitee.com/assets/contact_qr-5e2c2a8da453396590e56a545bce4974.jpg" />
  2191. </div>
  2192. <p class='mt-1 mini_app-text'>技术交流QQ群</p>
  2193. </div>
  2194. <div class='qrcode'>
  2195. <div class='qrcode-box'>
  2196. <img alt="微信服务号" class="weixin-qr" src="https://cn-assets.gitee.com/assets/qrcode-weixin@2x-b74cc97a2ea80123ea53a737f709836d.png" />
  2197. </div>
  2198. <p class='mt-1 weixin-text'>微信服务号</p>
  2199. </div>
  2200. <div class='phone-and-qq column'>
  2201. <div class='ui list official-support-container'>
  2202. <div class='item'></div>
  2203. <div class='item mail-and-zhihu'>
  2204. <a rel="nofollow" href="mailto: client@oschina.cn"><i class='iconfont icon-msg-mail'></i>
  2205. <span id='git-footer-email'>client#oschina.cn</span>
  2206. </a></div>
  2207. <div class='item tel'>
  2208. <a>
  2209. <i class='iconfont icon-tel'></i>
  2210. <span>企业版在线使用:400-606-0201</span>
  2211. </a>
  2212. </div>
  2213. <div class='item tel'>
  2214. <a class='d-flex'>
  2215. <i class='iconfont icon-tel mt-05 mr-05'></i>
  2216. <span>专业版私有部署:</span>
  2217. <div>
  2218. <div>13670252304</div>
  2219. <div>13352947997</div>
  2220. </div>
  2221. </a>
  2222. </div>
  2223. </div>
  2224. </div>
  2225. </div>
  2226. </div>
  2227. </div>
  2228. <div class='bottombar'>
  2229. <div class='ui container'>
  2230. <div class='ui d-flex d-flex-between'>
  2231. <div class='seven wide column partner d-flex'>
  2232. <div class='open-atom d-flex-center'>
  2233. <img class="logo-openatom mr-1" alt="开放原子开源基金会" src="https://cn-assets.gitee.com/assets/logo-openatom-d083391cc8a54e283529f3fc11cc38ca.svg" />
  2234. <a target="_blank" rel="nofollow" href="https://www.openatom.org/">开放原子开源基金会</a>
  2235. <div class='sub-title ml-1'>合作代码托管平台</div>
  2236. </div>
  2237. <div class='report-12377 d-flex-center ml-3'>
  2238. <img class="report-12377__logo mr-1" alt="违法和不良信息举报中心" src="https://cn-assets.gitee.com/assets/12377@2x-1aa42ed2d2256f82a61ecf57be1ec244.png" />
  2239. <a target="_blank" rel="nofollow" href="https://12377.cn">违法和不良信息举报中心</a>
  2240. </div>
  2241. <div class='copyright ml-3'>
  2242. <a rel="nofollow" href="http://beian.miit.gov.cn/">粤ICP备12009483号</a>
  2243. </div>
  2244. </div>
  2245. <div class='nine wide column right aligned'>
  2246. <i class='icon world'></i>
  2247. <a href="/language/zh-CN">简 体</a>
  2248. /
  2249. <a href="/language/zh-TW">繁 體</a>
  2250. /
  2251. <a href="/language/en">English</a>
  2252. </div>
  2253. </div>
  2254. </div>
  2255. </div>
  2256. </footer>
  2257. <script>
  2258. var officialEmail = $('#git-footer-email').text()
  2259. $('#git-footer-main .icon-popup').popup({ position: 'bottom center' })
  2260. $('#git-footer-email').text(officialEmail.replace('#', '@'))
  2261. window.gon.popover_card_locale = {
  2262. follow:"关注",
  2263. unfollow:"已关注",
  2264. gvp_title: "GVP - Gitee 最有价值开源项目",
  2265. project: "项目",
  2266. org: "开源组织",
  2267. member: "",
  2268. author: "作者",
  2269. user_blocked: "该用户已被屏蔽或已注销",
  2270. net_error: "网络错误",
  2271. unknown_exception: "未知异常"
  2272. }
  2273. window.gon.select_message = {
  2274. placeholder: "请输入个人空间地址或完整的邮箱地址"
  2275. }
  2276. </script>
  2277. <script src="https://cn-assets.gitee.com/webpacks/popover_card-d759637c3dbef944c008.bundle.js"></script>
  2278. <link rel="stylesheet" media="all" href="https://cn-assets.gitee.com/webpacks/css/gitee_nps-ae0dbee40f6ddc72015a.css" />
  2279. <script src="https://cn-assets.gitee.com/webpacks/gitee_nps-fb459ed1da83f9bc24dc.bundle.js"></script>
  2280. <script src="https://cn-assets.gitee.com/webpacks/gitee_icons-a30057b5990085b2c57b.bundle.js"></script>
  2281. <div class='side-toolbar'>
  2282. <div class='button toolbar-help'>
  2283. <i class='iconfont icon-help'></i>
  2284. </div>
  2285. <div class='ui popup left center dark'>点此查找更多帮助</div>
  2286. <div class='toolbar-help-dialog'>
  2287. <div class='toolbar-dialog-header'>
  2288. <h3 class='toolbar-dialog-title'>搜索帮助</h3>
  2289. <form class="toolbar-help-search-form" action="/help/load_keywords_data" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
  2290. <div class='ui icon input fluid toolbar-help-search'>
  2291. <input name='keywords' placeholder='请输入产品名称或问题' type='text'>
  2292. <i class='icon search'></i>
  2293. </div>
  2294. </form>
  2295. <i class='iconfont icon-close toolbar-dialog-close-icon'></i>
  2296. </div>
  2297. <div class='toolbar-dialog-content'>
  2298. <div class='toolbar-help-hot-search'>
  2299. <div class='toolbar-roll'>
  2300. <a class="init active" title="Git 命令在线学习" href="https://oschina.gitee.io/learn-git-branching/?utm_source==gitee-help-widget"><i class='Blue icon icon-command iconfont'></i>
  2301. <span>Git 命令在线学习</span>
  2302. </a><a class="init " title="如何在 Gitee 导入 GitHub 仓库" href="https://gitee.com/help/articles/4261?utm_source==gitee-help-widget"><i class='icon icon-clipboard iconfont orange'></i>
  2303. <span>如何在 Gitee 导入 GitHub 仓库</span>
  2304. </a></div>
  2305. <div class='toolbar-list'>
  2306. <div class='toolbar-list-item'>
  2307. <a href="/help/articles/4114">Git 仓库基础操作</a>
  2308. </div>
  2309. <div class='toolbar-list-item'>
  2310. <a href="/help/articles/4166">企业版和社区版功能对比</a>
  2311. </div>
  2312. <div class='toolbar-list-item'>
  2313. <a href="/help/articles/4191">SSH 公钥设置</a>
  2314. </div>
  2315. <div class='toolbar-list-item'>
  2316. <a href="/help/articles/4194">如何处理代码冲突</a>
  2317. </div>
  2318. <div class='toolbar-list-item'>
  2319. <a href="/help/articles/4232">仓库体积过大,如何减小?</a>
  2320. </div>
  2321. <div class='toolbar-list-item'>
  2322. <a href="/help/articles/4279">如何找回被删除的仓库数据</a>
  2323. </div>
  2324. <div class='toolbar-list-item'>
  2325. <a href="/help/articles/4283">Gitee 产品配额说明</a>
  2326. </div>
  2327. <div class='toolbar-list-item'>
  2328. <a href="/help/articles/4284">GitHub仓库快速导入Gitee及同步更新</a>
  2329. </div>
  2330. <div class='toolbar-list-item'>
  2331. <a href="/help/articles/4328">什么是 Release(发行版)</a>
  2332. </div>
  2333. <div class='toolbar-list-item'>
  2334. <a href="/help/articles/4354">将 PHP 项目自动发布到 packagist.org</a>
  2335. </div>
  2336. </div>
  2337. </div>
  2338. <div class='toolbar-help-search-reseult'></div>
  2339. </div>
  2340. </div>
  2341. <script>
  2342. var opt = { position: 'left center'};
  2343. var $helpSideToolbar = $('.button.toolbar-help');
  2344. var $toolbarRoll = $('.toolbar-roll');
  2345. $(function() {
  2346. if (false) {
  2347. $helpSideToolbar.popup(opt).popup({lastResort:'left center'})
  2348. } else {
  2349. $helpSideToolbar.popup({lastResort:'left center'}).popup('show', opt);
  2350. setTimeout(function() {
  2351. $helpSideToolbar.popup('hide', opt);
  2352. }, 3000);
  2353. }
  2354. if ($toolbarRoll.length) {
  2355. setInterval(function() {
  2356. var $nextActiveLink = $toolbarRoll.find('a.active').next();
  2357. if (!$nextActiveLink.length) {
  2358. $nextActiveLink = $toolbarRoll.find('a:first-child');
  2359. }
  2360. $nextActiveLink.attr('class', 'active').siblings().removeClass('active init');
  2361. }, 5000);
  2362. }
  2363. })
  2364. </script>
  2365. <div class='popup button' id='home-comment'>
  2366. <i class='iconfont icon-comment'></i>
  2367. </div>
  2368. <div class='ui popup dark'>评论</div>
  2369. <div class='toolbar-appeal popup button'>
  2370. <i class='iconfont icon-report'></i>
  2371. </div>
  2372. <div class='ui popup dark'>
  2373. 仓库举报
  2374. </div>
  2375. <script>
  2376. $('.toolbar-appeal').popup({ position: 'left center' });
  2377. </script>
  2378. <div class='button gotop popup' id='gotop'>
  2379. <i class='iconfont icon-top'></i>
  2380. </div>
  2381. <div class='ui popup dark'>回到顶部</div>
  2382. </div>
  2383. <div class='form modal normal-modal tiny ui' id='unlanding-complaint-modal'>
  2384. <i class='iconfont icon-close close'></i>
  2385. <div class='header'>
  2386. 登录提示
  2387. </div>
  2388. <div class='container actions'>
  2389. <div class='content'>
  2390. 该操作需登录 Gitee 帐号,请先登录后再操作。
  2391. </div>
  2392. <div class='ui orange icon large button ok'>
  2393. 立即登录
  2394. </div>
  2395. <div class='ui button blank cancel'>
  2396. 没有帐号,去注册
  2397. </div>
  2398. </div>
  2399. </div>
  2400. <script>
  2401. var $elm = $('.toolbar-appeal');
  2402. $elm.on('click', function() {
  2403. var modals = $("#unlanding-complaint-modal.normal-modal");
  2404. if (modals.length > 1) {
  2405. modals.eq(0).modal('show');
  2406. } else {
  2407. modals.modal('show');
  2408. }
  2409. })
  2410. $("#unlanding-complaint-modal.normal-modal").modal({
  2411. onDeny: function() {
  2412. window.location.href = "/signup?from=";
  2413. },
  2414. onApprove: function() {
  2415. window.location.href = "/login?from=";
  2416. }
  2417. })
  2418. </script>
  2419. <style>
  2420. .side-toolbar .bdsharebuttonbox a {
  2421. font-size: 24px;
  2422. color: white !important;
  2423. opacity: 0.9;
  2424. margin: 6px 6px 0px 6px;
  2425. background-image: none;
  2426. text-indent: 0;
  2427. height: auto;
  2428. width: auto;
  2429. }
  2430. </style>
  2431. <style>
  2432. #udesk_btn a {
  2433. margin: 0px 20px 167px 0px !important;
  2434. }
  2435. </style>
  2436. <script>
  2437. (function() {
  2438. $('#project-user-message').popup({
  2439. position: 'left center'
  2440. });
  2441. }).call(this);
  2442. </script>
  2443. <script>
  2444. Gitee.initSideToolbar({
  2445. hasComment: true,
  2446. commentUrl: '/dodboy/88#tree_comm_title'
  2447. })
  2448. </script>
  2449. <script>
  2450. (function() {
  2451. this.__gac = {
  2452. domain: 'www.oschina.net'
  2453. };
  2454. }).call(this);
  2455. </script>
  2456. <script src="https://cn-assets.gitee.com/webpacks/build_status-a0b08cd330f9f9ab2e6c.bundle.js"></script>
  2457. <script src="https://cn-assets.gitee.com/webpacks/scan_status-9d8541af0799261fce2a.bundle.js"></script>
  2458. <script src="https://cn-assets.gitee.com/webpacks/mermaid_render-a13de7e2b5d6f4663bb5.bundle.js"></script>
  2459. <script src="https://cn-assets.gitee.com/webpacks/check_runs-8fe2f388fec18d6b424e.bundle.js"></script>
  2460. </body>
  2461. </html>