Commit graph

3793 commits

Author SHA1 Message Date
Ben Gotow
2f3bc020a1 fix(empty): Use a much faster query for empty perspective 2016-04-13 14:47:23 -07:00
Ben Gotow
471bbbe1e3 fix(swipe): Cache isEnabled: false, fix scrolling in Trash 2016-04-13 14:22:43 -07:00
Ben Gotow
b64719d09f fix(search): Cannot remove items from search (Sentry 30318) 2016-04-13 14:22:43 -07:00
Drew Regitsky
959ce855ff fix(api-error): Fix retrieval of error field, used for endpoint updates 2016-04-13 12:29:39 -07:00
Matt Bilker
76ccd73153 fix(specs): handle Electron 0.37 remote method calls (#1943) 2016-04-13 10:29:13 -07:00
Ben Gotow
d1211ab7de bump(electron): 0.36.7 => 0.37.5 2016-04-12 18:42:57 -07:00
Koen Punt
08d18765d7 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
5fd8faa82c 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
fad1594c01 fix(plugins): expose react-addons-test-utils for spec testing (#1925) 2016-04-12 18:08:00 -07:00
Ben Gotow
6924965b87 perf(require): Don't assume require is free, cache deferred imports 2016-04-12 17:30:44 -07:00
Ben Gotow
5a9d6c9eba bump(react) 0.14.7 => 15.0.1 2016-04-12 16:58:45 -07:00
Jackie Luo
cf926b0346 fix(composer-emoji): Fix calculation for category positioning 2016-04-12 14:51:56 -07:00
Ben Gotow
d5fb58a029 fix(emoji): Improve variable names / diff feedback 2016-04-12 14:46:03 -07:00
Ben Gotow
0971c8d498 changelog: 0.4.25 release notes 2016-04-12 14:43:46 -07:00
Ben Gotow
fc7ae4b415 fix(emoji): Don't allow emoji images to be dragged into attachments 2016-04-12 14:37:14 -07:00
Ben Gotow
370edc40e9 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
5e49962cfb fix(metadata): Add missing joinOnField declaration, assertion 2016-04-12 12:03:41 -07:00
Ben Gotow
6d01120558 fix(account-store): Allow updateAccount in all windows 2016-04-12 11:48:16 -07:00
Ben Gotow
be3b795811 shrink(emoji): TinyPNG emoji, convert to 32x32 2016-04-12 11:34:45 -07:00
Jackie Luo
90366d38ae lint(utils): Fix linter issue 2016-04-12 10:43:13 -07:00
Jackie Luo
2a431fcec7 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
1e073be8a3 bump(version): 0.4.25 2016-04-12 09:50:32 -07:00
Ben Gotow
9a2af44b5f perf(db): Use same subselect for "related emails" queries 2016-04-12 09:50:08 -07:00
Evan Morikawa
c5f4c7305d 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
f1261cc000 rm(log): Fix bad log statement 2016-04-11 18:59:09 -07:00
Ben Gotow
793b9efae0 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
24d9157ee5 fix(scheduler): End should work even if the mouse isn't over a time 2016-04-11 18:42:17 -07:00
Ben Gotow
c3fad8cca7 fix(scheduler): Make popover width even so it's not blurry 2016-04-11 18:33:53 -07:00
Ben Gotow
7e07c199c4 fix(empty): Add padding to empty message 2016-04-11 18:20:28 -07:00
Ben Gotow
8f86968ddd fix(scheduling): Enable by default in new installations 2016-04-11 18:07:37 -07:00
Ben Gotow
046c8b3122 fix(sync): Handle "Invalid cursor" scenario by 💣🔥 away the cache 2016-04-11 17:34:52 -07:00
Evan Morikawa
d24f653e26 fix(scheduler): minor style tweaks to scheduler popover 2016-04-11 19:33:27 -04:00
Ben Gotow
2eab0e3a75 fix(timestamps): Don't crash on null times #1929 2016-04-11 16:17:58 -07:00
Juan Tejada
9848f8f086 Revert "fix(build): Actually make verbose"
This reverts commit a3156a1799.
2016-04-11 16:12:05 -07:00
Juan Tejada
18231b0496 fix(build): Lock spellchecker to 3.2.3 2016-04-11 15:51:17 -07:00
Juan Tejada
a3156a1799 fix(build): Actually make verbose 2016-04-11 15:40:40 -07:00
Evan Morikawa
ceee33eb10 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
191cc144db update(build): Add verbose flag 2016-04-11 15:20:31 -07:00
Ben Gotow
586d099c23 fix(schedule): Move z-indexes to prevent dropdown layering issue 2016-04-11 14:58:58 -07:00
Ben Gotow
db90db3131 fix(schedule): Use draft session to udpate metadata, always save in syncback 2016-04-11 14:32:54 -07:00
Ben Gotow
f906b0bc12 fix(db): Don't blow up over table SCANs with covering indexes 2016-04-11 13:51:58 -07:00
Ben Gotow
5220b471e3 fix(db): Counts no longer require Thread table join 2016-04-11 13:51:31 -07:00
Ben Gotow
07861f64be 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
a02b2b62fd 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
f46101e633 bump(version): 0.4.24 2016-04-11 12:01:47 -07:00
Ben Gotow
c00190c492 fix(auth): Fix missing var. This is why we should go ES6! 2016-04-11 10:48:16 -07:00
Juan Tejada
7fd18f23c2 fix(perspective): Fix specs for FocusedPerspectiveStore 2016-04-11 07:59:40 -07:00
Ben Gotow
b4b67c65c9 fix(initial-sync): Fix sync sidebar showing all the time 2016-04-11 00:43:06 -07:00
Ben Gotow
99bd3c1e69 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
df44eb493d bump(version): 0.4.23 2016-04-10 17:31:54 -07:00