mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-25 11:16:11 +01:00
e95b42e187
Visually, nothing should have changed. Changes include - Convert most `<a [no href]>` to `<button>` when (re-)viewing files: - `<a [no href]>` are, by HTML definition, not a link and hence cannot be focused - `<a class="ui button">` can now be clicked (again?) using <kbd>Enter</kbd> - Previously, the installed keypress handler on `.ui.button` elements disabled it for links somehow - The `(un)escape file`, the `expand section` and the `expand/collapse file` buttons can now be focused (and subsequently clicked using only the keyboard) - You can now press <kbd>Space</kbd> on a focused `View file` checkbox to mark the file as viewed. - previously, this was impossible as this checkbox listened on the wrong event listener The `add code comment` button has been left inaccessible for now as it requires quite a bit of extra logic so that it is unhidden when it is focused (you can otherwise focus it without seeing it as you are not hovering on the corresponding line). --------- Co-authored-by: silverwind <me@silverwind.io>
120 lines
6.4 KiB
Handlebars
120 lines
6.4 KiB
Handlebars
{{if .Flash}}
|
|
<div class="sixteen wide column gt-mb-3">
|
|
{{template "base/alert" .}}
|
|
</div>
|
|
{{end}}
|
|
<div class="issue-title-header">
|
|
<div class="issue-title" id="issue-title-wrapper">
|
|
<h1 class="gt-word-break">
|
|
<span id="issue-title">{{RenderIssueTitle $.Context .Issue.Title $.RepoLink $.Repository.ComposeMetas | RenderCodeBlock}} <span class="index">#{{.Issue.Index}}</span>
|
|
</span>
|
|
<div id="edit-title-input" class="ui input gt-f1 gt-hidden">
|
|
<input value="{{.Issue.Title}}" maxlength="255" autocomplete="off">
|
|
</div>
|
|
</h1>
|
|
<div class="issue-title-buttons">
|
|
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .Repository.IsArchived)}}
|
|
<button id="edit-title" class="ui small basic button secondary edit-button not-in-edit{{if .Issue.IsPull}} gt-mr-0{{end}}">{{.locale.Tr "repo.issues.edit"}}</button>
|
|
{{end}}
|
|
{{if not .Issue.IsPull}}
|
|
<a role="button" class="ui small green button new-issue-button gt-mr-0" href="{{.RepoLink}}/issues/new{{if .NewIssueChooseTemplate}}/choose{{end}}">{{.locale.Tr "repo.issues.new"}}</a>
|
|
{{end}}
|
|
</div>
|
|
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .Repository.IsArchived)}}
|
|
<div class="edit-buttons">
|
|
<button id="cancel-edit-title" class="ui small basic button secondary in-edit gt-hidden">{{.locale.Tr "repo.issues.cancel"}}</button>
|
|
<button id="save-edit-title" class="ui small primary button in-edit gt-hidden gt-mr-0" data-update-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/title" {{if .Issue.IsPull}}data-target-update-url="{{$.RepoLink}}/pull/{{.Issue.Index}}/target_branch"{{end}}>{{.locale.Tr "repo.issues.save"}}</button>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
<div class="issue-title-meta">
|
|
{{if .HasMerged}}
|
|
<div class="ui purple label issue-state-label">{{svg "octicon-git-merge" 16 "gt-mr-2"}} {{if eq .Issue.PullRequest.Status 3}}{{.locale.Tr "repo.pulls.manually_merged"}}{{else}}{{.locale.Tr "repo.pulls.merged"}}{{end}}</div>
|
|
{{else if .Issue.IsClosed}}
|
|
<div class="ui red label issue-state-label">{{if .Issue.IsPull}}{{svg "octicon-git-pull-request"}}{{else}}{{svg "octicon-issue-closed"}}{{end}} {{.locale.Tr "repo.issues.closed_title"}}</div>
|
|
{{else if .Issue.IsPull}}
|
|
{{if .IsPullWorkInProgress}}
|
|
<div class="ui grey label issue-state-label">{{svg "octicon-git-pull-request-draft"}} {{.locale.Tr "repo.issues.draft_title"}}</div>
|
|
{{else}}
|
|
<div class="ui green label issue-state-label">{{svg "octicon-git-pull-request"}} {{.locale.Tr "repo.issues.open_title"}}</div>
|
|
{{end}}
|
|
{{else}}
|
|
<div class="ui green label issue-state-label">{{svg "octicon-issue-opened"}} {{.locale.Tr "repo.issues.open_title"}}</div>
|
|
{{end}}
|
|
<div class="gt-ml-3">
|
|
{{if .Issue.IsPull}}
|
|
{{$headHref := .HeadTarget|Escape}}
|
|
{{if .HeadBranchLink}}
|
|
{{$headHref = printf `<a href="%s">%s</a>` (.HeadBranchLink | Escape) $headHref}}
|
|
{{end}}
|
|
{{$headHref = printf `%s <button class="button button-ghost" data-tooltip-content="%s" data-clipboard-text="%s">%s</button>` $headHref (.locale.Tr "copy_branch") (.HeadTarget | Escape) (svg "octicon-copy" 14)}}
|
|
{{$baseHref := .BaseTarget|Escape}}
|
|
{{if .BaseBranchLink}}
|
|
{{$baseHref = printf `<a href="%s">%s</a>` (.BaseBranchLink | Escape) $baseHref}}
|
|
{{end}}
|
|
{{if .Issue.PullRequest.HasMerged}}
|
|
{{$mergedStr:= TimeSinceUnix .Issue.PullRequest.MergedUnix $.locale}}
|
|
{{if .Issue.OriginalAuthor}}
|
|
{{.Issue.OriginalAuthor}}
|
|
<span class="pull-desc">{{$.locale.Tr "repo.pulls.merged_title_desc" .NumCommits $headHref $baseHref $mergedStr | Safe}}</span>
|
|
{{else}}
|
|
<a {{if gt .Issue.PullRequest.Merger.ID 0}}href="{{.Issue.PullRequest.Merger.HomeLink}}"{{end}}>{{.Issue.PullRequest.Merger.GetDisplayName}}</a>
|
|
<span class="pull-desc">{{$.locale.Tr "repo.pulls.merged_title_desc" .NumCommits $headHref $baseHref $mergedStr | Safe}}</span>
|
|
{{end}}
|
|
{{else}}
|
|
{{if .Issue.OriginalAuthor}}
|
|
<span id="pull-desc" class="pull-desc">{{.Issue.OriginalAuthor}} {{$.locale.Tr "repo.pulls.title_desc" .NumCommits $headHref $baseHref | Safe}}</span>
|
|
{{else}}
|
|
<span id="pull-desc" class="pull-desc">
|
|
<a {{if gt .Issue.Poster.ID 0}}href="{{.Issue.Poster.HomeLink}}"{{end}}>{{.Issue.Poster.GetDisplayName}}</a>
|
|
{{$.locale.Tr "repo.pulls.title_desc" .NumCommits $headHref $baseHref | Safe}}
|
|
</span>
|
|
{{end}}
|
|
<span id="pull-desc-edit" class="gt-hidden">
|
|
<div class="ui floating filter dropdown">
|
|
<div class="ui basic small button">
|
|
<span class="text">{{.locale.Tr "repo.pulls.compare_compare"}}: {{$.HeadTarget}}</span>
|
|
</div>
|
|
</div>
|
|
{{svg "octicon-arrow-right"}}
|
|
<div class="ui floating filter dropdown" data-no-results="{{.locale.Tr "repo.pulls.no_results"}}">
|
|
<div class="ui basic small button">
|
|
<span class="text" id="pull-target-branch" data-basename="{{$.BaseName}}" data-branch="{{$.BaseBranch}}">{{.locale.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span>
|
|
{{svg "octicon-triangle-down" 14 "dropdown icon"}}
|
|
</div>
|
|
<div class="menu">
|
|
<div class="ui icon search input">
|
|
<i class="icon gt-df gt-ac gt-jc gt-m-0">{{svg "octicon-filter" 16}}</i>
|
|
<input name="search" placeholder="{{.locale.Tr "repo.pulls.filter_branch"}}...">
|
|
</div>
|
|
<div class="scrolling menu" id="branch-select">
|
|
{{range .Branches}}
|
|
{{$sameBase := ne $.BaseName $.HeadUserName}}
|
|
{{$differentBranch := ne . $.HeadBranch}}
|
|
{{if or $sameBase $differentBranch}}
|
|
<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-branch="{{.}}">{{$.BaseName}}{{if $.HeadRepo}}/{{$.HeadRepo}}{{end}}:{{.}}</div>
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</span>
|
|
{{end}}
|
|
{{else}}
|
|
{{$createdStr:= TimeSinceUnix .Issue.CreatedUnix $.locale}}
|
|
<span class="time-desc">
|
|
{{if .Issue.OriginalAuthor}}
|
|
{{$.locale.Tr "repo.issues.opened_by_fake" $createdStr (.Issue.OriginalAuthor|Escape) | Safe}}
|
|
{{else if gt .Issue.Poster.ID 0}}
|
|
{{$.locale.Tr "repo.issues.opened_by" $createdStr (.Issue.Poster.HomeLink|Escape) (.Issue.Poster.GetDisplayName|Escape) | Safe}}
|
|
{{else}}
|
|
{{$.locale.Tr "repo.issues.opened_by_fake" $createdStr (.Issue.Poster.GetDisplayName|Escape) | Safe}}
|
|
{{end}}
|
|
·
|
|
{{$.locale.Tr "repo.issues.num_comments" .Issue.NumComments}}
|
|
</span>
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
</div>
|