A webmail client. Forked from https://git.sr.ht/~migadu/alps
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

168 linhas
4.8 KiB

  1. {{template "head.html"}}
  2. {{template "nav.html" .Global}}
  3. <div class="container-fluid">
  4. <div class="row">
  5. <div class="col-md-12 header-tabbed">
  6. <h2 style="margin-bottom: 1rem;" class="d-block">
  7. {{if .Message.Envelope.Subject}}
  8. {{.Message.Envelope.Subject}}
  9. {{else}}
  10. (No subject)
  11. {{end}}
  12. </h2>
  13. <div class="container message-tabs">
  14. <ul class="nav nav-tabs">
  15. <li class="nav-item">
  16. <a class="nav-link active" href="#">View message</a>
  17. </li>
  18. <li class="nav-item">
  19. <a
  20. class="nav-link"
  21. href="{{.Message.Uid}}/reply?part={{.PartPath}}"
  22. >Reply</a>
  23. </li>
  24. <li class="mr-auto d-none d-sm-flex"></li>
  25. <li class="nav-item">
  26. <a
  27. class="nav-link"
  28. href="/mailbox/{{.Mailbox.Name | pathescape}}?page={{.MailboxPage}}"
  29. >
  30. <span class="icon icon-caret-left">
  31. {{template "caret-left.html"}}
  32. </span>
  33. Back
  34. </a>
  35. </li>
  36. </ul>
  37. </div>
  38. </div>
  39. </div>
  40. </div>
  41. {{define "message-part-tree"}}
  42. {{/* nested templates can't access the parent's context */}}
  43. {{$ = index . 0}}
  44. {{with index . 1}}
  45. <a
  46. class="nav-link"
  47. {{if .IsText}}
  48. href="{{$.Message.Uid}}?part={{.PathString}}"
  49. {{else}}
  50. href="{{$.Message.Uid}}/raw?part={{.PathString}}"
  51. {{end}}
  52. >
  53. {{if eq $.PartPath .PathString}}<strong>{{end}}
  54. {{.String}}
  55. {{if eq $.PartPath .PathString}}</strong>{{end}}
  56. </a>
  57. {{if gt (len .Children) 0}}
  58. <ul class="nav flex-column">
  59. {{range .Children}}
  60. <li class="nav-item">{{template "message-part-tree" (tuple $ .)}}</li>
  61. {{end}}
  62. </ul>
  63. {{end}}
  64. {{end}}
  65. {{end}}
  66. <div class="container message-container">
  67. <div class="row">
  68. <div class="col-md-9 body-column">
  69. {{define "addr-list"}}
  70. {{range $i, $addr := .}}
  71. {{- if $i}},{{end}}
  72. {{.PersonalName}}
  73. &lt;<a href="/compose?to={{.Address}}">{{.Address}}</a>&gt;
  74. {{- end}}
  75. {{end}}
  76. <ul>
  77. <li>
  78. <strong>Date</strong>: {{.Message.Envelope.Date | formatdate}}
  79. </li>
  80. <li>
  81. <strong>From</strong>: {{template "addr-list" .Message.Envelope.From}}
  82. </li>
  83. <li>
  84. <strong>To</strong>: {{template "addr-list" .Message.Envelope.To}}
  85. </li>
  86. {{if .Message.Envelope.Cc}}
  87. <li>
  88. <strong>Cc</strong>: {{template "addr-list" .Message.Envelope.Cc}}
  89. </li>
  90. {{end}}
  91. {{if .Message.Envelope.Bcc}}
  92. <li>
  93. <strong>Bcc</strong>: {{template "addr-list" .Message.Envelope.Bcc}}
  94. </li>
  95. {{end}}
  96. </ul>
  97. {{if .View}}
  98. {{.View}}
  99. {{else}}
  100. <p>Can't preview this message part.</p>
  101. <a href="{{.Message.Uid}}/raw?part={{.PartPath}}">Download</a>
  102. {{end}}
  103. </div>
  104. <div class="col-md-3 parts-column">
  105. {{template "message-part-tree" (tuple $ .Message.PartTree)}}
  106. <details>
  107. <summary>Move to another mailbox</summary>
  108. <form method="post" action="{{.Message.Uid}}/move">
  109. <div class="form-group">
  110. <select class="form-control" name="to" id="move-to">
  111. {{range .Mailboxes}}
  112. <option {{if eq .Name $.Mailbox.Name}}selected{{end}}>{{.Name}}</option>
  113. {{end}}
  114. </select>
  115. </div>
  116. <div class="pull-right">
  117. <button class="btn btn-primary">Move</button>
  118. </div>
  119. </form>
  120. </details>
  121. <details>
  122. <summary>Delete</summary>
  123. <form method="post" action="{{.Message.Uid}}/delete">
  124. <p>Are you sure?</p>
  125. <div class="pull-right">
  126. <button class="btn btn-danger">Delete</button>
  127. </div>
  128. </form>
  129. </details>
  130. {{if .Flags}}
  131. <details>
  132. <summary>Edit flags</summary>
  133. <form method="post" action="{{.Message.Uid}}/flag">
  134. <div class="form-group">
  135. {{range $name, $has := .Flags}}
  136. {{if ismutableflag $name}}
  137. <input type="checkbox" name="flags" id="flag-{{$name}}"
  138. value="{{$name}}" {{if $has}}checked{{end}}>
  139. <label for="flag-{{$name}}">{{$name | formatflag}}</label>
  140. <br>
  141. {{else}}
  142. {{if $has}}
  143. <input type="hidden" name="flags" value="{{$name}}">
  144. {{end}}
  145. {{end}}
  146. {{end}}
  147. </div>
  148. <div class="pull-right">
  149. <button class="btn btn-primary">Save</button>
  150. </div>
  151. </form>
  152. </details>
  153. {{end}}
  154. </div>
  155. </div>
  156. </div>
  157. {{template "foot.html"}}