Commit graph

353 commits

Author SHA1 Message Date
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
Simon Ser
36f3fb9567
plugins/caldav: add link to edit event 2020-05-20 16:51:02 +02:00