Summary:
This started when I noticed that drafts weren't dissapearing from the
draft list after send. This was a pretty big bug because if you ever
clicked on one again and tried to re-send it would throw a 400 error
saying the draft id doesn't exist.
This uncovered a few fundamental issues with the DB.
First of all, the reason the draft list wasn't updating was because the DB
trigger that happened when we got in a new message, was being ignored
since the diff contained no drafts (it's now a message).
The bigger issue was that if you had a draft with only a clientId, gave it
a serverId, and tried to call "save", the REPLACE INTO method would not
update the old object, but rather create a second duplicate. This is
because the `id` field was being used as the PRIMARY KEY, and in this
case, that `id` field changed! The fix was to change the PRIMARY KEY to be
the `cilent_id` instead of the `id` and use that as the REPLACE INTO
index.
We still need the `id` field; however, because all of our reads depend on
that field usually being the serverId
Fixes T3507
Test Plan: See new and updated tests
Reviewers: dillon, bengotow
Reviewed By: bengotow
Maniphest Tasks: T3507
Differential Revision: https://phab.nylas.com/D1992
+ Starred view
+ All new spellcheck!
+ Loading screen
+ Lots of bug fixes!
Fixes:
- Forwarding messages with files
- Mode toggle now opens/closes sidebar
- Min-width is more appropriate
- Mixpanel analytics fixes
- Better draft sending errors, timeout errors
- Improvements to quoted text display, more edge cases handled
- Mailto: links that launch the app work properly
- Fix for database busy errors
- Message items resize when their container is resized
- Message items now populate HTML doctype, fixing some rendering issues
- We now sanitize HTML in replies and forwards to avoid potential issues
- Valid email addresses can now contain `=`
- Folder and label names in the sidebar wrap nicely
- Undo/redo in the composer no longer triggers task undo/redo
- EdgeForce is now in it's own repository
- Worker process moves expensive syncing out of hte main window
- 404s from the server correctly purge items from the database
- Lots more minor changes!
Summary:
This diff fixes T3389 and makes it possible to define mail views which are not based on a category and focus them in the app.
I think that we need to create a new index on the starred attribute to make sure the query runs fast.
More tests WIP
Test Plan: Run tests, more coming soon!
Reviewers: dillon, evan
Reviewed By: evan
Maniphest Tasks: T3389
Differential Revision: https://phab.nylas.com/D1979
Summary: Fixed a bug bug with the quoted text clearing the bodies on replies
Test Plan: all the tests
Reviewers: dillon, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1981
Summary: Mixpanel API misuse makes me sad.
Test Plan: No tests, but easy to check with Mixpanel.com
Reviewers: dillon, evan
Reviewed By: dillon, evan
Differential Revision: https://phab.nylas.com/D1978
Summary: Also enhancements to the developer toolbar
Test Plan: edgehill --test
Reviewers: dillon, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1976
Summary: New draft store extension that highlights misspelled words.
Test Plan: No test coverage yet
Reviewers: evan, dillon
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1972
Summary: Fixes T2095, iFrames resize when images load, when container is resized, etc.
Test Plan: Run tests
Reviewers: dillon, evan
Reviewed By: dillon, evan
Maniphest Tasks: T2095
Differential Revision: https://phab.nylas.com/D1964
Summary: NOTE: this ticket and this diff do not address turning the 'Important' label into a more user-friendly chevron. I created T3477 for that.
Test Plan: added more tests. however, seems like somebody merged some tests which are failing.
Reviewers: bengotow, evan
Reviewed By: evan
Maniphest Tasks: T3454
Differential Revision: https://phab.nylas.com/D1963