@@ -12,6 +12,7 @@ watch_dirs = [ | |||
"$WORKDIR/cmd", | |||
"$WORKDIR/options", | |||
"$WORKDIR/public", | |||
"$WORKDIR/custom", | |||
] # Directories to watch | |||
watch_exts = [".go", ".ini", ".less"] # Extensions to watch | |||
env_files = [] # Load env vars from files | |||
@@ -50,9 +50,9 @@ coverage.all | |||
/bin | |||
/dist | |||
/custom/* | |||
!/custom/conf | |||
/custom/conf/* | |||
!/custom/conf/public | |||
!/custom/conf/templates | |||
/custom/conf/app.ini | |||
!/custom/conf/app.ini.sample | |||
/data | |||
/indexers | |||
@@ -0,0 +1,218 @@ | |||
.ui .text.yellow a { | |||
color: #fbbd08!important | |||
} | |||
.ui .text.yellow a:hover { | |||
color: #f2711c!important | |||
} | |||
.following.bar #navbar .brand{ | |||
padding-left: 0; | |||
} | |||
.following.bar .brand .ui.mini.image { | |||
width: auto; | |||
height: 30px; | |||
} | |||
.following.bar.dark { | |||
background-color: #001F4A; | |||
} | |||
.ui.secondary.menu.dark .item{ | |||
color: #E5FAFF; | |||
} | |||
.ui.secondary.menu.dark .item:hover{ | |||
color: #40A9FF; | |||
} | |||
.ui.secondary.menu .active.item{ | |||
color: #40A9FF; | |||
border-bottom: 1px solid #40A9FF; | |||
border-radius: 0; | |||
} | |||
.repository:not(.new), .organization:not(.new), .explore, .dashboard { | |||
padding-top: 0px; | |||
} | |||
.dashboard .dashboard-navbar, .organization .organization-header, .explore .repos--seach{ | |||
padding-top:15px; | |||
padding-bottom: 15px; | |||
padding-left: 0; | |||
margin-bottom: 20px; | |||
background-color:#f5f5f6 !important; | |||
border-bottom: 1px solid rgba(34,36,38,.15); | |||
} | |||
.following.bar .text .svg.octicon-triangle-down { | |||
color: #3291F8; | |||
} | |||
.ui .avatar.image { | |||
border-radius: 30px; | |||
} | |||
footer { | |||
background-color: #f5f5f6; | |||
padding-bottom: 1.0rem; | |||
} | |||
.repository .header-wrapper { | |||
background-color: #f5f5f6; | |||
margin-top: 0px; | |||
} | |||
/*moble*/ | |||
.ui.menu:not(.vertical) .item>.button { | |||
color: #FFF; | |||
box-shadow: 0 0 0 1px rgba(255,255,255,.35) inset; | |||
} | |||
/*PC*/ | |||
@media only screen and (min-width: 1200px){ | |||
.following.bar #navbar{ | |||
min-height: 80px; | |||
} | |||
.following.bar #navbar, footer .container { | |||
padding: 0 32px; | |||
} | |||
} | |||
/*start page*/ | |||
.ui.header.section--header{ | |||
font-size: 50px; | |||
font-weight: 300; | |||
text-align: center; | |||
margin-bottom: 1.0em; | |||
} | |||
.ui.header.section--header .sub.header { | |||
font-size: 20px; | |||
line-height: 30px; | |||
color: #9b9b9b; | |||
text-align: center; | |||
color: rgba(255,255,255,.6); | |||
} | |||
.ui.inverted.segment>.ui.header.section--header .sub.header{ | |||
color: rgba(255,255,255,.6); | |||
} | |||
#index-project { | |||
background: #002060; | |||
color: #FFF; | |||
position: relative; | |||
padding-top: 3.0em; | |||
padding-bottom:2.0em | |||
} | |||
#index-project .ui.inverted.segment, #index-project .ui.primary.inverted.segment{ | |||
background:none; | |||
} | |||
.prorow{ | |||
background: rgba(0,27,81,0.8); | |||
} | |||
.flip{ | |||
position:absolute; | |||
left:6px; | |||
right:6px; | |||
top:6px; | |||
bottom:6px; | |||
border:2px solid #ffc000; | |||
border-radius: 12px; | |||
transition: transform 1s cubic-bezier(0.445, 0.05, 0.55, 0.95); | |||
transform: perspective(800px) rotateY(0deg); | |||
transform-style: preserve-3d; | |||
z-index:5; | |||
} | |||
.flip-more{ border-color:#4472c4} | |||
.flip-blue{ border-color:#00b0f0} | |||
.flip-green{ border-color:#00b050} | |||
#index-project .ipros:hover .flip{transform: perspective(800px) rotateY(180deg);} | |||
#index-project .ui.card{ | |||
margin:0 auto; | |||
background:none; | |||
border:none; | |||
box-shadow:none; | |||
} | |||
#index-project .ui.card>.image>img{ | |||
width:auto; | |||
margin:10px auto; | |||
} | |||
#index-project .ui.card>.content, #index-project.ui.cards>.card>.content{ | |||
padding: 0.5em 0.2em; | |||
} | |||
.ui.inverted.segment .ui.card>.content>.header, .ui.inverted.segment .ui.cards>.card>.content>.header{ | |||
color: rgba(255,255,255,.9); | |||
} | |||
.ui.inverted.segment .ui.card .meta, .ui.inverted.segment .ui.cards>.card .meta{ | |||
color: #5b9bd5; | |||
} | |||
.ui.inverted.segment .ui.card>.extra, .ui.inverted.segment .ui.cards>.card>.extra { | |||
color: rgba(255,255,255,.4); | |||
} | |||
#particles{ width: 100%; height:100%; position: absolute; top:0; left:0; right:0; bottom:0;} | |||
footer .ui.vertical.text.menu:first-child{ margin-top: 1em} | |||
footer .ui.vertical.menu .header.item{ background:none} | |||
footer .column{margin-bottom:0!important; padding-bottom:0!important;} | |||
/*explore*/ | |||
.explore .ui.secondary.vertical.pointing.menu, | |||
.explore .ui.secondary.vertical.pointing.menu .item, | |||
.organization .ui.secondary.vertical.pointing.menu, | |||
.organization .ui.secondary.vertical.pointing.menu .item{ | |||
border-right-width: 0; | |||
} | |||
.explore .computer.only .ui.secondary.pointing.menu .item{ | |||
padding-left:0; | |||
} | |||
.ui.repository.list .item .ui.header .metas{ | |||
text-align: right; | |||
} | |||
@media only screen and (max-width:768px){ | |||
.explore .repos--seach{ | |||
margin-bottom:15px; | |||
} | |||
.explore .navbar{ | |||
padding-top: 0px!important; | |||
margin-top: -1.5rem!important; | |||
} | |||
} | |||
/*organization*/ | |||
.organization-info{ | |||
padding-top:15px; | |||
margin-bottom:2.5rem; | |||
} | |||
.organization-info > .container{ | |||
overflow: auto; | |||
background: url(/img/org_bg.png) no-repeat center center #f5f5f6; | |||
padding-top: 30px; | |||
padding-bottom:20px; | |||
background-size: cover; | |||
border-radius: 5px; | |||
border: 1px solid #efefef; | |||
} | |||
.organization.profile #org-info .ui.header{ | |||
font-size: 1.71428571rem; | |||
margin-bottom: 10px; | |||
font-weight: 400; | |||
} | |||
.organization.profile #org-avatar { | |||
width: 80px; | |||
height: 80px; | |||
margin-left: auto; | |||
margin-right: auto; | |||
margin-bottom: 15px; | |||
border: solid 5px #FFF; | |||
} | |||
.organization.profile #org-info .desc { | |||
font-size: 14px; | |||
width: 80%; | |||
margin: 0 auto 10px; | |||
color: #FFF; | |||
} | |||
.organization.teams .ui.attached.segment+.ui.attached.header{ margin-top:0} | |||
@media only screen and (max-width:768px){ | |||
.organization-info{ | |||
padding-top:0; | |||
} | |||
.organization-info > .container{ | |||
margin-left:0!important; | |||
margin-right:0!important; | |||
} | |||
} | |||
.ui.vertical.menu .dropdown.item .menu { | |||
left: 50%; | |||
} |
@@ -0,0 +1,52 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | |||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | |||
viewBox="0 0 192.8 36.9" style="enable-background:new 0 0 192.8 36.9;" xml:space="preserve"> | |||
<style type="text/css"> | |||
.st0{fill:#036EFF;} | |||
.st1{fill:#FFFFFF;} | |||
</style> | |||
<g> | |||
<rect x="104.4" y="5.5" class="st0" width="12" height="25.8"/> | |||
<g> | |||
<path class="st0" d="M27.7,17.5c0,4.2-1,7.5-3.1,10c-2.3,2.9-5.5,4.3-9.7,4.3c-4.2,0-7.5-1.4-9.7-4.3c-2-2.5-3-5.9-3-10.1 | |||
c0-4.3,1-7.7,3-10.3c2.2-2.9,5.4-4.3,9.7-4.3c4.2,0,7.4,1.4,9.7,4.3C26.7,9.8,27.7,13.2,27.7,17.5z M24.2,17.5 | |||
c0-3.2-0.7-5.9-2.2-8C20.4,7.2,18,6,15,6c-3.1,0-5.5,1.2-7.1,3.5c-1.5,2.1-2.2,4.7-2.2,7.9c0,3.2,0.7,5.7,2.2,7.8 | |||
c1.7,2.3,4,3.5,7.1,3.5c3,0,5.4-1.1,7.1-3.4C23.5,23.2,24.2,20.6,24.2,17.5z"/> | |||
<path class="st0" d="M49.8,21.6c0,2.7-0.9,5.1-2.6,7.1c-1.9,2.1-4.2,3.1-7,3.1c-1.1,0-2.2-0.3-3.4-0.9c-1.1-0.5-2-1.2-2.4-2.1v4.9 | |||
c0,1.2-0.5,1.8-1.6,1.8c-1,0-1.5-0.6-1.5-1.8V13.6c0-1.2,0.5-1.8,1.5-1.8c1.1,0,1.6,0.6,1.6,1.8v1.3c1.5-2.1,3.6-3.2,6.3-3.2 | |||
c2.7,0,4.9,1,6.6,2.9C49,16.6,49.8,18.9,49.8,21.6z M46.5,21.6c0-1.9-0.5-3.5-1.5-4.7c-1.1-1.3-2.5-2-4.3-2c-1.9,0-3.4,0.7-4.6,2 | |||
c-1.2,1.3-1.8,2.9-1.8,4.8c0,2,0.5,3.6,1.4,4.9c1.1,1.4,2.5,2.1,4.5,2.1c1.9,0,3.4-0.7,4.6-2.1C45.9,25.1,46.5,23.5,46.5,21.6z"/> | |||
<path class="st0" d="M70.3,20.9c0,1.1-0.6,1.6-1.9,1.6H55.8c0.1,1.8,0.7,3.3,1.7,4.4c1.1,1.2,2.4,1.8,4.1,1.8 | |||
c1.3,0,2.5-0.4,3.4-1.2c0.5-0.5,1.2-1.4,1.9-2.6c0.3-0.5,0.7-0.8,1.4-0.8c0.4,0,0.8,0.2,1.1,0.6c0.3,0.3,0.5,0.8,0.5,1.2 | |||
c0,0.8-0.5,1.8-1.6,3.1c-1.6,1.9-3.8,2.8-6.7,2.8c-2.8,0-5.1-1-6.7-3.1c-1.5-1.9-2.3-4.3-2.3-7.2c0-2.6,0.9-4.9,2.6-6.9 | |||
c1.7-1.9,3.9-2.9,6.5-2.9c2.6,0,4.8,0.9,6.4,2.8C69.5,16.4,70.3,18.5,70.3,20.9z M67.1,19.6c0-1.1-0.5-2.2-1.6-3.4 | |||
c-0.9-0.9-2.2-1.4-4-1.4c-1.4,0-2.5,0.4-3.5,1.3c-1,0.9-1.7,2-2,3.4h10.9C67,19.6,67.1,19.6,67.1,19.6z"/> | |||
<path class="st0" d="M91.2,30c0,1.2-0.5,1.8-1.5,1.8s-1.5-0.6-1.5-1.8V19.4c0-1.3-0.5-2.4-1.5-3.3c-1-0.9-2.2-1.3-3.5-1.3 | |||
c-1.8,0-3.4,0.6-4.7,1.8c-1.2,1.1-1.8,2.1-1.8,3.3V30c0,1.2-0.4,1.8-1.3,1.8c-1.2,0-1.8-0.6-1.8-1.8V13.6c0-1.2,0.5-1.8,1.5-1.8 | |||
c1,0,1.5,0.6,1.5,1.8v1.3c1.7-2.1,3.9-3.1,6.6-3.1c2.3,0,4.2,0.7,5.7,2.2c1.6,1.4,2.4,3.3,2.4,5.5V30z"/> | |||
<path class="st1" d="M126.3,13.4v10.2c0,2.5-1.4,4.7-3.5,6l-8.9,5.1c-2.1,1.2-4.8,1.2-6.9-0.1l-8.8-5.2c-2.1-1.3-3.4-3.5-3.4-6 | |||
V13.2c0-2.5,1.3-4.7,3.4-6l8.8-5.1c2.1-1.2,4.8-1.2,6.9,0.1l8.9,5.2C125,8.7,126.3,11,126.3,13.4z M108.2,28.9 | |||
c0,1.3,1.1,2.4,2.4,2.4l0,0c1.3,0,2.4-1.1,2.4-2.4V8c0-1.3-1.1-2.4-2.4-2.4l0,0c-1.3,0-2.4,1.1-2.4,2.4V28.9z"/> | |||
<g> | |||
<path class="st0" d="M157.9,21.9h-13.1c-1.9,0.1-2.9,1-2.9,2.7v6c0.1,1.6,1.1,2.4,2.9,2.5h13c1.8-0.1,2.7-0.9,2.8-2.6v-5.9 | |||
C160.5,22.9,159.6,22,157.9,21.9z M157.4,29.5c-0.1,0.7-0.5,1.1-1.4,1.2h-9.6c-0.9-0.2-1.3-0.5-1.4-1.2v-3.9 | |||
c0.1-0.9,0.5-1.3,1.4-1.4h9.5c0.9,0.1,1.4,0.5,1.5,1.4V29.5z"/> | |||
<path class="st0" d="M140.4,16.1v-0.3v-3.1c0.1-0.9,0.6-1.4,1.5-1.5h13.7c1-0.1,1.5,0.4,1.5,1.3v2.4c0,0.8-0.5,1.2-1.4,1.2h-14 | |||
v2.3h16c1.7,0,2.6-0.8,2.6-2.3v-4.6c0-1.7-0.9-2.6-2.6-2.6h-7V7h-3.3v1.9h-7.5c-1.9,0-2.8,0.9-2.8,2.8v8.9 | |||
c0,4.1-0.6,8.2-1.9,12.3l3.1,0.6c1.3-4.1,2-8.3,2-12.3v-1.7v-1.1V16.1z"/> | |||
</g> | |||
<g> | |||
<path class="st0" d="M165.8,19.8l3.2,1.7c1.9-1.4,3.1-3.2,3.7-5.5h5.6v-2.3h-5.1c0.1-0.7,0.2-1.9,0.2-2.8h4.7V8.5h-8.8V7H166 | |||
l0,3.8h4.2c0,1.3-0.1,2.2-0.2,2.8h-4.8V16h4.2C169,17.4,167.3,19.3,165.8,19.8z"/> | |||
<path class="st0" d="M173.2,17.1c0.9,1.6,1.5,2.4,2.1,4.2h3.5c-0.6-1.5-1.3-3-2.1-4.2H173.2z"/> | |||
<path class="st0" d="M186.8,22H169c-1.7,0.2-2.7,1-2.8,2.5V29h3.2h0.9h16.3V30c0,0.8-0.5,1.2-1.5,1.2h-14.2 | |||
c-0.9,0-1.4-0.4-1.4-1.1h-3.2v1c0.2,1.5,1,2.3,2.5,2.5h18.1c1.9-0.1,2.9-0.9,2.9-2.5v-6.5C189.5,23.1,188.6,22.2,186.8,22z | |||
M186.5,26.6h-17.1v-0.8c0.1-0.9,0.5-1.3,1.4-1.4H185c1,0,1.5,0.5,1.5,1.4V26.6z"/> | |||
<path class="st0" d="M188.2,8h-5.9c-1.6,0.1-2.5,0.8-2.7,2.1v8.4c0.2,1.3,0.9,2,2.2,2.1h6.3c1.4-0.1,2.2-0.8,2.2-2.1v-8.4 | |||
C190.4,8.9,189.7,8.2,188.2,8z M187.2,16.8c0,1-0.5,1.5-1.4,1.5h-1.7c-0.9-0.1-1.3-0.6-1.3-1.5v-5c0.1-0.9,0.5-1.3,1.4-1.4h1.5 | |||
c0.9,0.1,1.4,0.5,1.5,1.4V16.8z"/> | |||
</g> | |||
</g> | |||
</g> | |||
</svg> |
@@ -0,0 +1,42 @@ | |||
<footer> | |||
<div class="ui container"> | |||
<div class="ui grid"> | |||
<div class="sixteen wide mobile eight wide tablet eight wide computer column"> | |||
<div class="ui three column grid"> | |||
<div class="column ui vertical text menu"> | |||
<div class="header item">社区</div> | |||
<a href="https://www.openi.org.cn/html/Club/2019/0227/14.html" class="item">理事会</a> | |||
<a href="https://www.openi.org.cn/html/Club/2019/0227/14.html" class="item">技术委员会</a> | |||
<a href="https://www.openi.org.cn/html/Club/2019/0228/17.html" class="item">加入OpenI</a> | |||
</div> | |||
<div class="column ui vertical text menu"> | |||
<div class="header item">动态</div> | |||
<a href="https://www.openi.org.cn/html/news/dongtai/" class="item">社区动态</a> | |||
<a href="https://www.openi.org.cn/html/news/huodong/" class="item">成员动态</a> | |||
<a href="https://www.openi.org.cn/html/news/zixun/" class="item">行业资讯</a> | |||
</div> | |||
<div class="column ui vertical text menu"> | |||
<div class="header item">帮助</div> | |||
<a href="https://docs.gitea.io/zh-cn/" class="item">帮助文档</a> | |||
<div class="ui language bottom floating slide up dropdown link item"> | |||
<i class="world icon"></i> | |||
<div class="text">{{.LangName}}</div> | |||
<div class="menu"> | |||
{{range .AllLangs}} | |||
<a lang="{{.Lang}}" class="item {{if eq $.Lang .Lang}}active selected{{end}}" href="{{if eq $.Lang .Lang}}#{{else}}{{$.Link}}?lang={{.Lang}}{{end}}">{{.Name}}</a> | |||
{{end}} | |||
</div> | |||
</div> | |||
{{template "custom/extra_links_footer" .}} | |||
</div> | |||
</div> | |||
</div> | |||
<div class="sixteen wide mobile eight wide tablet eight wide computer column" style=" margin:2.0rem 0"> | |||
版权所有:新一代人工智能开源开放平台(OpenI) <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备18004880号</a> | |||
<br> | |||
{{.i18n.Tr "powered_by" "鹏城实验室云脑、Trustie、华为云 DevCloud、gitea"}} 构建 | |||
<br> | |||
</div> | |||
</div> | |||
</div> | |||
</footer> |
@@ -0,0 +1,182 @@ | |||
<!DOCTYPE html> | |||
<html lang="{{.Language}}"> | |||
<head data-suburl="{{AppSubUrl}}"> | |||
<meta charset="utf-8"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<meta http-equiv="x-ua-compatible" content="ie=edge"> | |||
<title>{{if .Title}}{{.Title}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}}</title> | |||
<link rel="manifest" href="{{AppSubUrl}}/manifest.json" crossorigin="use-credentials"> | |||
{{if UseServiceWorker}} | |||
<script> | |||
if ('serviceWorker' in navigator) { | |||
navigator.serviceWorker.register('{{AppSubUrl}}/serviceworker.js').then(function(registration) { | |||
// Registration was successful | |||
console.info('ServiceWorker registration successful with scope: ', registration.scope); | |||
}, function(err) { | |||
// registration failed :( | |||
console.info('ServiceWorker registration failed: ', err); | |||
}); | |||
} | |||
</script> | |||
{{else}} | |||
<script> | |||
if ('serviceWorker' in navigator) { | |||
navigator.serviceWorker.getRegistrations().then(function(registrations) { | |||
registrations.forEach(function(registration) { | |||
registration.unregister(); | |||
console.info('ServiceWorker unregistered'); | |||
}); | |||
}); | |||
} | |||
</script> | |||
{{end}} | |||
<meta name="theme-color" content="{{ThemeColorMetaTag}}"> | |||
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" /> | |||
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" /> | |||
<meta name="keywords" content="{{MetaKeywords}}"> | |||
<meta name="referrer" content="no-referrer" /> | |||
<meta name="_csrf" content="{{.CsrfToken}}" /> | |||
{{if .IsSigned}} | |||
<meta name="_uid" content="{{.SignedUser.ID}}" /> | |||
{{end}} | |||
{{if .ContextUser}} | |||
<meta name="_context_uid" content="{{.ContextUser.ID}}" /> | |||
{{end}} | |||
{{if .SearchLimit}} | |||
<meta name="_search_limit" content="{{.SearchLimit}}" /> | |||
{{end}} | |||
{{if .GoGetImport}} | |||
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}"> | |||
<meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}"> | |||
{{end}} | |||
<script> | |||
{{SafeJS `/* | |||
@licstart The following is the entire license notice for the | |||
JavaScript code in this page. | |||
Copyright (c) 2016 The Gitea Authors | |||
Copyright (c) 2015 The Gogs Authors | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights | |||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
copies of the Software, and to permit persons to whom the Software is | |||
furnished to do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in | |||
all copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||
THE SOFTWARE. | |||
--- | |||
Licensing information for additional javascript libraries can be found at: | |||
{{StaticUrlPrefix}}/vendor/librejs.html | |||
@licend The above is the entire license notice | |||
for the JavaScript code in this page. | |||
*/`}} | |||
</script> | |||
<script> | |||
window.config = { | |||
AppSubUrl: '{{AppSubUrl}}', | |||
StaticUrlPrefix: '{{StaticUrlPrefix}}', | |||
csrf: '{{.CsrfToken}}', | |||
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}}, | |||
Minicolors: {{if .RequireMinicolors}}true{{else}}false{{end}}, | |||
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}}, | |||
Tribute: {{if .RequireTribute}}true{{else}}false{{end}}, | |||
U2F: {{if .RequireU2F}}true{{else}}false{{end}}, | |||
Heatmap: {{if .EnableHeatmap}}true{{else}}false{{end}}, | |||
heatmapUser: {{if .HeatmapUser}}'{{.HeatmapUser}}'{{else}}null{{end}}, | |||
}; | |||
</script> | |||
<link rel="shortcut icon" href="{{StaticUrlPrefix}}/img/favicon.png"> | |||
<link rel="mask-icon" href="{{StaticUrlPrefix}}/img/gitea-safari.svg" color="#609926"> | |||
<link rel="fluid-icon" href="{{StaticUrlPrefix}}/img/gitea-lg.png" title="{{AppName}}"> | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css"> | |||
<link rel="preload" as="font" href="{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/icons.woff2" type="font/woff2" crossorigin="anonymous"> | |||
<link rel="preload" as="font" href="{{StaticUrlPrefix}}/fomantic/themes/default/assets/fonts/outline-icons.woff2" type="font/woff2" crossorigin="anonymous"> | |||
{{if .RequireSimpleMDE}} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/simplemde/simplemde.min.css"> | |||
{{end}} | |||
{{if .RequireTribute}} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/tribute/tribute.css"> | |||
{{end}} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/fomantic/semantic.min.css?v={{MD5 AppVer}}"> | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}"> | |||
<noscript> | |||
<style> | |||
.dropdown:hover > .menu { display: block; } | |||
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; } | |||
</style> | |||
</noscript> | |||
{{if .RequireMinicolors}} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/jquery.minicolors/jquery.minicolors.css"> | |||
{{end}} | |||
<style class="list-search-style"></style> | |||
{{if .PageIsUserProfile}} | |||
<meta property="og:title" content="{{.Owner.Name}}" /> | |||
<meta property="og:type" content="profile" /> | |||
<meta property="og:image" content="{{.Owner.AvatarLink}}" /> | |||
<meta property="og:url" content="{{.Owner.HTMLURL}}" /> | |||
{{if .Owner.Description}} | |||
<meta property="og:description" content="{{.Owner.Description}}"> | |||
{{end}} | |||
{{else if .Repository}} | |||
{{if .Issue}} | |||
<meta property="og:title" content="{{.Issue.Title}}" /> | |||
<meta property="og:url" content="{{.Issue.HTMLURL}}" /> | |||
{{if .Issue.Content}} | |||
<meta property="og:description" content="{{.Issue.Content}}" /> | |||
{{end}} | |||
{{else}} | |||
<meta property="og:title" content="{{.Repository.Name}}" /> | |||
<meta property="og:url" content="{{.Repository.HTMLURL}}" /> | |||
{{if .Repository.Description}} | |||
<meta property="og:description" content="{{.Repository.Description}}" /> | |||
{{end}} | |||
{{end}} | |||
<meta property="og:type" content="object" /> | |||
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" /> | |||
{{else}} | |||
<meta property="og:title" content="{{AppName}}"> | |||
<meta property="og:type" content="website" /> | |||
<meta property="og:image" content="{{StaticUrlPrefix}}/img/gitea-lg.png" /> | |||
<meta property="og:url" content="{{AppUrl}}" /> | |||
<meta property="og:description" content="{{MetaDescription}}"> | |||
{{end}} | |||
<meta property="og:site_name" content="{{AppName}}" /> | |||
{{if .IsSigned }} | |||
{{ if ne .SignedUser.Theme "gitea" }} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/theme-{{.SignedUser.Theme}}.css?v={{MD5 AppVer}}"> | |||
{{end}} | |||
{{else if ne DefaultTheme "gitea"}} | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/theme-{{DefaultTheme}}.css?v={{MD5 AppVer}}"> | |||
{{end}} | |||
{{template "custom/header" .}} | |||
</head> | |||
<body> | |||
{{template "custom/body_outer_pre" .}} | |||
<div class="full height"> | |||
<noscript>{{.i18n.Tr "enable_javascript"}}</noscript> | |||
{{template "custom/body_inner_pre" .}} | |||
{{if not .PageIsInstall}} | |||
<div class="ui top secondary stackable main menu following bar dark"> | |||
{{template "base/head_navbar" .}} | |||
</div><!-- end bar --> | |||
{{end}} | |||
{{/* | |||
</div> | |||
</body> | |||
</html> | |||
*/}} |
@@ -0,0 +1,180 @@ | |||
<div class="ui container" id="navbar"> | |||
<div class="item brand" style="justify-content: space-between;"> | |||
<a href="https://www.openi.org.cn/"> | |||
<img class="ui mini image" src="{{StaticUrlPrefix}}/img/openi-logo-w.svg?v=2020041802"> | |||
</a> | |||
<div class="ui basic icon button mobile-only" id="navbar-expand-toggle"> | |||
<i class="sidebar icon"></i> | |||
</div> | |||
</div> | |||
{{if .IsSigned}} | |||
<a class="item {{if .PageIsDashboard}}active{{end}}" href="/">{{.i18n.Tr "dashboard"}}</a> | |||
<div class="ui dropdown item"> | |||
社区 | |||
<i class="dropdown icon"></i> | |||
<div class="menu"> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0228/17.html">欢迎加入OpenI</a> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0227/14.html">组织结构</a> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0227/15.html">启智开源许可证</a> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0227/16.html">OpenI社区章程</a> | |||
<a class="item" href="https://www.openi.org.cn/html/news/dongtai/">社区动态</a> | |||
</div> | |||
</div> | |||
<a class="item" href="{{AppSubUrl}}/datasets">{{.i18n.Tr "datasets"}}</a> | |||
<a class="item" href="{{AppSubUrl}}/explore/repos">项目</a> | |||
{{if not .UnitIssuesGlobalDisabled}} | |||
<a class="item {{if .PageIsIssues}}active{{end}}" href="{{AppSubUrl}}/issues">{{.i18n.Tr "issues"}}</a> | |||
{{end}} | |||
{{if not .UnitPullsGlobalDisabled}} | |||
<a class="item {{if .PageIsPulls}}active{{end}}" href="{{AppSubUrl}}/pulls">{{.i18n.Tr "pull_requests"}}</a> | |||
{{end}} | |||
{{if not (and .UnitIssuesGlobalDisabled .UnitPullsGlobalDisabled)}} | |||
{{if .ShowMilestonesDashboardPage}}<a class="item {{if .PageIsMilestonesDashboard}}active{{end}}" href="{{AppSubUrl}}/milestones">{{.i18n.Tr "milestones"}}</a>{{end}} | |||
{{end}} | |||
<div class="ui dropdown item"> | |||
{{.i18n.Tr "explore"}} | |||
<i class="dropdown icon"></i> | |||
<div class="menu"> | |||
<a class="item" href="javascript:alert('WIP')">学习</a> | |||
<a class="item" href="javascript:alert('WIP')">活动</a> | |||
</div> | |||
</div> | |||
{{else if .IsLandingPageHome}} | |||
<a class="item {{if .PageIsHome}}active{{end}}" href="/">{{.i18n.Tr "home"}}</a> | |||
<div class="ui dropdown item"> | |||
社区 | |||
<i class="dropdown icon"></i> | |||
<div class="menu"> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0228/17.html">欢迎加入OpenI</a> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0227/14.html">组织结构</a> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0227/15.html">启智开源许可证</a> | |||
<a class="item" href="https://www.openi.org.cn/html/Club/2019/0227/16.html">OpenI社区章程</a> | |||
<a class="item" href="https://www.openi.org.cn/html/news/dongtai/">社区动态</a> | |||
</div> | |||
</div> | |||
<a class="item" href="{{AppSubUrl}}/explore/repos">项目</a> | |||
<div class="ui dropdown item"> | |||
{{.i18n.Tr "explore"}} | |||
<i class="dropdown icon"></i> | |||
<div class="menu"> | |||
<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">更多开源项目</a> | |||
<a class="item" href="https://openi.org.cn/welcome/shixuns" target="_blank">学习</a> | |||
<a class="item" href="http://club.openi.org.cn/portal.php?mod=list&catid=4" target="_blank">活动</a> | |||
</div> | |||
</div> | |||
{{else if .IsLandingPageExplore}} | |||
<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "home"}}</a> | |||
{{else if .IsLandingPageOrganizations}} | |||
<a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{.i18n.Tr "home"}}</a> | |||
{{end}} | |||
{{template "custom/extra_links" .}} | |||
{{/* | |||
<div class="item"> | |||
<div class="ui icon input"> | |||
<input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}"> | |||
<i class="search icon"></i> | |||
</div> | |||
</div> | |||
*/}} | |||
{{if .IsSigned}} | |||
<div class="right stackable menu"> | |||
<a href="{{AppSubUrl}}/notifications" class="item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted"> | |||
<span class="text"> | |||
<span class="fitted">{{svg "octicon-bell" 16}}</span> | |||
<span class="sr-mobile-only">{{.i18n.Tr "notifications"}}</span> | |||
{{$notificationUnreadCount := 0}} | |||
{{if .NotificationUnreadCount}}{{$notificationUnreadCount = call .NotificationUnreadCount}}{{end}} | |||
<span class="ui red label {{if not $notificationUnreadCount}}hidden{{end}} notification_count"> | |||
{{$notificationUnreadCount}} | |||
</span> | |||
</span> | |||
</a> | |||
<div class="ui dropdown jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted"> | |||
<span class="text"> | |||
<span class="fitted">{{svg "octicon-plus" 16}}</span> | |||
<span class="sr-mobile-only">{{.i18n.Tr "create_new"}}</span> | |||
<span class="fitted not-mobile">{{svg "octicon-triangle-down" 16}}</span> | |||
</span> | |||
<div class="menu"> | |||
<a class="item" href="{{AppSubUrl}}/repo/create"> | |||
<span class="fitted">{{svg "octicon-plus" 16}}</span> {{.i18n.Tr "new_repo"}} | |||
</a> | |||
<a class="item" href="{{AppSubUrl}}/repo/migrate"> | |||
<span class="fitted">{{svg "octicon-repo-clone" 16}}</span> {{.i18n.Tr "new_migrate"}} | |||
</a> | |||
{{if .SignedUser.CanCreateOrganization}} | |||
<a class="item" href="{{AppSubUrl}}/org/create"> | |||
<span class="fitted">{{svg "octicon-organization" 16}}</span> {{.i18n.Tr "new_org"}} | |||
</a> | |||
{{end}} | |||
</div><!-- end content create new menu --> | |||
</div><!-- end dropdown menu create new --> | |||
<div class="ui dropdown jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted"> | |||
<span class="text"> | |||
<img class="ui tiny avatar image" width="24" height="24" src="{{.SignedUser.RelAvatarLink}}"> | |||
<span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span> | |||
<span class="mobile-only">{{.SignedUser.Name}}</span> | |||
<span class="fitted not-mobile" tabindex="-1">{{svg "octicon-triangle-down" 16}}</span> | |||
</span> | |||
<div class="menu user-menu" tabindex="-1"> | |||
<div class="ui header"> | |||
{{.i18n.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong> | |||
</div> | |||
<div class="divider"></div> | |||
<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}"> | |||
{{svg "octicon-person" 16}} | |||
{{.i18n.Tr "your_profile"}}<!-- Your profile --> | |||
</a> | |||
<a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}?tab=stars"> | |||
{{svg "octicon-star" 16}} | |||
{{.i18n.Tr "your_starred"}} | |||
</a> | |||
<a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings"> | |||
{{svg "octicon-settings" 16}} | |||
{{.i18n.Tr "your_settings"}}<!-- Your settings --> | |||
</a> | |||
<!--a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io"> | |||
{{svg "octicon-question" 16}} | |||
{{.i18n.Tr "help"}}<!-- Help --> | |||
</a--> | |||
{{if .IsAdmin}} | |||
<div class="divider"></div> | |||
<a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubUrl}}/admin"> | |||
<i class="icon settings"></i> | |||
{{.i18n.Tr "admin_panel"}}<!-- Admin Panel --> | |||
</a> | |||
{{end}} | |||
<div class="divider"></div> | |||
<a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/"> | |||
{{svg "octicon-sign-out" 16}} | |||
{{.i18n.Tr "sign_out"}}<!-- Sign Out --> | |||
</a> | |||
</div><!-- end content avatar menu --> | |||
</div><!-- end dropdown avatar menu --> | |||
</div><!-- end signed user right menu --> | |||
{{else}} | |||
<!--a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">{{.i18n.Tr "help"}}</a--> | |||
<div class="right stackable menu"> | |||
{{if .ShowRegistrationButton}} | |||
<a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up"> | |||
{{svg "octicon-person" 16}} {{.i18n.Tr "register"}} | |||
</a> | |||
{{end}} | |||
<a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{.Link}}"> | |||
{{svg "octicon-sign-in" 16}} {{.i18n.Tr "sign_in"}} | |||
</a> | |||
</div><!-- end anonymous right menu --> | |||
{{end}} | |||
</div> |
@@ -0,0 +1,3 @@ | |||
<!--新增OpenI样式文件--> | |||
<link rel="stylesheet" href="/css/openi.css?v={{MD5 AppVer}}"> | |||
<script type="text/javascript" src="/js/jquery.particleground.min.js"></script> |
@@ -0,0 +1,41 @@ | |||
<div class="tablet only mobile only sixteen wide mobile sixteen wide tablet column row"> | |||
<div class="ui secondary pointing tabular top attached borderless menu navbar"> | |||
<a class="{{if .PageIsExploreRepositories}}active{{end}} item" href="{{AppSubUrl}}/explore/repos"> | |||
{{svg "octicon-repo" 16}} {{.i18n.Tr "explore.repos"}} | |||
</a> | |||
<a class="{{if .PageIsExploreUsers}}active{{end}} item" href="{{AppSubUrl}}/explore/users"> | |||
{{svg "octicon-person" 16}} {{.i18n.Tr "explore.users"}} | |||
</a> | |||
<a class="{{if .PageIsExploreOrganizations}}active{{end}} item" href="{{AppSubUrl}}/explore/organizations"> | |||
{{svg "octicon-organization" 16}} {{.i18n.Tr "explore.organizations"}} | |||
</a> | |||
{{if .IsRepoIndexerEnabled}} | |||
<a class="{{if .PageIsExploreCode}}active{{end}} item" href="{{AppSubUrl}}/explore/code"> | |||
{{svg "octicon-code" 16}} {{.i18n.Tr "explore.code"}} | |||
</a> | |||
{{end}} | |||
</div> | |||
</div> | |||
<!--平板、移动端--> | |||
<div class="computer only two wide computer column"> | |||
<div class="ui grid"> | |||
<div class="sixteen wide column ui secondary sticky pointing tabular vertical menu"> | |||
<a class="{{if .PageIsExploreRepositories}}active{{end}} item" href="{{AppSubUrl}}/explore/repos"> | |||
{{svg "octicon-repo" 16}} {{.i18n.Tr "explore.repos"}} | |||
</a> | |||
<a class="{{if .PageIsExploreUsers}}active{{end}} item" href="{{AppSubUrl}}/explore/users"> | |||
{{svg "octicon-person" 16}} {{.i18n.Tr "explore.users"}} | |||
</a> | |||
<a class="{{if .PageIsExploreOrganizations}}active{{end}} item" href="{{AppSubUrl}}/explore/organizations"> | |||
{{svg "octicon-organization" 16}} {{.i18n.Tr "explore.organizations"}} | |||
</a> | |||
{{if .IsRepoIndexerEnabled}} | |||
<a class="{{if .PageIsExploreCode}}active{{end}} item" href="{{AppSubUrl}}/explore/code"> | |||
{{svg "octicon-code" 16}} {{.i18n.Tr "explore.code"}} | |||
</a> | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
<!--电脑、宽屏--> |
@@ -0,0 +1,68 @@ | |||
{{template "base/head" .}} | |||
<div class="explore users"> | |||
{{template "explore/search" .}} | |||
<div class="ui container"> | |||
<div class="ui grid"> | |||
{{template "explore/navbar" .}} | |||
<div class="sixteen wide mobile ten wide tablet ten wide computer column"> | |||
<h2 class="ui left floated medium header"> | |||
{{.i18n.Tr "explore.organizations"}} | |||
</h2> | |||
<div class="ui right floated secondary filter menu"> | |||
<!-- Sort --> | |||
<div class="ui right dropdown type jump item"> | |||
<span class="text"> | |||
{{.i18n.Tr "repo.issues.filter_sort"}} | |||
<i class="dropdown icon"></i> | |||
</span> | |||
<div class="menu"> | |||
<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a> | |||
<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a> | |||
<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a> | |||
<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a> | |||
<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a> | |||
<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="ui clearing divider"></div> | |||
<div class="ui user list"> | |||
{{range .Users}} | |||
<div class="item"> | |||
<img class="ui avatar image" src="{{.RelAvatarLink}}"> | |||
<div class="content"> | |||
<span class="header"> | |||
<a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}} | |||
{{if .Visibility.IsPrivate}} | |||
<span class="text gold">{{svg "octicon-lock" 16}}</span> | |||
{{end}} | |||
</span> | |||
<div class="description"> | |||
{{if .Location}} | |||
{{svg "octicon-location" 16}} {{.Location}} | |||
{{end}} | |||
{{if and .Website}} | |||
{{svg "octicon-link" 16}} | |||
<a href="{{.Website}}" rel="nofollow">{{.Website}}</a> | |||
{{end}} | |||
{{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} | |||
</div> | |||
</div> | |||
</div> | |||
{{else}} | |||
<div>{{$.i18n.Tr "explore.org_no_results"}}</div> | |||
{{end}} | |||
</div> | |||
{{template "base/paginate" .}} | |||
</div> | |||
<div class="sixteen wide mobile six wide tablet four wide computer column"> | |||
{{template "explore/repo_right" .}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,75 @@ | |||
<h2 class="ui left floated medium header"> | |||
{{.i18n.Tr "explore.repos"}} | |||
</h2> | |||
<div class="ui right floated secondary filter menu"> | |||
<!-- Sort --> | |||
<div class="ui right dropdown type jump item"> | |||
<span class="text"> | |||
{{.i18n.Tr "repo.issues.filter_sort"}} | |||
<i class="dropdown icon"></i> | |||
</span> | |||
<div class="menu"> | |||
<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a> | |||
<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a> | |||
<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a> | |||
<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a> | |||
<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a> | |||
<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a> | |||
<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.moststars"}}</a> | |||
<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.feweststars"}}</a> | |||
<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.mostforks"}}</a> | |||
<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.fewestforks"}}</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="ui clearing divider"></div> | |||
<div class="ui repository list"> | |||
{{range .Repos}} | |||
<div class="item"> | |||
<div class="ui header"> | |||
{{if .RelAvatarLink}} | |||
<img class="ui avatar image" src="{{.RelAvatarLink}}"> | |||
{{end}} | |||
<a class="name" href="{{.Link}}"> | |||
{{if or $.PageIsExplore $.PageIsProfileStarList }}{{if .Owner}}{{.Owner.Name}} / {{end}}{{end}}{{.Name}} | |||
{{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}} | |||
</a> | |||
{{if .IsPrivate}} | |||
<span class="middle text gold">{{svg "octicon-lock" 16}}</span> | |||
{{else if .IsFork}} | |||
<span class="middle">{{svg "octicon-repo-forked" 16}}</span> | |||
{{else if .IsMirror}} | |||
<span class="middle">{{svg "octicon-repo-clone" 16}}</span> | |||
{{else if .Owner}} | |||
{{if .Owner.Visibility.IsPrivate}} | |||
<span class="text gold">{{svg "octicon-lock" 16}}</span> | |||
{{end}} | |||
{{end}} | |||
<div class="ui right metas"> | |||
{{if .PrimaryLanguage }} | |||
<span class="text grey"><i class="color-icon" style="background-color: {{.PrimaryLanguage.Color}}"></i>{{ .PrimaryLanguage.Language }}</span> | |||
{{end}} | |||
<span class="text grey">{{svg "octicon-star" 16}} {{.NumStars}}</span> | |||
<span class="text grey">{{svg "octicon-git-branch" 16}} {{.NumForks}}</span> | |||
</div> | |||
</div> | |||
<div class="description"> | |||
{{if .DescriptionHTML}}<p class="has-emoji">{{.DescriptionHTML}}</p>{{end}} | |||
{{if .Topics }} | |||
<div class="ui tags"> | |||
{{range .Topics}} | |||
{{if ne . "" }}<a href="{{AppSubUrl}}/explore/repos?q={{.}}&topic=1"><div class="ui small label topic">{{.}}</div></a>{{end}} | |||
{{end}} | |||
</div> | |||
{{end}} | |||
<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSinceUnix .UpdatedUnix $.i18n.Lang}}</p> | |||
</div> | |||
</div> | |||
{{else}} | |||
<div> | |||
{{$.i18n.Tr "explore.repo_no_results"}} | |||
</div> | |||
{{end}} | |||
</div> |
@@ -0,0 +1 @@ | |||
<img class="ui mini image" src="/img/banner-qimen-4X3.jpg" style="width:100%;"> |
@@ -0,0 +1,17 @@ | |||
<div class="repos--seach"> | |||
<div class="ui container"> | |||
<div class="ui two column centered grid"> | |||
<form class="sixteen wide mobile eight wide tablet eight wide computer column ui form ignore-dirty"> | |||
<div class="ui fluid action input"> | |||
<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus> | |||
<input type="hidden" name="tab" value="{{$.TabName}}"> | |||
<input type="hidden" name="sort" value="{{$.SortType}}"> | |||
<button class="ui blue button">{{.i18n.Tr "explore.search"}}</button> | |||
</div> | |||
</form> | |||
<div class="tablet only computer only eight wide tablet eight wide computer column" style="line-height: 2.5rem;"> | |||
热搜: | |||
</div> | |||
</div> | |||
</div> | |||
</div> |
@@ -0,0 +1,20 @@ | |||
{{template "base/head" .}} | |||
<div class="explore repositories"> | |||
{{template "explore/repo_search" .}} | |||
<div class="ui container"> | |||
<div class="ui grid"> | |||
{{template "explore/navbar" .}} | |||
<div class="ui sixteen wide mobile ten wide tablet ten wide computer column"> | |||
{{template "explore/repo_list" .}} | |||
{{template "base/paginate" .}} | |||
</div> | |||
<div class="ui sixteen wide mobile six wide tablet four wide computer column"> | |||
{{template "explore/repo_right" .}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,13 @@ | |||
<div class="repos--seach"> | |||
<div class="ui container"> | |||
<div class="ui two column centered grid"> | |||
<form class="sixteen wide mobile eight fourteen tablet fourteen wide computer column ui form ignore-dirty"> | |||
<div class="ui fluid action input"> | |||
<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus> | |||
<input type="hidden" name="tab" value="{{$.TabName}}"> | |||
<button class="ui blue button">{{.i18n.Tr "explore.search"}}</button> | |||
</div> | |||
</form> | |||
</div> | |||
</div> | |||
</div> |
@@ -0,0 +1,63 @@ | |||
{{template "base/head" .}} | |||
<div class="explore users"> | |||
{{template "explore/search" .}} | |||
<div class="ui container"> | |||
<div class="ui grid"> | |||
{{template "explore/navbar" .}} | |||
<div class="sixteen wide mobile ten wide tablet ten wide computer column"> | |||
<h2 class="ui left floated medium header"> | |||
{{.i18n.Tr "explore.users"}} | |||
</h2> | |||
<div class="ui right floated secondary filter menu"> | |||
<!-- Sort --> | |||
<div class="ui right dropdown type jump item"> | |||
<span class="text"> | |||
{{.i18n.Tr "repo.issues.filter_sort"}} | |||
<i class="dropdown icon"></i> | |||
</span> | |||
<div class="menu"> | |||
<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a> | |||
<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a> | |||
<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a> | |||
<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a> | |||
<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a> | |||
<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="ui clearing divider"></div> | |||
<div class="ui user list"> | |||
{{range .Users}} | |||
<div class="item"> | |||
<img class="ui avatar image" src="{{.RelAvatarLink}}"> | |||
<div class="content"> | |||
<span class="header"><a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}</span> | |||
<div class="description"> | |||
{{if .Location}} | |||
{{svg "octicon-location" 16}} {{.Location}} | |||
{{end}} | |||
{{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}} | |||
{{svg "octicon-mail" 16}} | |||
<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a> | |||
{{end}} | |||
{{svg "octicon-clock" 16}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}} | |||
</div> | |||
</div> | |||
</div> | |||
{{else}} | |||
<div>{{$.i18n.Tr "explore.user_no_results"}}</div> | |||
{{end}} | |||
</div> | |||
{{template "base/paginate" .}} | |||
</div> | |||
<div class="sixteen wide mobile six wide tablet four wide computer column"> | |||
{{template "explore/repo_right" .}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,254 @@ | |||
{{template "base/head" .}} | |||
<div class="home"> | |||
<script> | |||
document.addEventListener('DOMContentLoaded', function () { | |||
particleground(document.getElementById('particles'), { | |||
dotColor: 'rgba(0,176,240,0.2)', | |||
lineColor: 'rgba(68,114,196,0.1)' | |||
}); | |||
var intro = document.getElementById('intro'); | |||
intro.style.marginTop = - intro.offsetHeight / 2 + 'px'; | |||
}, false); | |||
</script> | |||
<div id="index-project"> | |||
<div id="particles"></div> | |||
<div class="center aligned ui container inverted segment"><!--内容宽度,默认1127px--> | |||
<h1 class="ui header section--header">启智社区 | |||
<p class="sub header">Open Intelligence,Open Source,Open Community,Open Ecosystem</p> | |||
</h1> | |||
<div class="ui six column grid prorow"> | |||
<div class="eight wide mobile four wide tablet four wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"><img src="http://www.openi.org.cn/statics/openi/images/index/openi-paddle.png" style=" height:20px;"></div> | |||
<div class="content ui grid"> | |||
<div class="header right aligned eight wide column" style=" border-right:2px solid #ffc000"> | |||
<span style="color: #5170ff;">OpenI</span> <b style="color:#FFF">DL</b> | |||
</div> | |||
<div class="header left aligned eight wide column"> | |||
<span style="color: #5170ff;">OpenI</span> <b style="color:#ffc000">RL</b> | |||
</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:百度 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip" href="http://www.openi.org.cn/html/2020/Framework_0325/12.html"></a> | |||
</div> | |||
<div class="eight wide mobile three wide tablet three wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/openi-tianyuan.png" alt="Brain++·天元" style=" height:50px;"> | |||
</div> | |||
<div class="content"> | |||
<div class="header">Brain++·天元</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:旷视 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip" href="/html/2020/Framework_0325/18.html"></a> | |||
</div> | |||
<div class="eight wide mobile four wide tablet four wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="content ui grid"> | |||
<div class="header eight wide column" style=" border-right:2px solid #ffc000"> | |||
<div><span style="color: #5170ff;">OpenI</span> <b style="color:#FFF">天璇</b></div> | |||
</div> | |||
<div class="header eight wide column"> | |||
<div><span style="color: #5170ff;">OpenI</span> <b style="color:#FFF">天枢</b></div> | |||
</div> | |||
<div class="eight wide column" style=" border-right:2px solid #ffc000; padding-top:0"> | |||
<div class="meta">AVS3 解码</div> | |||
</div> | |||
<div class="eight wide column" style="padding-top:0"> | |||
<div class="meta">AVS3 编码</div> | |||
</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:北大深研院、鹏城实验室、深圳市超高清创新中心 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip" style="border-style:dashed;"></a> | |||
</div> | |||
<div class="eight wide mobile three wide tablet three wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="content"> | |||
<div class="header" style=" padding-top:0.8em;padding-bottom:0.5em"><span style="color: #5170ff;">OpenI</span> <b style="color:#FFF">海参</b></div> | |||
<div class="meta">基于深度学习的视频智能编码</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:鹏城实验室、北大、武大、中科大、哈工大 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip" href="/html/2020/Framework_0325/18.html"></a> | |||
</div> | |||
<div class="sixteen wide mobile two wide tablet two wide computer column"> | |||
<div class="ui card"> | |||
<div class="content"> | |||
<div class="header" ><i class="ellipsis horizontal icon"></i></div> | |||
</div> | |||
</div> | |||
<div class="flip flip-more"></div> | |||
</div> | |||
</div> | |||
<div class="ui divider" style="margin-top:2.0em; margin-bottom:2.0em;"></div> | |||
<div class="ui six column grid prorow"> | |||
<div class="eight wide mobile four wide tablet four wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/openi-octopus.png" alt="启智章鱼" style=" height:50px;"> | |||
</div> | |||
<div class="content"> | |||
<div class="meta">新一代智能资源管理系统</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:鹏城实验室、北大 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-blue" href="/html/2020/Environment_0325/9.html"></a> | |||
</div> | |||
<div class="eight wide mobile three wide tablet three wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/openi-shanhu.png" alt="OpenI珊瑚" style=" height:50px;"> | |||
</div> | |||
<div class="content"> | |||
<div class="meta">异构资源调度项目</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:华为 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-blue" href="/html/2020/Environment_0325/10.html"></a> | |||
</div> | |||
<div class="five wide mobile three wide tablet three wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/openi-trustie.png" alt="启智Trustie" style=" height:50px;"> | |||
</div> | |||
<div class="content"> | |||
<div class="meta">群体化协同创新环境</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:国防科大、北航、北大… | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-green" href="/html/2020/Environment_0325/11.html"></a> | |||
</div> | |||
<div class="five wide mobile three wide tablet three wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/huawei.png" alt="华为" style=" height:25px; margin-top:32px;"> | |||
</div> | |||
<div class="content"> | |||
<div class="meta">华为软开云</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-green"></a> | |||
</div> | |||
<div class="six wide mobile three wide tablet three wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/openi-zhongheng.png" alt="OpenI 纵横" style=" height:50px;"> | |||
</div> | |||
<div class="content"> | |||
<div class="meta">数据协同环境</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:微众银行 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-green" href="/html/2020/Environment_0325/13.html"></a> | |||
</div> | |||
</div> | |||
<div class="ui divider" style="margin-top:2.0em; margin-bottom:2.0em;"></div> | |||
<div class="ui six column grid prorow"> | |||
<div class="sixteen wide mobile six wide tablet six wide computer column ipros"> | |||
<div class="content ui grid"> | |||
<div class="header sixteen wide column"> | |||
<div class="ui centered card" style=" margin-top:0.5em; margin-bottom:0.5em;"> | |||
<div class="content"> | |||
<div class="header">鹏城云脑1、2</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-green"></a> | |||
</div> | |||
<div class="header sixteen wide column"> | |||
<div class="ui centered card" style=" margin-top:0.5em; margin-bottom:0.5em;"> | |||
<div class="content"> | |||
<div class="header">北京、合肥、苏州…</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-green"></a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="eight wide mobile two wide tablet four wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="content"> | |||
<div class="header" style=" padding-top:0.8em;padding-bottom:0.5em"><span style="color: #5170ff;">OpenI</span> <b style="color:#FFF">海藻</b></div> | |||
<div class="meta">可配置指令集和微架构的AI开源芯片</div> | |||
</div> | |||
<div class="extra content"> | |||
<div class="center floated author"> | |||
贡献者:北大、中科院、鹏城实验室 | |||
</div> | |||
</div> | |||
</div> | |||
<a class="flip flip-green" href="/html/2020/Framework_0325/15.html"></a> | |||
</div> | |||
<div class="eight wide mobile three wide tablet four wide computer column ipros"> | |||
<div class="ui card"> | |||
<div class="image"> | |||
<img src="http://www.openi.org.cn/statics/openi/images/index/huaweicloud.png" alt="华为云" style=" height:50px; margin-top:32px;"> | |||
</div> | |||
</div> | |||
<a class="flip flip-green"></a> | |||
</div> | |||
<div class="sixteen wide mobile two wide tablet two wide computer column"> | |||
<div class="ui card"> | |||
<div class="content"> | |||
<div class="header" ><i class="ellipsis horizontal icon"></i></div> | |||
</div> | |||
</div> | |||
<div class="flip flip-more"></div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="ui stackable middle very relaxed page grid"> | |||
<div class="center column"> | |||
<h1 class="ui header section--header" style=" margin-top:1.0em">启智社区期待您的加入</h1> | |||
<p class="large" style="padding: 0 0 43px;"> | |||
OpenI社区旨在促进人工智能领域的开源开放协同创新,构建OpenI的技术链、创新链和生态链、推动人工智能产业健康快速发展及其在社会经济各领域的广泛应用。围绕重大产业创新,汇聚创新资源,促进众创共享,形成产业生态的目标,让"一体两翼"构想下的以技术专家为主体组成的多个工作组(标准工作组、知识产权工作组、投融资工作组、开源治理工作组等)、和以企业为主体的多个应用推进组(智能交通推进组、智能医疗推进组、智能金融推进组、智能教育推进组等)作为一个整体进行工作。以"完全开源、完全开放、完全免费、尊重创新"为准则,汇聚学术机构、商业实体、自然人或任何其他法人,共建共享开源软件、开源硬件和开源数据的超级社区;以众智、赛智、创智、有智等工作方法,努力建设成具有国际影响力的人工智能开源开放平台。 | |||
</p> | |||
<a class="ui blue button" href="https://www.openi.org.cn/html/Club/2019/0228/17.html" style="padding-left:5.0rem;padding-right:5.0rem;">加入OpenI社区 <i class="arrow right icon"></i></a> | |||
<div style="margin-top:80px;"> | |||
<img src="https://www.openi.org.cn/statics/openi/images/index/mem-logos.png" alt="OpenI前期参与成员" style="width:100%; max-width:1200px;"> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,27 @@ | |||
<div class="organization-header"> | |||
<div class="ui container"> | |||
<div class="ui vertically grid head"> | |||
<div class="column"> | |||
<div class="ui header"> | |||
{{with .Org}} | |||
<img class="ui image" src="{{.SizedRelAvatarLink 100}}"> | |||
<span class="text thin grey"><a href="{{.HomeLink}}">{{.DisplayName}}</a></span> | |||
{{end}} | |||
{{if .IsOrganizationOwner}} | |||
<div class="ui right"> | |||
<a class="ui green button" href="{{.OrgLink}}/teams/new">{{svg "octicon-plus" 16}} {{.i18n.Tr "org.create_new_team"}}</a> | |||
</div> | |||
{{end}} | |||
{{if .CanCreateOrgRepo}} | |||
<div class="ui right"> | |||
<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{svg "octicon-plus" 16}} {{.i18n.Tr "new_repo"}}</a> | |||
</div> | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
@@ -0,0 +1,87 @@ | |||
{{template "base/head" .}} | |||
<div class="organization profile"> | |||
{{/* overflow: auto is the clearfix - this avoids the image going beyond | |||
the container where it is supposed to stay inside. */}} | |||
<div class="organization-info"> | |||
<div class="ui center aligned container " style="overflow: auto"> | |||
<img class="ui circular image" id="org-avatar" src="{{.Org.SizedRelAvatarLink 140}}"/> | |||
<div id="org-info"> | |||
<div class="ui header"> | |||
{{.Org.DisplayName}} | |||
{{if .IsOrganizationOwner}}<a class="middle text grey" href="{{.OrgLink}}/settings">{{svg "octicon-gear" 16}}</a>{{end}} | |||
</div> | |||
{{if .Org.Description}}<p class="text grey desc">{{.Org.Description}}</p>{{end}} | |||
<div class="meta"> | |||
{{if .Org.Location}}<div class="item">{{svg "octicon-location" 16}} <span>{{.Org.Location}}</span></div>{{end}} | |||
{{if .Org.Website}}<div class="item">{{svg "octicon-link" 16}} <a target="_blank" rel="noopener noreferrer" href="{{.Org.Website}}">{{.Org.Website}}</a></div>{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="ui container"> | |||
<div class="ui stackable grid"> | |||
{{template "org/navber" .}} | |||
<div class="ui fourteen wide computer column"> | |||
<div class="ui mobile reversed stackable grid"> | |||
<div class="ui ten wide tablet eleven wide computer column"> | |||
{{if .CanCreateOrgRepo}} | |||
<div class="text right"> | |||
<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{.i18n.Tr "new_repo"}}</a> | |||
</div> | |||
{{end}} | |||
{{template "org/repo_list" .}} | |||
{{template "base/paginate" .}} | |||
</div> | |||
<div class="ui sixteen wide mobile six wide tablet five wide computer column"> | |||
<h4 class="ui top attached header"> | |||
<strong>{{.i18n.Tr "org.people"}}</strong> | |||
{{if .IsOrganizationMember}} | |||
<div class="ui right"> | |||
<a class="text grey" href="{{.OrgLink}}/members">{{.Org.NumMembers}} {{svg "octicon-chevron-right" 16}}</a> | |||
</div> | |||
{{end}} | |||
</h4> | |||
<div class="ui attached segment members"> | |||
{{$isMember := .IsOrganizationMember}} | |||
{{range .Members}} | |||
{{if or $isMember (.IsPublicMember $.Org.ID)}} | |||
<a href="{{.HomeLink}}" title="{{.Name}}{{if .FullName}} ({{.FullName}}){{end}}"><img class="ui avatar" src="{{.RelAvatarLink}}"></a> | |||
{{end}} | |||
{{end}} | |||
</div> | |||
{{if .IsOrganizationMember}} | |||
<div class="ui top attached header"> | |||
<strong>{{.i18n.Tr "org.teams"}}</strong> | |||
<div class="ui right"> | |||
<a class="text grey" href="{{.OrgLink}}/teams"><span>{{.Org.NumTeams}}</span> {{svg "octicon-chevron-right" 16}}</a> | |||
</div> | |||
</div> | |||
<div class="ui attached table segment teams"> | |||
{{range .Teams}} | |||
<div class="item"> | |||
<a href="{{$.OrgLink}}/teams/{{.LowerName}}"><strong class="team-name">{{.Name}}</strong></a> | |||
<p class="text grey"> | |||
<a href="{{$.OrgLink}}/teams/{{.LowerName}}"><strong>{{.NumMembers}}</strong> {{$.i18n.Tr "org.lower_members"}}</a> · | |||
<a href="{{$.OrgLink}}/teams/{{.LowerName}}/repositories"><strong>{{.NumRepos}}</strong> {{$.i18n.Tr "org.lower_repositories"}}</a> | |||
</p> | |||
</div> | |||
{{end}} | |||
</div> | |||
{{if .IsOrganizationOwner}} | |||
<div class="ui bottom attached segment"> | |||
<a class="ui blue small button" href="{{.OrgLink}}/teams/new">{{.i18n.Tr "org.create_new_team"}}</a> | |||
</div> | |||
{{end}} | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,75 @@ | |||
{{template "base/head" .}} | |||
<div class="organization members"> | |||
{{template "org/header" .}} | |||
<div class="ui container"> | |||
{{template "base/alert" .}} | |||
<div class="ui stackable grid"> | |||
{{template "org/navber" .}} | |||
<div class="ui fourteen wide computer column list"> | |||
{{ range .Members}} | |||
<div class="item ui grid"> | |||
<div class="ui two wide column"> | |||
<img class="ui avatar" src="{{.SizedRelAvatarLink 48}}"> | |||
</div><div class="ui three wide column"> | |||
<div class="meta"><a href="{{.HomeLink}}">{{.Name}}</a></div> | |||
<div class="meta">{{.FullName}}</div> | |||
</div><div class="ui four wide column center"> | |||
<div class="meta"> | |||
{{$.i18n.Tr "org.members.membership_visibility"}} | |||
</div> | |||
<div class="meta"> | |||
{{ $isPublic := index $.MembersIsPublicMember .ID}} | |||
{{if $isPublic}} | |||
<strong>{{$.i18n.Tr "org.members.public"}}</strong> | |||
{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}(<a class="link-action" href data-url="{{$.OrgLink}}/members/action/private?uid={{.ID}}">{{$.i18n.Tr "org.members.public_helper"}}</a>){{end}} | |||
{{else}} | |||
<strong>{{$.i18n.Tr "org.members.private"}}</strong> | |||
{{if or (eq $.SignedUser.ID .ID) $.IsOrganizationOwner}}(<a class="link-action" href data-url="{{$.OrgLink}}/members/action/public?uid={{.ID}}">{{$.i18n.Tr "org.members.private_helper"}}</a>){{end}} | |||
{{end}} | |||
</div> | |||
</div><div class="ui three wide column center"> | |||
<div class="meta"> | |||
{{$.i18n.Tr "org.members.member_role"}} | |||
</div> | |||
<div class="meta"> | |||
<strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock" 16}} {{$.i18n.Tr "org.members.owner"}}{{else}}{{$.i18n.Tr "org.members.member"}}{{end}}</strong> | |||
</div> | |||
</div><div class="ui one wide column center"> | |||
<div class="meta"> | |||
2FA | |||
</div> | |||
<div class="meta"> | |||
<strong> | |||
{{if index $.MembersTwoFaStatus .ID}} | |||
<span class="text green">{{svg "octicon-check" 16}}</span> | |||
{{else}} | |||
{{svg "octicon-x" 16}} | |||
{{end}} | |||
</strong> | |||
</div> | |||
</div><div class="ui three wide column"> | |||
<div class="text right"> | |||
{{if eq $.SignedUser.ID .ID}} | |||
<form method="post" action="{{$.OrgLink}}/members/action/leave"> | |||
{{$.CsrfTokenHtml}} | |||
<button type="submit" class="ui red small button" name="uid" value="{{.ID}}">{{$.i18n.Tr "org.members.leave"}}</button> | |||
</form> | |||
{{else if $.IsOrganizationOwner}} | |||
<form method="post" action="{{$.OrgLink}}/members/action/remove"> | |||
{{$.CsrfTokenHtml}} | |||
<button type="submit" class="ui red small button" name="uid" value="{{.ID}}">{{$.i18n.Tr "org.members.remove"}}</button> | |||
</form> | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
{{end}} | |||
</div> | |||
{{template "base/paginate" .}} | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,33 @@ | |||
<div class="tablet only mobile only sixteen wide mobile sixteen wide tablet column row"> | |||
<div class="ui secondary pointing tabular top attached borderless menu navbar"> | |||
<a class="{{if $.PageIsOrgHome}}active{{end}} item" href="{{.HomeLink}}"> | |||
{{svg "octicon-home" 16}} {{$.i18n.Tr "org.组织主页"}} | |||
</a> | |||
<a class="{{if $.PageIsOrgMembers}}active{{end}} item" href="{{$.OrgLink}}/members"> | |||
{{svg "octicon-organization" 16}} {{$.i18n.Tr "org.people"}} | |||
</a> | |||
<a class="{{if $.PageIsOrgTeams}}active{{end}} item" href="{{$.OrgLink}}/teams"> | |||
{{svg "octicon-jersey" 16}} {{$.i18n.Tr "org.teams"}} | |||
</a> | |||
</div> | |||
</div> | |||
<!--平板、移动端--> | |||
<div class="computer only two wide computer column"> | |||
<div class="ui grid"> | |||
<div class="sixteen wide column ui secondary sticky pointing tabular vertical menu"> | |||
{{with .Org}} | |||
<a class="{{if $.PageIsOrgHome}}active{{end}} item" href="{{.HomeLink}}"> | |||
{{svg "octicon-home" 16}} {{$.i18n.Tr "org.主页"}} | |||
</a> | |||
{{end}} | |||
<a class="{{if $.PageIsOrgMembers}}active{{end}} item" href="{{$.OrgLink}}/members"> | |||
{{svg "octicon-organization" 16}} {{$.i18n.Tr "org.people"}} | |||
</a> | |||
<a class="{{if $.PageIsOrgTeams}}active{{end}} item" href="{{$.OrgLink}}/teams"> | |||
{{svg "octicon-jersey" 16}} {{$.i18n.Tr "org.teams"}} | |||
</a> | |||
</div> | |||
</div> | |||
</div> | |||
<!--电脑、宽屏--> |
@@ -0,0 +1,73 @@ | |||
<h2 class="ui left floated medium header"> | |||
{{.i18n.Tr "explore.repos"}} | |||
</h2> | |||
<div class="ui right floated secondary filter menu"> | |||
<!-- Sort --> | |||
<div class="ui right dropdown type jump item"> | |||
<span class="text"> | |||
{{.i18n.Tr "repo.issues.filter_sort"}} | |||
<i class="dropdown icon"></i> | |||
</span> | |||
<div class="menu"> | |||
<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a> | |||
<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a> | |||
<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a> | |||
<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a> | |||
<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a> | |||
<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a> | |||
<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.moststars"}}</a> | |||
<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.feweststars"}}</a> | |||
<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.mostforks"}}</a> | |||
<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.fewestforks"}}</a> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="ui clearing divider"></div> | |||
<div class="ui repository list"> | |||
{{range .Repos}} | |||
<div class="item"> | |||
<div class="ui header"> | |||
{{if .RelAvatarLink}} | |||
<img class="ui avatar image" src="{{.RelAvatarLink}}"> | |||
{{end}} | |||
<a class="name" href="{{.Link}}"> | |||
{{if or $.PageIsExplore $.PageIsProfileStarList }}{{if .Owner}}{{.Owner.Name}} / {{end}}{{end}}{{.Name}} | |||
{{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}} | |||
</a> | |||
{{if .IsPrivate}} | |||
<span class="middle text gold">{{svg "octicon-lock" 16}}</span> | |||
{{else if .IsFork}} | |||
<span class="middle">{{svg "octicon-repo-forked" 16}}</span> | |||
{{else if .IsMirror}} | |||
<span class="middle">{{svg "octicon-repo-clone" 16}}</span> | |||
{{else if .Owner}} | |||
{{if .Owner.Visibility.IsPrivate}} | |||
<span class="text gold">{{svg "octicon-lock" 16}}</span> | |||
{{end}} | |||
{{end}} | |||
<div class="ui right metas"> | |||
{{if .PrimaryLanguage }} | |||
<span class="text grey"><i class="color-icon" style="background-color: {{.PrimaryLanguage.Color}}"></i>{{ .PrimaryLanguage.Language }}</span> | |||
{{end}} | |||
</div> | |||
</div> | |||
<div class="description"> | |||
{{if .DescriptionHTML}}<p class="has-emoji">{{.DescriptionHTML}}</p>{{end}} | |||
{{if .Topics }} | |||
<div class="ui tags"> | |||
{{range .Topics}} | |||
{{if ne . "" }}<a href="{{AppSubUrl}}/explore/repos?q={{.}}&topic=1"><div class="ui small label topic">{{.}}</div></a>{{end}} | |||
{{end}} | |||
</div> | |||
{{end}} | |||
<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSinceUnix .UpdatedUnix $.i18n.Lang}}</p> | |||
</div> | |||
</div> | |||
{{else}} | |||
<div> | |||
{{$.i18n.Tr "explore.repo_no_results"}} | |||
</div> | |||
{{end}} | |||
</div> |
@@ -0,0 +1,48 @@ | |||
{{template "base/head" .}} | |||
<div class="organization teams"> | |||
{{template "org/header" .}} | |||
<div class="ui container"> | |||
{{template "base/alert" .}} | |||
<div class="ui stackable grid"> | |||
{{template "org/navber" .}} | |||
<div class="ui fourteen wide computer column list"> | |||
<div class="ui two column grid"> | |||
{{range .Teams}} | |||
<div class="column"> | |||
<div class="ui top attached header"> | |||
<a class="text black" href="{{$.OrgLink}}/teams/{{.LowerName}}"><strong>{{.Name}}</strong></a> | |||
<div class="ui right"> | |||
{{if .IsMember $.SignedUser.ID}} | |||
<form method="post" action="{{$.OrgLink}}/teams/{{.LowerName}}/action/leave"> | |||
{{$.CsrfTokenHtml}} | |||
<button type="submit" class="ui red small button" name="uid" value="{{$.SignedUser.ID}}">{{$.i18n.Tr "org.teams.leave"}}</button> | |||
</form> | |||
{{else if $.IsOrganizationOwner}} | |||
<form method="post" action="{{$.OrgLink}}/teams/{{.LowerName}}/action/join"> | |||
{{$.CsrfTokenHtml}} | |||
<button type="submit" class="ui blue small button" name="uid" value="{{$.SignedUser.ID}}">{{$.i18n.Tr "org.teams.join"}}</button> | |||
</form> | |||
{{end}} | |||
</div> | |||
</div> | |||
<div class="ui attached segment members"> | |||
{{range .Members}} | |||
<a href="{{.HomeLink}}" title="{{.Name}}"> | |||
<img class="ui avatar image" src="{{.RelAvatarLink}}"> | |||
</a> | |||
{{end}} | |||
</div> | |||
<div class="ui bottom attached header"> | |||
<p class="team-meta">{{.NumMembers}} {{$.i18n.Tr "org.lower_members"}} · {{.NumRepos}} {{$.i18n.Tr "org.lower_repositories"}}</p> | |||
</div> | |||
</div> | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,10 @@ | |||
{{template "base/head" .}} | |||
<div class="user signin{{if .LinkAccountMode}} icon{{end}}"> | |||
{{template "user/auth/signin_navbar" .}} | |||
<div class="ui container"> | |||
<div class="ui raised very padded text container segment"> | |||
{{template "user/auth/signin_inner" .}} | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -0,0 +1,102 @@ | |||
<style> | |||
.full.height{background-color: #F9F9F9;} | |||
.ui.left{ float:none;} | |||
.ui.secondary.pointing.menu{ border-bottom:none;} | |||
</style> | |||
{{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn)}} | |||
{{template "base/alert" .}} | |||
{{end}} | |||
<div class="ui centered grid"> | |||
<div class="sixteen wide mobile ten wide tablet ten wide computer column"> | |||
<div class="ui bottom aligned two column grid"> | |||
<div class="column"> | |||
<h2 class="ui header"> | |||
{{if .LinkAccountMode}} | |||
{{.i18n.Tr "auth.oauth_signin_title"}} | |||
{{else}} | |||
{{.i18n.Tr "auth.login_userpass"}} | |||
{{end}} | |||
</h2> | |||
</div> | |||
{{if .ShowRegistrationButton}} | |||
<div class="ui right floated column"> | |||
<a href="{{AppSubUrl}}/user/sign_up">{{.i18n.Tr "auth.sign_up_now" | Str2html}}</a> | |||
</div> | |||
{{end}} | |||
</div> | |||
<div class="ui grid"> | |||
<div class="column"> | |||
<form class="ui form" action="{{.SignInLink}}" method="post"> | |||
{{.CsrfTokenHtml}} | |||
<div class="field"> | |||
<div class="ui left icon input {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}"> | |||
<i class="user icon"></i> | |||
<input id="user_name" name="user_name" value="{{.user_name}}" placeholder="{{.i18n.Tr "home.uname_holder"}}" autofocus required> | |||
</div> | |||
</div> | |||
{{if or (not .DisablePassword) .LinkAccountMode}} | |||
<div class="field"> | |||
<div class="ui left icon input {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeSignIn))}}error{{end}}"> | |||
<i class="lock icon"></i> | |||
<input id="password" name="password" type="password" value="{{.password}}" placeholder="{{.i18n.Tr "password"}}" autocomplete="off" required> | |||
</div> | |||
</div> | |||
{{end}} | |||
{{if not .LinkAccountMode}} | |||
<div class="two fields inline"> | |||
<div class="field"> | |||
<div class="ui checkbox"> | |||
<label>{{.i18n.Tr "auth.remember_me"}}</label> | |||
<input name="remember" type="checkbox"> | |||
</div> | |||
</div> | |||
<div class="field" style="padding-right: 0; text-align: right;"> | |||
<a href="{{AppSubUrl}}/user/forgot_password">{{.i18n.Tr "auth.forgot_password"}}</a> | |||
</div> | |||
</div> | |||
{{end}} | |||
<div class="ui hidden divider"></div> | |||
<div class="center aligned field"> | |||
<button class="fluid large ui blue button"> | |||
{{if .LinkAccountMode}} | |||
{{.i18n.Tr "auth.oauth_signin_submit"}} | |||
{{else}} | |||
{{.i18n.Tr "sign_in"}} | |||
{{end}} | |||
</button> | |||
</div> | |||
{{if and .OrderedOAuth2Names .OAuth2Providers}} | |||
<div class="ui centered grid"> | |||
<div class="sixteen wide mobile ten wide tablet ten wide computer column"> | |||
<div class="oauth2 center"> | |||
<div id="oauth2-login-loader" class="ui disabled centered loader"></div> | |||
<div> | |||
<div id="oauth2-login-navigator"> | |||
<p>{{.i18n.Tr "sign_in_with"}}</p> | |||
{{range $key := .OrderedOAuth2Names}} | |||
{{$provider := index $.OAuth2Providers $key}} | |||
<a href="{{AppSubUrl}}/user/oauth2/{{$key}}"> | |||
<img | |||
alt="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}" | |||
title="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}" | |||
class="{{$provider.Name}}" | |||
src="{{AppSubUrl}}{{$provider.Image}}" | |||
onclick="window.onOAuthLoginClick()" | |||
></a> | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{end}} | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
</div> |
@@ -0,0 +1,85 @@ | |||
<style> | |||
.full.height{background-color: #F9F9F9;} | |||
</style> | |||
<div class="ui container very padded {{if .LinkAccountMode}} icon{{end}}" style=" padding-top: 5.0rem; padding-bottom: 3.0rem;"> | |||
<div class="ui raised very padded text container segment"> | |||
<div class="ui centered grid"> | |||
<div class="sixteen wide mobile ten wide tablet ten wide computer column"> | |||
<div class="ui bottom aligned two column grid"> | |||
<div class="column"> | |||
<h2 class="ui header"> | |||
{{if .LinkAccountMode}} | |||
{{.i18n.Tr "auth.oauth_signup_title"}} | |||
{{else}} | |||
{{.i18n.Tr "sign_up"}} | |||
{{end}} | |||
</h2> | |||
</div> | |||
{{if not .LinkAccountMode}} | |||
<div class="ui right floated column"> | |||
<a href="{{AppSubUrl}}/user/login">{{.i18n.Tr "auth.register_helper_msg"}}</a> | |||
</div> | |||
{{end}} | |||
</div> | |||
<div class="ui grid"> | |||
<div class="column"> | |||
<form class="ui form" action="{{.SignUpLink}}" method="post"> | |||
{{.CsrfTokenHtml}} | |||
{{if or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister)}} | |||
{{template "base/alert" .}} | |||
{{end}} | |||
{{if .DisableRegistration}} | |||
<p>{{.i18n.Tr "auth.disable_register_prompt"}}</p> | |||
{{else}} | |||
<div class="field {{if and (.Err_UserName) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}"> | |||
<input id="user_name" name="user_name" value="{{.user_name}}" placeholder="{{.i18n.Tr "username"}}" autofocus required> | |||
</div> | |||
<div class="field {{if .Err_Email}}error{{end}}"> | |||
<input id="email" name="email" type="email" value="{{.email}}" placeholder="{{.i18n.Tr "email"}}" required> | |||
</div> | |||
{{if not .DisablePassword}} | |||
<div class="field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}"> | |||
<input id="password" name="password" type="password" value="{{.password}}" placeholder="{{.i18n.Tr "password"}}" autocomplete="off" required> | |||
</div> | |||
<div class="field {{if and (.Err_Password) (or (not .LinkAccountMode) (and .LinkAccountMode .LinkAccountModeRegister))}}error{{end}}"> | |||
<input id="retype" name="retype" type="password" value="{{.retype}}" placeholder="{{.i18n.Tr "re_type"}}" autocomplete="off" required> | |||
</div> | |||
{{end}} | |||
{{if and .EnableCaptcha (eq .CaptchaType "image")}} | |||
<div class="field"> | |||
{{.Captcha.CreateHtml}} | |||
</div> | |||
<div class="field {{if .Err_Captcha}}error{{end}}"> | |||
<input id="captcha" name="captcha" value="{{.captcha}}" placeholder="{{.i18n.Tr "captcha"}}" autocomplete="off"> | |||
</div> | |||
{{end}} | |||
{{if and .EnableCaptcha (eq .CaptchaType "recaptcha")}} | |||
<div class="field required"> | |||
<div class="g-recaptcha" data-sitekey="{{ .RecaptchaSitekey }}"></div> | |||
</div> | |||
{{end}} | |||
<div class="ui hidden divider"></div> | |||
<div class="center aligned field"> | |||
<button class="fluid large ui blue button"> | |||
{{if .LinkAccountMode}} | |||
{{.i18n.Tr "auth.oauth_signup_submit"}} | |||
{{else}} | |||
{{.i18n.Tr "auth.create_new_account"}} | |||
{{end}} | |||
</button> | |||
</div> | |||
{{end}} | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
</div> |
@@ -0,0 +1,59 @@ | |||
<div class="dashboard-navbar"> | |||
<div class="ui container secondary stackable menu"> | |||
<div class="item"> | |||
<div class="ui floating dropdown link jump"> | |||
<span class="text"> | |||
<img class="ui avatar image" src="{{.ContextUser.RelAvatarLink}}" title="{{.ContextUser.Name}}" width="28" height="28"> | |||
{{.ContextUser.ShortName 20}} | |||
<i class="dropdown icon"></i> | |||
</span> | |||
<div class="context user overflow menu" tabindex="-1"> | |||
<div class="ui header"> | |||
{{.i18n.Tr "home.switch_dashboard_context"}} | |||
</div> | |||
<div class="scrolling menu items"> | |||
<a class="{{if eq .ContextUser.ID .SignedUser.ID}}active selected{{end}} item" href="{{AppSubUrl}}/{{if .PageIsIssues}}issues{{else if .PageIsPulls}}pulls{{else if .PageIsMilestonesDashboard}}milestones{{end}}"> | |||
<img class="ui avatar image" src="{{.SignedUser.RelAvatarLink}}" width="28" height="28"> | |||
{{.SignedUser.Name}} | |||
</a> | |||
{{range .Orgs}} | |||
<a class="{{if eq $.ContextUser.ID .ID}}active selected{{end}} item" title="{{.Name}}" href="{{AppSubUrl}}/org/{{.Name}}/{{if $.PageIsIssues}}issues{{else if $.PageIsPulls}}pulls{{else if $.PageIsMilestonesDashboard}}milestones{{else}}dashboard{{end}}"> | |||
<img class="ui avatar image" src="{{.RelAvatarLink}}" width="28" height="28"> | |||
{{.ShortName 20}} | |||
</a> | |||
{{end}} | |||
</div> | |||
{{if .SignedUser.CanCreateOrganization}} | |||
<a class="item" href="{{AppSubUrl}}/org/create"> | |||
{{svg "octicon-plus" 16}} {{.i18n.Tr "new_org"}} | |||
</a> | |||
{{end}} | |||
</div> | |||
</div> | |||
</div> | |||
{{if .ContextUser.IsOrganization}} | |||
<div class="right stackable menu"> | |||
<a class="{{if .PageIsNews}}active{{end}} item" style="margin-left: auto" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/dashboard"> | |||
{{svg "octicon-rss" 16}} {{.i18n.Tr "activities"}} | |||
</a> | |||
<a class="{{if .PageIsIssues}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/issues"> | |||
{{svg "octicon-issue-opened" 16}} {{.i18n.Tr "issues"}} | |||
</a> | |||
<a class="{{if .PageIsPulls}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/pulls"> | |||
{{svg "octicon-git-pull-request" 16}} {{.i18n.Tr "pull_requests"}} | |||
</a> | |||
{{if .ShowMilestonesDashboardPage}} | |||
<a class="{{if .PageIsMilestonesDashboard}}active{{end}} item" href="{{AppSubUrl}}/org/{{.ContextUser.Name}}/milestones"> | |||
{{svg "octicon-milestone" 16}} {{.i18n.Tr "milestones"}} | |||
</a> | |||
{{end}} | |||
<div class="item"> | |||
<a class="ui blue basic button" href="{{.ContextUser.HomeLink}}" title='{{.i18n.Tr "home.view_home" .ContextUser.Name}}'> | |||
{{.i18n.Tr "home.view_home" (.ContextUser.ShortName 10)}} | |||
</a> | |||
</div> | |||
</div> | |||
{{end}} | |||
</div> | |||
</div> |