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 := new(bytes.Buffer)
|
||||||
buf.ReadFrom(reader)
|
buf.ReadFrom(reader)
|
||||||
original.Text = buf.String()
|
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()
|
addTab()
|
||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -60,6 +60,12 @@ available always.
|
||||||
Example:
|
Example:
|
||||||
{{.Subject}}
|
{{.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*
|
*Original Message*
|
||||||
When using quoted reply or forward, the original message is available.
|
When using quoted reply or forward, the original message is available.
|
||||||
It can be used using two functions that are available to templates.
|
It can be used using two functions that are available to templates.
|
||||||
|
|
|
@ -22,9 +22,10 @@ type TemplateData struct {
|
||||||
Date time.Time
|
Date time.Time
|
||||||
Subject string
|
Subject string
|
||||||
// Only available when replying with a quote
|
// Only available when replying with a quote
|
||||||
OriginalText string
|
OriginalText string
|
||||||
OriginalFrom []*mail.Address
|
OriginalFrom []*mail.Address
|
||||||
OriginalDate time.Time
|
OriginalDate time.Time
|
||||||
|
OriginalMIMEType string
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestTemplateData() TemplateData {
|
func TestTemplateData() TemplateData {
|
||||||
|
@ -36,9 +37,10 @@ func TestTemplateData() TemplateData {
|
||||||
}
|
}
|
||||||
|
|
||||||
original := models.OriginalMail{
|
original := models.OriginalMail{
|
||||||
Date: time.Now().Format("Mon Jan 2, 2006 at 3:04 PM"),
|
Date: time.Now().Format("Mon Jan 2, 2006 at 3:04 PM"),
|
||||||
From: "John Doe <john@example.com>",
|
From: "John Doe <john@example.com>",
|
||||||
Text: "This is only a test text",
|
Text: "This is only a test text",
|
||||||
|
MIMEType: "text/plain",
|
||||||
}
|
}
|
||||||
|
|
||||||
return ParseTemplateData(defaults, original)
|
return ParseTemplateData(defaults, original)
|
||||||
|
@ -47,15 +49,16 @@ func TestTemplateData() TemplateData {
|
||||||
func ParseTemplateData(defaults map[string]string, original models.OriginalMail) TemplateData {
|
func ParseTemplateData(defaults map[string]string, original models.OriginalMail) TemplateData {
|
||||||
originalDate, _ := time.Parse("Mon Jan 2, 2006 at 3:04 PM", original.Date)
|
originalDate, _ := time.Parse("Mon Jan 2, 2006 at 3:04 PM", original.Date)
|
||||||
td := TemplateData{
|
td := TemplateData{
|
||||||
To: parseAddressList(defaults["To"]),
|
To: parseAddressList(defaults["To"]),
|
||||||
Cc: parseAddressList(defaults["Cc"]),
|
Cc: parseAddressList(defaults["Cc"]),
|
||||||
Bcc: parseAddressList(defaults["Bcc"]),
|
Bcc: parseAddressList(defaults["Bcc"]),
|
||||||
From: parseAddressList(defaults["From"]),
|
From: parseAddressList(defaults["From"]),
|
||||||
Date: time.Now(),
|
Date: time.Now(),
|
||||||
Subject: defaults["Subject"],
|
Subject: defaults["Subject"],
|
||||||
OriginalText: original.Text,
|
OriginalText: original.Text,
|
||||||
OriginalFrom: parseAddressList(original.From),
|
OriginalFrom: parseAddressList(original.From),
|
||||||
OriginalDate: originalDate,
|
OriginalDate: originalDate,
|
||||||
|
OriginalMIMEType: original.MIMEType,
|
||||||
}
|
}
|
||||||
return td
|
return td
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,7 +167,8 @@ func FormatAddresses(addrs []*Address) string {
|
||||||
|
|
||||||
// OriginalMail is helper struct used for reply/forward
|
// OriginalMail is helper struct used for reply/forward
|
||||||
type OriginalMail struct {
|
type OriginalMail struct {
|
||||||
Date string
|
Date string
|
||||||
From string
|
From string
|
||||||
Text string
|
Text string
|
||||||
|
MIMEType string
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue