add .OriginalMIMEType variable to reply template
This commit is contained in:
parent
5255585b3b
commit
d238272bdb
4 changed files with 39 additions and 18 deletions
|
@ -157,6 +157,17 @@ func (reply) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
buf := new(bytes.Buffer)
|
||||
buf.ReadFrom(reader)
|
||||
original.Text = buf.String()
|
||||
if len(msg.BodyStructure.Parts) == 0 {
|
||||
original.MIMEType = fmt.Sprintf("%s/%s",
|
||||
msg.BodyStructure.MIMEType, msg.BodyStructure.MIMESubType)
|
||||
} else {
|
||||
// TODO: still will be "multipart/mixed" for mixed mails with
|
||||
// attachments, fix this after aerc could handle responding to
|
||||
// such mails
|
||||
original.MIMEType = fmt.Sprintf("%s/%s",
|
||||
msg.BodyStructure.Parts[0].MIMEType,
|
||||
msg.BodyStructure.Parts[0].MIMESubType)
|
||||
}
|
||||
addTab()
|
||||
})
|
||||
return nil
|
||||
|
|
|
@ -60,6 +60,12 @@ available always.
|
|||
Example:
|
||||
{{.Subject}}
|
||||
|
||||
*MIME Type*
|
||||
MIME Type is available for quoted reply.
|
||||
|
||||
- OriginalMIMEType: MIME type info of quoted mail part. Usually
|
||||
"text/plain" or "text/html".
|
||||
|
||||
*Original Message*
|
||||
When using quoted reply or forward, the original message is available.
|
||||
It can be used using two functions that are available to templates.
|
||||
|
|
|
@ -22,9 +22,10 @@ type TemplateData struct {
|
|||
Date time.Time
|
||||
Subject string
|
||||
// Only available when replying with a quote
|
||||
OriginalText string
|
||||
OriginalFrom []*mail.Address
|
||||
OriginalDate time.Time
|
||||
OriginalText string
|
||||
OriginalFrom []*mail.Address
|
||||
OriginalDate time.Time
|
||||
OriginalMIMEType string
|
||||
}
|
||||
|
||||
func TestTemplateData() TemplateData {
|
||||
|
@ -36,9 +37,10 @@ func TestTemplateData() TemplateData {
|
|||
}
|
||||
|
||||
original := models.OriginalMail{
|
||||
Date: time.Now().Format("Mon Jan 2, 2006 at 3:04 PM"),
|
||||
From: "John Doe <john@example.com>",
|
||||
Text: "This is only a test text",
|
||||
Date: time.Now().Format("Mon Jan 2, 2006 at 3:04 PM"),
|
||||
From: "John Doe <john@example.com>",
|
||||
Text: "This is only a test text",
|
||||
MIMEType: "text/plain",
|
||||
}
|
||||
|
||||
return ParseTemplateData(defaults, original)
|
||||
|
@ -47,15 +49,16 @@ func TestTemplateData() TemplateData {
|
|||
func ParseTemplateData(defaults map[string]string, original models.OriginalMail) TemplateData {
|
||||
originalDate, _ := time.Parse("Mon Jan 2, 2006 at 3:04 PM", original.Date)
|
||||
td := TemplateData{
|
||||
To: parseAddressList(defaults["To"]),
|
||||
Cc: parseAddressList(defaults["Cc"]),
|
||||
Bcc: parseAddressList(defaults["Bcc"]),
|
||||
From: parseAddressList(defaults["From"]),
|
||||
Date: time.Now(),
|
||||
Subject: defaults["Subject"],
|
||||
OriginalText: original.Text,
|
||||
OriginalFrom: parseAddressList(original.From),
|
||||
OriginalDate: originalDate,
|
||||
To: parseAddressList(defaults["To"]),
|
||||
Cc: parseAddressList(defaults["Cc"]),
|
||||
Bcc: parseAddressList(defaults["Bcc"]),
|
||||
From: parseAddressList(defaults["From"]),
|
||||
Date: time.Now(),
|
||||
Subject: defaults["Subject"],
|
||||
OriginalText: original.Text,
|
||||
OriginalFrom: parseAddressList(original.From),
|
||||
OriginalDate: originalDate,
|
||||
OriginalMIMEType: original.MIMEType,
|
||||
}
|
||||
return td
|
||||
}
|
||||
|
|
|
@ -167,7 +167,8 @@ func FormatAddresses(addrs []*Address) string {
|
|||
|
||||
// OriginalMail is helper struct used for reply/forward
|
||||
type OriginalMail struct {
|
||||
Date string
|
||||
From string
|
||||
Text string
|
||||
Date string
|
||||
From string
|
||||
Text string
|
||||
MIMEType string
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue