您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

repo-search.tmpl 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <script type="text/x-template" id="repo-search-template">
  2. <div>
  3. {{if not .ContextUser.IsOrganization}}
  4. <div class="ui two item stackable tabable menu">
  5. <a :class="{item: true, active: tab === 'repos'}" @click="changeTab('repos')">{{.i18n.Tr "repository"}}</a>
  6. <a :class="{item: true, active: tab === 'orgs'}" @click="changeTab('orgs')">{{.i18n.Tr "organization"}}</a>
  7. </div>
  8. {{end}}
  9. <div v-if="tab === 'repos'" class="ui tab active list">
  10. <h4 class="ui top attached header">
  11. {{.i18n.Tr "home.my_repos"}} <span class="ui grey label">${ reposTotal }</span>
  12. <div class="ui right">
  13. <a class="poping up" href="{{AppSubUrl}}/repo/create" data-content="{{.i18n.Tr "new_repo"}}" data-variation="tiny inverted" data-position="left center">
  14. <i class="plus icon"></i>
  15. <span class="sr-only">{{.i18n.Tr "new_repo"}}</span>
  16. </a>
  17. </div>
  18. </h4>
  19. <div class="ui attached secondary segment repos-search">
  20. <div class="ui fluid icon input" :class="{loading: isLoading}">
  21. <input @input="searchRepos" v-model="searchQuery" ref="search" placeholder="{{.i18n.Tr "home.search_repos"}}">
  22. <i class="search icon"></i>
  23. </div>
  24. <div class="ui secondary tiny pointing borderless menu center aligned grid repos-filter">
  25. <a class="item" :class="{active: reposFilter === 'all'}" @click="changeReposFilter('all')">{{.i18n.Tr "all"}}</a>
  26. <a class="item" :class="{active: reposFilter === 'sources'}" @click="changeReposFilter('sources')">{{.i18n.Tr "sources"}}</a>
  27. <a class="item" :class="{active: reposFilter === 'forks'}" @click="changeReposFilter('forks')">{{.i18n.Tr "forks"}}</a>
  28. <a class="item" :class="{active: reposFilter === 'mirrors'}" @click="changeReposFilter('mirrors')">{{.i18n.Tr "mirrors"}}</a>
  29. <a class="item" :class="{active: reposFilter === 'collaborative'}" @click="changeReposFilter('collaborative')">{{.i18n.Tr "collaborative"}}</a>
  30. </div>
  31. </div>
  32. <div class="ui attached table segment">
  33. <ul class="repo-owner-name-list">
  34. <li v-for="repo in repos" :class="{'private': repo.private}" v-show="showRepo(repo, reposFilter)">
  35. <a :href="'{{AppSubUrl}}/' + repo.full_name">
  36. <i :class="repoClass(repo)"></i>
  37. <strong class="text truncate item-name">${ repo.full_name }</strong>
  38. <span class="ui right text light grey">
  39. ${ repo.stars_count } <i class="octicon octicon-star rear"></i>
  40. </span>
  41. </a>
  42. </li>
  43. <li v-if="repos.length < reposTotal">
  44. <a href="{{.ContextUser.HomeLink}}">{{.i18n.Tr "home.show_more_repos"}}</a>
  45. </li>
  46. </ul>
  47. </div>
  48. </div>
  49. {{if not .ContextUser.IsOrganization}}
  50. <div v-if="tab === 'orgs'" class="ui tab active list">
  51. <h4 class="ui top attached header">
  52. {{.i18n.Tr "home.my_orgs"}} <span class="ui grey label">{{.ContextUser.GetOrganizationCount}}</span>
  53. <div class="ui right">
  54. {{if .SignedUser.CanCreateOrganization}}
  55. <a class="poping up" href="{{AppSubUrl}}/org/create" data-content="{{.i18n.Tr "new_org"}}" data-variation="tiny inverted" data-position="left center">
  56. <i class="plus icon"></i>
  57. <span class="sr-only">{{.i18n.Tr "new_org"}}</span>
  58. </a>
  59. {{end}}
  60. </div>
  61. </h4>
  62. <div class="ui attached table segment">
  63. <ul class="repo-owner-name-list">
  64. {{range .ContextUser.Orgs}}
  65. <li>
  66. <a href="{{AppSubUrl}}/{{.Name}}">
  67. <i class="octicon octicon-organization"></i>
  68. <strong class="text truncate item-name">{{.Name}}</strong>
  69. <span class="ui right text light grey">
  70. {{.NumRepos}} <i class="octicon octicon-repo rear"></i>
  71. </span>
  72. </a>
  73. </li>
  74. {{end}}
  75. </ul>
  76. </div>
  77. </div>
  78. {{end}}
  79. </div>
  80. </script>