gitea源码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <div role="main" aria-label="{{.Title}}" class="page-content user notification" id="notification_div" data-sequence-number="{{.SequenceNumber}}">
  2. <div class="ui container">
  3. {{$statusUnread := 1}}{{$statusRead := 2}}{{$statusPinned := 3}}
  4. {{$notificationUnreadCount := call .PageGlobalData.GetNotificationUnreadCount}}
  5. {{$pageTypeIsRead := eq $.PageType "read"}}
  6. <div class="flex-text-block tw-justify-between tw-mb-[--page-spacing]">
  7. <div class="small-menu-items ui compact tiny menu">
  8. <a class="{{if not $pageTypeIsRead}}active{{end}} item" href="{{AppSubUrl}}/notifications?type=unread">
  9. {{ctx.Locale.Tr "notification.unread"}}
  10. <div class="notifications-unread-count ui label {{if not $notificationUnreadCount}}tw-hidden{{end}}">{{$notificationUnreadCount}}</div>
  11. </a>
  12. <a class="{{if $pageTypeIsRead}}active{{end}} item" href="{{AppSubUrl}}/notifications?type=read">
  13. {{ctx.Locale.Tr "notification.read"}}
  14. </a>
  15. </div>
  16. {{if and (not $pageTypeIsRead) $notificationUnreadCount}}
  17. <form action="{{AppSubUrl}}/notifications/purge" method="post">
  18. {{$.CsrfTokenHtml}}
  19. <button class="ui mini button primary tw-mr-0" title="{{ctx.Locale.Tr "notification.mark_all_as_read"}}">
  20. {{svg "octicon-checklist"}}
  21. </button>
  22. </form>
  23. {{end}}
  24. </div>
  25. <div id="notification_table">
  26. {{range $one := .Notifications}}
  27. <div class="notifications-item" id="notification_{{$one.ID}}" data-status="{{$one.Status}}">
  28. <div class="tw-self-start tw-mt-[2px]">
  29. {{if $one.Issue}}
  30. {{template "shared/issueicon" $one.Issue}}
  31. {{else}}
  32. {{svg "octicon-repo" 16 "text grey"}}
  33. {{end}}
  34. </div>
  35. <a class="notifications-link silenced tw-flex-1" href="{{$one.Link ctx}}">
  36. <div class="flex-text-block tw-text-[0.95em]">
  37. {{$one.Repository.FullName}} {{if $one.Issue}}<span class="text light-3">#{{$one.Issue.Index}}</span>{{end}}
  38. {{if eq $one.Status $statusPinned}}
  39. {{svg "octicon-pin" 13 "text blue"}}
  40. {{end}}
  41. </div>
  42. <div class="tw-text-16 tw-py-0.5">
  43. {{if $one.Issue}}
  44. {{$one.Issue.Title | ctx.RenderUtils.RenderIssueSimpleTitle}}
  45. {{else}}
  46. {{$one.Repository.FullName}}
  47. {{end}}
  48. </div>
  49. </a>
  50. <div class="notifications-updated flex-text-inline">
  51. {{if $one.Issue}}
  52. {{DateUtils.TimeSince $one.Issue.UpdatedUnix}}
  53. {{else}}
  54. {{DateUtils.TimeSince $one.UpdatedUnix}}
  55. {{end}}
  56. </div>
  57. <form class="notifications-buttons" action="{{AppSubUrl}}/notifications/status?type={{$.PageType}}&page={{$.Page.Paginater.Current}}&perPage={{$.Page.Paginater.PagingNum}}" method="post"
  58. hx-boost="true" hx-target="#notification_div" hx-swap="outerHTML"
  59. >
  60. {{$.CsrfTokenHtml}}
  61. <input type="hidden" name="notification_id" value="{{$one.ID}}">
  62. {{if ne $one.Status $statusPinned}}
  63. <button class="btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "notification.pin"}}"
  64. name="notification_action" value="pin"
  65. >
  66. {{svg "octicon-pin"}}
  67. </button>
  68. {{end}}
  69. {{if or (eq $one.Status $statusUnread) (eq $one.Status $statusPinned)}}
  70. <button class="btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "notification.mark_as_read"}}"
  71. name="notification_action" value="mark_as_read"
  72. >
  73. {{svg "octicon-check"}}
  74. </button>
  75. {{else if eq $one.Status $statusRead}}
  76. <button class="btn interact-bg tw-p-2" data-tooltip-content="{{ctx.Locale.Tr "notification.mark_as_unread"}}"
  77. name="notification_action" value="mark_as_unread"
  78. >
  79. {{svg "octicon-bell"}}
  80. </button>
  81. {{end}}
  82. </form>
  83. </div>
  84. {{else}}
  85. <div class="empty-placeholder">
  86. {{svg "octicon-inbox" 56 "tw-mb-4"}}
  87. {{if $pageTypeIsRead}}
  88. {{ctx.Locale.Tr "notification.no_read"}}
  89. {{else}}
  90. {{ctx.Locale.Tr "notification.no_unread"}}
  91. {{end}}
  92. </div>
  93. {{end}}
  94. </div>
  95. {{template "base/paginate" .}}
  96. </div>
  97. </div>