Commit graph

1309 commits

Author SHA1 Message Date
Ben Gotow f152cca4d6 feat(reading): Disable autoloading of images, opt-in one by one
Summary: This diff implements Gmails "load images, always load images from bengotow@gmail.com" option. Someone asked for it late last night and I figured it'd be fun to add. We also needed to refactor the MessageItem to allow for a GPG plugin - MessageItems now subscribe to the body of the message from the messageBodyProcessor, so in the event that processing rules change, someone can invalidate the processor cache by calling `resetCache()`, and then it recomputes bodies and triggers a refresh of each message body.

Test Plan: Updated existing tests, no new tests for this plugin just yet.

Reviewers: evan, juan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2235
2015-11-06 15:53:21 -08:00
Ben Gotow 1eee97f5d0 fix(win32): Allow npm dedupe to error, succeeds anyway 2015-11-06 15:47:28 -08:00
Evan Morikawa 9ca4e42b68 fix(keymap): use atom-keymap 5.1.11 2015-11-06 15:16:57 -08:00
Evan Morikawa 512c645123 fix(account): fix initial token loading in account store 2015-11-06 14:45:00 -08:00
Evan Morikawa 55d3e92f50 feat(keymap): add cmd+1, cmd+2, etc to quick-select accounts
Fix "unique key" for react props

Fix composer styling bug in popout composer
2015-11-06 14:38:50 -08:00
Ben Gotow 0ec4ea6fa8 fix(win10): Ignore stdout from apmDedupe 2015-11-06 14:35:30 -08:00
Juan Tejada 66252fc7bc fix(system-tray): properly deactivates package 2015-11-06 13:52:08 -08:00
Evan Morikawa 6588da7f33 fix(signatures): temporarily disable signatures in preferences 2015-11-06 12:40:34 -08:00
Ben Gotow ec61918634 fix(win10): Add more resolutions to the windows .ico
Fixes #351
2015-11-06 12:24:24 -08:00
Evan Morikawa 455b4563a9 feat(log): extract reporting and log API failures
Summary: We now log API failures

Test Plan: manual

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2216
2015-11-06 12:20:01 -08:00
Ben Gotow bfb16bbe1a fix(win10): Prevent duplicate taskbar items
Fixes #368, #184

Related to #351
2015-11-06 12:11:51 -08:00
Evan Morikawa 0fae7ce13c fix(specs): fix specs 2015-11-06 12:08:32 -08:00
Evan Morikawa 37e3fe0f45 feat(keymap): add new <KeymapHandlers />
Summary:
Refactor keymaps to wrap components with a <KeymapHandlers /> component.
This more Reactful way of declaring keyback handlers prevents us from
needing to subscribe to `atom.commands`

Test Plan: new tests

Reviewers: bengotow, juan

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2226
2015-11-06 11:47:06 -08:00
Ben Gotow 0b84942051 perf(db): Lazily deserialize models on the other side of the action bridge
Summary:
We send database `trigger()` events through the ActionBrige to all windows of the app. This means that during initial sync, we're serializing, IPCing and unserializing thousands of models a minute x "N" windows.

This diff converts the payload of the trigger method into an actual class that implements a custom toJSON. It converts the impacted `objects` into a string, and doesn't deserialize them until it's asked.

Bottom line: this means that in many scenarios, we can avoid creating Contact models, etc. in composer windows only to broadcast them and then gc them.

Test Plan: No new tests yet, but this should definitel be tested. #willfix.

Reviewers: juan, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2236
2015-11-06 11:15:20 -08:00
Juan Tejada a6c44b8529 feat(system-tray): add system-tray package
Summary:
- Updates support for ES6 code inside packages
- Displays system tray icon with unread count on darwin, or with bubble on other platforms
- Uses canvas api to dynamically generate icon image given unread count:
  - Adds CavasUtils.canvasFromImgAndText to do this
- Adds config option to display system tray icon on darwin

