diff options
Diffstat (limited to 'templates')
-rw-r--r-- | templates/repo/header.tmpl | 112 | ||||
-rw-r--r-- | templates/repo/home.tmpl | 153 |
2 files changed, 265 insertions, 0 deletions
diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl new file mode 100644 index 0000000..b1b3118 --- /dev/null +++ b/templates/repo/header.tmpl @@ -0,0 +1,112 @@ +<div class="header-wrapper"> +{{with .Repository}} + <div class="ui container"> + <div class="repo-header"> + <div class="ui huge breadcrumb repo-title"> + {{if .RelAvatarLink}} + <img class="ui avatar image" src="{{.RelAvatarLink}}"> + {{else}} + <i class="mega-octicon octicon-{{if .IsPrivate}}lock{{else if .IsMirror}}repo-clone{{else if .IsFork}}repo-forked{{else}}repo{{end}}"></i> + {{end}} + <a href="{{AppSubUrl}}/{{.Owner.Name}}">{{.Owner.Name}}</a> + <div class="divider"> / </div> + <a href="{{$.RepoLink}}">{{.Name}}</a> + {{if and .RelAvatarLink .IsPrivate}}<i class="mega-octicon octicon-lock"></i>{{end}} + {{if .IsTemplate}}<i class="icon fa-copy"></i>{{end}} + {{if .IsArchived}}<i class="archive icon archived-icon"></i>{{end}} + {{if .IsMirror}}<div class="fork-flag">{{$.i18n.Tr "repo.mirror_from"}} <a target="_blank" rel="noopener noreferrer" href="{{MirrorAddress $.Mirror}}">{{MirrorAddress $.Mirror}}</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}} + {{if .IsGenerated}}<div class="fork-flag">{{$.i18n.Tr "repo.generated_from"}} <a href="{{.TemplateRepo.Link}}">{{SubStr .TemplateRepo.RelLink 1 -1}}</a></div>{{end}} + </div> + {{if not .IsBeingCreated}} + <div class="repo-buttons"> + <div class="ui labeled button" tabindex="0"> + <a class="ui compact basic 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 labeled button" tabindex="0"> + <a class="ui compact basic button" href="{{$.RepoLink}}/action/{{if $.IsStaringRepo}}un{{end}}star?redirect_to={{$.Link}}"> + <i class="icon star{{if not $.IsStaringRepo}} outline{{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 and (not .IsEmpty) ($.Permission.CanRead $.UnitTypeCode)}} + <div class="ui labeled button {{if and ($.IsSigned) (not $.CanSignedUserFork)}}disabled-repo-button{{end}}" tabindex="0"> + <a class="ui compact basic button {{if or (not $.IsSigned) (not $.CanSignedUserFork)}}poping up{{end}}" {{if $.CanSignedUserFork}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else if $.IsSigned}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" {{ else }} data-content="{{$.i18n.Tr "repo.fork_guest_user" }}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{AppSubUrl}}/repo/fork/{{.ID}}" {{end}} data-position="top center" data-variation="tiny"> + <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> + {{end}} + </div><!-- end grid --> + </div><!-- end container --> +{{end}} + <div class="ui tabs container"> + {{if not .Repository.IsBeingCreated}} + <div class="ui tabular stackable menu navbar"> + {{if .Permission.CanRead $.UnitTypeCode}} + <a class="{{if .PageIsViewCode}}active{{end}} item" href="{{.RepoLink}}{{if (ne .BranchName .Repository.DefaultBranch)}}/src/{{.BranchNameSubURL | EscapePound}}{{end}}"> + <i class="octicon octicon-code"></i> {{.i18n.Tr "repo.code"}} + </a> + {{end}} + + {{if .Permission.CanRead $.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 .Permission.CanRead $.UnitTypeExternalTracker}} + <a class="{{if .PageIsIssueList}}active{{end}} item" href="{{.RepoExternalIssuesLink}}" target="_blank" rel="noopener noreferrer"> + <i class="octicon octicon-link-external"></i> {{.i18n.Tr "repo.issues"}} </span> + </a> + {{end}} + + {{if and .Repository.CanEnablePulls (.Permission.CanRead $.UnitTypePullRequests)}} + <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 (.Permission.CanRead $.UnitTypeReleases) (not .IsEmptyRepo) }} + <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 (.Permission.CanRead $.UnitTypeWiki) (.Permission.CanRead $.UnitTypeExternalWiki)}} + <a class="{{if .PageIsWiki}}active{{end}} item" href="{{.RepoLink}}/wiki" {{if (.Permission.CanRead $.UnitTypeExternalWiki)}} target="_blank" rel="noopener noreferrer" {{end}}> + <i class="octicon octicon-book"></i> {{.i18n.Tr "repo.wiki"}} + </a> + {{end}} + + {{if and (.Permission.CanReadAny $.UnitTypePullRequests $.UnitTypeIssues $.UnitTypeReleases) (not .IsEmptyRepo)}} + <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 .Permission.IsAdmin}} + <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> + {{end}} + </div> + <div class="ui tabs divider"></div> +</div> diff --git a/templates/repo/home.tmpl b/templates/repo/home.tmpl new file mode 100644 index 0000000..19989bb --- /dev/null +++ b/templates/repo/home.tmpl @@ -0,0 +1,153 @@ +{{template "base/head" .}} +<div class="repository file list"> + {{template "repo/header" .}} + <div class="ui container"> + {{template "base/alert" .}} + <div class="ui repo-description"> + <div id="repo-desc"> + {{if .Repository.DescriptionHTML}}<span class="description has-emoji">{{.Repository.DescriptionHTML}}</span>{{else if .IsRepositoryAdmin}}<span class="no-description text-italic">{{.i18n.Tr "repo.no_desc"}}</span>{{end}} + <a class="link" href="{{.Repository.Website}}">{{.Repository.Website}}</a> + </div> + {{if .RepoSearchEnabled}} + <div class="ui repo-search"> + <form class="ui form ignore-dirty" action="{{.RepoLink}}/search" method="get"> + <div class="field"> + <div class="ui action input"> + <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.search.search_repo"}}"> + <button class="ui icon button" type="submit"> + <i class="search icon"></i> + </button> + </div> + </div> + </form> + </div> + {{end}} + </div> + <div class="ui" id="repo-topics"> + {{range .Topics}}<a class="ui repo-topic small label topic" href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=1">{{.Name}}</a>{{end}} + {{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<a id="manage_topic">{{.i18n.Tr "repo.topic.manage_topics"}}</a>{{end}} + </div> + {{if and .Permission.IsAdmin (not .Repository.IsArchived)}} + <div class="ui repo-topic-edit grid form segment error" id="topic_edit" style="display:none"> + <div class="fourteen wide column"> + <div class="field"> + <div class="ui fluid multiple search selection dropdown"> + <input type="hidden" name="topics" value="{{range $i, $v := .Topics}}{{.Name}}{{if lt (Add $i 1) (len $.Topics)}},{{end}}{{end}}"> + {{range .Topics}} + <div class="ui small label topic transition visible" data-value="{{.Name}}" style="display: inline-block !important; cursor: default;">{{.Name}}<i class="delete icon"></i></div> + {{end}} + <div class="text"></div> + </div> + </div> + </div> + <div class="two wide column"> + <a class="ui button primary" href="javascript:;" id="save_topic" + data-link="{{.RepoLink}}/topics">{{.i18n.Tr "repo.topic.done"}}</a> + </div> + </div> + {{end}} + <div class="hide" id="validate_prompt"> + <span id="count_prompt">{{.i18n.Tr "repo.topic.count_prompt"}}</span> + <span id="format_prompt">{{.i18n.Tr "repo.topic.format_prompt"}}</span> + </div> + {{if .Repository.IsArchived}} + <div class="ui warning message"> + {{.i18n.Tr "repo.archive.title"}} + </div> + {{end}} + {{template "repo/sub_menu" .}} + <div class="ui stackable secondary menu mobile--margin-between-items mobile--no-negative-margins"> + {{template "repo/branch_dropdown" .}} + {{ $n := len .TreeNames}} + {{ $l := Subtract $n 1}} + <!-- If home page, show new PR. If not, show breadcrumb --> + {{if eq $n 0}} + {{if and .PullRequestCtx.Allowed .IsViewBranch (not .Repository.IsArchived)}} + <div class="fitted item"> + <a href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch | EscapePound}}...{{if ne .Repository.Owner.Name .BaseRepo.Owner.Name}}{{.Repository.Owner.Name}}:{{end}}{{.BranchName | EscapePound}}"> + <button id="new-pull-request" class="ui compact basic button">{{.i18n.Tr "repo.pulls.compare_changes"}}</button> + </a> + </div> + {{end}} + {{else}} + <div class="fitted item"><span class="ui breadcrumb repo-path"><a class="section" href="{{.RepoLink}}/src/{{EscapePound .BranchNameSubURL}}" title="{{.Repository.Name}}">{{EllipsisString .Repository.Name 30}}</a>{{range $i, $v := .TreeNames}}<span class="divider">/</span>{{if eq $i $l}}<span class="active section" title="{{$v}}">{{EllipsisString $v 30}}</span>{{else}}{{ $p := index $.Paths $i}}<span class="section"><a href="{{EscapePound $.BranchLink}}/{{EscapePound $p}}" title="{{$v}}">{{EllipsisString $v 30}}</a></span>{{end}}{{end}}</span></div> + {{end}} + <div class="right fitted item" id="file-buttons"> + <div class="ui tiny blue buttons"> + {{if .Repository.CanEnableEditor}} + {{if .CanAddFile}} + <a href="{{.RepoLink}}/_new/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}" class="ui button"> + {{.i18n.Tr "repo.editor.new_file"}} + </a> + {{end}} + {{if .CanUploadFile}} + <a href="{{.RepoLink}}/_upload/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}" class="ui button"> + {{.i18n.Tr "repo.editor.upload_file"}} + </a> + {{end}} + {{end}} + {{if and (ne $n 0) (not .IsViewFile) (not .IsBlame) }} + <a href="{{.RepoLink}}/commits/{{EscapePound .BranchNameSubURL}}/{{EscapePound .TreePath}}" class="ui button"> + {{.i18n.Tr "repo.file_history"}} + </a> + {{end}} + </div> + + </div> + <div class="fitted item"> + {{if eq $n 0}} + {{if .Repository.IsTemplate}} + <div class="ui tiny blue buttons"> + <a href="{{AppSubUrl}}/repo/create?template_id={{.Repository.ID}}" class="ui button"> + {{.i18n.Tr "repo.use_template"}} + </a> + </div> + {{end}} + {{end}} + </div> + <div class="fitted item"> + + <!-- Only show clone panel in repository home page --> + {{if eq $n 0}} + <div class="ui action tiny input" id="clone-panel"> + {{if not $.DisableHTTP}} + <button class="ui basic clone button" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}"> + {{if UseHTTPS}}HTTPS{{else}}HTTP{{end}} + </button> + {{end}} + {{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}} + <button class="ui basic clone button" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}"> + SSH + </button> + {{end}} + {{if not $.DisableHTTP}} + <input id="repo-clone-url" value="{{$.CloneLink.HTTPS}}" readonly> + {{else if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}} + <input id="repo-clone-url" value="{{$.CloneLink.SSH}}" readonly> + {{end}} + {{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}} + <button class="ui basic icon button poping up clipboard" id="clipboard-btn" data-original="{{.i18n.Tr "repo.copy_link"}}" data-success="{{.i18n.Tr "repo.copy_link_success"}}" data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-target="#repo-clone-url"> + <i class="octicon octicon-clippy"></i> + </button> + {{end}} + <div class="ui basic jump dropdown icon button poping up" data-content="{{.i18n.Tr "repo.download_archive"}}" data-variation="tiny inverted" data-position="top right"> + <i class="download icon"></i> + <div class="menu"> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip"><i class="octicon octicon-file-zip"></i> ZIP</a> + <a class="item" href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz"><i class="octicon octicon-file-zip"></i> TAR.GZ</a> + </div> + </div> + </div> + {{end}} + </div> + </div> + {{if .IsViewFile}} + {{template "repo/view_file" .}} + {{else if .IsBlame}} + {{template "repo/blame" .}} + {{else}} + {{template "repo/view_list" .}} + {{end}} + </div> +</div> +{{template "base/footer" .}} |