| @@ -24,6 +24,105 @@ | |||
| </div> | |||
| <div class="ui clearing divider"></div> | |||
| <div id="app" class="six wide column"> | |||
| <repo-search | |||
| :search-limit="searchLimit" | |||
| :suburl="suburl" | |||
| :uid="uid" | |||
| :more-repos-link="'{{.ContextUser.HomeLink}}'" | |||
| {{if not .ContextUser.IsOrganization}} | |||
| :organizations="[ | |||
| {{range .ContextUser.Orgs}} | |||
| {name: '{{.Name}}', num_repos: '{{.NumRepos}}'}, | |||
| {{end}} | |||
| ]" | |||
| :is-organization="false" | |||
| :organizations-total-count="{{.ContextUser.GetOrganizationCount}}" | |||
| :can-create-organization="{{.SignedUser.CanCreateOrganization}}" | |||
| {{end}} | |||
| inline-template | |||
| v-cloak | |||
| > | |||
| <h4 class="ui top attached header"> | |||
| {{.i18n.Tr "home.my_repos"}} <span class="ui grey label">${reposTotalCount}</span> | |||
| {{if or (not .ContextUser.IsOrganization) .IsOrganizationOwner}} | |||
| <div class="ui right"> | |||
| <a class="poping up" :href="suburl + '/repo/create{{if .ContextUser.IsOrganization}}?org={{.ContextUser.ID}}{{end}}'" data-content="{{.i18n.Tr "new_repo"}}" data-variation="tiny inverted" data-position="left center"> | |||
| <i class="plus icon"></i> | |||
| <span class="sr-only">{{.i18n.Tr "new_repo"}}</span> | |||
| </a> | |||
| </div> | |||
| {{end}} | |||
| </h4> | |||
| <div class="ui attached secondary segment repos-search"> | |||
| <div class="ui fluid right action left icon input" :class="{loading: isLoading}"> | |||
| <input @input="searchRepos(reposFilter)" v-model="searchQuery" ref="search" placeholder="{{.i18n.Tr "home.search_repos"}}"> | |||
| <i class="search icon"></i> | |||
| <div class="ui dropdown button" title="{{.i18n.Tr "home.filter"}}"> | |||
| <i class="icon filter"></i> | |||
| <div class="menu"> | |||
| <div class="item"> | |||
| <a @click="toggleArchivedFilter()"> | |||
| <div class="ui checkbox" id="archivedFilterCheckbox" title="{{.i18n.Tr "home.show_both_archived_unarchived"}}" v-if="archivedFilter === 'both'"> | |||
| <input type="checkbox"> | |||
| <label><i class="archive icon archived-icon"></i>{{.i18n.Tr "home.show_archived"}}</label> | |||
| </div> | |||
| <div class="ui checkbox" id="archivedFilterCheckbox" title="{{.i18n.Tr "home.show_only_unarchived"}}" v-if="archivedFilter === 'unarchived'"> | |||
| <input type="checkbox"> | |||
| <label><i class="archive icon archived-icon"></i>{{.i18n.Tr "home.show_archived"}}</label> | |||
| </div> | |||
| <div class="ui checkbox" id="archivedFilterCheckbox" title="{{.i18n.Tr "home.show_only_archived"}}" v-if="archivedFilter === 'archived'"> | |||
| <input type="checkbox"> | |||
| <label><i class="archive icon archived-icon"></i>{{.i18n.Tr "home.show_archived"}}</label> | |||
| </div> | |||
| </a> | |||
| </div> | |||
| <div class="item"> | |||
| <a @click="togglePrivateFilter()"> | |||
| <div class="ui checkbox" id="privateFilterCheckbox" title="{{.i18n.Tr "home.show_both_private_public"}}" v-if="privateFilter === 'both'"> | |||
| <input type="checkbox"> | |||
| <label><svg class="svg octicon-lock" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-lock" /></svg>{{.i18n.Tr "home.show_private"}}</label> | |||
| </div> | |||
| <div class="ui checkbox" id="privateFilterCheckbox" title="{{.i18n.Tr "home.show_only_public"}}" v-if="privateFilter === 'public'"> | |||
| <input type="checkbox"> | |||
| <label><svg class="svg octicon-lock" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-lock" /></svg>{{.i18n.Tr "home.show_private"}}</label> | |||
| </div> | |||
| <div class="ui checkbox" id="privateFilterCheckbox" title="{{.i18n.Tr "home.show_only_private"}}" v-if="privateFilter === 'private'"> | |||
| <input type="checkbox"> | |||
| <label><svg class="svg octicon-lock" width="16" height="16" aria-hidden="true"><use xlink:href="#octicon-lock" /></svg>{{.i18n.Tr "home.show_private"}}</label> | |||
| </div> | |||
| </a> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div class="ui secondary pointing borderless menu center aligned grid repos-filter"> | |||
| <a class="item" :class="{active: reposFilter === 'all'}" @click="changeReposFilter('all')"> | |||
| {{.i18n.Tr "all"}} | |||
| <div v-show="reposFilter === 'all'" class="ui circular mini grey label">${repoTypeCount}</div> | |||
| </a> | |||
| <a class="item" :class="{active: reposFilter === 'sources'}" @click="changeReposFilter('sources')"> | |||
| {{.i18n.Tr "sources"}} | |||
| <div v-show="reposFilter === 'sources'" class="ui circular mini grey label">${repoTypeCount}</div> | |||
| </a> | |||
| <a class="item" :class="{active: reposFilter === 'forks'}" @click="changeReposFilter('forks')"> | |||
| {{.i18n.Tr "forks"}} | |||
| <div v-show="reposFilter === 'forks'" class="ui circular mini grey label">${repoTypeCount}</div> | |||
| </a> | |||
| <a class="item" :class="{active: reposFilter === 'mirrors'}" @click="changeReposFilter('mirrors')"> | |||
| {{.i18n.Tr "mirrors"}} | |||
| <div v-show="reposFilter === 'mirrors'" class="ui circular mini grey label">${repoTypeCount}</div> | |||
| </a> | |||
| <a class="item" :class="{active: reposFilter === 'collaborative'}" @click="changeReposFilter('collaborative')"> | |||
| {{.i18n.Tr "collaborative"}} | |||
| <div v-show="reposFilter === 'collaborative'" class="ui circular mini grey label">${repoTypeCount}</div> | |||
| </a> | |||
| </div> | |||
| </div> | |||
| </repo-search> | |||
| </div> | |||
| <div class="ui repository list"> | |||
| {{range .Repos}} | |||