Test Plan: Need to write the tests for this.

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2231
2015-11-06 11:12:38 -08:00
Ben Gotow 3053fc817e fix(model): Optimization incompatible with specs, todo 2015-11-05 21:02:13 -08:00
Ben Gotow 496ec58e99 perf(fromJSON): 40% perf increase by fixing "forin not optimized case"
https://github.com/petkaantonov/bluebird/wiki/Optimization-killers
2015-11-05 20:16:06 -08:00
Evan Morikawa 0f9b8159bf fix(composer): double-composition events supported 2015-11-05 17:52:21 -08:00
Ben Gotow fefec6404a disable(notifs): Native notifs causing EXC_BAD_ACCESS in beta 2015-11-05 17:20:13 -08:00
Ben Gotow dc538930a7 fix(search): Allow typing in the middle of the search text 2015-11-04 17:11:40 -08:00
Ben Gotow f59de7262d fix(ship-logs): Do not propogate fs errors (Sentry 6144) 2015-11-04 16:07:15 -08:00
Ben Gotow 86fc3a4c2b fix(sheet-toolbar): Make robust against mail view null names (Sentry 3861) 2015-11-04 16:04:28 -08:00
Ben Gotow 408e96945c fix(notifs): Hopefully prevent gc of NodeObjC objects 2015-11-04 15:53:50 -08:00
Ben Gotow e313521197 fix(paths): Flatten npm inside of apm to cut 20 chars from max path length 2015-11-03 12:00:43 -08:00
Ben Gotow b9704c011c bump(version): 0.3.21 2015-11-02 16:40:25 -08:00
Ben Gotow 9a41f04615 fix(specs): Don't check for updates during spec runs 2015-11-02 11:56:11 -08:00
Ben Gotow c1bf8ae026 fix(deltas): Use the official API to create cursors 2015-10-30 22:20:41 -07:00
Evan Morikawa eea25a307d fix(composer): support Chinese & others - handle composition events
Summary:
ignores composition event commands until they're done. We then simply
update the new state after that happens.

Some additional refactoring:

- The <Contenteditable /> prop is 'value' instead of 'html' to make it
  look more like a standard React controlled input
- Removed `filters` prop and `footerElements` prop from Contenteditable.
  These could easily be moved into the composer (where they belong).
- Moved contenteditable and a few of its helper classes into their own
  folder.
- Moved `UndoManager` up out of the `flux` folder into `src`. Currently
  undo/redo is only in the composer when all contenteditables should have
  the basic funcionality. Will refactor this later.
- Fix tests

Test Plan: manual

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2211
2015-10-30 20:03:33 -04:00
Ben Gotow 595f80f75f fix(packaging): Resolve codesign issue on 10.11 due to bad symlink 2015-10-30 15:27:39 -07:00
Ben Gotow 50576e59e3 feat(contextual-menus): Basic cut/copy/paste for all inputs—#161 2015-10-29 21:24:51 -07:00
Ben Gotow 6bee127134 feat(shortcuts): Pageup/dn in message list, shift+pageup/dn in thread list 2015-10-29 20:34:43 -07:00
Ben Gotow 6170b34533 perf(message-store): Debounce reload of the message column—#249 2015-10-29 20:20:49 -07:00
Ben Gotow 538af665cf fix(sp): It's => its 2015-10-29 19:35:31 -07:00
Nicholas Capo 01f128441a Update debian package libgcrypt dependency
* Package libgcrypt11 is no longer available in Debian or Ubuntu
* Allow installing the package with libgcrypt20 instead
2015-10-29 21:00:49 -05:00
Ben Gotow 13a92a19b7 Update CONTRIBUTING.md 2015-10-29 16:58:46 -07:00
Ben Gotow b50dd3e2e4 Update CONTRIBUTING.md 2015-10-29 16:56:16 -07:00
Evan Morikawa cc61aa7811 feat(signatures): add signature support in preferences
Summary:
Adding signature support in preferences

Extracting out DraftStore extensions from the Contenteditable component

Moved Contenteditable to the nylas component kit

Build react remote window selection synchronization.

Test Plan: todo

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2204
2015-10-29 17:20:41 -04:00
Asher Wood 8cbcace3ef Merge pull request #240 from Zeklandia/master
commit fc34b1fcb08a6f4a84e20c42eb2c6fd0952cf73a
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu Oct 29 13:37:59 2015 -0700

    Revert one small capitalization change on Windows

commit c4b30c9b84166bd8847c83b748da316f8861650e
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu Oct 29 12:56:32 2015 -0700

    Fix one remaining uppercase Nylas, remove unneeded build task

