You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

profile.tmpl 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. {{template "base/head" .}}
  2. <div class="user profile">
  3. <div class="ui container">
  4. <div class="ui stackable grid">
  5. <div class="ui five wide column">
  6. <div class="ui card">
  7. {{if eq .SignedUserName .Owner.Name}}
  8. <a class="image poping up" href="{{AppSubUrl}}/user/settings" id="profile-avatar" data-content="{{.i18n.Tr "user.change_avatar"}}" data-variation="inverted tiny" data-position="bottom center">
  9. <img src="{{.Owner.SizedRelAvatarLink 290}}" title="{{.Owner.Name}}"/>
  10. </a>
  11. {{else}}
  12. <span class="image">
  13. <img src="{{.Owner.SizedRelAvatarLink 290}}" title="{{.Owner.Name}}"/>
  14. </span>
  15. {{end}}
  16. <div class="content wrap">
  17. {{if .Owner.FullName}}<span class="header text center">{{.Owner.FullName}}</span>{{end}}
  18. <span class="username text center">{{.Owner.Name}}</span>
  19. </div>
  20. <div class="extra content wrap">
  21. <ul class="text black">
  22. {{if .Owner.Location}}
  23. <li>{{svg "octicon-location" 16}} {{.Owner.Location}}</li>
  24. {{end}}
  25. {{if .ShowUserEmail }}
  26. <li>
  27. {{svg "octicon-mail" 16}}
  28. <a href="mailto:{{.Owner.Email}}" rel="nofollow">{{.Owner.Email}}</a>
  29. </li>
  30. {{end}}
  31. {{if .Owner.Website}}
  32. <li>
  33. {{svg "octicon-link" 16}}
  34. <a target="_blank" rel="noopener noreferrer me" href="{{.Owner.Website}}">{{.Owner.Website}}</a>
  35. </li>
  36. {{end}}
  37. {{if .Owner.Description}}
  38. <li>
  39. {{svg "octicon-info" 16}}
  40. <span>{{.Owner.Description}}</span>
  41. </li>
  42. {{end}}
  43. {{range .OpenIDs}}
  44. {{if .Show}}
  45. <li>
  46. <i class="fa fa-openid"></i>
  47. <a target="_blank" rel="noopener noreferrer" href="{{.URI}}">{{.URI}}</a>
  48. </li>
  49. {{end}}
  50. {{end}}
  51. <li>{{svg "octicon-clock" 16}} {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li>
  52. {{if and .Orgs .HasOrgsVisible}}
  53. <li>
  54. <ul class="user-orgs">
  55. {{range .Orgs}}
  56. {{if (or .Visibility.IsPublic (and ($.SignedUser) (or .Visibility.IsLimited (and (.IsUserPartOfOrg $.SignedUserID) .Visibility.IsPrivate) ($.IsAdmin))))}}
  57. <li>
  58. <a href="{{.HomeLink}}"><img class="ui image poping up" src="{{.RelAvatarLink}}" data-content="{{.Name}}" data-position="top center" data-variation="tiny inverted"></a>
  59. </li>
  60. {{end}}
  61. {{end}}
  62. </ul>
  63. </li>
  64. {{end}}
  65. {{if and .IsSigned (ne .SignedUserName .Owner.Name)}}
  66. <li class="follow">
  67. {{if .SignedUser.IsFollowing .Owner.ID}}
  68. <a class="ui basic red button" href="{{.Link}}/action/unfollow?redirect_to={{$.Link}}">{{svg "octicon-person" 16}} {{.i18n.Tr "user.unfollow"}}</a>
  69. {{else}}
  70. <a class="ui basic green button" href="{{.Link}}/action/follow?redirect_to={{$.Link}}">{{svg "octicon-person" 16}} {{.i18n.Tr "user.follow"}}</a>
  71. {{end}}
  72. </li>
  73. {{end}}
  74. </ul>
  75. </div>
  76. </div>
  77. </div>
  78. <div class="ui eleven wide column">
  79. <div class="ui secondary stackable pointing menu">
  80. <a class='{{if and (ne .TabName "activity") (ne .TabName "following") (ne .TabName "followers") (ne .TabName "stars")}}active{{end}} item' href="{{.Owner.HomeLink}}">
  81. {{svg "octicon-repo" 16}} {{.i18n.Tr "user.repositories"}}
  82. </a>
  83. <a class='{{if eq .TabName "activity"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=activity">
  84. {{svg "octicon-rss" 16}} {{.i18n.Tr "user.activity"}}
  85. </a>
  86. <a class='{{if eq .TabName "stars"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=stars">
  87. {{svg "octicon-star" 16}} {{.i18n.Tr "user.starred"}}
  88. <div class="ui label">{{.Owner.NumStars}}</div>
  89. </a>
  90. <a class='{{if eq .TabName "following"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=following">
  91. {{svg "octicon-person" 16}} {{.i18n.Tr "user.following"}}
  92. <div class="ui label">{{.Owner.NumFollowing}}</div>
  93. </a>
  94. <a class='{{if eq .TabName "followers"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=followers">
  95. {{svg "octicon-person" 16}} {{.i18n.Tr "user.followers"}}
  96. <div class="ui label">{{.Owner.NumFollowers}}</div>
  97. </a>
  98. </div>
  99. {{if eq .TabName "activity"}}
  100. {{if .EnableHeatmap}}
  101. <div id="user-heatmap" style="padding-right: 40px">
  102. <activity-heatmap :locale="locale" :suburl="suburl" :user="heatmapUser">
  103. <div slot="loading">
  104. <div class="ui active centered inline indeterminate text loader" id="loading-heatmap">{{.i18n.Tr "user.heatmap.loading"}}</div>
  105. </div>
  106. </activity-heatmap>
  107. </div>
  108. <div class="ui divider"></div>
  109. {{end}}
  110. <div class="feeds">
  111. {{template "user/dashboard/feeds" .}}
  112. </div>
  113. {{else if eq .TabName "stars"}}
  114. <div class="stars">
  115. {{template "explore/repo_search" .}}
  116. {{template "explore/repo_list" .}}
  117. {{template "base/paginate" .}}
  118. </div>
  119. {{else if eq .TabName "following"}}
  120. {{template "repo/user_cards" .}}
  121. {{else if eq .TabName "followers"}}
  122. {{template "repo/user_cards" .}}
  123. {{else}}
  124. {{template "explore/repo_search" .}}
  125. {{template "explore/repo_list" .}}
  126. {{template "base/paginate" .}}
  127. {{end}}
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. {{template "base/footer" .}}