alps/themes/alps/message.html

211 lines
7.6 KiB
HTML

{{template "head.html" .}}
{{template "nav.html" .}}
{{define "message-part-tree"}}
{{/* nested templates can't access the parent's context */}}
{{$ = index . 0}}
{{with index . 1}}
<a
class="nav-link"
{{if .IsText}}
href="{{$.Message.URL}}?part={{.PathString}}"
{{else}}
href="{{$.Message.URL}}/raw?part={{.PathString}}"
{{end}}
>
{{if eq $.Part.PathString .PathString}}<strong>{{end}}
{{.String}}
{{if eq $.Part.PathString .PathString}}</strong>{{end}}
</a>
{{if gt (len .Children) 0}}
<ul class="nav flex-column">
{{range .Children}}
<li class="nav-item">{{template "message-part-tree" (tuple $ .)}}</li>
{{end}}
</ul>
{{end}}
{{end}}
{{end}}
<div class="page-wrap">
{{$current := .Mailbox}}
<aside>
<!-- the logo image, dimensions 200x32 may be present or not -->
<a href="/compose" class="new">Compose&nbsp;Mail</a>
{{range .Mailboxes}}
<a href="{{.URL}}"
{{ if eq $current.Name .Name }}class="active"{{ end }}>
{{ if eq .Name "INBOX" }}
Inbox
{{else}}
{{.Name}}
{{end}}
{{ $unseen := 0 }}
{{ if eq .Name "INBOX" }}
{{ $unseen = $.Inbox.Unseen }}
{{ end }}
{{ if eq .Name $.Mailbox.Name }}
{{ $unseen = $.Mailbox.Unseen }}
{{ end }}
{{ if $unseen }}({{ $unseen }}){{ end }}
</a>
{{end}}
</aside>
<div class="container">
<main class="message">
<section class="actions">
<div class="actions-wrap">
<div class="actions-message">
{{$back := printf "%v?page=%v" .Mailbox.URL .MailboxPage}}
<a href="{{$back}}" class="button-link">« Back</a>
{{ if and (ne .Mailbox.Name "Archive") (ne .Mailbox.Name "Drafts") (ne .Mailbox.Name "Sent") }}
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/move">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<input type="hidden" name="to" value="Archive">
<input type="hidden" name="next" value="{{$back}}">
<button>Archive</button>
</form>
{{ end }}
{{ if and (ne .Mailbox.Name "INBOX") (ne .Mailbox.Name "Sent") (ne .Mailbox.Name "Drafts") }}
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/move">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<input type="hidden" name="to" value="INBOX">
<button>
{{ if (eq .Mailbox.Name "Junk") }}
Not Spam
{{ else }}
Move to Inbox
{{ end }}
</button>
</form>
{{ end }}
{{ if or (eq .Mailbox.Name "INBOX") (eq .Mailbox.Name "Trash") }}
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/move">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<input type="hidden" name="next" value="{{$back}}">
<input type="hidden" name="to" value="Junk">
<button>Report Spam</button>
</form>
{{ end }}
{{ if or (eq .Mailbox.Name "Trash") (eq .Mailbox.Name "Junk") }}
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/delete">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<input type="hidden" name="next" value="{{$back}}">
<button>Delete Permanently</button>
</form>
{{ else }}
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/move">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<input type="hidden" name="next" value="{{$back}}">
<input type="hidden" name="to" value="Trash">
<button>Delete</button>
</form>
{{ end }}
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/flag">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<input type="hidden" name="action" value="remove">
<input type="hidden" name="flags" value="\Seen">
<input type="hidden" name="next" value="{{$back}}">
<button>Mark&nbsp;Unread</button>
</form>
<form class="action-group" method="post" action="/message/{{.Mailbox.Name | pathescape}}/move">
<input type="hidden" name="uids" value="{{.Message.Uid}}">
<select class="action-group" name="to">
{{range .Mailboxes}}
<option value="{{.Name}}" {{if eq .Name $.Mailbox.Name}}selected>Move to...{{else}}>{{.Name}}{{ end }}</option>
{{end}}
</select>
<button class="action-group" type="submit">Move</button>
</form>
<span class="followups">
{{if .Message.HasFlag "\\Draft"}}
<a class="action-group button-link" href="{{.Message.URL}}/edit?part={{.Message.TextPart.PathString}}">Edit draft</a>
{{else}}
<a class="action-group button-link" href="{{.Message.URL}}/reply?part={{.Message.TextPart.PathString}}">Reply</a>
<a class="action-group button-link" href="{{.Message.URL}}/forward?part={{.Message.TextPart.PathString}}">Forward</a>
{{end}}
</span>
</div>
</div>
</section>
<div class="message-header">
<table>
<tr>
<th colspan="2">
<h1>
{{if .Message.Envelope.Subject}}
{{.Message.Envelope.Subject}}
{{else}}
(No subject)
{{end}}
</h1>
</th>
</tr>
<tr>
<th>From:</th>
<td>{{template "addr-list" .Message.Envelope.From}}</td>
</tr>
<tr>
<th>Date:</th>
<td>{{.Message.Envelope.Date | formatdate}}</td>
</tr>
<tr>
<th>To:</th><td>{{template "addr-list" .Message.Envelope.To}}</td>
</tr>
{{if .Message.Envelope.Cc}}
<tr>
<th>Cc:</th><td>{{template "addr-list" .Message.Envelope.Cc}}</td>
</tr>
{{end}}
{{if .Message.Envelope.Bcc}}
<tr>
<th>Bcc:</th>
<td>{{template "addr-list" .Message.Envelope.Bcc}}</td>
</tr>
{{ end }}
{{if and .Extra.HasRemoteResources (not .Extra.RemoteResourcesAllowed)}}
<tr class="remote-content">
<td colspan="2">
This message contains remote content, such as external images.
<a href="?part={{.Part.PathString}}&allow-remote-resources=1">
Load remote content »
</a>
</td>
</tr>
{{end}}
</table>
<section class="parts">
{{template "message-part-tree" (tuple $ .Message.PartTree)}}
</section>
</div>
{{define "addr-list"}}
{{range $i, $addr := .}}
{{if $i}},{{end}}
<strong>{{.PersonalName}}</strong>
&lt;<a href="/compose?to={{.Address}}">{{.Address}}</a>&gt;
{{end}}
{{end}}
{{if .View}}
{{.View}}
{{else}}
<p>Can't preview this message part.</p>
<a href="{{.Message.Uid}}/raw?part={{.Part.PathString}}">Download</a>
{{end}}
</main>
</div>
</div>
{{template "foot.html"}}