@@ -0,0 +1,27 @@ | |||
<div class="ui repository list"> | |||
{{range .Repos}} | |||
<div class="item"> | |||
<div class="ui header"> | |||
<a class="name" href="{{.Link}}">{{if or $.PageIsExplore $.PageIsProfileStarList }}{{if .Owner}}{{.Owner.Name}} / {{end}}{{end}}{{.Name}}</a> | |||
{{if .IsPrivate}} | |||
<span class="text gold"><i class="octicon octicon-lock"></i></span> | |||
{{else if .IsFork}} | |||
<span><i class="octicon octicon-repo-forked"></i></span> | |||
{{else if .IsMirror}} | |||
<span><i class="octicon octicon-repo-clone"></i></span> | |||
{{end}} | |||
<div class="ui right metas"> | |||
<span class="text grey"><i class="octicon octicon-star"></i> {{.NumStars}}</span> | |||
<span class="text grey"><i class="octicon octicon-git-branch"></i> {{.NumForks}}</span> | |||
</div> | |||
</div> | |||
{{if .DescriptionHTML}}<p class="has-emoji">{{.DescriptionHTML}}</p>{{end}} | |||
<p class="time">{{$.i18n.Tr "org.repo_updated"}} {{TimeSinceUnix .UpdatedUnix $.i18n.Lang}}</p> | |||
</div> | |||
{{else}} | |||
<div> | |||
{{$.i18n.Tr "explore.repo_no_results"}} | |||
</div> | |||
{{end}} | |||
</div> |
@@ -0,0 +1,107 @@ | |||
<div class="header-wrapper"> | |||
{{with .Repository}} | |||
<div class="ui container"> | |||
<div class="ui stackable grid header-grid"> | |||
<div class="eight wide column"> | |||
<div class="ui huge breadcrumb"> | |||
<i class="mega-octicon octicon-{{if .IsPrivate}}lock{{else if .IsMirror}}repo-clone{{else if .IsFork}}repo-forked{{else}}repo{{end}}"></i> | |||
<a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a> | |||
<div class="divider"> / </div> | |||
<a href="{{$.RepoLink}}">{{.Name}}</a> | |||
{{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener" href="{{$.Mirror.Address}}">{{$.Mirror.Address}}</a></div>{{end}} | |||
{{if .IsFork}}<div class="fork-flag">{{$.i18n.Tr "repo.forked_from"}} <a href="{{.BaseRepo.Link}}">{{SubStr .BaseRepo.RelLink 1 -1}}</a></div>{{end}} | |||
</div> | |||
</div> | |||
<div class="ui eight wide right aligned column"> | |||
<div class="ui compact labeled button" tabindex="0"> | |||
<a class="ui compact button" href="{{$.RepoLink}}/action/{{if $.IsWatchingRepo}}un{{end}}watch?redirect_to={{$.Link}}"> | |||
<i class="icon fa-eye{{if not $.IsWatchingRepo}}-slash{{end}}"></i>{{if $.IsWatchingRepo}}{{$.i18n.Tr "repo.unwatch"}}{{else}}{{$.i18n.Tr "repo.watch"}}{{end}} | |||
</a> | |||
<a class="ui basic label" href="{{.Link}}/watchers"> | |||
{{.NumWatches}} | |||
</a> | |||
</div> | |||
<div class="ui compact labeled button" tabindex="0"> | |||
<a class="ui compact button" href="{{$.RepoLink}}/action/{{if $.IsStaringRepo}}un{{end}}star?redirect_to={{$.Link}}"> | |||
<i class="icon fa-star{{if not $.IsStaringRepo}}-o{{end}}"></i>{{if $.IsStaringRepo}}{{$.i18n.Tr "repo.unstar"}}{{else}}{{$.i18n.Tr "repo.star"}}{{end}} | |||
</a> | |||
<a class="ui basic label" href="{{.Link}}/stars"> | |||
{{.NumStars}} | |||
</a> | |||
</div> | |||
{{if .CanBeForked}} | |||
<div class="ui compact labeled button" tabindex="0"> | |||
<a class="ui compact button {{if not $.CanSignedUserFork}}poping up{{end}}" {{if $.CanSignedUserFork}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" data-position="top center" data-variation="tiny"{{end}}> | |||
<i class="octicon octicon-repo-forked"></i>{{$.i18n.Tr "repo.fork"}} | |||
</a> | |||
<a class="ui basic label" href="{{.Link}}/forks"> | |||
{{.NumForks}} | |||
</a> | |||
</div> | |||
{{end}} | |||
</div> | |||
</div><!-- end grid --> | |||
</div><!-- end container --> | |||
{{end}} | |||
{{if not .IsDiffCompare}} | |||
<div class="ui tabs container"> | |||
<div class="ui tabular stackable menu navbar"> | |||
{{if .Repository.UnitEnabled $.UnitTypeCode}} | |||
<a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}"> | |||
<i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}} | |||
</a> | |||
{{end}} | |||
{{if .Repository.UnitEnabled $.UnitTypeIssues}} | |||
<a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues"> | |||
<i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} <span class="ui {{if not .Repository.NumOpenIssues}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenIssues}}</span> | |||
</a> | |||
{{end}} | |||
{{if .Repository.UnitEnabled $.UnitTypeExternalTracker}} | |||
<a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoLink}}/issues" target="_blank"> | |||
<i class="octicon octicon-issue-opened"></i> {{.i18n.Tr "repo.issues"}} </span> | |||
</a> | |||
{{end}} | |||
{{if .Repository.AllowsPulls}} | |||
<a class="{{if .PageIsPullList}}active{{end}} item" href="{{.RepoLink}}/pulls"> | |||
<i class="octicon octicon-git-pull-request"></i> {{.i18n.Tr "repo.pulls"}} <span class="ui {{if not .Repository.NumOpenPulls}}gray{{else}}blue{{end}} small label">{{.Repository.NumOpenPulls}}</span> | |||
</a> | |||
{{end}} | |||
{{if and (.Repository.UnitEnabled $.UnitTypeReleases) (not .IsBareRepo) }} | |||
<a class="{{if .PageIsReleaseList}}active{{end}} item" href="{{.RepoLink}}/releases"> | |||
<i class="octicon octicon-tag"></i> {{.i18n.Tr "repo.releases"}} <span class="ui {{if not .Repository.NumReleases}}gray{{else}}blue{{end}} small label">{{.Repository.NumReleases}}</span> | |||
</a> | |||
{{end}} | |||
{{if or (.Repository.UnitEnabled $.UnitTypeWiki) (.Repository.UnitEnabled $.UnitTypeExternalWiki)}} | |||
<a class="{{if .PageIsWiki}}active{{end}} item" href="{{.RepoLink}}/wiki" {{if (.Repository.UnitEnabled $.UnitTypeExternalWiki)}} target="_blank" {{end}}> | |||
<i class="octicon octicon-book"></i> {{.i18n.Tr "repo.wiki"}} | |||
</a> | |||
{{end}} | |||
{{if and (.Repository.AnyUnitEnabled $.UnitTypePullRequests $.UnitTypeIssues $.UnitTypeReleases) (not .IsBareRepo)}} | |||
<a class="{{if .PageIsActivity}}active{{end}} item" href="{{.RepoLink}}/activity"> | |||
<i class="octicon octicon-pulse"></i> {{.i18n.Tr "repo.activity"}} | |||
</a> | |||
{{end}} | |||
{{template "custom/extra_tabs" .}} | |||
{{if .IsRepositoryAdmin}} | |||
<div class="right menu"> | |||
<a class="{{if .PageIsSettings}}active{{end}} item" href="{{.RepoLink}}/settings"> | |||
<i class="octicon octicon-tools"></i> {{.i18n.Tr "repo.settings"}} | |||
</a> | |||
</div> | |||
{{end}} | |||
</div> | |||
</div> | |||
<div class="ui tabs divider"></div> | |||
{{else}} | |||
<div class="ui divider"></div> | |||
{{end}} | |||
</div> |
@@ -0,0 +1,119 @@ | |||
{{template "base/head" .}} | |||
<div class="dashboard feeds"> | |||
{{template "user/dashboard/navbar" .}} | |||
<div class="ui container"> | |||
{{template "base/alert" .}} | |||
<div class="ui mobile reversed stackable grid"> | |||
<div class="ten wide column"> | |||
{{template "user/dashboard/feeds" .}} | |||
</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 | |||
> | |||
<div> | |||
<div v-if="!isOrganization" class="ui two item tabable menu"> | |||
<a :class="{item: true, active: tab === 'repos'}" @click="changeTab('repos')">{{.i18n.Tr "repository"}}</a> | |||
<a :class="{item: true, active: tab === 'organizations'}" @click="changeTab('organizations')">{{.i18n.Tr "organization"}}</a> | |||
</div> | |||
<div v-show="tab === 'repos'" class="ui tab active list dashboard-repos"> | |||
<h4 class="ui top attached header"> | |||
{{.i18n.Tr "home.my_repos"}} <span class="ui grey label">${reposTotalCount}</span> | |||
<div class="ui right"> | |||
<a class="poping up" :href="suburl + '/repo/create'" 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> | |||
</h4> | |||
<div class="ui attached secondary segment repos-search"> | |||
<div class="ui fluid 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> | |||
<div class="ui secondary tiny 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> | |||
<div class="ui attached table segment"> | |||
<ul class="repo-owner-name-list"> | |||
<li v-for="repo in repos" :class="{'private': repo.private}" v-show="showRepo(repo, reposFilter)"> | |||
<a :href="suburl + '/' + repo.full_name"> | |||
<i :class="repoClass(repo)"></i> | |||
<strong class="text truncate item-name">${repo.full_name}</strong> | |||
<span class="ui right text light grey"> | |||
${repo.stars_count} <i class="octicon octicon-star rear"></i> | |||
</span> | |||
</a> | |||
</li> | |||
<li v-if="showMoreReposLink"> | |||
<a :href="moreReposLink">{{.i18n.Tr "home.show_more_repos"}}</a> | |||
</li> | |||
</ul> | |||
</div> | |||
</div> | |||
<div v-if="!isOrganization" v-show="tab === 'organizations'" class="ui tab active list"> | |||
<h4 class="ui top attached header"> | |||
{{.i18n.Tr "home.my_orgs"}} <span class="ui grey label">${organizationsTotalCount}</span> | |||
<div v-if="canCreateOrganization" class="ui right"> | |||
<a class="poping up" :href="suburl + '/org/create'" data-content="{{.i18n.Tr "new_org"}}" data-variation="tiny inverted" data-position="left center"> | |||
<i class="plus icon"></i> | |||
<span class="sr-only">{{.i18n.Tr "new_org"}}</span> | |||
</a> | |||
</div> | |||
</h4> | |||
<div class="ui attached table segment"> | |||
<ul class="repo-owner-name-list"> | |||
<li v-for="org in organizations"> | |||
<a :href="suburl + '/' + org.name"> | |||
<i class="octicon octicon-organization"></i> | |||
<strong class="text truncate item-name">${org.name}</strong> | |||
<span class="ui right text light grey"> | |||
${org.num_repos} <i class="octicon octicon-repo rear"></i> | |||
</span> | |||
</a> | |||
</li> | |||
</ul> | |||
</div> | |||
</div> | |||
</div> | |||
</repo-search> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |