Commit graph

2744 commits

Author SHA1 Message Date
Ben Gotow bdfa426ecf fix(search): Cannot remove items from search (Sentry 30318) 2016-04-13 14:22:43 -07:00
Drew Regitsky cf4cad4cbd fix(api-error): Fix retrieval of error field, used for endpoint updates 2016-04-13 12:29:39 -07:00
Matt Bilker fbc8a66b03 fix(specs): handle Electron 0.37 remote method calls (#1943) 2016-04-13 10:29:13 -07:00
Ben Gotow 217af8d77c bump(electron): 0.36.7 => 0.37.5 2016-04-12 18:42:57 -07:00
Koen Punt edc4f52da8 Open links in background when ⌘ key is pressed (#1637)
When you hold down the meta key (⌘), and click on a link in a message,
the target application will not activate, so N1 will stay in the
foreground.
Electron only supports this for OS X
2016-04-12 18:11:27 -07:00
Matt Bilker 8e5f75d8e0 fix(imports): switch to Electron's require('electron') (#1907)
* 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
2016-04-12 18:09:13 -07:00
Matt Bilker cf3422de8d fix(plugins): expose react-addons-test-utils for spec testing (#1925) 2016-04-12 18:08:00 -07:00
Ben Gotow c460a4f2a4 perf(require): Don't assume require is free, cache deferred imports 2016-04-12 17:30:44 -07:00
Ben Gotow f396d9eddb bump(react) 0.14.7 => 15.0.1 2016-04-12 16:58:45 -07:00
Jackie Luo 4cabab5d2a fix(composer-emoji): Fix calculation for category positioning 2016-04-12 14:51:56 -07:00
Ben Gotow d159e1037d fix(emoji): Improve variable names / diff feedback 2016-04-12 14:46:03 -07:00
Ben Gotow 21a6aff99d changelog: 0.4.25 release notes 2016-04-12 14:43:46 -07:00
Ben Gotow f01cb6365f fix(emoji): Don't allow emoji images to be dragged into attachments 2016-04-12 14:37:14 -07:00
Ben Gotow 8613921a55 fix(emoji): Re-use img tag to avoid running out of file descriptors
Summary:
On my machine the new emoji picker was causing "too many open file descriptor"
errors. I think that this was because it was creating 1300 image tags in 50msec.

I refactored this code so that it uses a single image tag and only loads one image
at a time. This could make it slower on some people's machines, but eliminates the
possibility of it breaking the app!

Test Plan: Run tests

Reviewers: jackie

Differential Revision: https://phab.nylas.com/D2878
2016-04-12 14:29:59 -07:00
Ben Gotow 4656fe21d7 fix(metadata): Add missing joinOnField declaration, assertion 2016-04-12 12:03:41 -07:00
Ben Gotow 8be564cbfb fix(account-store): Allow updateAccount in all windows 2016-04-12 11:48:16 -07:00
Ben Gotow 96ddd17fc4 shrink(emoji): TinyPNG emoji, convert to 32x32 2016-04-12 11:34:45 -07:00
Jackie Luo 3d5fd7510c lint(utils): Fix linter issue 2016-04-12 10:43:13 -07:00
Jackie Luo 1039ad2c34 fix(composer-emoji): Switch to characters to PNGs (#1898)
* Add PNGs and JSON file

* Add Apple and Twitter emoji

* Fix linter issues and tests

* Get correct path from EmojiStore

* Add emoji regex and update extensions

* Remove the scary regex
2016-04-12 10:27:24 -07:00
Ben Gotow f53ba0fbbe bump(version): 0.4.25 2016-04-12 09:50:32 -07:00
Ben Gotow 436107844d perf(db): Use same subselect for "related emails" queries 2016-04-12 09:50:08 -07:00
Evan Morikawa 7b03a80d02 feat(scheduler): add an event preview when sending a meeting request
Summary: add event preview

Test Plan: manual

Reviewers: bengotow, juan

Differential Revision: https://phab.nylas.com/D2874
2016-04-11 22:45:36 -04:00
Ben Gotow f3a872b0c7 rm(log): Fix bad log statement 2016-04-11 18:59:09 -07:00
Ben Gotow c69b192881 fix(scheduler): Don't cast durations to integers, fix 1.5, 2.5 hour blocks 2016-04-11 18:52:49 -07:00
Ben Gotow 5f75cccc0f fix(scheduler): End should work even if the mouse isn't over a time 2016-04-11 18:42:17 -07:00
Ben Gotow 938e9b8093 fix(scheduler): Make popover width even so it's not blurry 2016-04-11 18:33:53 -07:00
Ben Gotow f5e5a7ef4c fix(empty): Add padding to empty message 2016-04-11 18:20:28 -07:00
Ben Gotow ba9d915f00 fix(scheduling): Enable by default in new installations 2016-04-11 18:07:37 -07:00
Ben Gotow 63343adeac fix(sync): Handle "Invalid cursor" scenario by 💣🔥 away the cache 2016-04-11 17:34:52 -07:00
Evan Morikawa 2855c3695f fix(scheduler): minor style tweaks to scheduler popover 2016-04-11 19:33:27 -04:00
Ben Gotow 66e86d8f80 fix(timestamps): Don't crash on null times #1929 2016-04-11 16:17:58 -07:00
Juan Tejada 232f2cbbf5 Revert "fix(build): Actually make verbose"
This reverts commit 0fd5659aad.
2016-04-11 16:12:05 -07:00
Juan Tejada 0ada532336 fix(build): Lock spellchecker to 3.2.3 2016-04-11 15:51:17 -07:00
Juan Tejada 0fd5659aad fix(build): Actually make verbose 2016-04-11 15:40:40 -07:00
Evan Morikawa 3658f0e0da fix(scheduler): fix jumping calendar and add popover
fix(scheduler): fix jumping calendar and add popover

Summary: feat(scheduler): improved calendar picker

Test Plan: manual

Reviewers: bengotow, juan

Differential Revision: https://phab.nylas.com/D2873
2016-04-11 18:23:06 -04:00
Juan Tejada 319667342d update(build): Add verbose flag 2016-04-11 15:20:31 -07:00
Ben Gotow cec811ae36 fix(schedule): Move z-indexes to prevent dropdown layering issue 2016-04-11 14:58:58 -07:00
Ben Gotow 25349295dc fix(schedule): Use draft session to udpate metadata, always save in syncback 2016-04-11 14:32:54 -07:00
Ben Gotow ebc0072bfc fix(db): Don't blow up over table SCANs with covering indexes 2016-04-11 13:51:58 -07:00
Ben Gotow f7bfb2aceb fix(db): Counts no longer require Thread table join 2016-04-11 13:51:31 -07:00
Ben Gotow b75ed6f920 perf(db): Use subselect to improve thread list query perf (53%!)
Summary:
- Use a sub-select query with much better performance to display the thread list
- Perform analyze on tables after launch

The new query is:

```
SELECT `Thread`.`data` FROM `Thread` WHERE `Thread`.`id` IN (SELECT `id` FROM `ThreadCategory` AS `M26` WHERE `M26`.`value` IN ('9m9ks71k06n5rmx82kgues09p','9s9k25q6j1krjgpkovbcjm7d','13b7ufruoymvih07ki0uahlto','dtmhlzz6phr47zp512knhjgf8','16dvjb84bszfh15kgfrjj37i3','aclwmgncdqjfibp51bvgbeik','17qad7jhbp6tozog3klm5zagt','4x4bkbawiq825u4eu3aus8tll','7axr9f5f1lzpwm2rw2ghkirhq','dsnn660af0pmou2gg3nstga8a','361qr5rva1ieby2r0ec3sn0bm','10fyvba7pjyjgeyr5i65i1zri') AND `M26`.`in_all_mail` = 1  ORDER BY `M26`.`last_message_received_timestamp` DESC LIMIT 200 OFFSET 0) ORDER BY `Thread`.`last_message_received_timestamp` DESC;
`
0|0|0|SEARCH TABLE Thread USING INDEX Thread_id (id=?)
0|0|0|EXECUTE LIST SUBQUERY 1
1|0|0|SCAN TABLE Thread-Category AS M26 USING COVERING INDEX ThreadFancyIndex
1|0|0|EXECUTE LIST SUBQUERY 2
0|0|0|USE TEMP B-TREE FOR (only on 200 result items)
```

Which is twice as performant as:
```
SELECT `Thread`.`data` FROM `Thread` INNER JOIN `ThreadCategory` AS `M26` ON `M26`.`id` = `Thread`.`id` WHERE `M26`.`value` IN ('9m9ks71k06n5rmx82kgues09p','9s9k25q6j1krjgpkovbcjm7d','13b7ufruoymvih07ki0uahlto','dtmhlzz6phr47zp512knhjgf8','16dvjb84bszfh15kgfrjj37i3','aclwmgncdqjfibp51bvgbeik','17qad7jhbp6tozog3klm5zagt','4x4bkbawiq825u4eu3aus8tll','7axr9f5f1lzpwm2rw2ghkirhq','361qr5rva1ieby2r0ec3sn0bm','10fyvba7pjyjgeyr5i65i1zri') AND `M26`.`in_all_mail` = 1  ORDER BY `M26`.`last_message_received_timestamp` DESC LIMIT 200 OFFSET 0;

0|0|1|SCAN TABLE Thread-Category AS M26 USING COVERING INDEX ThreadFancyIndex
0|0|0|EXECUTE LIST SUBQUERY 1
0|1|0|SEARCH TABLE Thread USING INDEX Thread_id (id=?)
```

Test Plan: Broken!

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2869
2016-04-11 13:29:05 -07:00
Juan Tejada ded1b657d3 fix(thread-list): Prevent empty state from showing when loading list
- EmptyState should only be displayed when the thread-list is actually
empty, not while it is being loaded
- Update ObservableListDataSource to have a state of loaded only when
the requested range is > 0, i.e. when we are actually requesting threads
2016-04-11 13:15:59 -07:00
Ben Gotow 5e4eea2fa2 bump(version): 0.4.24 2016-04-11 12:01:47 -07:00
Ben Gotow 7183918ab2 fix(auth): Fix missing var. This is why we should go ES6! 2016-04-11 10:48:16 -07:00
Juan Tejada d9517101d5 fix(perspective): Fix specs for FocusedPerspectiveStore 2016-04-11 07:59:40 -07:00
Ben Gotow 92268ad099 fix(initial-sync): Fix sync sidebar showing all the time 2016-04-11 00:43:06 -07:00
Ben Gotow 7a7272eae8 fix(perspective): Just wait for first CategoryStore trigger to load perspective
The FocusedPerspectiveStore wants to restore a saved current perspective from disk. It needs to wait for the categories to be ready, but it doesn't necessarily need to wait for them to be synced, because it's unlikely unsynced categories are in the saved perspective and it just falls back to unified inbox.

I think there was some dead code in `_onCategoryStoreChanged` that initialized the perspective also, so I merged the two
2016-04-11 00:43:02 -07:00
Ben Gotow ca9162a2d5 bump(version): 0.4.23 2016-04-10 17:31:54 -07:00
Juan Tejada e160d05d36 fix(deps): Add moment-round 2016-04-10 16:37:33 -07:00
Juan Tejada aef785eb12 feat(thread-search): Add spinner to indicate search in progress
Summary:
- This diff also restructures the search package in a few ways:
  - Rename package to `thread-search` instead of `search-bar`
  - Move SearchQuerySubscription and SearchMailboxPerspective inside
  package. This allows SearchQuerySubscription to have access to
  SearchActions in a clean way and keeps all of the search related code
  in 1 package
  - Remove SearchMailboxPerspetcive from mailbox-perspective.coffee
- Adds temporary spinner while we get a new design for it

Test Plan: - TODO

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2868
2016-04-10 16:20:26 -07:00