You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

card.tmpl 2.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 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" href="{{.Link}}">{{.Title | RenderEmoji ctx | RenderCodeBlock}}</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_issue"}} 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 := TimeSinceUnix .GetLastEventTimestamp ctx.Locale}}
  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="{{$.Issue.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="tw-flex tw-justify-between">
  65. <div class="labels-list tw-flex-1">
  66. {{range .Labels}}
  67. <a target="_blank" href="{{$.Issue.Repo.Link}}/issues?labels={{.ID}}">{{RenderLabel ctx ctx.Locale .}}</a>
  68. {{end}}
  69. </div>
  70. <div class="tw-flex tw-flex-wrap tw-content-start tw-gap-1">
  71. {{range .Assignees}}
  72. <a target="_blank" href="{{.HomeLink}}" data-tooltip-content="{{ctx.Locale.Tr "repo.projects.column.assigned_to"}} {{.Name}}">{{ctx.AvatarUtils.Avatar . 28}}</a>
  73. {{end}}
  74. </div>
  75. </div>
  76. {{end}}
  77. {{end}}