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.
 
 
 
 

88 lines
3.1 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. {{ end }}
  70. {{ end }}
  71. {{if not .Messages}}
  72. <p class="empty-list">Nothing here yet.</p>
  73. {{end}}
  74. </div>
  75. </section>
  76. <section class="actions">
  77. {{ template "messages-header.html" . }}
  78. </section>
  79. </main>
  80. </div>
  81. </div>
  82. {{template "foot.html"}}