| @@ -525,6 +525,7 @@ datasets = Datasets | |||||
| activity = Public Activity | activity = Public Activity | ||||
| followers = Followers | followers = Followers | ||||
| starred = Starred Repositories | starred = Starred Repositories | ||||
| badge = Achievement Badge | |||||
| following = Following | following = Following | ||||
| follow = Follow | follow = Follow | ||||
| unfollow = Unfollow | unfollow = Unfollow | ||||
| @@ -530,6 +530,7 @@ datasets=数据集 | |||||
| activity=公开活动 | activity=公开活动 | ||||
| followers=关注者 | followers=关注者 | ||||
| starred=已点赞 | starred=已点赞 | ||||
| badge=成就徽章 | |||||
| following=关注中 | following=关注中 | ||||
| follow=关注 | follow=关注 | ||||
| unfollow=取消关注 | unfollow=取消关注 | ||||
| @@ -0,0 +1,25 @@ | |||||
| <div class="badge-achive"> | |||||
| {{range .AllBadges }} | |||||
| <div class="bagde-section"> | |||||
| <div class="badge-section-title">{{.CategoryName}} (已点亮{{.LightedNum}}个)</div> | |||||
| <div class="badge-section-children"> | |||||
| <div class="badge-honor-badge"> | |||||
| <div class="badge-honor-badge-basic"> | |||||
| {{range .Badges }} | |||||
| <a class="badge-honor-badge-basic-item {{if not .Badge.Url}} is-not-pointer {{end}}" href="{{.Badge.Url}}"> | |||||
| {{if .IsLighted}} | |||||
| <img src="{{.Badge.LightedIcon}}" alt="" class="badge-honor-badge-basic-img" /> | |||||
| {{else}} | |||||
| <img src="{{.Badge.GreyedIcon}}" alt="" class="badge-honor-badge-basic-img" /> | |||||
| {{ end }} | |||||
| <div class="badge-honor-badge-basic-txt">{{.Badge.Name}}</div> | |||||
| </a> | |||||
| {{ end }} | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| {{ end }} | |||||
| {{ template "base/paginate" . }} | |||||
| </div> | |||||
| @@ -17,6 +17,17 @@ | |||||
| {{if .Owner.FullName}}<span class="header text center">{{.Owner.FullName}}</span>{{end}} | {{if .Owner.FullName}}<span class="header text center">{{.Owner.FullName}}</span>{{end}} | ||||
| <span class="username text center">{{.Owner.Name}}</span> | <span class="username text center">{{.Owner.Name}}</span> | ||||
| </div> | </div> | ||||
| <div class="badge-wrap"> | |||||
| {{range $k,$v :=.RecentBadges}} | |||||
| {{if le $k 3}} | |||||
| <div class="badge-img-avatar" title="{{.Name}}"><img style="width: 100%;height: 100%;" src="{{.LightedIcon}}" class="ui poping up" data-content="{{.Name}}" data-position="top center" data-variation="tiny inverted"></div> | |||||
| {{else}} | |||||
| <a class="badge-more-icon" href="{{$.Owner.HomeLink}}?tab=badge"><i class="ri-more-fill"></i></a> | |||||
| {{end}} | |||||
| {{end}} | |||||
| </div> | |||||
| <div class="extra content wrap"> | <div class="extra content wrap"> | ||||
| <ul class="text black"> | <ul class="text black"> | ||||
| {{if .Owner.Location}} | {{if .Owner.Location}} | ||||
| @@ -170,6 +181,11 @@ | |||||
| {{svg "octicon-person" 16}} {{.i18n.Tr "user.followers"}} | {{svg "octicon-person" 16}} {{.i18n.Tr "user.followers"}} | ||||
| <div class="ui label">{{.Owner.NumFollowers}}</div> | <div class="ui label">{{.Owner.NumFollowers}}</div> | ||||
| </a> | </a> | ||||
| <a class='{{if eq .TabName "badge"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=badge"> | |||||
| <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="16"><path fill="none" d="M0 0h24v24H0z"/><path d="M17 15.245v6.872a.5.5 0 0 1-.757.429L12 20l-4.243 2.546a.5.5 0 0 1-.757-.43v-6.87a8 8 0 1 1 10 0zM12 15a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm0-2a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"/></svg> | |||||
| {{.i18n.Tr "user.badge"}} | |||||
| </a> | |||||
| </div> | </div> | ||||
| {{if eq .TabName "activity"}} | {{if eq .TabName "activity"}} | ||||
| @@ -201,6 +217,8 @@ | |||||
| {{template "explore/dataset_search" .}} | {{template "explore/dataset_search" .}} | ||||
| {{template "explore/dataset_list" .}} | {{template "explore/dataset_list" .}} | ||||
| {{template "base/paginate" .}} | {{template "base/paginate" .}} | ||||
| {{else if eq .TabName "badge"}} | |||||
| {{template "repo/badge" .}} | |||||
| {{else}} | {{else}} | ||||
| {{template "explore/repo_search" .}} | {{template "explore/repo_search" .}} | ||||
| {{template "explore/repo_list" .}} | {{template "explore/repo_list" .}} | ||||
| @@ -9,11 +9,30 @@ | |||||
| .username { | .username { | ||||
| display: block; | display: block; | ||||
| } | } | ||||
| .badge-wrap { | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| .badge-img-avatar { | |||||
| width: 32px; | |||||
| height: 32px; | |||||
| margin-right: 5px; | |||||
| } | |||||
| .badge-more-icon { | |||||
| width: 32px; | |||||
| height: 32px; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border-radius: 50%; | |||||
| border: 1px #f8f9fa solid; | |||||
| background: #f8f9fa; | |||||
| } | |||||
| } | |||||
| .header { | .header { | ||||
| font-weight: 700; | font-weight: 700; | ||||
| font-size: 1.3rem; | font-size: 1.3rem; | ||||
| margin-top: -.2rem; | |||||
| margin-top: -0.2rem; | |||||
| line-height: 1.3rem; | line-height: 1.3rem; | ||||
| } | } | ||||
| @@ -158,3 +177,65 @@ | |||||
| max-width: 60px; | max-width: 60px; | ||||
| } | } | ||||
| } | } | ||||
| .badge-achive { | |||||
| .bagde-section { | |||||
| color: #000; | |||||
| margin-top: 28px; | |||||
| border-bottom: 1px solid #dededf; | |||||
| } | |||||
| .bagde-section:last-child { | |||||
| color: #000; | |||||
| margin-top: 28px; | |||||
| border-bottom: none; | |||||
| } | |||||
| .badge-section-title { | |||||
| position: relative; | |||||
| font-size: 16px; | |||||
| line-height: 24px; | |||||
| padding-left: 8px; | |||||
| margin-bottom: 20px; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| } | |||||
| .badge-section-children { | |||||
| width: 100%; | |||||
| } | |||||
| .badge-honor-badge { | |||||
| margin-bottom: 25px; | |||||
| } | |||||
| .badge-honor-badge-basic { | |||||
| display: flex; | |||||
| align-items: flex-start; | |||||
| flex-wrap: wrap; | |||||
| } | |||||
| .badge-honor-badge-basic-item { | |||||
| text-align: center; | |||||
| font-size: 12px; | |||||
| margin-right: 30px; | |||||
| color: #101010; | |||||
| } | |||||
| .is-not-pointer { | |||||
| cursor: pointer; | |||||
| pointer-events: none; | |||||
| } | |||||
| .badge-honor-badge-basic-img { | |||||
| width: 56px; | |||||
| height: 56px; | |||||
| margin-bottom: 5px; | |||||
| } | |||||
| .badge-honor-badge-basic-txt { | |||||
| line-height: 20px; | |||||
| width: 65px; | |||||
| word-break: break-all; | |||||
| } | |||||
| .badge-section-title:before { | |||||
| content: ""; | |||||
| position: absolute; | |||||
| top: 50%; | |||||
| left: 0; | |||||
| transform: translateY(-50%); | |||||
| width: 3px; | |||||
| height: 1em; | |||||
| background-color: #000; | |||||
| } | |||||
| } | |||||