commit 1767341a36bd20990f884c636da236454fbf3761
Author: Asher Wood <awood5659@gmail.com>
Date:   Thu Oct 29 10:34:47 2015 -0700

    Update list of supported OSes

commit 2bac5a7e1c30ca63ae7be0d679b2a61a032449f9
Author: Asher Wood <awood5659@gmail.com>
Date:   Thu Oct 29 10:30:53 2015 -0700

    Nylas --> nylas

commit 19eed9bf096819df3588d82a4307770c1069c366
Author: Asher Wood <awood5659@gmail.com>
Date:   Thu Oct 29 10:17:55 2015 -0700

    Change '../Nylas' to `../nylas`

commit 9c7cba6ea29652d0d1544d51c387861984bc511a
Author: Asher Wood <awood5659@gmail.com>
Date:   Tue Oct 27 21:33:29 2015 -0700

    More uppercase/lowercase confusion. The icon is still not in the right place after install, but at least Nylas will open.

commit 30510f6978364398b7917917369b3f011b533606
Author: Asher Wood <awood5659@gmail.com>
Date:   Tue Oct 27 21:06:33 2015 -0700

    Fixed building rpms
    Many file paths had had `/usr/local/share/nylas` instead of `/usr/local/share/Nylas`
2015-10-29 13:46:47 -07:00
Evan Morikawa 78f6829c1b doc(task): make methods public and add documentation 2015-10-29 15:11:01 -04:00
Ben Gotow 62d45698d1 fix(thread-list): Line up sender, subject and snippet
Fixes GitHub issue #278
2015-10-29 11:30:06 -07:00
Ben Gotow 29cc5853b3 feat(notifs): Native notifications for Mac OS X, Win coming
Summary: Replaces `new Notification`-based HTML5 notifications with system native notifications on Mac OS X. This allows us to implement the "Reply" button in the notifications. This will also serve as the hook for native Windows notifications, which are unsupported in Chromium.

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2199
2015-10-29 11:23:51 -07:00
Evan Morikawa 8611b40d7a fix(analytics): remove analytics 2015-10-28 20:06:01 -04:00
Ben Gotow 8f13b71403 fix(notifs): Make sure notifs always have thread references
Summary:
This started as a fix to https://sentry.nylas.com/sentry/edgehill/group/2970/, which was caused by `threads[msg.threadId]?.categoryNamed('inbox') isnt null`, because `undefined isnt null`.

Then I realized that we batch "incoming" messages and threads arbitrarily, and the reason this happened is because the thread and message were split into different delta updates. Previously, notifications would just have been skipped.

Now we call `_onNewMessagesMissingThreads` when threads cannot be found for new messages, and then try to find the threads again in 10 seconds. If we can find them, we simulate a delta call and run them back through the processor. It would have been simpler to call `_onNewMailReceived` again directly, but I want to be 100% sure we never create infinite loops.

Test Plan: Run new tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2188
2015-10-28 16:55:35 -07:00
Evan Morikawa d0212c3dd9 fix(drafts): only syncback every 30 seconds instead of 5 seconds
This will help prevent API errors from causing multiple drafts to appear
2015-10-28 19:51:46 -04:00
Evan Morikawa 985a8b55fe fix(ui): better unread count box
Smaller box that sits next to item.
Drafts is now no longer a strong color
Fixes T3535
2015-10-28 18:50:04 -04:00
Evan Morikawa ede7eda3c4 fix(unread): can mark message as unread in split mode
Summary: Fixes T4835

Test Plan: new tests

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T4835

Differential Revision: https://phab.nylas.com/D2205
2015-10-28 17:50:07 -04:00
Ben Gotow f7e646714f changelog: 0.3.20 release notes 2015-10-28 14:38:48 -07:00
Ben Gotow 6bbe9308cf fix(notifications): Buttons always triggered default action 2015-10-28 10:47:44 -07:00
Ben Gotow 339da554b0 fix(cibuild): unlinkSync => rmdirSync 2015-10-27 18:45:59 -07:00
Ben Gotow a9bf2a39fe fix(cibuild): apm needs dependencies, fix for npm3 2015-10-27 18:29:14 -07:00