|
|
|
@ -6,47 +6,26 @@
|
|
|
|
|
{{template "base/alert" .}}
|
|
|
|
|
{{template "repo/code/recently_pushed_new_branches" .}}
|
|
|
|
|
{{if and (not .HideRepoInfo) (not .IsBlame)}}
|
|
|
|
|
<div class="ui repo-description gt-word-break">
|
|
|
|
|
<div id="repo-desc" class="gt-font-16">
|
|
|
|
|
<h5>{{ctx.Locale.Tr "repo.repo_desc"}}</h5>
|
|
|
|
|
{{$description := .Repository.DescriptionHTML $.Context}}
|
|
|
|
|
{{if $description}}<span class="description">{{$description | RenderCodeBlock}}</span>{{else if .IsRepositoryAdmin}}<span class="no-description text-italic">{{ctx.Locale.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 small action input{{if .CodeIndexerUnavailable}} disabled left icon{{end}}"{{if .CodeIndexerUnavailable}} data-tooltip-content="{{ctx.Locale.Tr "repo.search.code_search_unavailable"}}"{{end}}>
|
|
|
|
|
<input name="q" value="{{.Keyword}}"{{if .CodeIndexerUnavailable}} disabled{{end}} placeholder="{{ctx.Locale.Tr "repo.search.search_repo"}}">
|
|
|
|
|
{{if .CodeIndexerUnavailable}}
|
|
|
|
|
<i class="icon">{{svg "octicon-alert"}}</i>
|
|
|
|
|
{{end}}
|
|
|
|
|
<button class="ui small icon button"{{if .CodeIndexerUnavailable}} disabled{{end}} type="submit">
|
|
|
|
|
{{svg "octicon-search"}}
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
{{end}}
|
|
|
|
|
<div class="repo-description gt-word-break">
|
|
|
|
|
{{- $description := .Repository.DescriptionHTML ctx -}}
|
|
|
|
|
{{if $description}}{{$description | RenderCodeBlock}}{{end}}
|
|
|
|
|
{{if .Repository.Website}}<a href="{{.Repository.Website}}">{{.Repository.Website}}</a>{{end}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="gt-df gt-ac gt-fw gt-gap-2" id="repo-topics">
|
|
|
|
|
{{range .Topics}}<a class="ui repo-topic large label topic gt-m-0" href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=1">{{.Name}}</a>{{end}}
|
|
|
|
|
{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<button id="manage_topic" class="btn interact-fg gt-font-12">{{ctx.Locale.Tr "repo.topic.manage_topics"}}</button>{{end}}
|
|
|
|
|
<div class="tw-flex tw-items-center tw-flex-wrap tw-gap-2 tw-my-2" id="repo-topics">
|
|
|
|
|
{{/* it should match the code in issue-home.js */}}
|
|
|
|
|
{{range .Topics}}<a class="repo-topic ui large label" href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=1">{{.Name}}</a>{{end}}
|
|
|
|
|
{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<button id="manage_topic" class="btn interact-fg tw-text-12">{{ctx.Locale.Tr "repo.topic.manage_topics"}}</button>{{end}}
|
|
|
|
|
</div>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{if and .Permission.IsAdmin (not .Repository.IsArchived)}}
|
|
|
|
|
<div class="ui form gt-hidden gt-df gt-mt-4" id="topic_edit">
|
|
|
|
|
<div class="field gt-f1 gt-mr-3">
|
|
|
|
|
<div class="ui fluid multiple search selection dropdown" data-text-count-prompt="{{ctx.Locale.Tr "repo.topic.count_prompt"}}" data-text-format-prompt="{{ctx.Locale.Tr "repo.topic.format_prompt"}}">
|
|
|
|
|
<input type="hidden" name="topics" value="{{range $i, $v := .Topics}}{{.Name}}{{if Eval $i "+" 1 "<" (len $.Topics)}},{{end}}{{end}}">
|
|
|
|
|
{{range .Topics}}
|
|
|
|
|
{{/* keey the same layout as Fomantic UI generated labels */}}
|
|
|
|
|
<a class="ui label transition visible gt-cursor-default gt-dib" data-value="{{.Name}}">{{.Name}}{{svg "octicon-x" 16 "delete icon"}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
<div class="text"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="ui form tw-hidden tw-flex tw-gap-2 tw-my-2" id="topic_edit">
|
|
|
|
|
<div class="ui fluid multiple search selection dropdown tw-flex-wrap tw-flex-1">
|
|
|
|
|
<input type="hidden" name="topics" value="{{range $i, $v := .Topics}}{{.Name}}{{if Eval $i "+" 1 "<" (len $.Topics)}},{{end}}{{end}}">
|
|
|
|
|
{{range .Topics}}
|
|
|
|
|
{{/* keep the same layout as Fomantic UI generated labels */}}
|
|
|
|
|
<a class="ui label transition visible tw-cursor-default tw-inline-block" data-value="{{.Name}}">{{.Name}}{{svg "octicon-x" 16 "delete icon"}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
<div class="text"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<button class="ui basic button" id="cancel_topic_edit">{{ctx.Locale.Tr "cancel"}}</button>
|
|
|
|
@ -55,20 +34,23 @@
|
|
|
|
|
</div>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{if .Repository.IsArchived}}
|
|
|
|
|
<div class="ui warning message gt-text-center">
|
|
|
|
|
<div class="ui warning message tw-text-center">
|
|
|
|
|
{{if .Repository.ArchivedUnix.IsZero}}
|
|
|
|
|
{{ctx.Locale.Tr "repo.archive.title"}}
|
|
|
|
|
{{else}}
|
|
|
|
|
{{ctx.Locale.Tr "repo.archive.title_date" (DateTime "long" .Repository.ArchivedUnix) | Safe}}
|
|
|
|
|
{{ctx.Locale.Tr "repo.archive.title_date" (DateTime "long" .Repository.ArchivedUnix)}}
|
|
|
|
|
{{end}}
|
|
|
|
|
</div>
|
|
|
|
|
{{end}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="lugit-repo-content">
|
|
|
|
|
{{template "repo/sub_menu" .}}
|
|
|
|
|
<div class="repo-button-row">
|
|
|
|
|
<div class="gt-df gt-ac gt-fw gt-gap-y-3">
|
|
|
|
|
{{template "repo/branch_dropdown" dict "root" . "ContainerClasses" "gt-mr-2"}}
|
|
|
|
|
{{$n := len .TreeNames}}
|
|
|
|
|
{{$l := Eval $n "-" 1}}
|
|
|
|
|
{{$isHomepage := (eq $n 0)}}
|
|
|
|
|
<div class="repo-button-row" data-is-homepage="{{$isHomepage}}">
|
|
|
|
|
<div class="repo-button-row-left">
|
|
|
|
|
{{template "repo/branch_dropdown" dict "root" . "ContainerClasses" "tw-mr-1"}}
|
|
|
|
|
{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
|
|
|
|
|
{{$cmpBranch := ""}}
|
|
|
|
|
{{if ne .Repository.ID .BaseRepo.ID}}
|
|
|
|
@ -82,14 +64,12 @@
|
|
|
|
|
</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
<!-- Show go to file and breadcrumbs if not on home page -->
|
|
|
|
|
{{$n := len .TreeNames}}
|
|
|
|
|
{{$l := Eval $n "-" 1}}
|
|
|
|
|
{{if eq $n 0}}
|
|
|
|
|
{{if $isHomepage}}
|
|
|
|
|
<a href="{{.Repository.Link}}/find/{{.BranchNameSubURL}}" class="ui compact basic button">{{ctx.Locale.Tr "repo.find_file.go_to_file"}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
|
|
|
|
|
{{if and .CanWriteCode .IsViewBranch (not .Repository.IsMirror) (not .Repository.IsArchived) (not .IsViewFile)}}
|
|
|
|
|
<button class="ui dropdown basic compact jump button gt-mr-2"{{if not .Repository.CanEnableEditor}} disabled{{end}}>
|
|
|
|
|
<button class="ui dropdown basic compact jump button"{{if not .Repository.CanEnableEditor}} disabled{{end}}>
|
|
|
|
|
{{ctx.Locale.Tr "repo.editor.add_file"}}
|
|
|
|
|
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
|
|
|
|
<div class="menu">
|
|
|
|
@ -108,51 +88,62 @@
|
|
|
|
|
</button>
|
|
|
|
|
{{end}}
|
|
|
|
|
|
|
|
|
|
{{if and (eq $n 0) (.Repository.IsTemplate)}}
|
|
|
|
|
{{if and $isHomepage (.Repository.IsTemplate)}}
|
|
|
|
|
<a role="button" class="ui primary compact button" href="{{AppSubUrl}}/repo/create?template_id={{.Repository.ID}}">
|
|
|
|
|
{{ctx.Locale.Tr "repo.use_template"}}
|
|
|
|
|
</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{if ne $n 0}}
|
|
|
|
|
<span class="breadcrumb repo-path gt-ml-2">
|
|
|
|
|
{{if $isHomepage}}
|
|
|
|
|
{{/* only show the "code search" on the repo home page, it only does global search,
|
|
|
|
|
so do not show it when viewing file or directory to avoid misleading users (it doesn't search in a directory) */}}
|
|
|
|
|
<form class="ignore-dirty tw-flex tw-flex-1" action="{{.RepoLink}}/search" method="get">
|
|
|
|
|
<div class="ui small action input tw-flex-1">
|
|
|
|
|
<input name="q" size="10" placeholder="{{ctx.Locale.Tr "search.code_kind"}}">
|
|
|
|
|
{{template "shared/search/button"}}
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
{{else}}
|
|
|
|
|
<span class="breadcrumb repo-path tw-ml-1">
|
|
|
|
|
<a class="section" href="{{.RepoLink}}/src/{{.BranchNameSubURL}}" title="{{.Repository.Name}}">{{StringUtils.EllipsisString .Repository.Name 30}}</a>
|
|
|
|
|
{{- range $i, $v := .TreeNames -}}
|
|
|
|
|
<span class="breadcrumb-divider">/</span>
|
|
|
|
|
{{- if eq $i $l -}}
|
|
|
|
|
<span class="active section" title="{{$v}}">{{StringUtils.EllipsisString $v 30}}</span>
|
|
|
|
|
<span class="active section" title="{{$v}}">{{$v}}</span>
|
|
|
|
|
{{- else -}}
|
|
|
|
|
{{$p := index $.Paths $i}}<span class="section"><a href="{{$.BranchLink}}/{{PathEscapeSegments $p}}" title="{{$v}}">{{StringUtils.EllipsisString $v 30}}</a></span>
|
|
|
|
|
{{$p := index $.Paths $i}}<span class="section"><a href="{{$.BranchLink}}/{{PathEscapeSegments $p}}" title="{{$v}}">{{$v}}</a></span>
|
|
|
|
|
{{- end -}}
|
|
|
|
|
{{- end -}}
|
|
|
|
|
</span>
|
|
|
|
|
{{end}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="gt-df gt-ac">
|
|
|
|
|
<div class="repo-button-row-right">
|
|
|
|
|
<!-- Only show clone panel in repository home page -->
|
|
|
|
|
{{if eq $n 0}}
|
|
|
|
|
<div class="ui action tiny input" id="clone-panel">
|
|
|
|
|
{{if $isHomepage}}
|
|
|
|
|
<div class="clone-panel ui action tiny input">
|
|
|
|
|
{{template "repo/clone_buttons" .}}
|
|
|
|
|
<button id="more-btn" class="ui basic small compact jump dropdown icon button" data-tooltip-content="{{ctx.Locale.Tr "repo.more_operations"}}">
|
|
|
|
|
<button class="ui small jump dropdown icon button" data-tooltip-content="{{ctx.Locale.Tr "repo.more_operations"}}">
|
|
|
|
|
{{svg "octicon-kebab-horizontal"}}
|
|
|
|
|
<div class="menu">
|
|
|
|
|
{{if not $.DisableDownloadSourceArchives}}
|
|
|
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16 "gt-mr-3"}}{{ctx.Locale.Tr "repo.download_zip"}}</a>
|
|
|
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip" 16 "gt-mr-3"}}{{ctx.Locale.Tr "repo.download_tar"}}</a>
|
|
|
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.bundle" rel="nofollow">{{svg "octicon-package" 16 "gt-mr-3"}}{{ctx.Locale.Tr "repo.download_bundle"}}</a>
|
|
|
|
|
{{if .CitiationExist}}
|
|
|
|
|
<a class="item" id="cite-repo-button">{{svg "octicon-cross-reference" 16 "gt-mr-3"}}{{ctx.Locale.Tr "repo.cite_this_repo"}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.zip" rel="nofollow">{{svg "octicon-file-zip" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.download_zip"}}</a>
|
|
|
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.tar.gz" rel="nofollow">{{svg "octicon-file-zip" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.download_tar"}}</a>
|
|
|
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments $.RefName}}.bundle" rel="nofollow">{{svg "octicon-package" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.download_bundle"}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{if .CitiationExist}}
|
|
|
|
|
<a class="item" id="cite-repo-button">{{svg "octicon-cross-reference" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.cite_this_repo"}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
{{range .OpenWithEditorApps}}
|
|
|
|
|
<a class="item js-clone-url-editor" data-href-template="{{.OpenURL}}">{{.IconHTML}}{{ctx.Locale.Tr "repo.open_with_editor" .DisplayName}}</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
<a class="item js-clone-url-vsc" href="vscode://vscode.git/clone?url={{.CloneButtonOriginLink.HTTPS}}">{{svg "gitea-vscode" 16 "gt-mr-3"}}{{ctx.Locale.Tr "repo.clone_in_vsc"}}</a>
|
|
|
|
|
</div>
|
|
|
|
|
</button>
|
|
|
|
|
{{template "repo/clone_script" .}}{{/* the script will update `.js-clone-url` and related elements */}}
|
|
|
|
|
</div>
|
|
|
|
|
{{template "repo/cite/cite_modal" .}}
|
|
|
|
|
{{end}}
|
|
|
|
|
{{if and (ne $n 0) (not .IsViewFile) (not .IsBlame)}}
|
|
|
|
|
{{if and (not $isHomepage) (not .IsViewFile) (not .IsBlame)}}{{/* IsViewDirectory (not home), TODO: split the templates, avoid using "if" tricks */}}
|
|
|
|
|
<a class="ui button" href="{{.RepoLink}}/commits/{{.BranchNameSubURL}}/{{.TreePath | PathEscapeSegments}}">
|
|
|
|
|
{{svg "octicon-history" 16 "gt-mr-3"}}{{ctx.Locale.Tr "repo.file_history"}}
|
|
|
|
|
{{svg "octicon-history" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.file_history"}}
|
|
|
|
|
</a>
|
|
|
|
|
{{end}}
|
|
|
|
|
</div>
|
|
|
|
@ -161,9 +152,10 @@
|
|
|
|
|
{{template "repo/view_file" .}}
|
|
|
|
|
{{else if .IsBlame}}
|
|
|
|
|
{{template "repo/blame" .}}
|
|
|
|
|
{{else}}
|
|
|
|
|
{{else}}{{/* IsViewDirectory */}}
|
|
|
|
|
{{template "repo/view_list" .}}
|
|
|
|
|
{{end}}
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|