Add addresses argument to forward command
This commit is contained in:
parent
217e8855f2
commit
36c6030e81
3 changed files with 17 additions and 2 deletions
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/emersion/go-message"
|
||||
"github.com/emersion/go-message/mail"
|
||||
"io"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type forward struct{}
|
||||
|
@ -25,8 +26,9 @@ func (_ forward) Complete(aerc *widgets.Aerc, args []string) []string {
|
|||
}
|
||||
|
||||
func (_ forward) Execute(aerc *widgets.Aerc, args []string) error {
|
||||
to := ""
|
||||
if len(args) != 1 {
|
||||
return errors.New("Usage: forward")
|
||||
to = strings.Join(args[1:], ", ")
|
||||
}
|
||||
|
||||
widget := aerc.SelectedTab().(widgets.ProvidesMessage)
|
||||
|
@ -46,6 +48,7 @@ func (_ forward) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
|
||||
subject := "Fwd: " + msg.Envelope.Subject
|
||||
defaults := map[string]string{
|
||||
"To": to,
|
||||
"Subject": subject,
|
||||
}
|
||||
composer := widgets.NewComposer(aerc.Config(), acct.AccountConfig(),
|
||||
|
@ -53,6 +56,11 @@ func (_ forward) Execute(aerc *widgets.Aerc, args []string) error {
|
|||
|
||||
addTab := func() {
|
||||
tab := aerc.NewTab(composer, subject)
|
||||
if len(args) == 1 {
|
||||
composer.FocusRecipient()
|
||||
} else {
|
||||
composer.FocusTerminal()
|
||||
}
|
||||
composer.OnHeaderChange("Subject", func(subject string) {
|
||||
if subject == "" {
|
||||
tab.Name = "New email"
|
||||
|
|
|
@ -90,7 +90,7 @@ message list, the message in the message viewer, etc).
|
|||
*delete*
|
||||
Deletes the selected message.
|
||||
|
||||
*forward*
|
||||
*forward* [address...]
|
||||
Opens the composer to forward the selected message to another recipient.
|
||||
|
||||
*move* <target>
|
||||
|
|
|
@ -153,6 +153,13 @@ func (c *Composer) FocusSubject() *Composer {
|
|||
return c
|
||||
}
|
||||
|
||||
func (c *Composer) FocusRecipient() *Composer {
|
||||
c.focusable[c.focused].Focus(false)
|
||||
c.focused = 1
|
||||
c.focusable[c.focused].Focus(true)
|
||||
return c
|
||||
}
|
||||
|
||||
// OnHeaderChange registers an OnChange callback for the specified header.
|
||||
func (c *Composer) OnHeaderChange(header string, fn func(subject string)) {
|
||||
if editor, ok := c.editors[header]; ok {
|
||||
|
|
Loading…
Reference in a new issue