Commit graph

354 commits

Author SHA1 Message Date
Drew DeVault 26e6e66b04 attachments.js: remove unused variables 2020-10-29 15:30:55 -04:00
Drew DeVault a393429f01 Implement JavaScript UI for attachments
This one is a bit of a doozy. A summary of the changes:

- Session has grown storage for attachments which have been uploaded but
  not yet sent.
- The list of attachments on a message is refcounted so that we can
  clean up the temporary files only after it's done with - i.e. after
  copying to Sent and after all of the SMTP attempts are done.
- Abandoned attachments are cleared out on process shutdown.

Future work:
- Add a limit to the maximum number of pending attachments the user can
  have in the session.
- Periodically clean out abandoned attachments?
2020-10-29 15:18:36 -04:00
Drew DeVault 4904207269 Replace parts tree with attachment list 2020-10-23 16:08:40 -04:00
Drew DeVault 09d19169da alps theme: consoldate tab active/hover styles
Fixes some visual weirdness in an edge case
2020-10-23 15:35:20 -04:00
Drew DeVault 3db443c1df message.html: add tab to view raw email 2020-10-23 15:32:59 -04:00
Drew DeVault bd91b3eacf Fix errors arising from short-circuit assumption
The and/or operators in text/template don't short-circuit, so this
seemingly benign change caused a breakage when not fully tested.
2020-10-23 15:19:16 -04:00
Drew DeVault 64b16f4a50 message.html: add tabs to select html/plaintext 2020-10-23 15:15:46 -04:00
Drew DeVault f97f38d4a9 Send outgoing emails asyncronously 2020-10-23 14:15:07 -04:00
Drew DeVault b93b2bafa5 Rig up dowork event queue and graceful termination 2020-10-23 13:30:29 -04:00
Drew DeVault 8764397b7d alps theme: fix borders on each unread row
This addresses an oversight from when the fifth column (flags) was
introduced.
2020-10-23 12:03:23 -04:00
Drew DeVault 2d73c882df Link sender name to search for their email address 2020-10-23 11:47:30 -04:00
Drew DeVault b437cef2ab Implement broader search functionality 2020-10-23 11:45:00 -04:00
Drew DeVault 0769190180 message list: color \Flagged status yellow 2020-10-22 13:31:41 -04:00
Drew DeVault d4fd1c1fe2 Add message flags to mailbox page 2020-10-22 13:28:11 -04:00
Drew DeVault 0191aa4698 plugins/base/imap: fetch flags on search 2020-10-22 13:07:51 -04:00
Drew DeVault 6ba418c9b2 Generalize sidebar categorization logic 2020-10-22 13:03:50 -04:00
Drew DeVault 9e2c420461 Categorize and normalize folder listing 2020-10-22 12:29:55 -04:00
Drew DeVault 8de661b3bb Hide caldav/carrdav in nav unless present 2020-10-22 11:36:26 -04:00
Drew DeVault 793f261b62 Handle case where server does not return body
This was causing a nil pointer dereference before.

Fixes ~migadu/alps#121.
2020-10-22 11:05:35 -04:00
Drew DeVault aaa30ead41 Handle \Deleted emails in message list
This can happen if an email is deleted by an external client, and this
change fixes a template crash in such cases.

I elected to display (deleted email) rather than to hide deleted
messages so that, if the message is unread, it provides an explanation
for your inbox showing $n unread emails where $n > number of non-deleted
emails.

This partially addresses ~migadu/alps#121
2020-10-22 10:40:29 -04:00
Simon Ser c20df8da30
readme: add CI badge 2020-08-13 11:14:50 +02:00
Simon Ser 911a92a74e
ci: use new repo URL 2020-08-13 11:10:00 +02:00
Reto Brunner f3931fd510
remove exec bit from plugins/base/imap.go 2020-08-11 10:07:34 +02:00
Jesse Olson 456d183ebc
Set Message-Id header 2020-08-05 14:56:19 +02:00
наб ae9e70b5ad
sourcehut theme: fix nil on emails without a text part
P.a. to 50e131244a which solved
https://todo.sr.ht/~emersion/alps/100

