Summary:
This adds the "You've reached max features" modal in N1.
http://g.recordit.co/9O7R0mLlXE.gif
Test Plan:
1. Pull latest nylas/cloud-core and start Billing site:
```
cd cloud-core
vagrant up
vagrant ssh
cd /vagrant
bin/setup-up-feature-usage
bin/launch
```
2. Blow away ~/.nylas-mail (err backup your old one first)
3. Restart N1
4. Before logging in, edit `~/.nylas-mail/config.json`
- set env to "local"
- remove `thread-snooze` from the list of `disabledPlugins`
5. `cd /nylas-mail/src/k2` and run `npm start`
6. Restart N1 and create accounts & log in
Reviewers: khamidou, juan, halla
Reviewed By: halla
Differential Revision: https://phab.nylas.com/D3846
Summary: This is a pretty small diff – it changes the snooze-store to save metadata for the individual messages affected instead of for the whole thread. We need this to have snoozing work without running an actual sync of the whole mailbox.
Test Plan: WIP.
Reviewers: evan, halla
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3815
Use staging autoupdater for staging.
fixed failing test
Fix autoupdater – we were using the wrong command.
Revert "Bump version to 1.5.0"
Temporarily reverting this because I need to test the upgrade path from
0.4.2 => 1.5.0
Revert "Revert "Bump version to 1.5.0""
Had to do this to test the autoupdater.
[fix] [channel drop-down list] Show the stable channel in all cases.
Conflicts:
internal_packages/preferences/lib/tabs/update-channel-section.jsx
Fix broken autoupdater, for reals.
[master] Replace "Nylas N1" by "Nylas Mail" in build scripts
Summary: As discussed --- we need to make those changes to make the autoupdater work across versions.
Test Plan: Will run a build.
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3701
Revert "Revert "Revert "Bump version to 1.5.0"""
Need to set the version to 0.4.402 for testing purposes.
Set preferredChannel in the autoupdater instead of in the ChannelStore
It turns out that Squirrel checks for update at program launch. In some
cases, it would put Pro users on the "nylas-mail" channel because that's
the default channel if you don't pass a preferredChannel.
Conflicts:
src/flux/stores/update-channel-store.es6
Set the autoupdater preferredChannel to stable.
Don't try to move the app file to the Application folder ourselves
Because of MacOS Gatekeeper path randomization issues
(https://github.com/Squirrel/Squirrel.Mac/issues/182) we need the user
to move the app themselves. Changed the dialog to ask them to do this
politely.
Conflicts:
internal_packages/verify-install-location/lib/main.es6
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:
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
Summary:
After updating an account's connection settings, there's a brief
moment where the selected account isn't null, but doesn't actually
exist in the AccountStore. This throws a bunch of undefined errors,
so this diff makes sure we discard that selection.
Fixes T7452
Test Plan: tested locally
Reviewers: evan, juan
Reviewed By: juan
Maniphest Tasks: T7452
Differential Revision: https://phab.nylas.com/D3634
Summary:
Depends on D3544 (K2 diff)
This commit ensures that auth notifications are showed when the
underlying sync worker fails and are cleared when an account is
successfully reconnected
To achieve this, we manually keep track and update syncStates where
appropriate via `Actions.updateAccount`, given that we have access to
N1's version of the account directly from local-sync.
Initially I was considering account delta stream to the cloud-api and the local-api, but that
just complicated things more than it helped.
This commit also fixes a bug with refreshing the gmail token in which we
we were only attempting a token refresh upon restarting the app
This addresses: T7346, T7305, T7335
Test Plan: Manual
Reviewers: halla, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D3545
Summary:
With the fix to the delta-processor, this is all that's needed to
get mail rules working! Some places were trying to use 'accountId'
to access an account object's id, but it needs to be 'id' instead.
Test Plan: tested locally
Reviewers: jackie
Reviewed By: jackie
Differential Revision: https://phab.nylas.com/D3525
Summary:
Add ability to undo send. We decided to make undo send completely client side for a couple of reasons. If we rely on send-later for undo-send, we would be giving /all/ send load to our send-later backend. If this increases the send-later load too much, it might cause delays in the regular send-later functionality and potentially other plugins like snooze that run under the same service. We would also need to rely on the network to be able to cancel a send, which would make it unusable offline or hard to debug if that specific request fails for any given reason.
This commit also refactors the way `ComposerExtension.sendActionConfig` works. The method has been renamed and now must return an array of send actions. Also, all of the business logic to handle different send actions registered by extensions has been pieced apart from the SendActionButton and into a new SendActionStore. This also enables undo send to undo custom send actions registered by extensions.
Along the way, this also fixes a pending TODO to show all registered custom send actions in the preferences for choosing the preferred send action for sending.
Undo send works via a task, so in case N1 closes before send goes through, it will still be persisted to the task queue and restored when opened again. Undoing a send means dequeuing this task.
Test Plan: Manual
Reviewers: jackie, bengotow, halla, evan
Reviewed By: bengotow, halla, evan
Differential Revision: https://phab.nylas.com/D3361
Summary: This will address the longstanding concern in #417
Test Plan: No new tests
Reviewers: juan, evan
Reviewed By: juan, evan
Maniphest Tasks: T7065
Differential Revision: https://phab.nylas.com/D3322
Summary:
Wanted a way to reset configuration settings. I added button in N1 general preferences to remove `.nylas` folder and reboot titled 'Reset Accounts and Settings' as well as one to exclusively remove `.nylas/edgehill.db` titled 'Reset Email Cache'.
Not sure about the wording of the button descriptions.
Test Plan: Tested with different file paths on my machine. Was going to write tests, but the two buttons just call previously tested functions onClick -- rimraf and fs.unlink. Testing might be excessive?
Reviewers: bengotow, juan
Reviewed By: juan
Subscribers: juan
Differential Revision: https://phab.nylas.com/D3127
Summary:
Refactored signature preferences page to allow more signatures than the previous 1-1 mapping for signatures and accounts. Created a multi select dropdown of the accounts for which a certain signature is set as default for. Added a button into the draft header From field to toggle between saved signatures.
refactor(signatures): Add basic add/remove capabilities to static
refactor(signatures): Hooked up signature actions and signature store for basic functionality
fix(signatures): Cleaned up signature store and started on multiselectdropdown
fix(signatures): Add multi signature toggle select to multiselect dropdown
build(signatures): Built framework for multiselect dropdown
build(signatures): Toggle button functionality for dropdown
build(signatures): Build multi select from components and add debounce
refactor(signatures): Move signature actions and signature store into flux
fix(signatures): Styled composer signatures button/dropdown and fixed preferences checkmarks
build(signatures): Finish main functionality, about to refactor composer signature button into injected component
fix(signatures): Changed position styles
fix(signatures): Fixed background color for dropdown button when blurred
build(signatures): Began to write tests for signatures store, preferences and dropdown
Test Plan: Wrote tests for preferences signatures, signature store, signature composer dropdown and refactored tests for signature composer extension. For signature composer extension I removed applyTransformsToDraft and unapplyTransformsToDraft and tested by sending emails with signatures to different providers to make sure the <signature> tag caused problems.
Reviewers: bengotow, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D3073