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.
 
 
 
 

117 line
4.0 KiB

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