Commit graph

2519 commits

Author SHA1 Message Date
Jackie Luo 688582bf57 🎨(theme-picker): Adjust styles 2016-03-10 15:18:57 -08:00
Evan Morikawa 5dbef230a3 fix(sidebar): explicitly detect 202 and cache null people 2016-03-10 18:16:32 -05:00
Ben Gotow e8e4761e45 fix(github): Correct minor issue during ES6 conversion 2016-03-10 14:31:50 -08:00
Ben Gotow 0fb6d4c401 fix(remove-from-view): Missing invocation for non-Gmail 2016-03-10 14:25:28 -08:00
Jackie Luo 4d7f515090 feat(plugins): Move uninstall from theme picker to plugins tab
Summary: Move uninstall functionality to the plugins tab in preferences.

Test Plan: Tested locally.

Reviewers: bengotow, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2716
2016-03-10 14:16:07 -08:00
Juan Tejada f12896d54f fix(gmail-labels): Constraint so threads always belong to all,spam or trash
Summary:
- In Gmail all threads /must/ belong to either All Mail, Trash and Spam, and
  they are mutually exclusive, so we need to make sure that any add/remove
  label operation still guarantees that constraint
- Update ChangeLabelsTask to modify the set of labels to add and remove
  based on this rule
- Update tasksFor archiving, moving to trash and moving to spam so they
  don't affect any other labels in the thread, as gmail does.
- Removing from view /will/ remove any current labels, but will also
  move between all mail and trash as needed
- Remove Inbox, Trash and Spam from the CategoryPicker, as Gmail does

Test Plan: - Unit tests

Reviewers: drew, evan, bengotow

Reviewed By: drew, evan, bengotow

Differential Revision: https://phab.nylas.com/D2715
2016-03-10 14:13:31 -08:00
Ben Gotow af9a858ba7 fix(trash/spam): Typo sent => spam 2016-03-10 13:27:11 -08:00
Ben Gotow 3076acd7af fix(trash/spam): New inAllMail filter applied to all mailbox views except trash and spam 2016-03-10 12:41:32 -08:00
Jackie Luo ff49178f28 Revert "🎨(plugins): Change menus to consolidate plugin installation" 2016-03-10 12:26:57 -08:00
Ben Gotow 915afa8ba6 bump(version): 0.4.13 beta 2016-03-10 12:08:05 -08:00
Ben Gotow b8485eaee5 fix(onboarding): We should accept IPs for servers during auth 2016-03-10 12:08:05 -08:00
Ben Gotow 1816d3bd73 fix(api): Don't display auth failure bar for req with no auth (onboarding) 2016-03-10 12:08:05 -08:00
Ben Gotow a1a5aaddbb fix(onboarding): Make links in error messages clickable 2016-03-10 12:08:05 -08:00
Evan Morikawa d9d9d1a474 fix(sidebar): design tweaks to sidebar 2016-03-10 15:06:59 -05:00
Evan Morikawa dade20a148 fix(sidebar): minor sidebar style and padding tweaks 2016-03-10 15:06:59 -05:00
Jackie Luo 73e01dabb4 fix(themes): Fix linter issues and relink images 2016-03-10 11:54:05 -08:00
Ben Gotow 263c3a152e 💄(sidebar): Replace icon with person 2016-03-10 11:15:52 -08:00
Jackie Luo 7e7835095d 🎨(themes): Move notification heading below toolbar 2016-03-10 11:14:02 -08:00
Jackie Luo 07d0655c55 Merge pull request #1621 from jamiewilson/master
Adding ui-darkside to internal packages
2016-03-10 11:11:15 -08:00
Evan Morikawa fe5b9c3258 fix(sidebar): use http basic auth to pass token 2016-03-10 14:06:48 -05:00
Ben Gotow 2bd03dc44f fix(sync): Pull down and associate metadata during initial sync
Summary:
Snooze should wait for categories on all accounts

Fix authPlugin to rembmer `plugin+accountId`, not pluginId, add specs

categories() returned [], categories(acctId) returned {}

dry up sync worker, fetch metadata before anything else

Test Plan: Run tests

