Commit graph

147 commits

Author SHA1 Message Date
Drew DeVault
1992880454 Add theme-specific error page 2020-11-19 10:09:05 -05:00
Drew DeVault
5087e4b327 Improve "attachments exceed max size" error message 2020-11-19 09:30:46 -05:00
Drew DeVault
297afc5ce6 Limit total size of unsent attachments 2020-11-19 09:28:10 -05:00
Drew DeVault
18ad982c53 Remove leftover outbox handling 2020-11-13 13:19:44 -05:00
Drew DeVault
fa102822bb HTML image proxy: handle missing Content-Length
This is less than ideal, but we still won't end up over-reading because
we're using a LimitedReader here.
2020-11-13 12:45:39 -05:00
Drew DeVault
2611bee170 Humanize message list dates 2020-11-13 12:28:46 -05:00
Drew DeVault
6ecb243620 Fix duplicate drafts on repeated saves 2020-11-13 12:19:46 -05:00
Drew DeVault
1321cea241 Redirect to edit draft after saving message 2020-11-13 11:55:56 -05:00
Drew DeVault
86579bb478 Remove async SMTP queue 2020-11-13 10:33:19 -05:00
Drew DeVault
0d1cca191b alps/compose.html: fix message ID 2020-11-13 10:33:16 -05:00
Drew DeVault
5268eba101 Notify server when user discards attachment 2020-11-12 12:09:51 -05:00
Drew DeVault
aad5f44f6c Display server errors on attachment upload 2020-11-12 12:09:41 -05:00
Drew DeVault
a5fe1e358e Carry Message-ID forward through compose process 2020-11-12 11:21:06 -05:00
Drew DeVault
643047402d Don't crash if Outbox is not present
Fixes 
2020-11-05 10:03:45 -05:00
Drew DeVault
e4daf0778d Implement mailbox deletion 2020-10-30 15:21:33 -04:00
Drew DeVault
417d9bbd64 Implement folder creation UI 2020-10-30 13:41:25 -04:00
Drew DeVault
cbeacf9d06 Copy unsent messages to Outbox
This patch:

1. Copies unsent messages to the outbox before attempting to deliver
   them with SMTP
2. Deletes those messages once they're sent, or leaves them if an error
   occured
3. Updates the message list to make it obvious when there are unsent
   messages in the outbox
2020-10-30 11:47:23 -04:00
Drew DeVault
d325628cb2 compose: don't fail on 0 attachments 2020-10-30 10:23:57 -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
3db443c1df message.html: add tab to view raw email 2020-10-23 15:32:59 -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
b437cef2ab Implement broader search functionality 2020-10-23 11:45:00 -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
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
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
наб
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
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
1e109b7ac3
caldav: add page titles to all routes 2020-05-20 22:10:14 +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
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