mirror of
https://codeberg.org/forgejo/forgejo
synced 2025-10-19 10:30:48 +02:00
Followup to https://codeberg.org/forgejo/forgejo/pulls/9317#issuecomment-7214470. Summary of changes: - implement new CSS for buttons that doesn't have problems Fomantic buttons have: - button height doesn't depend on it's content - `min-height:` is used instead of `padding-{top,bottom}:` - no margins to fit right in with the other elements while relying on `display:flex` and `flex-gap:` - other `.button` changes compared to `.ui.button`: - no semi-bold black text for now, I think it looks just as fine with normal weight - no variable `font-size` - should give better readability compared to existing `.small` and `.tiny` buttons - variable height depending on specified size (currently normal or `.small`) and on `@media (pointer: )` - apply the new buttons to areas where there are switches or dropdown openers near them Before: - https://codeberg.org/forgejo/forgejo/attachments/8d9a3941-8889-4420-8f4f-f44cb8c3726f - https://codeberg.org/forgejo/forgejo/attachments/e5804fae-a71f-43ba-918b-20d4f742124c - https://codeberg.org/forgejo/forgejo/attachments/65d4e31c-01b7-4050-89a1-4afe74aa574c - https://codeberg.org/forgejo/forgejo/attachments/c8057262-a834-4b61-a87f-70dab60b5506 - https://codeberg.org/forgejo/forgejo/attachments/aa9508e3-dca1-4ffe-913e-9cbddbb0d6ff - https://codeberg.org/forgejo/forgejo/attachments/4b2daa07-e0ca-4b44-8795-1609dff8968f - https://codeberg.org/forgejo/forgejo/attachments/93f7803f-1338-44dc-a428-e44e26231517 After: - https://codeberg.org/forgejo/forgejo/attachments/ca5426c4-d75e-493d-8b29-64eee1e1c9de - https://codeberg.org/forgejo/forgejo/attachments/f21c7219-6880-4a2e-9117-6267d46b3081 - https://codeberg.org/forgejo/forgejo/attachments/da3ee771-b5d5-4b4f-8c88-9a8de11b1a45 - https://codeberg.org/forgejo/forgejo/attachments/56f974c3-f72e-4f80-9bbd-5bc785a4a624 - https://codeberg.org/forgejo/forgejo/attachments/17f6e360-dfe5-4bb6-a6b5-dd747dbc2af8 - https://codeberg.org/forgejo/forgejo/attachments/91cd10e1-6c5e-4134-be4c-18223ed2a4f4 - https://codeberg.org/forgejo/forgejo/attachments/f0322c5c-ee9d-4889-9840-0c46838566cc - https://codeberg.org/forgejo/forgejo/attachments/96560fe7-3436-46dc-8456-c43bfaee2daf - https://codeberg.org/forgejo/forgejo/attachments/273cf795-6bb4-479f-804f-f40010fae825 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9359 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Reviewed-by: Gusted <gusted@noreply.codeberg.org>
192 lines
9.9 KiB
Go HTML Template
192 lines
9.9 KiB
Go HTML Template
{{template "base/head" .}}
|
|
<div role="main" aria-label="{{.Title}}" class="page-content repository file list {{if .IsBlame}}blame{{end}}">
|
|
{{template "repo/header" .}}
|
|
<div class="ui container {{if .IsBlame}}fluid padded{{end}}">
|
|
{{template "base/alert" .}}
|
|
{{if and (not .HideRepoInfo) (not .IsBlame)}}
|
|
<div class="repo-description">
|
|
<div id="repo-desc" class="tw-break-anywhere tw-text-16">
|
|
{{$description := .Repository.DescriptionHTML $.Context}}
|
|
{{if $description}}<span class="description">{{$description | RenderCodeBlock}}</span>{{else}}<span class="no-description text-italic">{{ctx.Locale.Tr "repo.no_desc"}}</span>{{end}}
|
|
{{if .Repository.Website}}<a class="link" href="{{.Repository.Website}}">{{.Repository.Website}}</a>{{end}}
|
|
</div>
|
|
</div>
|
|
<div class="repo-topics tw-my-2" id="repo-topics">
|
|
{{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 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>
|
|
<button class="ui primary button" id="save_topic" data-link="{{.RepoLink}}/topics">{{ctx.Locale.Tr "save"}}</button>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if RepoFlagsEnabled}}
|
|
{{template "custom/repo_flag_banners" .}}
|
|
{{if .SignedUser.IsAdmin}}
|
|
{{template "repo/admin_flags" .}}
|
|
{{end}}
|
|
{{end}}
|
|
|
|
{{if .Repository.IsArchived}}
|
|
<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" (DateUtils.AbsoluteLong .Repository.ArchivedUnix)}}
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
{{template "repo/sub_menu" .}}
|
|
{{$n := len .TreeNames}}
|
|
{{$l := Eval $n "-" 1}}
|
|
{{$isHomepage := (eq $n 0)}}
|
|
<div class="repo-button-row">
|
|
<div class="button-sequence tw-gap-y-2">
|
|
{{template "repo/branch_dropdown" dict "root" .}}
|
|
{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
|
|
{{$cmpBranch := ""}}
|
|
{{if ne .Repository.ID .BaseRepo.ID}}
|
|
{{$cmpBranch = printf "%s/%s:" (.Repository.OwnerName|PathEscape) (.Repository.Name|PathEscape)}}
|
|
{{end}}
|
|
{{$cmpBranch = print $cmpBranch (.BranchName|PathEscapeSegments)}}
|
|
{{$compareLink := printf "%s/compare/%s...%s" .BaseRepo.Link (.BaseRepo.DefaultBranch|PathEscapeSegments) $cmpBranch}}
|
|
<a id="new-pull-request" role="button" class="ui compact basic button" href="{{$compareLink}}"
|
|
data-tooltip-content="{{if .PullRequestCtx.Allowed}}{{ctx.Locale.Tr "repo.pulls.compare_changes"}}{{else}}{{ctx.Locale.Tr "action.compare_branch"}}{{end}}">
|
|
{{svg "octicon-git-pull-request"}}
|
|
</a>
|
|
{{end}}
|
|
<!-- Show go to file and breadcrumbs if not on home page -->
|
|
{{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 tw-mr-1"{{if not .Repository.CanEnableEditor}} disabled{{end}}>
|
|
{{ctx.Locale.Tr "repo.editor.add_file"}}
|
|
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
|
<div class="menu">
|
|
<a class="item" href="{{.RepoLink}}/_new/{{.BranchName | PathEscapeSegments}}/{{.TreePath | PathEscapeSegments}}">
|
|
{{ctx.Locale.Tr "repo.editor.new_file"}}
|
|
</a>
|
|
{{if .RepositoryUploadEnabled}}
|
|
<a class="item" href="{{.RepoLink}}/_upload/{{.BranchName | PathEscapeSegments}}/{{.TreePath | PathEscapeSegments}}">
|
|
{{ctx.Locale.Tr "repo.editor.upload_file"}}
|
|
</a>
|
|
{{end}}
|
|
<a class="item" href="{{.RepoLink}}/_diffpatch/{{.BranchName | PathEscapeSegments}}/{{.TreePath | PathEscapeSegments}}">
|
|
{{ctx.Locale.Tr "repo.editor.patch"}}
|
|
</a>
|
|
</div>
|
|
</button>
|
|
{{end}}
|
|
|
|
{{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 (not $isHomepage)}}
|
|
<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}}">{{$v}}</span>
|
|
<button class="btn interact-fg tw-p-2" data-clipboard-text="{{$.TreePath}}" data-tooltip-content="{{ctx.Locale.Tr "copy_path"}}">{{svg "octicon-copy" 14}}</button>
|
|
{{- else -}}
|
|
{{$p := index $.Paths $i}}<span class="section"><a href="{{$.BranchLink}}/{{PathEscapeSegments $p}}" title="{{$v}}">{{$v}}</a></span>
|
|
{{- end -}}
|
|
{{- end -}}
|
|
</span>
|
|
{{end}}
|
|
</div>
|
|
<div class="tw-flex tw-items-center max-[390px]:tw-w-full">
|
|
<!-- Only show clone panel in repository home page -->
|
|
{{if $isHomepage}}
|
|
<div class="clone-panel ui action tiny input max-[390px]:tw-w-full">
|
|
{{template "repo/clone_buttons" .}}
|
|
<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 "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 .CitationExist}}
|
|
<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}}
|
|
</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 (not $isHomepage) (not .IsViewFile) (not .IsBlame)}}{{/* IsViewDirectory (not home), TODO: split the templates, avoid using "if" tricks */}}
|
|
<div class="button-sequence folder-actions">
|
|
<a class="ui button" href="{{.RepoLink}}/commits/{{.BranchNameSubURL}}/{{.TreePath | PathEscapeSegments}}">
|
|
{{svg "octicon-history" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.file_history"}}
|
|
</a>
|
|
{{if not $.DisableDownloadSourceArchives}}
|
|
<button class="ui jump dropdown icon button" data-tooltip-content="{{ctx.Locale.Tr "repo.more_operations"}}">
|
|
{{svg "octicon-kebab-horizontal"}}
|
|
<div class="menu">
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments (printf "%s:%s" $.RefName .TreePath)}}.zip" rel="nofollow" type="application/zip">{{svg "octicon-file-zip" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.download_zip"}}</a>
|
|
<a class="item archive-link" href="{{$.RepoLink}}/archive/{{PathEscapeSegments (printf "%s:%s" $.RefName .TreePath)}}.tar.gz" rel="nofollow" type="application/gzip">{{svg "octicon-file-zip" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.download_tar"}}</a>
|
|
</div>
|
|
</button>
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
|
|
{{template "repo/code/recently_pushed_new_branches" .}}
|
|
{{template "repo/code/fork_sync_message" .}}
|
|
|
|
{{if .IsViewFile}}
|
|
{{template "repo/view_file" .}}
|
|
{{else if .IsBlame}}
|
|
{{template "repo/blame" .}}
|
|
{{else}}{{/* IsViewDirectory */}}
|
|
{{/* display the search bar only if */}}
|
|
{{$isCommit := StringUtils.HasPrefix .BranchNameSubURL "commit"}}
|
|
{{if and (not $isCommit) (or .CodeIndexerDisabled (and (not .TagName) (eq .Repository.DefaultBranch .BranchName)))}}
|
|
<div class="code-search tw-w-full tw-py-2 tw-px-2 tw-bg-box-header tw-rounded-t tw-border tw-border-secondary tw-border-b-0">
|
|
<form class="ui form ignore-dirty" action="{{.RepoLink}}/search/{{if .CodeIndexerDisabled}}{{.BranchNameSubURL}}{{end}}" method="get" data-test-tag="codesearch">
|
|
<input type="hidden" name="path" value="{{.TreePath | PathEscapeSegments}}">
|
|
{{template "shared/search/combo_multi"
|
|
dict
|
|
"Value" .Keyword
|
|
"Disabled" .CodeIndexerUnavailable
|
|
"Placeholder" (ctx.Locale.Tr "search.code_kind")
|
|
"Selected" (index .CodeSearchOptions 0)
|
|
"Options" .CodeSearchOptions}}
|
|
</form>
|
|
</div>
|
|
{{end}}
|
|
{{template "repo/view_list" .}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{template "base/footer" .}}
|