A webmail client. Forked from https://git.sr.ht/~migadu/alps
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.
 
 
 
 

98 lines
3.6 KiB

  1. {{template "head.html" .}}
  2. {{template "nav.html" .}}
  3. {{template "util.html" .}}
  4. <div class="page-wrap">
  5. {{ template "aside" . }}
  6. <div class="container">
  7. <form id="messages-form" method="POST"></form>
  8. <main class="message-list">
  9. <section class="actions">
  10. {{ template "messages-header.html" . }}
  11. </section>
  12. <section class="messages">
  13. <div class="message-grid">
  14. {{range .Messages}}
  15. {{ $classes := "message-list-item" }}
  16. {{ if not (.HasFlag "\\Seen") }}
  17. {{ $classes = printf "%s %s" $classes "message-list-unread" }}
  18. {{ end }}
  19. {{ if (.HasFlag "\\Deleted") }}
  20. {{ $classes = printf "%s %s" $classes "message-list-deleted" }}
  21. {{ end }}
  22. {{ if and (not (.HasFlag "\\Deleted")) .Envelope }}
  23. <div class="message-list-checkbox {{$classes}}">
  24. <input type="checkbox" name="uids" value="{{.Uid}}" form="messages-form">
  25. </div>
  26. <div class="message-list-sender {{$classes}}">
  27. {{ range .Envelope.From }}
  28. <a href='?query=from:"{{.MailboxName}}@{{.HostName}}"'>
  29. {{ if .PersonalName }}
  30. {{.PersonalName}}
  31. {{ else }}
  32. {{.MailboxName}}@{{.HostName}}
  33. {{ end }}
  34. </a>
  35. {{ end }}
  36. </div>
  37. <div class="message-list-flags {{$classes}}">
  38. {{if .Attachments}}<span class="Has attachments">📎</span>{{end}}
  39. {{if .HasFlag "\\Answered"}}<span class="Replied">↩</span>{{end}}
  40. {{if .HasFlag "$Forwarded"}}<span class="Forwarded">↪</span>{{end}}
  41. <form method="POST" action="/message/{{.Mailbox}}/flag">
  42. <input type="hidden" name="uids" value="{{.Message.Uid}}">
  43. {{ if .HasFlag "\\Flagged" -}}
  44. <input type="hidden" name="action" value="remove">
  45. {{ else }}
  46. <input type="hidden" name="action" value="add">
  47. {{ end }}
  48. <input type="hidden" name="flags" value="\Flagged">
  49. <input type="hidden" name="next" value="{{$.GlobalData.URL.Path}}">
  50. <button class="flag-button button-link" type="submit">
  51. {{- if .HasFlag "\\Flagged" -}}
  52. {{- else -}}
  53. {{- end -}}
  54. </button>
  55. </form>
  56. </div>
  57. <div class="message-list-subject {{$classes}}">
  58. <a href="{{if .TextPart}}{{.TextPart.URL false}}{{else}}{{.URL}}{{end}}">
  59. {{if .Envelope.Subject}}
  60. {{.Envelope.Subject}}
  61. {{else}}
  62. (No subject)
  63. {{end}}
  64. </a>
  65. </div>
  66. <div class="message-list-date {{$classes}}">
  67. {{ .Envelope.Date | humantime }}
  68. </div>
  69. {{ else }}
  70. <div class="message-list-checkbox {{$classes}}">
  71. <input type="checkbox" form="messages-form" disabled readonly>
  72. </div>
  73. <div class="message-list-sender {{$classes}}"></div>
  74. <div class="message-list-flags {{$classes}}"></div>
  75. <div class="message-list-subject {{$classes}}">
  76. <em>(this email was deleted by another client)</em>
  77. </div>
  78. <div class="message-list-date {{$classes}}"></div>
  79. {{ end }}
  80. {{ end }}
  81. {{if not .Messages}}
  82. <p class="empty-list">Nothing here yet.</p>
  83. {{end}}
  84. </div>
  85. </section>
  86. <section class="actions">
  87. {{ template "messages-header.html" . }}
  88. </section>
  89. </main>
  90. </div>
  91. </div>
  92. {{template "foot.html"}}