aboutsummaryrefslogblamecommitdiff
path: root/themes/sourcehut/message.html
blob: 1e4197ff49c22700719acbf954e98fe91e5d01ec (plain) (tree)
1
2
                        
                               


















                                                                
                                                                     

                      





                                                                       
























                                                                                  
                                                                             
                                
                                                                                 

                               
                                                                              
                                   
                                                                               












                                                                                                      






























                                                                                


                                                                              
                                                                                                   


             

                  

                                               
                                                                             

             
                                       
                                                                  


                                                  

                                                                                  














                                                                                        

                                                                                    









                                                          

                                                                                    



















                                                                            





                        
{{template "head.html"}}
{{template "nav.html" .Global}}

<div class="container-fluid">
  <div class="row">
    <div class="col-md-12 header-tabbed">
      <h2 style="margin-bottom: 1rem;" class="d-block">
        {{if .Message.Envelope.Subject}}
          {{.Message.Envelope.Subject}}
        {{else}}
          (No subject)
        {{end}}
      </h2>
      <div class="container message-tabs">
        <ul class="nav nav-tabs">
          <li class="nav-item">
            <a class="nav-link active" href="#">View message</a>
          </li>
          <li class="nav-item">
            <a
              class="nav-link"
              href="{{.Message.URL}}/reply?part={{.Part.PathString}}"
            >Reply</a>
          </li>
          <li class="nav-item">
            <a
              class="nav-link"
              href="{{.Message.URL}}/forward?part={{.Part.PathString}}"
            >Forward</a>
          </li>
          <li class="mr-auto d-none d-sm-flex"></li>
          <li class="nav-item">
            <a
              class="nav-link"
              href="/mailbox/{{.Mailbox.Name | pathescape}}?page={{.MailboxPage}}"
            >
              <span class="icon icon-caret-left">
                {{template "caret-left.html"}}
              </span>
              Back
            </a>
          </li>
        </ul>
      </div>
    </div>
  </div>
</div>

{{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="container message-container">
  <div class="row">
    <div class="col-md-9 body-column">
      {{define "addr-list"}}
        {{range $i, $addr := .}}
          {{- if $i}},{{end}}
          {{.PersonalName}}
          &lt;<a href="/compose?to={{.Address}}">{{.Address}}</a>&gt;
        {{- end}}
      {{end}}

      <ul>
        <li>
          <strong>Date</strong>: {{.Message.Envelope.Date | formatdate}}
        </li>
        <li>
          <strong>From</strong>: {{template "addr-list" .Message.Envelope.From}}
        </li>
        <li>
          <strong>To</strong>: {{template "addr-list" .Message.Envelope.To}}
        </li>
        {{if .Message.Envelope.Cc}}
          <li>
            <strong>Cc</strong>: {{template "addr-list" .Message.Envelope.Cc}}
          </li>
        {{end}}
        {{if .Message.Envelope.Bcc}}
          <li>
            <strong>Bcc</strong>: {{template "addr-list" .Message.Envelope.Bcc}}
          </li>
        {{end}}
      </ul>

      {{if and .Extra.HasRemoteResources (not .Extra.RemoteResourcesAllowed)}}
        <p class="alert alert-info">
          This message contains remote content.
          <a href="?part={{.Part.PathString}}&allow-remote-resources=1" class="alert-link">Load</a>
        </p>
      {{end}}

      {{if .View}}
        {{.View}}
      {{else}}
        <p>Can't preview this message part.</p>
        <a href="{{.Message.URL}}/raw?part={{.Part.PathString}}">Download</a>
      {{end}}
    </div>
    <div class="col-md-3 parts-column">
      {{template "message-part-tree" (tuple $ .Message.PartTree)}}

      <details>
        <summary>Move to another mailbox</summary>
        <form method="post" action="/message/{{.Mailbox.Name | pathescape}}/move">
          <input type="hidden" name="uids" value="{{.Message.Uid}}">
          <div class="form-group">
            <select class="form-control" name="to" id="move-to">
              {{range .Mailboxes}}
                <option {{if eq .Name $.Mailbox.Name}}selected{{end}}>{{.Name}}</option>
              {{end}}
            </select>
          </div>
          <div class="pull-right">
            <button class="btn btn-primary">Move</button>
          </div>
        </form>
      </details>

      <details>
        <summary>Delete</summary>
        <form method="post" action="/message/{{.Mailbox.Name | pathescape}}/delete">
          <input type="hidden" name="uids" value="{{.Message.Uid}}">
          <p>Are you sure?</p>
          <div class="pull-right">
            <button class="btn btn-danger">Delete</button>
          </div>
        </form>
      </details>

      {{if .Flags}}
        <details>
          <summary>Edit flags</summary>
          <form method="post" action="/message/{{.Mailbox.Name | pathescape}}/flag">
            <input type="hidden" name="uids" value="{{.Message.Uid}}">
            <div class="form-group">
              {{range $name, $has := .Flags}}
                {{if ismutableflag $name}}
                  <input type="checkbox" name="flags" id="flag-{{$name}}"
                    value="{{$name}}" {{if $has}}checked{{end}}>
                  <label for="flag-{{$name}}">{{$name | formatflag}}</label>
                  <br>
                {{else}}
                  {{if $has}}
                    <input type="hidden" name="flags" value="{{$name}}">
                  {{end}}
                {{end}}
              {{end}}
            </div>
            <div class="pull-right">
              <button class="btn btn-primary">Save</button>
            </div>
          </form>
        </details>
      {{end}}
    </div>
  </div>
</div>

{{template "foot.html"}}