Commit graph

85 commits

Author SHA1 Message Date
Dakota Nelson
40cb19d122 Disallow Gmail accounts from entering IMAP flow
Summary:
The error message from D2515 is being upgraded to also disable the
continue button so that a user is unable to sync an @gmail.com account
using the IMAP flow.

Test Plan: Tested locally.

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2516
2016-02-04 09:54:01 -08:00
Dakota Nelson
041fc24927 Warn when entering Gmail address in imap settings
Summary:
Users have been configuring their Gmail accounts using the IMAP
authentication method, which causes problems. Attempting to do so will
now create an error message.

Test Plan: Tested locally.

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: mg, emfree

Maniphest Tasks: T6621

Differential Revision: https://phab.nylas.com/D2515
2016-02-03 15:14:02 -08:00
Evan Morikawa
d4db0737cf feat(error): improve error reporting. Now NylasEnv.reportError
Summary:
The goal is to let us see what plugins are throwing errors on Sentry.

We are using a Sentry `tag` to identify and group plugins and their
errors.

Along the way, I cleaned up the error catching and reporting system. There
was a lot of duplicate error logic (that wasn't always right) and some
legacy Atom error handling.

Now, if you catch an error that we should report (like when handling
extensions), call `NylasEnv.reportError`. This used to be called
`emitError` but I changed it to `reportError` to be consistent with the
ErrorReporter and be a bit more indicative of what it does.

In the production version, the `ErrorLogger` will forward the request to
the `nylas-private-error-reporter` which will report to Sentry.

The `reportError` function also now inspects the stack to determine which
plugin(s) it came from. These are passed along to Sentry.

I also cleaned up the `console.log` and `console.error` code. We were
logging errors multiple times making the console confusing to read. Worse
is that we were logging the `error` object, which would print not the
stack of the actual error, but rather the stack of where the console.error
was logged from. Printing `error.stack` instead shows much more accurate
stack traces.

See changes in the Edgehill repo here: 8c4a86eb7e

Test Plan: Manual

Reviewers: juan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2509
2016-02-03 18:06:52 -05:00
Evan Morikawa
55aedef697 feat(startup): new option to launch on system start
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
2016-01-28 12:02:08 -08:00
Ben Gotow
205ec50b98 Fix AccountStore.current() references in private packages 2016-01-25 18:02:56 -08:00
Ben Gotow
e2234bf58e Merge branch 'master' into unified-inbox
# Conflicts:
#	internal_packages/feedback/lib/feedback-button.cjsx
#	internal_packages/thread-list/lib/thread-list.cjsx
#	src/flux/stores/draft-store.coffee
2016-01-25 17:28:29 -08:00
Ben Gotow
8b8a505b20 fix(onboarding): Minor style changes, headers for EAS 2016-01-20 17:09:15 -08:00
Ben Gotow
3c40b3496c fix(auth): Increase timeout to 60s for Exchange auth 2016-01-20 10:49:27 -08:00
Karim Hamidou
da54fa7e29 [N1] Validate input in the signup dialog
Summary:
This diff bundles a number of small usability fixes to the "Create account" window. It notably:
- forces users to enter required fields before moving on to the next step
- validates email addresses and domain names

Test Plan: Tested manually by going through all the possible auth flows.

Reviewers: evan, juan, bengotow

Reviewed By: bengotow

Subscribers: bengotow

Projects: #edgehill

Differential Revision: https://phab.nylas.com/D2377
2016-01-15 11:27:14 -08:00
Juan Tejada
34f68dcc0d refactor(rip-current-account): Rips out AccountStore.current
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
2016-01-08 14:22:13 -08:00
Ben Gotow
3a86c34883 feat(newsletter): Manage subscription directly from N1 2016-01-07 18:44:40 -08:00
Ben Gotow
460a715e4d fix(examples): examples => packages, move away from installing them 2016-01-07 14:56:34 -08:00
Ben Gotow
8ecf3bba3f fix(auth): Log first account creation 2015-12-08 17:05:59 -08:00
Ben Gotow
b52abbe9f6 fix(auth): Track authentication success / failure rates by provider 2015-12-08 16:39:38 -08:00
Ben Gotow
528c8850ce bump(electron): 0.34.3 => 0.35.1
Electron 0.35.1 includes the tray fixes we contributed last week but also includes API restructuring and improvements. Most importantly, modules from electron are now imported via `require('electron')`
2015-11-23 22:09:17 -08:00
Ben Gotow
46a01de651 fix(copy): Call split / list modes "Single Panel / Two Panel"
Fixes T5907
2015-11-23 17:34:56 -08:00
Evan Morikawa
488dff0f90 refactor(env): new NylasEnv global
Converted all references of global atom to NylasEnv

Temporary rename atom.io

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.io/temporaryAtomIoReplacement/g'

atom.config to NylasEnv.config

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.config/NylasEnv.config/g'

atom.packages -> NylasEnv.packages

atom.commands -> NylasEnv.commands atom.getLoadSettings

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.commands/NylasEnv.commands/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getLoadSettings/NylasEnv.getLoadSettings/g'

More common atom methods

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.styles/NylasEnv.styles/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.emitError/NylasEnv.emitError/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.inSpecMode/NylasEnv.inSpecMode/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.inDevMode/NylasEnv.inDevMode/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getWindowType/NylasEnv.getWindowType/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.displayWindow/NylasEnv.displayWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.quit/NylasEnv.quit/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.close/NylasEnv.close/g'

More atom method changes

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.keymaps/NylasEnv.keymaps/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.hide/NylasEnv.hide/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getCurrentWindow/NylasEnv.getCurrentWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.menu/NylasEnv.menu/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getConfigDirPath/NylasEnv.getConfigDirPath/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.isMainWindow/NylasEnv.isMainWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.finishUnload/NylasEnv.finishUnload/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.isWorkWindow/NylasEnv.isWorkWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.showSaveDialog/NylasEnv.showSaveDialog/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.append/NylasEnv.append/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.confirm/NylasEnv.confirm/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.clipboard/NylasEnv.clipboard/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getVersion/NylasEnv.getVersion/g'

More atom renaming

Rename atom methods

More atom methods

Fix grunt config variable

Change atom.cmd to N1.cmd

Rename atom.coffee and atom.js to nylas-env.coffee nylas-env.js

Fix atom global reference in specs manually

Fix atom requires

Change engine from atom to nylas

got rid of global/nylas-env

rename to nylas-win-bootup

Fix onWindowPropsChanged to onWindowPropsReceived

fix nylas-workspace

atom-text-editor to nylas-theme-wrap

atom-text-editor -> nylas-theme-wrap

Replacing atom keyword

AtomWindow -> NylasWindow

Replace Atom -> N1

Rename atom items

nylas.asar -> atom.asar

Remove more atom references

Remove 6to5 references

Remove license exception for atom
2015-11-17 16:41:20 -08:00
Ben Gotow
795c4f7c80 fix(sp): It's => its 2015-10-29 19:35:31 -07:00
Ben Gotow
170c8e4eea fix(onboarding): Check code format before hitting API 2015-10-27 16:43:07 -07:00
Ben Gotow
b4eb8dc60c fix(onboarding): Request /status/ to avoid 302 2015-10-27 10:50:18 -07:00
Evan Morikawa
4390edcc64 fix(windows): fix apm package loading and onboarding styles 2015-10-23 12:18:00 -07:00
Ben Gotow
d4053d00fe fix(onboarding): Replace ❤️ with a heart image for win32 2015-10-23 11:42:55 -07:00
Ben Gotow
f3c4c04d00 fix(onboarding): Correct error where token pane is too small 2015-10-22 10:32:20 -07:00
Ben Gotow
1de7f36361 Merge pull request #109 from NSHenry/master
feat(onboarding): Optional eas_server_host field for Exchange auth
2015-10-21 14:38:17 -07:00
Ben Gotow
fc252673ab fix(toolbars): Cross disolve toolbar items on a one-off basis
Summary:
This diff removes the timeout transition group from the sheet-toolbar, which was causing toolbar items to fade when columns were opened / closed and they were moved from column to column.

Instead, I'm just animating the message toolbar items, which are one of the few sets of toolbar items that really should fade, and do so as an entire set.

I've also renamed the "sheet-toolbar" animation to "opacity-125ms". I think it'd be cool to create a standard set of these animations, but I didn't see any others it would make sense to create generic names for yet. (The others have weird timings or are bound up inside packages).

Resolves Github #90

Test Plan: No new tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2159
2015-10-21 10:34:14 -07:00
Nate Henry
57b608e464 Added eas_server_host field
eas_server_host field added to allow for specifying the Exchange server
if necessary.
2015-10-21 11:33:11 -04:00
Ben Gotow
2cedc4cfea fix(auth): Resize the auth window after an update to the token status 2015-10-06 17:58:07 -07:00
Drew Regitsky
d9ac4e4359 fix(onboarding): fix error handling for invalid account data from server
Summary:
Change `addAccountFromJSON` in `AccountStore` to throw an exception when it encounters
invalid data, instead of calling `atom.emitError()`. Just calling `emitError` doesn't
throw an exception, so the code proceeds as if an account has been added. Instead, call
`emitError` from AccountSettingsPage, and display an error message to the user.

Test Plan: manual

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: evan

Differential Revision: https://phab.nylas.com/D2116
2015-10-05 17:31:29 -07:00
Ben Gotow
f29f0eb839 fix(auth): Rename edgehill.token => invitationCode in config 2015-10-05 03:34:11 -07:00
Ben Gotow
20e1a7de9d fix(auth): Merge but temporarily disable encrpytion during Gmail Oauth 2015-10-05 03:27:28 -07:00
Ben Gotow
0675e75650 fix(onboarding): Packages => plugins, at least in the text 2015-10-05 02:07:10 -07:00
Ben Gotow
e84b993071 disable(events): Turn off the events package until it can be polished 2015-10-04 16:57:43 -07:00
Ben Gotow
4ae5483fb6 fix(lint): Indentation causing linter failures 2015-10-04 16:53:39 -07:00
Ben Gotow
51524ba38c fix(onboarding): Invitation code system, just in case
commit 64938016f6ffbf366a220e7abd9af6f7a4cb478b
Author: Ben Gotow <bengotow@gmail.com>
Date:   Sun Oct 4 16:42:38 2015 -0700

    Don't allow people to double click the token check button, make requests take at least 400msec

commit e548f3ee449c676a813c5630f1624963872ed6e6
Merge: 3350b91 e4b4933
Author: Ben Gotow <bengotow@gmail.com>
Date:   Sun Oct 4 16:39:56 2015 -0700

    Merge branch 'token-auth' of github.com:nylas/N1 into token-auth

    # Conflicts:
    #	internal_packages/onboarding/lib/token-auth-page.cjsx

commit 3350b917449c29299fa078d59a4a5a9339fdf29b
Author: Ben Gotow <bengotow@gmail.com>
Date:   Sun Oct 4 16:38:52 2015 -0700

    Improve a few error states, adding "checking" state when checking token

commit e4b49334cbf59145d9bdd955d35636f16a7c4924
Author: EthanBlackburn <ethan@nylas.com>
Date:   Sun Oct 4 16:21:39 2015 -0700

    Correct retry behavior

commit 11cd9a75b2a1ca0f4347160df93815743909ccea
Author: EthanBlackburn <ethan@nylas.com>
Date:   Sat Oct 3 18:06:55 2015 -0700

    Removed old auth token variable

commit afe451cd70de528def3443d8b373fd24f4aa5cde
Author: EthanBlackburn <ethan@nylas.com>
Date:   Sat Oct 3 16:08:12 2015 -0700

    Added token auth page
2015-10-04 16:49:41 -07:00
Ben Gotow
20fb66cf95 fix(timeouts): Wait 5 mintues before hanging up /send 2015-10-04 00:54:07 -07:00
Ben Gotow
05d68b1a62 fix(install-package): Point to the examples directory by default 2015-10-03 19:31:31 -07:00
Evan Morikawa
4d14146aa7 feat(auth): add disabled state to forms when submitting
Summary: Fixes T3773

Test Plan: manual

Reviewers: drew, bengotow

Reviewed By: bengotow

Maniphest Tasks: T3773

Differential Revision: https://phab.nylas.com/D2105
2015-10-02 17:10:49 -07:00
Drew Regitsky
100eb84c62 fix(onboarding): fix chrome render bug on startup 2015-10-02 16:52:00 -07:00
Drew Regitsky
ae52b89beb feat(onboarding): add hotmail as a provider
Summary:
Adds a button for hotmail/outlook as a provider. Username field is not
shown is set to the email address for submitting to Nylas.

Test Plan: manual

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: evan

Differential Revision: https://phab.nylas.com/D2095
2015-10-02 16:12:08 -07:00
Drew Regitsky
36711a4e67 fix(welcome): small ui tweaks in welcome/onboarding
Summary: Change the white logo to have an inner shadow, and set to PreserveContent. Fix typo in welcome page. Tweak some text opacity for readability.

Test Plan: manual

Reviewers: evan, bengotow

Reviewed By: bengotow

Subscribers: bengotow

Differential Revision: https://phab.nylas.com/D2090
2015-10-02 15:34:56 -07:00
Drew Regitsky
59042fdfab fix(onboarding): fix IMAP port fields, enter key behavior
Summary:
Fix issue where ports were being stored as strings - add a format field for
account settings that turns on casting to int when set to `integer`.

Change behavior of pressing enter - rather than always submitting, have it
move to the next page on multi-page account settings.

Test Plan: manual

Reviewers: evan, bengotow

Reviewed By: bengotow

Subscribers: bengotow

Differential Revision: https://phab.nylas.com/D2094
2015-10-02 15:32:59 -07:00
Ben Gotow
7ae4c8209d switch(env): Move N1 to Nylas production API 2015-10-02 15:01:31 -07:00
Ben Gotow
da6234dd4e fix(auth): Allow enter/return to submit account settings form, animate button 2015-09-30 11:58:40 -07:00
Ben Gotow
64060db791 fix(initial-packages): Pull from examples directory, include in ci builds 2015-09-30 11:43:06 -07:00
Evan Morikawa
22b13b897b feat(sync): request a smaller page size initially
Summary:
Check out:
https://docs.google.com/a/nylas.com/spreadsheets/d/1XdhBYi83cyRSLM1GYwPFp0neOl4jN_5BmDm5lWH77q0/edit?usp=sharing

Also work window loads immediately after we have account credentials

Test Plan: new tests

Reviewers: dillon, bengotow

Reviewed By: dillon, bengotow

Differential Revision: https://phab.nylas.com/D2083
2015-09-30 10:47:33 -07:00
Ben Gotow
a25ec2551f feat(post-auth): Initial prefs + packages screens, welcome copy changes
Summary:
Package names must match directory names

Not going to use new Swithc component, but might as well be part of component kit

Move APMWrapper into core so it can be used from anywhere

Move manual package install coe to package-manager

Gray out window titles when in the background

Do not allow multiple onboarding windows at the same time

Finalize styling f initial-prefs and initial-packages, make it work (only github package atm)

Other nits

Change the welcome copy:

- Call it easy to extend vs easy to use
- Remove the subtitle from the first screen which doesn't really fit
- Make the second page emphasize that its created /for/ developers and easy to extend with Javascript.
- Explain what the sync engine is rather than saying it's "faster and more extensible" (??)

Test Plan: Run tests

Reviewers: evan, dillon

Reviewed By: evan

Maniphest Tasks: T3346

Differential Revision: https://phab.nylas.com/D2079
2015-09-29 23:58:30 -07:00
Ben Gotow
9a3356c5e9 fix(docs): Replace docs references to Edgehill with N1 2015-09-29 09:45:02 -07:00
Ben Gotow
f2418be462 fix(onboarding): Cleanup for recent commits to onboarding workflow. See description
- rm dead addAccount code that came back in a merge

- use command everywhere to open onboarding

- centralize close vs. quit logic in an OnboardingAction

- fix issue where the window size is calculated improperly because we have a padding value which is a fraction of height. In fact, remove no-top / padding-top 10% for good.
2015-09-28 02:12:35 -07:00
Eben Freeman
863a1313a3 (fix)onboarding: Must pass approval_prompt=force for Google OAuth
Otherwise, if you've ever previously authorized your account against Edgehill's
Google client ID but need to reconnect it, the consent page is bypassed and no
refresh token is returned to the callback URL, breaking the rest of the flow.
2015-09-26 19:56:10 -07:00
Evan Morikawa
e74981502e feat(onboarding): improve onboarding flow
Summary:
Now with more CSS

Also fixed flow for when you're just adding an account

Fixes T3805

Test Plan: manual :(

Reviewers: drew, bengotow

Reviewed By: bengotow

Maniphest Tasks: T3805

Differential Revision: https://phab.nylas.com/D2071
2015-09-25 20:43:36 -04:00