mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-09-10 08:51:27 +02:00
* Add copy button to markdown code blocks Done mostly in JS because I think it's better not to try getting buttons past the markup sanitizer. * add svg module tests * fix sanitizer regexp * remove outdated comment * vertically center button in issue comments as well * add comment to css * fix undefined on view file line copy * combine animation less files * Update modules/markup/markdown/markdown.go Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> * add test for different sizes * add cloneNode and add tests for it * use deep clone * remove useless optional chaining * remove the svg node cache * unify clipboard copy string and i18n * remove unused var * remove unused localization * minor css tweaks to the button * comment tweak * remove useless attribute Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
106 lines
5.5 KiB
Handlebars
106 lines
5.5 KiB
Handlebars
<div class="sixteen wide column title">
|
|
<div class="issue-title" id="issue-title-wrapper">
|
|
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .Repository.IsArchived)}}
|
|
<div class="edit-button">
|
|
<div id="edit-title" class="ui basic green not-in-edit button">{{.i18n.Tr "repo.issues.edit"}}</div>
|
|
</div>
|
|
{{end}}
|
|
<h1>
|
|
<span id="issue-title">{{RenderIssueTitle .Issue.Title $.RepoLink $.Repository.ComposeMetas}}</span>
|
|
<span class="index">#{{.Issue.Index}}</span>
|
|
<div id="edit-title-input" class="ui input" style="display: none">
|
|
<input value="{{.Issue.Title}}" maxlength="255" autocomplete="off">
|
|
</div>
|
|
</h1>
|
|
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .Repository.IsArchived)}}
|
|
<div class="edit-buttons">
|
|
<div id="cancel-edit-title" class="ui basic blue in-edit button" style="display: none">{{.i18n.Tr "repo.issues.cancel"}}</div>
|
|
<div id="save-edit-title" class="ui green in-edit button" style="display: none" data-update-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/title" {{if .Issue.IsPull}}data-target-update-url="{{$.RepoLink}}/pull/{{.Issue.Index}}/target_branch"{{end}}>{{.i18n.Tr "repo.issues.save"}}</div>
|
|
</div>
|
|
{{end}}
|
|
</div>
|
|
{{if .HasMerged}}
|
|
<div class="ui purple large label">{{svg "octicon-git-merge" 16}} {{if eq .Issue.PullRequest.Status 3}}{{.i18n.Tr "repo.pulls.manually_merged"}}{{else}}{{.i18n.Tr "repo.pulls.merged"}}{{end}}</div>
|
|
{{else if .Issue.IsClosed}}
|
|
<div class="ui red large label">{{if .Issue.IsPull}}{{svg "octicon-git-pull-request"}}{{else}}{{svg "octicon-issue-closed"}}{{end}} {{.i18n.Tr "repo.issues.closed_title"}}</div>
|
|
{{else if .Issue.IsPull}}
|
|
<div class="ui green large label">{{svg "octicon-git-pull-request"}} {{.i18n.Tr "repo.issues.open_title"}}</div>
|
|
{{else}}
|
|
<div class="ui green large label">{{svg "octicon-issue-opened"}} {{.i18n.Tr "repo.issues.open_title"}}</div>
|
|
{{end}}
|
|
|
|
{{if .Issue.IsPull}}
|
|
{{$headHref := .HeadTarget|Escape}}
|
|
{{if .HeadBranchHTMLURL}}
|
|
{{$headHref = printf "<a href=\"%s\">%s</a>" (.HeadBranchHTMLURL | Escape) $headHref}}
|
|
{{end}}
|
|
{{$headHref = printf "%s <a class=\"poping up\" data-content=\"%s\" data-clipboard-text=\"%s\">%s</a>" $headHref (.i18n.Tr "copy_branch") (.HeadTarget | Escape) (svg "octicon-copy" 14)}}
|
|
{{$baseHref := .BaseTarget|Escape}}
|
|
{{if .BaseBranchHTMLURL}}
|
|
{{$baseHref = printf "<a href=\"%s\">%s</a>" (.BaseBranchHTMLURL | Escape) $baseHref}}
|
|
{{end}}
|
|
{{if .Issue.PullRequest.HasMerged}}
|
|
{{ $mergedStr:= TimeSinceUnix .Issue.PullRequest.MergedUnix $.Lang }}
|
|
{{if .Issue.OriginalAuthor }}
|
|
{{.Issue.OriginalAuthor}}
|
|
<span class="pull-desc">{{$.i18n.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">{{$.i18n.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}} {{$.i18n.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>
|
|
{{$.i18n.Tr "repo.pulls.title_desc" .NumCommits $headHref $baseHref | Safe}}
|
|
</span>
|
|
{{end}}
|
|
<span id="pull-desc-edit" style="display: none">
|
|
<div class="ui floating filter dropdown">
|
|
<div class="ui basic small button">
|
|
<span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$.HeadTarget}}</span>
|
|
</div>
|
|
</div>
|
|
{{svg "octicon-arrow-right"}}
|
|
<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
|
|
<div class="ui basic small button">
|
|
<span class="text" id="pull-target-branch" data-basename="{{$.BaseName}}" data-branch="{{$.BaseBranch}}">{{.i18n.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 df ac jc m-0">{{svg "octicon-filter" 16}}</i>
|
|
<input name="search" placeholder="{{.i18n.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 $.Lang }}
|
|
<span class="time-desc">
|
|
{{if .Issue.OriginalAuthor }}
|
|
{{$.i18n.Tr "repo.issues.opened_by_fake" $createdStr .Issue.OriginalAuthor | Safe}}
|
|
{{else if gt .Issue.Poster.ID 0}}
|
|
{{$.i18n.Tr "repo.issues.opened_by" $createdStr .Issue.Poster.HomeLink (.Issue.Poster.GetDisplayName|Escape) | Safe}}
|
|
{{else}}
|
|
{{$.i18n.Tr "repo.issues.opened_by_fake" $createdStr (.Issue.Poster.GetDisplayName|Escape) | Safe}}
|
|
{{end}}
|
|
·
|
|
{{$.i18n.Tr "repo.issues.num_comments" .Issue.NumComments}}
|
|
</span>
|
|
{{end}}
|
|
<div class="ui divider"></div>
|
|
</div>
|