gitea源码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. {{with .Issue}}
  2. {{if eq $.Page.Project.CardType 1}}{{/* Images and Text*/}}
  3. {{$attachments := index $.Page.issuesAttachmentMap .ID}}
  4. {{if $attachments}}
  5. <div class="card-attachment-images">
  6. {{range $attachments}}
  7. <img loading="lazy" src="{{.DownloadURL}}" alt="{{.Name}}" />
  8. {{end}}
  9. </div>
  10. {{end}}
  11. {{end}}
  12. <div class="content tw-w-full">
  13. <div class="tw-flex tw-items-start tw-gap-[5px]">
  14. <div class="issue-card-icon">
  15. {{template "shared/issueicon" .}}
  16. </div>
  17. <a class="issue-card-title muted issue-title tw-break-anywhere" href="{{.Link}}">{{.Title | ctx.RenderUtils.RenderIssueSimpleTitle}}</a>
  18. {{if and $.isPinnedIssueCard $.Page.IsRepoAdmin}}
  19. <a role="button" class="issue-card-unpin muted tw-flex tw-items-center" data-tooltip-content={{ctx.Locale.Tr "repo.issues.unpin"}} data-issue-id="{{.ID}}" data-unpin-url="{{$.Page.Link}}/unpin/{{.Index}}">
  20. {{svg "octicon-x" 16}}
  21. </a>
  22. {{end}}
  23. </div>
  24. <div class="meta">
  25. <span class="text light grey muted-links">
  26. {{if not $.Page.Repository}}{{.Repo.FullName}}{{end}}#{{.Index}}
  27. {{$timeStr := DateUtils.TimeSince .GetLastEventTimestamp}}
  28. {{if .OriginalAuthor}}
  29. {{ctx.Locale.Tr .GetLastEventLabelFake $timeStr .OriginalAuthor}}
  30. {{else if gt .Poster.ID 0}}
  31. {{ctx.Locale.Tr .GetLastEventLabel $timeStr .Poster.HomeLink .Poster.GetDisplayName}}
  32. {{else}}
  33. {{ctx.Locale.Tr .GetLastEventLabelFake $timeStr .Poster.GetDisplayName}}
  34. {{end}}
  35. </span>
  36. </div>
  37. {{if .MilestoneID}}
  38. <div class="meta tw-my-1">
  39. <a class="milestone" href="{{.Repo.Link}}/milestone/{{.MilestoneID}}">
  40. {{svg "octicon-milestone" 16 "tw-mr-1 tw-align-middle"}}
  41. <span class="tw-align-middle">{{.Milestone.Name}}</span>
  42. </a>
  43. </div>
  44. {{end}}
  45. {{if $.Page.LinkedPRs}}
  46. {{range index $.Page.LinkedPRs .ID}}
  47. <div class="meta tw-my-1">
  48. <a href="{{.Repo.Link}}/pulls/{{.Index}}">
  49. <span class="tw-m-0 text {{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge" 16 "tw-mr-1 tw-align-middle"}}</span>
  50. <span class="tw-align-middle">{{.Title}} <span class="text light grey">#{{.Index}}</span></span>
  51. </a>
  52. </div>
  53. {{end}}
  54. {{end}}
  55. {{$tasks := .GetTasks}}
  56. {{if gt $tasks 0}}
  57. <div class="meta tw-my-1">
  58. {{svg "octicon-checklist" 16 "tw-mr-1 tw-align-middle"}}
  59. <span class="tw-align-middle">{{.GetTasksDone}} / {{$tasks}}</span>
  60. </div>
  61. {{end}}
  62. </div>
  63. {{if or .Labels .Assignees}}
  64. <div class="issue-card-bottom">
  65. {{/* the labels container must always be present, to help the assignees list right-aligned */}}
  66. <div class="issue-card-bottom-part labels-list">
  67. {{range $label := .Labels}}
  68. {{$link := print $.Issue.Repo.Link "/issues"}}
  69. {{$link = QueryBuild $link "labels" $label.ID}}
  70. {{ctx.RenderUtils.RenderLabelWithLink $label $link}}
  71. {{end}}
  72. </div>
  73. {{if .Assignees}}
  74. <div class="issue-card-bottom-part tw-justify-end">
  75. {{range .Assignees}}
  76. <a target="_blank" href="{{.HomeLink}}" data-tooltip-content="{{ctx.Locale.Tr "repo.projects.column.assigned_to"}} {{.Name}}">{{ctx.AvatarUtils.Avatar . 24}}</a>
  77. {{end}}
  78. </div>
  79. {{end}}
  80. </div>
  81. {{end}}
  82. {{end}}