Closes: https://todo.sr.ht/~emersion/alps/102
2020-07-13 17:07:18 +02:00
наб d60aca0e5c
base HTML: fix nil on emails without a text part
P.a. to 50e131244a which solved
https://todo.sr.ht/~emersion/alps/100

Closes: https://todo.sr.ht/~emersion/alps/102
2020-07-13 17:07:18 +02:00
Simon Ser 92b3016196
Fix nil render data on invalid password
This would cause this error:

    template: head.html:7:15: executing "head.html" at <index .Global.Path 0>: error calling index: index of untyped nil
2020-07-07 12:47:18 +02:00
Eyal Sawady 50e131244a
alps theme: fix nil on emails without a text part
Closes: https://todo.sr.ht/~emersion/alps/100
2020-06-29 16:37:41 +02:00
Zach DeCook 0aff774c5d
Stay on the same page after moving a message 2020-06-29 16:31:48 +02:00
Simon Ser 1f9fe0b169
Workaround template functions not loaded
This is a hacky workaround to make things work until we find a better
solution.

Closes: https://todo.sr.ht/~emersion/alps/96
2020-06-10 22:46:42 +02:00
Simon Ser 522454e009
base: don't use Client.Mailbox
The information returned by Client.Mailbox may be out-of-date. Instead,
retrieve the mailbox status from the server each time.

Closes: https://todo.sr.ht/~emersion/alps/80
2020-05-28 12:09:44 +02:00
Simon Ser 9a7acd2791
Add INBOX unread count on mailbox/message pages 2020-05-21 19:19:17 +02:00
Simon Ser 0a9c246794
plugins/caldav: add basic day view 2020-05-21 17:06:51 +02:00
Drew DeVault 79233fa5cb
alps theme: wire up auto-completion in compose 2020-05-20 22:12:37 +02:00
Drew DeVault 7293b7e8e7
alps theme: add button to load remote content 2020-05-20 22:10:56 +02:00
Drew DeVault 1e109b7ac3
caldav: add page titles to all routes 2020-05-20 22:10:14 +02:00
Drew DeVault a892251387
alps theme: add event page layout 2020-05-20 22:06:35 +02:00
Drew DeVault 7fb2b65eaa
alps theme: unify create/update styles 2020-05-20 22:06:35 +02:00
Drew DeVault 024cab94f1
alps theme: add layout for calendar event update 2020-05-20 22:06:32 +02:00
Simon Ser 811891134e
plugins/caldav: add time inputs in event create/update form 2020-05-20 19:32:53 +02:00
Simon Ser 8813faf71e
go fmt 2020-05-20 19:08:06 +02:00
Drew DeVault 9465f8db6d
login: set encrypted "remember me" token 2020-05-20 19:07:47 +02:00
Drew DeVault ee3f66c24c
alps theme: layout settings page 2020-05-20 19:00:40 +02:00
Drew DeVault 7142da950d
alps theme: initial layout for calendar 2020-05-20 18:59:01 +02:00
Drew DeVault 50cb8bef77
alps theme: add contact edit/create 2020-05-20 17:47:52 +02:00
Drew DeVault e4e410de1e
alps theme: add contact details page 2020-05-20 17:47:52 +02:00
Simon Ser cfea0ec787
plugins/caldav: fix duplicate event after edit 2020-05-20 17:45:32 +02:00
Simon Ser 83dd3f71d6
Drop unnecessary "log" import 2020-05-20 17:19:24 +02:00
Simon Ser 4402a748f0
plugins/caldav: edit event descriptions 2020-05-20 17:08:24 +02:00
Simon Ser 7157627dcf
plugins/caldav: add route to delete event 2020-05-20 16:54:33 +02:00