commit 50d0cfb87c
Author: Ben Gotow <bengotow@gmail.com>
Date: Fri May 27 14:01:49 2016 -0700
IdentityStore conveniene methods for subscription state
commit 80c3c7b956
Author: Ben Gotow <bengotow@gmail.com>
Date: Fri May 27 12:03:53 2016 -0700
Periodically refresh identity, show expired notice in top bar
commit 5dc39efe98
Merge: 4c4f463906ea74
Author: Juan Tejada <juans.tejada@gmail.com>
Date: Thu May 26 15:17:46 2016 -0700
Merge branch 'bengotow/n1-pro' of github.com:nylas/N1 into bengotow/n1-pro
commit 4c4f463f4b
Author: Juan Tejada <juans.tejada@gmail.com>
Date: Thu May 26 15:16:48 2016 -0700
Hijack links inside email that go to billing site and add SSO to them
commit 906ea74807
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 26 12:02:29 2016 -0700
Add custom welcome page for upgrading users
commit 2ba9aedfe9
Author: Juan Tejada <juans.tejada@gmail.com>
Date: Wed May 25 17:27:12 2016 -0700
Add styling to Subscription tab in prefs
commit 384433a338
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 16:21:18 2016 -0700
Add better style reset, more IdentityStore changes
commit c4f9dfb4e4
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 15:29:41 2016 -0700
Add subscription tab
commit bd4c25405a
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 14:18:40 2016 -0700
Point to billing-staging for now
commit 578e808bfc
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 13:30:13 2016 -0700
Rename account helpers > onboarding helpers
commit dfea0a9861
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 13:26:46 2016 -0700
A few minor fixes
commit 7110217fd4
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 12:58:21 2016 -0700
feat(onboarding): Nylas Pro onboarding overhaul
Summary:
Rip out all invite-related code
Enable Templates and Translate by default
Scrub packages page, unused code in onboarding pkg
Remove resizing
New onboarding screens
IMAP provider list, validation
Call success with response object as well
Renaming and tweaks
Test Plan: No tests yet
Reviewers: evan, juan, jackie
Differential Revision: https://phab.nylas.com/D2985
commit dc9ea45ca9
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 12:52:39 2016 -0700
Renaming and tweaks
commit 5ca4cd31ce
Author: Ben Gotow <bengotow@gmail.com>
Date: Wed May 25 11:03:57 2016 -0700
Call success with response object as well
commit 45f14f9b00
Author: Ben Gotow <bengotow@gmail.com>
Date: Tue May 24 18:26:38 2016 -0700
IMAP provider list, validation
commit c6ca124e6e
Author: Ben Gotow <bengotow@gmail.com>
Date: Sat May 21 11:14:44 2016 -0700
New onboarding screens
commit dad918d926
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:37:31 2016 -0700
Remove resizing
commit ecb1a569e2
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:36:04 2016 -0700
Scrub packages page, unused code in onboarding pkg
commit 3e0a44156c
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:33:12 2016 -0700
Enable Templates and Translate by default
commit 0d218bc86f
Author: Ben Gotow <bengotow@gmail.com>
Date: Thu May 19 16:30:47 2016 -0700
Rip out all invite-related code
Summary:
Keymaps & menus CSON => JSON, remove AtomKeymaps, CommandRegistry use of CSS selectors, use Mousetrap instead
Important Notes:
- The `application:` prefix is reserved for commands which are handled in the application process. Don't use it for other things. You will not receive the events in the window.
- Maintaining dynamic menus seems to come with quite an overhead, because Electron updates the entire menu every time. In the future, we'll need https://github.com/electron/electron/issues/528 to really make things nice. I will be tracking this upstream.
- The format for keyboard shortcuts has changed. `cmd-X` is now `command+shift+x`
Test Plan: Run tests
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2917
* fix(imports): switch to Electron's require('electron')
Electron in 0.37.5 phases out the usage of `require('built-in-module')`
in favor of `require('electron').builtInModule`. This commit corrects usage in
some cases that cause N1 to not start under Electron 0.37.5.
* fix(specs): use new Electron remote import
Summary:
- Disable processing button while already processing
- Only process mail in the inbox in bulk reprocess task
- Advance through mail using "after X" rather than "offset X", avoiding the issue where mail can be deleted as you're advancing.
Test Plan: Run existing tests
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2847
Summary:
Adds new redesigned preferences with horizontal tab bar and refactored code.
Converts Preferences, Plugins, and a few components to ES6.
Test Plan: Tested locally.
Reviewers: evan, bengotow
Reviewed By: bengotow
Subscribers: juan
Differential Revision: https://phab.nylas.com/D2818
Valid accounts that are syncing properly can reviece a delta for
Account.syncState==stopped currently, due to some quirks in the backend.
Ignore "stopped" until it unabiguously represents an error state.
Summary:
Changes the delta code to handle new deltas on the Account object,
which are triggered by changes in sync state indicating various backend
issues. Saves the sync state in a new field on the Account object, which
is persisited in `config.cson`.
Includes several UI changes to display more information when an account has
backend sync issues. Adds better messages and new actions the user can take
based on the type of sync issue.
Additionally, fixes bug in action bridge that was preventing multi-arg global
actions from working.
Test Plan:
Manual, by testing different sync state values and triggering deltas from the
backend
Reviewers: juan, evan, bengotow
Reviewed By: evan, bengotow
Subscribers: khamidou
Differential Revision: https://phab.nylas.com/D2696
Summary:
- Separate gmail's remove-from-view and delete behaviors and write logic
for each of those
- Remove MailboxPerspective::{canArchiveThreads, canTrashThreads,
removeThreads} and some unecessary code in TaskFactory
- Instead, add MailboxPerspective::tasksForRemovingFromPerspective (I
know its a bit of a mouthful)
- I initially tried to put all of the logic for each execution path
inside the TaskFactory by checking perspective types, but it made
more sense to use the polymorphism already in place for the different
perspective types.
- There is a default delete/remove-from-view behavior which is
configurable via simple ruleset objects. The gmail behavior is
configured in this way.
- Update swipe css classes based on destination of threads
- Fixes#1460:
- Update logic to display archive/trash buttons and context menu options correctly
when selected threads can be archived/trashed (not based on
perspective)
- Same for swiping
- Add a bunch of specs
- Convert some code to ES6
- TODO write some docs for new functions
Test Plan: Unit tests
Reviewers: drew, evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2682
Summary: Adds a new visual theme picker to the menu that allows users to select different themes based on color palettes and then change their themes live.
Test Plan: Test included.
Reviewers: evan, bengotow
Reviewed By: evan, bengotow
Differential Revision: https://phab.nylas.com/D2669
- This fixes#1354 and #1235
- This issue was caused because the account details preferences
component was keeping as state all of the account object fields. `setState` works
like `extend`, so when the account changed, state was set to the new set of account fields,
but the old values were only removed if they were overriden, and remained the
same if the field did not exist in the new state object.
Specifically, when a new account was added, setState was called with
`{..., defaultAlias: undefined}` which did /not/ remove the the defaultAlias
from the previous state.
- Switched to managing state with a top level key `account`
Summary:
This implements EditableList re-ordering via a new prop callback.
You can drag and drop items in the mail rules list and the accounts list.
Note that you can't drag between lists - right now this is just to enable
re-ordering.
Test Plan: No new specs yet
Reviewers: evan, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2495
Summary:
adds new option to launch on system start
Also adds the `--background` flag to launch N1 in the background (aka not
show the main window).
Test Plan: Manual
Reviewers: bengotow, juan
Reviewed By: juan
Differential Revision: https://phab.nylas.com/D2474
Summary:
- WIP: Need to fix tests and some errors!
- Refactors Category class to hold information about its type
- Refactors CategoryStore to rely on observables instead of local caches
- Adds and updates Observables and helpers
- Refactors ContactStore to hold entire cache of contacts instead of per
current account
- Same for ContactRankingStore and other stores
- Refactors method names for AccountStore + some helpers
- Updates MailViewFilter to hold an account
- Adds basic Unified filter
- Replaces AccountStore.current calls with either:
- The account of the currently focused MailViewFilter
- The account associated with a thread, message, file, etc...
- A parameter to be passed in
- Arbitrarily, the first account in the AccountsStore
Test Plan: - Unit tests
Reviewers: evan, bengotow
Differential Revision: https://phab.nylas.com/D2423
Summary:
Originally, this was going to be a totally independent package, but
I wasn't able to isolate the functionality and get it tied in to
the delta-stream consumption. Here's how it currently works:
- The preferences package has a new tab which allows you to edit
mail filters. Filters are saved in a new core store, and a new
stock component (ScenarioEditor) renders the editor. The editor
takes a set of templates that define a value space, and outputs
a valid set of values.
- A new MailFilterProcessor takes messages and creates tasks to
apply the actions from the MailFiltersStore.
- The worker-sync package now uses the MailFilterProcessor to
apply filters /before/ it calls didPassivelyReceiveNewModels,
so filtrs are applied before any notifications are created.
- A new task, ReprocessMailFiltersTask allows you to run filters
on all of your existing mail. It leverages the existing TaskQueue
architecture to: a) resume where it left off if you quit midway,
b) be queryable (for status) from all windows and c) cancelable.
The TaskQueue is a bit strange because it runs performLocal and
performRemote very differently, and I had to use `performRemote`.
(todo refactor soon.)
This diff also changes the EditableList a bit to behave like a
controlled component and render focused / unfocused states.
Test Plan: Run tests, only for actual filter processing atm.
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2379