dashboard.tmpl 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. {{template "ng/base/head" .}}
  2. {{template "ng/base/header" .}}
  3. {{template "user/dashboard/nav" .}}
  4. <div id="dashboard-wrapper">
  5. <div id="dashboard" class="container">
  6. {{template "ng/base/alert" .}}
  7. <div id="dashboard-news" class="left grid-2-3">
  8. {{range .Feeds}}
  9. <div class="news clear">
  10. <div class="avatar left">
  11. <img class="avatar-30" src="{{AvatarLink .GetActEmail}}" alt="">
  12. </div>
  13. <div class="content left {{if eq .GetOpType 5}}push-news{{end}} grid-4-5">
  14. <p class="text-bold">
  15. <a href="{{AppSubUrl}}/{{.GetActUserName}}">{{.GetActUserName}}</a>
  16. {{if eq .GetOpType 1}}
  17. {{$.i18n.Tr "action.create_repo" AppSubUrl .GetRepoLink .GetRepoLink | Str2html}}
  18. {{else if eq .GetOpType 5}}
  19. {{$.i18n.Tr "action.commit_repo" AppSubUrl .GetRepoLink .GetBranch .GetBranch AppSubUrl .GetRepoLink .GetRepoLink | Str2html}}
  20. {{else if eq .GetOpType 6}}
  21. {{ $index := index .GetIssueInfos 0}}
  22. {{$.i18n.Tr "action.create_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
  23. {{else if eq .GetOpType 8}}
  24. {{$.i18n.Tr "action.transfer_repo" .GetRepoName AppSubUrl .GetRepoLink .GetRepoLink | Str2html}}
  25. {{else if eq .GetOpType 10}}
  26. {{ $index := index .GetIssueInfos 0}}
  27. {{$.i18n.Tr "action.comment_issue" AppSubUrl .GetRepoLink $index .GetRepoLink $index | Str2html}}
  28. {{end}}
  29. </p>
  30. {{if eq .GetOpType 5}}
  31. <div class="news-content content">
  32. <ul class="list-no-style">
  33. {{ $push := ActionContent2Commits .}}
  34. {{ $repoLink := .GetRepoLink}}
  35. {{range $push.Commits}}
  36. <li><img class="avatar-16" src="{{AvatarLink .AuthorEmail}}?s=16"> <a href="{{AppSubUrl}}/{{$repoLink}}/commit/{{.Sha1}}">{{ShortSha .Sha1}}</a> <span class="text-truncate grid-4-5">{{.Message}}</span></li>
  37. {{end}}
  38. </ul>
  39. </div>
  40. {{else if eq .GetOpType 6}}
  41. <p class="news-content comment-news">{{index .GetIssueInfos 1}}</p>
  42. {{else if eq .GetOpType 10}}
  43. <p class="news-content comment-news">{{index .GetIssueInfos 1}}</p>
  44. {{end}}
  45. <p class="news-time text-italic">{{TimeSince .GetCreate $.i18n.Lang}}</p>
  46. </div>
  47. <i class="mega-octicon octicon-{{ActionIcon .GetOpType}} right"></i>
  48. </div>
  49. {{end}}
  50. </div>
  51. <div id="dashboard-sidebar" class="right grid-1-3">
  52. <ul id="dashboard-sidebar-menu" class="menu menu-line">
  53. <li class="js-tab-nav js-tab-nav-show first" data-tab-target="#dashboard-my-repo"><a href="#">{{.i18n.Tr "repository"}}</a></li>
  54. {{if not .ContextUser.IsOrganization}}
  55. <li class="js-tab-nav" data-tab-target="#dashboard-my-org"><a href="#">{{.i18n.Tr "organization"}}</a></li>
  56. {{end}}
  57. <li class="js-tab-nav last" data-tab-target="#dashboard-my-mirror"><a href="#">{{.i18n.Tr "mirror"}}</a></li>
  58. <li class="drop right">
  59. <button class="btn btn-green text-bold" id="dashboard-new-repo">
  60. <i class="octicon octicon-plus"></i>
  61. </button>
  62. <ul class="menu menu-vertical drop-down" id="dashboard-new-repo-menu">
  63. <li><a href="{{AppSubUrl}}/repo/create"><i class="octicon octicon-repo-create"></i>{{.i18n.Tr "new_repo"}}</a></li>
  64. <li><a href="{{AppSubUrl}}/repo/migrate"><i class="octicon octicon-repo-clone"></i>{{.i18n.Tr "new_migrate"}}</a></li>
  65. <li><a href="{{AppSubUrl}}/org/create"><i class="octicon octicon-organization"></i>{{.i18n.Tr "new_org"}}</a></li>
  66. </ul>
  67. </li>
  68. </ul>
  69. <div class="panel" id="dashboard-my-repo">
  70. <div class="panel-header">
  71. <h4 class="left">{{.i18n.Tr "home.my_repos"}}
  72. <span class="repo-count label label-gray label-radius">{{.ContextUser.NumRepos}}</span>
  73. </h4>
  74. &nbsp;
  75. </div>
  76. <div class="panel-body">
  77. <ul class="list-no-style">
  78. {{range .Repos}}
  79. <li {{if .IsPrivate}}class="private"{{end}}>
  80. <a href="{{AppSubUrl}}/{{$.ContextUser.Name}}/{{.Name}}">
  81. <i class="octicon octicon-{{if .IsPrivate}}lock{{else if .IsFork}}repo-forked{{else if .IsMirror}}repo-clone{{else}}repo{{end}}"></i>
  82. <span class="repo-name">
  83. <strong class="repo">{{.Name}}</strong>
  84. </span>
  85. <span class="right repo-star">
  86. <i class="octicon octicon-star"></i>{{.NumStars}}
  87. </span>
  88. </a>
  89. </li>
  90. {{end}}
  91. </ul>
  92. </div>
  93. {{if not .ContextUser.IsOrganization}}
  94. <div class="panel-header repo-contrib-header">
  95. <h4 class="text-bold">{{.i18n.Tr "home.collaborative_repos"}}
  96. <span class="repo-count label label-gray label-radius">{{.CollaborateCount}}</span>
  97. </h4>
  98. </div>
  99. <div class="panel-body">
  100. <ul class="list-no-style">
  101. {{range .CollaborativeRepos}}
  102. <li {{if .IsPrivate}}class="private"{{end}}>
  103. <a href="{{.Owner.Name}}/{{.Name}}">
  104. <i class="octicon octicon-{{if .IsPrivate}}lock{{else if .IsFork}}repo-forked{{else if .IsMirror}}repo-clone{{else}}repo{{end}}"></i>
  105. <span class="repo-name">
  106. <span class="repo-name-prefix">{{.Owner.Name}} / </span>
  107. <strong class="repo">{{.Name}}</strong>
  108. </span>
  109. <span class="right repo-star">
  110. <i class="octicon octicon-star"></i>{{.NumStars}}
  111. </span>
  112. </a>
  113. </li>
  114. {{end}}
  115. </ul>
  116. </div>
  117. {{end}}
  118. </div>
  119. {{if not .ContextUser.IsOrganization}}
  120. <div class="panel" id="dashboard-my-org">
  121. <div class="panel-header">
  122. <h4 class="text-bold">{{.i18n.Tr "home.my_orgs"}}
  123. <span class="repo-count label label-gray label-radius">{{.ContextUser.GetOrganizationCount}}</span>
  124. </h4>
  125. </div>
  126. <div class="panel-body">
  127. <ul class="list-no-style">
  128. {{range .ContextUser.Orgs}}
  129. <li>
  130. <a href="{{AppSubUrl}}/{{.Name}}">
  131. <i class="octicon octicon-organization"></i>
  132. <span class="repo-name">
  133. <strong class="repo">{{.Name}}</strong>
  134. </span>
  135. <span class="right repo-star">
  136. <i class="octicon octicon-repo"></i>{{.NumRepos}}
  137. </span>
  138. </a>
  139. </li>
  140. {{end}}
  141. </ul>
  142. </div>
  143. </div>
  144. {{end}}
  145. <div class="panel" id="dashboard-my-mirror">
  146. <div class="panel-header">
  147. <h4 class="text-bold">{{.i18n.Tr "home.my_mirrors"}}
  148. <span class="repo-count label label-gray label-radius">{{.MirrorCount}}</span>
  149. </h4>
  150. </div>
  151. <div class="panel-body">
  152. <ul class="list-no-style">
  153. {{range .Mirrors}}
  154. <li {{if .IsPrivate}}class="private"{{end}}>
  155. <a href="{{AppSubUrl}}/{{$.ContextUser.Name}}/{{.Name}}">
  156. <i class="octicon octicon-repo-clone"></i>
  157. <span class="repo-name">
  158. <strong class="repo">{{.Name}}</strong>
  159. </span>
  160. <span class="right repo-star">
  161. <i class="octicon octicon-sync"></i>{{.Interval}}H
  162. </span>
  163. </a>
  164. </li>
  165. {{end}}
  166. </ul>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. {{template "ng/base/footer" .}}