Commit graph

34 commits

Author SHA1 Message Date
Ben Gotow
8df4f6d744 feat(win32): Allow N1 to become the system-wide mailto: handler
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
2016-10-12 16:05:36 -07:00
Ben Gotow
e533d063d0 fix(specs): Fix tests that were console.logging, bump coffee-react 2016-09-20 15:17:48 -07:00
Juan Tejada
20fa2ec3f5 build(tools): Add eslint_d package for faster linting in text editor 2016-07-26 15:54:23 -07:00
Evan Morikawa
6259332a11 feat(babel6): 1,393 linter errors 2016-05-06 11:55:53 -07:00
Evan Morikawa
ed3f062a6a feat(babel6): 90,798 lint problems
Fix eslint-task. Grunt doesn't recognize es6 files
2016-05-06 11:55:38 -07:00
Evan Morikawa
e2f9104766 feat(babel6): Initial babel conversion 2016-05-06 11:54:38 -07:00
Ben Gotow
9af46bd834 bump(asar): 0.10, use ordering feature we PR'd [TEST CI] 2016-03-08 15:21:28 -08:00
Evan Morikawa
8e78d8ffce fix(updater): update to Squirrel.Windows 1.2.3
grunt-electron-installer 1.2.1 includes a bump to squirrel 1.2.3
2016-02-09 12:03:43 -08:00
Ben Gotow
cbfe310521 fix(eslint): Avoid eslint/eslint/issues/5125 by specifying escope version 2016-02-01 11:08:15 -08:00
mbilker
9458df3a9c bump(grunt-contrib-csslint): update to ~0.5.0 2016-02-01 10:10:12 -05:00
Evan Morikawa
2dea234de0 fix(task): spec task uses Promise 2015-11-26 13:03:44 -08:00
mbilker
dc29b746b2 fix(packages): remove vm-compatibility-layer
vm-compatibility-layer was designed to support obsolete APIs in node
v0.11.x of node v0.10.x. It is only used in the build Gruntfile and
nowhere else in the project.
2015-11-21 00:17:27 -05:00
Ben Gotow
0380704c41 ASAR v0.8, because apparently 0.5 can skip files 2015-11-16 10:02:31 -08:00
Ben Gotow
e64e6e526d fix(babel): Roll back to babel@5, see details
- move babelrc to static so that it can be used during the build process and also whenever the app is transpiling things on the fly.
- move babel back to version 5, which is compatible with `apm install`. (babel 6 seems to require the "dedupe" behavior of NPM3)
- update harmony-collections to use an unpublished commit that fixes the "WeakMap is not generic" issue
2015-11-07 14:27:18 -08:00
Juan Tejada
2e3ab31952 Update grunt tasks to lint and transpile es6 code using babel
Summary: - Linter uses predefined rules for ES6 and React from airbnb

Test Plan: - Manuel

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2242
2015-11-06 17:40:42 -08:00
Ben Gotow
d0ff96c8a3 ⇧(npm): Move to NPM3 to shorten paths on Win32 2015-10-27 16:23:12 -07:00
Evan Morikawa
bd065b7fb4 Upgrade to Electron 0.30.8. Remove unsused packages. Upgrade deps
- Upgrade node-sqlite3 from patched 3.0.2 to mainline 3.1.0

- Upgrade Electron to 0.30.8: NOTE: This is the latest in the 0.30 line.
  The 0.31+ line did a Chrome upgrade that we want to save for a later
  day. We've had a history of serious instabilities with these upgrades
  and are doing them conservatively

- Upgrade coffee-script from 1.9.0 to 1.10.0

- Package updates in /build folder
2015-10-07 16:52:49 -07:00
Matt Bilker
96bc0c9f97 Update build packages to allow building with node v4.1.2
coffee-lint-cjsx added to account for ignored peer dependencies in
npm 3+
2015-10-06 23:36:39 -04:00
Ben Gotow
c3a3886b5b fix(docs): Push examples to the correct /examples URL 2015-10-02 16:09:49 -07:00
Ben Gotow
3ccc5e3d99 rename(Nylas Mail): Replace Nylas Mail > N1 2015-09-29 09:44:30 -07:00
Ben Gotow
c294eb5df4 fix(sqlite): Connect to sqlite directly rather than sending queries over IPC (twice...)
Summary:
- We now build sqlite3 manually from source in script/bootstrap
- We now allow queries to run in parallel outside of transaction blocks

- When signining in and out, the main window creates the database file and then advances the database "phase", which allows all the windows to connect to the initialized database.

This diff also fixes T2411 where popout drafts opened twice, and several issues around Windows icons and install.

Test Plan: Run existing tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T2411

Differential Revision: https://phab.nylas.com/D1815
2015-07-30 18:09:20 -07:00
Evan Morikawa
ffe87e4e9c fix(build): fix tello issue and less linter issue 2015-06-22 17:12:26 -07:00
Ben Gotow
e198c4f6c4 fix(asar): Support ASAR, and running of specs in prod builds
Summary:
fix(task-queue): Repair the findTask function

Add "ship logs" and "open logs" to the developer menu

Patches for Chromium 42

Test Plan: Run tests!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1547
2015-05-21 14:41:30 -07:00
Evan Morikawa
0588b0c7eb refactor(code): replace all instances of atom-shell and AtomShell and atomShell
Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1537
2015-05-20 10:20:10 -07:00
Evan Morikawa
fc4b3b56d7 refactor(utils): switch to regular underscore
Summary:
Fixes: T1334

remove final InboxApp references

