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
Simon Ser
8589228c73
Replace IMAPMessage.TextPartName with TextPart
2020-05-20 16:25:25 +02:00
Drew DeVault
2d86413876
mailbox: show unseen message count in page title
2020-05-20 15:28:36 +02:00
fox.cpp
62910a94fb
plugins/base: Add missing nil check for getMailboxByType
...
Fixes panic if there is no usable Sent folder.
2020-05-18 18:35:05 +02:00
Wagner Riffel
42c5a81986
plugins/caldav: remove statements not used
...
Signed-off-by: Wagner Riffel <wgrriffel@gmail.com>
2020-05-18 18:32:30 +02:00
Drew DeVault
aab1f866f6
mailbox: set title to "Inbox" rather than "INBOX"
2020-05-13 19:49:20 +02:00
Simon Ser
ce0b0a7eeb
plugins/caldav: add form to create new events
2020-05-13 19:44:08 +02:00
Simon Ser
ea12ffcc4c
plugins/caldav: fix event list URLs
2020-05-13 19:34:46 +02:00
Simon Ser
3036cc4436
plugins/base: fix mailbox unread count
2020-05-13 18:18:13 +02:00
Simon Ser
37be46c047
plugins/carddav: add route to delete a contact
2020-05-13 17:59:04 +02:00
Simon Ser
ee5ce517d1
plugins/caldav: introduce helper CalendarObject type
2020-05-13 17:10:21 +02:00
Drew DeVault
3d1f278fae
Use context-appropriate title for mbox/msg view
2020-05-13 17:00:47 +02:00
Drew DeVault
1cf95af41e
Add <meta refresh> to mailbox view
...
This causes the mailbox to automatically reload the page every 60
seconds, without JavaScript.
This also updates the base template data to include the full URL, and
replaces the earlier "Path" field with a pre-split array of path
components, which is more immediately useful to most templates given the
limitations of string munging with text/template primitives.
2020-05-13 16:58:48 +02:00
Simon Ser
0191b73996
plugins/caldav: switch to path-based URLs
...
UIDs are not first-class WebDAV citizens and would require two
roundtrips for most operations.
2020-05-13 16:48:03 +02:00
Simon Ser
b891a95fcf
Rename project to alps
2020-05-13 14:07:44 +02:00
Simon Ser
4cf5ad68af
plugins/base: always show INBOX first
2020-03-27 13:19:26 +01:00
Simon Ser
5af6c6adc1
plugins/base: wrap MailboxInfo and MailboxStatus
...
This allows us to extend these and expose helpers for templates and
plugins.
2020-03-27 10:45:43 +01:00