Summary:
The isModelIndexed function was extremely slow because it was scanning
the unindexed 'content_id' field in the search index table. This diff
adds a field to the searchable models (currently Thread, Contact, and
Event) that stores whether that particular model has been indexed or
not, allowing us to avoid doing the O(n) scan of the search index table.
Test Plan: Run locally, verify that isModelIndexed is no longer a bottleneck
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3695
Summary:
Lots of components were rendering when they didn't have to on the very
frequent account sidebar updates
Test Plan: manual
Reviewers: mark, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D3691
We've got a plethora of "unique" ids for the same account and ot looks
like a recent regression is preventing us from fetching an API token for
an account from the keychain. This diff changes the AccountStore to be
able to fetch data using an account's email address. Will figure how to
do things better after launch.
Test plan: Checked that it worked for a broken account.
Summary:
Fixes T7520
Gets rid of the Gmail auth error too
Test Plan: manual
Reviewers: juan
Reviewed By: juan
Maniphest Tasks: T7520
Differential Revision: https://phab.nylas.com/D3688
Summary:
Removes references to the N1 ID expring.
Luckily, local-sync Nylas Mail Basic doesn't need the nylas ID to do
pretty much anything, which means we don't need to worry about the "trial"
status of the Nylas ID. The existing trial infrastructure will only kick
into place when someone connects an email account with the Nylas Cloud
Sync servers for the first time.
The one place we do check for the Nylas ID is in the
cloud-api/src/authentication route. Here we hit
https://billing.nylas.com/n1/user and simply expect to get back a Nylas
ID. As long as we return the existence of a Nylas ID (which should ignore
whether or not the old subscription system is "valid"), the API calls will
succeed.
This makes the "Upgrade Now" button go to
billing.nylas.com/dashboard?upgrade_to_pro=true with the auto-sign in
features enabled. This will automatically log the user into the Nylas
billing site with the upgrade_to_pro=true flag set.
There is also a new "Learn More" button which goes to
https://nylas.com/nylas-pro.
@mike, will these urls work?
Test Plan: manual
Reviewers: khamidou, mike, juan
Reviewed By: juan
Subscribers: mike
Differential Revision: https://phab.nylas.com/D3680
Summary:
Also fixes an issue where we would show all any accounts
that aren't gmail or office365 as a generic imap account.
Depends on D3686
Test Plan: manual
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3687
Summary:
This is a very expensive operation and there seemed to be few downsides
to including quoted portions in the index. We can revisit this to
improve how we index when we have a proper scheduler.
Test Plan: Run locally
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3682
Summary:
Also fixes an issue where accounts weren't being removed from
NylasSyncStatusStore because `subscriptions` was used instead of
`_subscriptions`. Specifically, rename `_subscriptions` to
`_accountSubscriptions` so we get an explicit runtime error if
the `_` is left out.
Test Plan: tested locally
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D3671
Summary:
The old task queue for message changing tasks (like mark unread and
archiving) had a system that would only do 5 at a time until the Promises
resolved. Unfortunately our new system doesn't resolve the request
promises until the full IMAP task is actually complete. When you're moving
dozens of messages this can take a very long time since they're currently
not prioritized in sync.
Furthermore if you quit the app while this is inprogress, the Tasks had no
way of saving the status of each of the syncback actions. This means when
you restarted the app, the TaskQueue would get re-inflated and try tasks
again. We now keep track of any tasks that have started and either look
for them in the database or re-listen for their changing status again.
Test Plan: manual
Reviewers: mark, halla, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D3666
The css class was accidentally renamed in another commit. Bring it back and
remove the hard-coded ellipses, since the ellipsis is now part of a css
psuedo element.
Summary:
This diff takes out the progress bars, since they can appear to
not move for very large mailboxes. Instead, just show an icon that
indicates whether the sync is complete or in progress, and add a
tooltip that displays how far back the folder has been synced to.
Submodule commit is D3662
Test Plan: tested locally
Reviewers: evan, juan
Reviewed By: evan, juan
Differential Revision: https://phab.nylas.com/D3663
Summary: See title
Test Plan: Run locally, search for specific labels
Reviewers: evan, juan
Reviewed By: evan, juan
Differential Revision: https://phab.nylas.com/D3656
Summary:
We don't see any weird double object behavior when delete deltas are
working properly, so might as well be optimistic since it makes for
a better user experience. This diff also notifies the user if a
category operation fails because of a mail provider restriction.
Fixes T7475
Test Plan: tested locally
Reviewers: juan, evan
Reviewed By: evan
Maniphest Tasks: T7475
Differential Revision: https://phab.nylas.com/D3648
Summary:
IMAP no longer appears on the onboarding account list, and the option to
edit connection settings does not appear for any of the visible account
types. Custom IMAP accounts can still be added via a menu option.
Fixes T7474
Test Plan: tested locally
Reviewers: juan, jackie, evan
Reviewed By: evan
Maniphest Tasks: T7474
Differential Revision: https://phab.nylas.com/D3636