Reviewers: drew, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2693
2016-03-10 11:06:06 -08:00
Ben Gotow 4fefec0b52 patch(save): Only save drafts when necessary, avoid sync-engine issues
Summary:
Previously, we have saved drafts back to the user's provider through the sync engine. There are a handful of very serious edge case issues we're working to solve that are creating a bad user experience. (#933, #1175, #1504, #1237)

For now, we're going to change the behavior of N1 to mitagate these issues.

- If you create a draft in N1, we will not sync it to other mail clients while you're working on it.
- If you enable send later, we'll start syncing the draft to the server as before.
- If you created the draft in another client, we'll sync the draft to the server as before.

Fix specs

Test Plan: Run specs

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2706
2016-03-10 11:03:38 -08:00
Jamie Wilson cf6fa6d93f adding ui-darkside to internal packages 2016-03-10 12:18:32 -06:00
Ben Gotow 6d7cfa50f2 fix(bodies): MBP should cache "" so that it updates when new body arrives 2016-03-09 19:14:54 -08:00
Ben Gotow 7a31da9fc9 fix(bodies): Move loading into component, add retry, loading spinner 2016-03-09 19:14:54 -08:00
Evan Morikawa a53f2ade75 Revert "fix(sidebar): use n1_id to verify edgehill server"
This reverts commit 2e1bf03700.
2016-03-09 21:11:53 -05:00
Evan Morikawa 614865c439 fix(sidebar): fix ordering and add hover state 2016-03-09 20:57:13 -05:00
Evan Morikawa 2e1bf03700 fix(sidebar): use n1_id to verify edgehill server 2016-03-09 20:27:31 -05:00
Jackie Luo 6823b31e21 🎨(plugins): Add install button in preferences 2016-03-09 16:54:29 -08:00
Jackie Luo 94580240ba 🎨(plugins): Switch to switches 2016-03-09 16:54:09 -08:00
Jackie Luo a93e0db5a4 🎨(plugins): Change menus to consolidate plugin installation 2016-03-09 16:53:49 -08:00
Jackie Luo 4792193bd4 🎨(themes): Tweak UI for consistency 2016-03-09 16:20:33 -08:00
Juan Tejada ee95640f2e fix(snooze-button): Change div to button 2016-03-09 16:10:15 -08:00
Jackie Luo 997e1bb5ad fix(themes): Move Taiga into directory 2016-03-09 15:52:22 -08:00
Jackie Luo ad77735db0 Merge pull request #1618 from noahbuscher/master
Added Taiga!
2016-03-09 15:50:07 -08:00
Noah Buscher 82e7e153b7 Added Taiga! 2016-03-09 17:44:01 -06:00
Evan Morikawa 339091b346 fix(search): reset on thread change 2016-03-09 18:32:15 -05:00
Ben Gotow 26888f9287 Revert "fix(autolinker): PR accepted into 0.24.1, fixes #839"
This reverts commit fb4fe3fd5f.
2016-03-09 15:21:27 -08:00
Ben Gotow 5e360b41cd fix(sync): Paginate /threads, etc. slightly slower to aleviate backend load 2016-03-09 15:21:27 -08:00
Evan Morikawa 19682d8095 fix(search): search perf and fix css issues 2016-03-09 18:12:06 -05:00
Ben Gotow 1cb8108c31 💄(workspace): Fix #1482 2016-03-09 14:09:35 -08:00
Juan Tejada 1202facb1a fix(warning): Check if DateInput has unmounted when clearing state 2016-03-09 13:56:46 -08:00
Evan Morikawa 51906bd085 fix(spec): fix message timestamp spec 2016-03-09 16:44:44 -05:00
Evan Morikawa 89323b05db feat(sidebar): add timestamps to related messages 2016-03-09 16:17:20 -05:00
Evan Morikawa 8475afbbfb fix(sidebar): ui tweaks to narrow sidebar 2016-03-09 15:46:10 -05:00
Juan Tejada a0a3247815 fix(warning): Remove unused Popover require 2016-03-09 12:11:16 -08:00
Juan Tejada 69a99c914d fix(signatures): Correct regex to properly replace existing signature
- Fixes #1561
- Add more specs
2016-03-09 12:06:27 -08:00
Ben Gotow 9c07a1a15e 💄(onboarding): Minor style changes to account choose page 2016-03-09 11:40:56 -08:00
Ben Gotow aac3198971 fix(sent): Sort sent view by most recent sent message, not received 2016-03-09 11:40:56 -08:00
Evan Morikawa d4ef6a20e5 feat(sidebar): Add thread list of currently selected participants
Summary:
WIP. I added a collection index to make displaying the threads of a
currently selected participant on the sidebar easy and fast.

The problem is that the `participants` of a thread, while a collection of
`Contact` objects, have no "ids" for those contact objects.

One idea was to create the join table but access contacts by email instead
of id. This required a minor change to the way the data is entered in the
join table.

This means the sidebar can now simply do:

`DatabaseStore.findAll(Thread).where(Thread.attributes.participants.contains('foo@bar.com'))`

While I didn't for this initial test, we could also/instead create the
`Message-Contact` join table. The trick about a Message-Contact table is
that I believe we'd have to create additional columns further specifying
which field we're interested in.

The following two queries:

`DatabaseStore.findAll(Message).where(Message.attributes.to.contains('foo@bar.com'))`

`DatabaseStore.findAll(Message).where(Message.attributes.from.contains('foo@bar.com'))`

would require additional columns in the `Message-Contact` join table
because currently the only columns are `id` and `value`.

In the case of the sidebar use case, I think the Thread participants is
what you want to see anyway.

Unfortunately an email-centric scheme can't distinguish between
`noreply@phab.com <Evan>` and `noreply@phab.com <Juan>`. I actually think
this may be a good thing since I think most people think in terms of email
address as the unique key anyway and for the use case of showing related
emails in the sidebar I'd rather overshow than undershow.

This solution seems to be working pretty well in initial testing, but I
want to see if you guys can think of anything this may subtly screw up
down the line, or if you can think of a simpler way to do this.

Test Plan: todo

Reviewers: juan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2687
2016-03-09 14:33:31 -05:00