move out all underscore-plus methods

Mass find and replace of underscore-plus

sed -i '' -- 's/underscore-plus/underscore/g' **/*.coffee
sed -i '' -- 's/underscore-plus/underscore/g' **/*.cjsx

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1534
2015-05-19 16:06:59 -07:00
Ben Gotow
2464888d28 fix(naming): Mac menus and Info.plist should say Nylas Mail 2015-05-16 11:12:43 -07:00
Ben Gotow
7edafa3819 feat(docs): doc site generation, doc organization into sections, docs for actions and more
Summary: Lots o docs

Test Plan: Run tests, review docs

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1496
2015-05-13 11:44:28 -07:00
Evan Morikawa
e2cd2e41ba fix(setup): update atom shell download task 2015-05-10 23:33:21 -07:00
Ben Gotow
0fdef6a1a6 docs(*): Break markdown docs into separate files, add model/attribute docs 2015-04-27 17:28:51 -07:00
Ben Gotow
0352090007 docs(*): Additional documentation and high level reference guides 2015-04-27 13:29:08 -07:00
Ben Gotow
68343ec472 feat(docs): New docs tasks and React 0.13.2
Summary:
This diff moves us up to React 0.13.2 and transitions some of the core React components to the new
syntax based on plain Javascript objects. `setInitialState` is now just code in the constructor,
`getDOMNode(@)` is now `React.findDOMNode(@)`, and `isMounted` is no longer necessary or available.

This diff also adds `RegisteredComponent` to match `RegisteredRegion`. In another diff,
I think we should change the names of these to be `DynamicComponent` and `DynamicComponentSet`.

This diff also includes preliminary API Reference docs for Menu.cjsx and Popover.cjsx. You can build the docs
using `grunt docs` from the build folder. It produces a simple html format now, but it's easy
to customize.

Also we now ignore "Unnecessary fat arrow"

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1437
2015-04-24 11:33:10 -07:00
Ben Gotow
df38008c56 fix(*): Small fixes from Lake Tahoe. See Summary.
Summary:
This diff includes a few small things:

- Menu: Don't select the first item until the user taps down arrow, and allow the user to use the arrow keys to move up and down through Menu items.

- Menu: Make scroll code from MultiselectList re-usable, use in Menu. Now if you use the keys to move to an item that is offscreen it will follow.

- Popover: Tapping the button that opened popover should close it

- Make sure buttons in toolbars are at least standard height

- Re-enable Markdown processing via `grunt docs`

- A bit of initial inline documentation for crosjdoc. Need to evaluate whether this is worth doing everywhere.

- New `search-playground` package for experimenting with search and search weights.

- Swap itemClassProvider for more generic itemPropProvider

- Add crojsdoc config file

- Export React, because third party packages can't require things from our app

- [FEATURE] Bring back static file support in third party packages via `nylas://translate/IMG_20150417_124142.jpg`

- Fix invariant error with search bar

- [FEATURE] "Show Original" under Message actions

- Fix DatabaseView so that many archives at once don't cause problems

Test Plan: Run specs

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1426
2015-04-22 16:41:29 -07:00
Ben Gotow
ecd6f37ef0 fix(builds): Resolve issues that have been blocking builds
Summary:
Fix bad LESS

Use CJSX glob-to-multiple?

Look for themes in internal_packages

Test Plan: Run build

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1127
2015-02-04 15:30:27 -08:00
Ben Gotow
1e8fd46342 fix(drafts): Various improvements and fixes to drafts, draft state management
Summary:
This diff contains a few major changes:

1. Scribe is no longer used for the text editor. It's just a plain contenteditable region. The toolbar items (bold, italic, underline) still work. Scribe was causing React inconcistency issues in the following scenario:
   - View thread with draft, edit draft
   - Move to another thread
   - Move back to thread with draft
   - Move to another thread. Notice that one or more messages from thread with draft are still there.

There may be a way to fix this, but I tried for hours and there are Github Issues open on it's repository asking for React compatibility, so it may be fixed soon. For now contenteditable is working great.

2. Action.saveDraft() is no longer debounced in the DraftStore. Instead, firing that action causes the save to happen immediately, and the DraftStoreProxy has a new "DraftChangeSet" class which is responsbile for batching saves as the user interacts with the ComposerView. There are a couple big wins here:

   - In the future, we may want to be able to call Action.saveDraft() in other situations and it should behave like a normal action. We may also want to expose the DraftStoreProxy as an easy way of backing interactive draft UI.

   - Previously, when you added a contact to To/CC/BCC, this happened:

     <input> -> Action.saveDraft -> (delay!!) -> Database -> DraftStore -> DraftStoreProxy -> View Updates

Increasing the delay to something reasonable like 200msec meant there was 200msec of lag before you saw the new view state.

To fix this, I created a new class called DraftChangeSet which is responsible for accumulating changes as they're made and firing Action.saveDraft. "Adding" a change to the change set also causes the Draft provided by the DraftStoreProxy to change immediately (the changes are a temporary layer on top of the database object). This means no delay while changes are being applied. There's a better explanation in the source!

This diff includes a few minor fixes as well:

1. Draft.state is gone—use Message.object = draft instead
2. String model attributes should never be null
3. Pre-send checks that can cancel draft send
4. Put the entire curl history and task queue into feedback reports
5. Cache localIds for extra speed
6. Move us up to latest React

Test Plan: No new tests - once we lock down this new design I'll write tests for the DraftChangeSet

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1125
2015-02-03 16:24:31 -08:00