Commit graph

428 commits

Author SHA1 Message Date
Juan Tejada 20b6a6e070 feat(attachments): Add ability to preview with quicklook (mac only)
On mac, you can now preview an attachment by clicking on the new preview
icon, or by pressing space bar when an attachment is focused.

This commit also updates the styling for attachment items and adds the
ability to focus attachment items. We don't keep any focused state, just
the browser's, which means you can focus attachments by clicking, or
tabbing/shift-tabbing
2016-11-01 16:13:42 -07:00
Juan Tejada b8ed562d19 🎨(attachments): DRY and cleanup attachment components code
Summary:
The attachment components were the only React Components which used
inheritance between components, which is an anti-pattern in react. I
deleted these components in favor of new purely functional/dumb
components exposed via the component-kit: Attachment Item and
ImageAttachmentItem. These are defined in the same file to reuse some
smaller components between them, like the progress-bar, etc.

The attachments pacakage still remains, and only registers a single component to
a new are called MessageAttachments. This InjectedComponent role is
shared by the Composer and MessageItem, and is the only reason this
exists as an injected component in a separate package.
MessageAttachments renders all image and non image attachments for a
message or draft, and binds the appropriate actions for removal, downloading, etc.

The composer still used FileUpload and ImageUpload components for rendering
uploads in the Composer (i.e. when you add an attachment (these are
different from files because they aren't saved until the draft is
sent)). These 2 components were pretty much copied and pasted from the
ones in the attachments package, with subtle differences-- I got rid of
these as well in favor of the new AttachmentItem and ImageAttachmentItem

Also convert more coffee to ES6!

Test Plan: Unit tests

Reviewers: bengotow, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3381
2016-10-31 17:26:20 -07:00
Evan Morikawa 877a09eda9 fix(token): Fix placeholder & style issues in tokenizing text field 2016-10-27 12:02:45 -04:00
Juan Tejada f2e7ea4c4c feat(reminders): Add send reminders functionality
Summary: Add reminders plugin which lets you set reminder if you don't get a reply for a message within a specified time in the future

Test Plan: TODO

Reviewers: halla, bengotow, evan

Reviewed By: halla, bengotow, evan

Differential Revision: https://phab.nylas.com/D3356
2016-10-27 08:49:29 -07:00
Juan Tejada 5d837ffd02 feat(undo-send): Add undo send
Summary:
Add ability to undo send. We decided to make undo send completely client side for a couple of reasons. If we rely on send-later for undo-send, we would be giving /all/ send load to our send-later backend. If this increases the send-later load too much, it might cause delays in the regular send-later functionality and potentially other plugins like snooze that run under the same service. We would also need to rely on the network to be able to cancel a send, which would make it unusable offline or hard to debug if that specific request fails for any given reason.

This commit also refactors the way `ComposerExtension.sendActionConfig` works. The method has been renamed and now must return an array of send actions. Also, all of the business logic to handle different send actions registered by extensions has been pieced apart from the SendActionButton and into a new SendActionStore. This also enables undo send to undo custom send actions registered by extensions.
Along the way, this also fixes a pending TODO to show all registered custom send actions in the preferences for choosing the preferred send action for sending.

Undo send works via a task, so in case N1 closes before send goes through, it will still be persisted to the task queue and restored when opened again. Undoing a send means dequeuing this task.

Test Plan: Manual

Reviewers: jackie, bengotow, halla, evan

Reviewed By: bengotow, halla, evan

Differential Revision: https://phab.nylas.com/D3361
2016-10-26 20:40:10 -07:00
Evan Morikawa d4dec88148 feat(SFDC): Initial SFDC commit
Fixes to generated form error handling

Remove console fix css

Styles with tokenizing field and generated form

Gen form fixes for required

Gen form styles

Fix datepicker in generated form

Can compute plain text for messages

Add resolvePath. Fix bug in sidebar scoring

Plaintext fixes

Use new syntax for global plugin actions

fix(styles): fix input[type='url'] syntax error in inputs.less

Remove sendToAllWindows action

Style fix to generated form

bump(SFDC): 0.4.100

Trigger AppVeyor

Trigger AppVeyor

Add ci-build to appveyor yml

Only build mac

Publish all builds that make it to AppVeyor or Travis

Bump submodule

Update submodule to init recursively for appveyor

feat(win): add getAllWindowDimensions

bump(SFDC): 0.4.101

fix(form): generated form handles disabled inputs

Make tokeizing field editable

bump(SFDC): 0.4.102

bump(SFDC): 0.4.103

bump(SFDC): 0.4.104

bump(SFDC): 0.4.105

🎨(salesforce): Highlight prefilled fields

Form fixes

Fix prefill class

Fix z-index of fieldsets

Refactor our BoldedSearchResult component

Move and split sidebar section into thread list and toolbar

Fixing referenceTo

bump(SFDC): 0.4.106

bump(SFDC): 0.4.107

bump(SFDC): 0.4.108

Fix delete object from form

Don't show tokenizing input field borders on window

Close popover after adding existing opportunity

Fix required fields

bump(SFDC): 0.4.109

Merge submodule with master

Only store raw data for full object fetches

Use Salesforce error reporter

Refactor form and smart fields

Fix form validation

Remove DOM form validation

bump(SFDC): 0.4.110

Fix mini month view

bump(SFDC): 0.4.111

Fix Record Type layouts

bump(SFDC): 0.4.113

Fix click target

bump(version): 0.4.53 and update Changelog

fix(changelog): Update changelog to reflect latest puublished release

fix(thread-sharing): Update popover style

bump(build)

fix(thread-sharing): Find-thread, incr timestamp delta to 1min in ms

🎨(thread-sharing): Prefer url and querystring modules to parse url

fix(mail-merge): Correctly handle empty column names

fix(thread-sharing): Throw error when thread is /not/ found

fix(thread-sharing): Timestamp range in seconds

fix(N1.sh): Allow path to working copy to have spaces

bump(electron): Electron 1.4, node-sqlite 3.1.4+fts

fix(keymaps): Correctly map mod+z to undo, instead of just z (#2663)

fix(tutorial): Minor tweaks, finalized styling

Add link for Darkish theme (#2854)

Fix typo: dependencesi > dependencies (#2838)

feat(channels): Choose an update channel! Limited time only!

Summary: Just a small select input.

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3282

fix(logging): Fix query logging: escape '%' properly

fix(trial): Compute “days remaining” in timezone-aware way

fix(util): Utils.deepClone properly clones dates

Merge submodule with master

bump(SFDC): 0.4.114

fix(trial): Move”days left” bar to the sidebar, new design

fix(lint): import ui-variables for linter

Refactor object store and gen form updates

feat(msg-list): Don't make participants mailto links, add context menu

fix(long-connection): Throw error for reporting, instead of just logging

design tweaks, breaking css up into files, update readme (#2858)

fix(darkside): `script/grunt lint` requires explicit LESS includes

fix(specs): Display which tests are console.logging

fix(promise): Don't use deprecated Promise.longStackTraces()

fix(error): Let APIErrors have proper stack traces

Update submodule

Revert "fix(promise): Don't use deprecated Promise.longStackTraces()"

This reverts commit ac7602155c.

Bump submodule

bump(SFDC): 0.4.115

fix(specs): Fix tests that were console.logging, bump coffee-react

fix(drag-drop): Restore support for thread dragging

fix(thread-sharing): Fix unloading plugin

fix(auth): Update autofill for Fastmail.fm

fix(tooltips): Position relative to custom container for composer

lint(*): Fix issue breaking the build

bump(react): 15.3.x, warning removal, thread-sharing tweaks

es6(db): Convert attribute class declarations to ES2016

es6(db): Didn’t wait for NylasLint…

hack(channel-picker): Hide Salesforce for now

fix(accounts): Restore account re-ordering

fix(specs): attribute conversion fixed bugs, broke specs

fix(task-queue): performLocal now operates serially

Revert "fix(task-queue): performLocal now operates serially"

This reverts commit 5274ce3543.

Add back in `isSameDomainAsMe`

es6(db): Query-related classes moved to ES2016

fix(task-queue): task queue dependencies are only for preceding tasks

bump(SFDC): 0.4.116

Revert "fix(task-queue): task queue dependencies are only for preceding tasks"

This reverts commit e1e8c1cd9429b5aa20e19d4e2b8eca7215aa4a2c.

Add sequentialId check to tasks

Design pass on SF icons

fix(search/long-conn): Process results buffer before ending connection (#750)

NylasLongConnection ends the connection when the 'end' event is emitted
by the `request` object. When this happens, the global connection buffer is cleared.
Also, the global buffer holds the data we've received from the connection, and
whenever we receive new data, we accumulate it in the buffer and call a processBuffer function
which is throttled to 400ms.

Given that the buffer is global state, and processing occurs
asynchronously with a delay of up to 400ms, if the 'end' event on the connection is
fired before we actually get to process the buffer, we would clear it and show no results.

This scenario currently only affected search because if we accidentally
threw away some data when streaming deltas, we will get that data again
when we reopen the delta streaming connection.

fix(tray): Flipped logic in displaying unread count

Add section to Message footer

bump(SFDC): 0.4.117

fix linter

bump(electron): Update to 1.4.1 to fix intermittent Symbol() error

es6(db): Query builder converted to ES6

fix(long-connection): `close` instead of `end` on network end event

NylasLongConnection.Status.Ended means that we can't open the
connection again. When we get a network level 'end' event, that doesn't
map to our meaning of `Ended`, so we should just close it instead

Fix db setup

bump(SFDC): 0.4.118

feat(transforms): Replace regexp body transforms with DOM approach

Summary:
We originally didn't do this because creating a DOM tree was loading images.
Using range.createContextualFragment seems to do it without the tree ever
being attached.

Accompanying changes to src/pro are here:
https://phab.nylas.com/D3300
https://github.com/nylas/edgehill/compare/bengotow/draft-dom-transformations?expand=1

Also rename applyTransformsToDraft => applyTransformsForSending. Needed
a new name because the function signature has changed. AFAIK there are no
open source plugins using the old functions.

Test Plan: All specs updated

Reviewers: evan, juan

Reviewed By: evan, juan

Differential Revision: https://phab.nylas.com/D3299

fix(tooltips): Defer display of background, ensure dot inside window

bump(SFDC): 0.4.119

Merged in latest master from N1

fix(attribute): fix es6 conversion error

bump(SFDC): 0.4.120

Include calendar fix

fix(warnings): Fix warnings for react unkown dom prop

When using the pattern `{...extraProps}` to transfer props in the render method,
if rendering a native dom element, react will issue a new warning if we
end up passing invalid dom props:
https://facebook.github.io/react/warnings/unknown-prop.html

This adds a helper library to exclude invalid fom props instead of
manually excluding props inside each render method

fix(attribute): fix es6 conversion error

fix(mail-merge): fix `applyExtensionTransformsToDraft` rename

bump(SFDC): 0.4.121

Add welcome modal with video

Move close button to modal component and update styling

Fix linter errors

fix(help): Better help URL

fix(mail-merge): Add test coverage

Add jitter to BackoffTimer

Summary:
This should help us avoid the thundering herd problem if we have some
kind of API outage affecting a wide number of clients.

Test Plan: Tests

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: juan

Differential Revision: https://phab.nylas.com/D3297

fix(contact-sidebar): Correctly update selected contact

Sometimes, when selecting a contact (with name, email) inside a thread,
the dropdown (`<select>`) did not correctly reflect the selected
contact.

This was because when focusing a contact, the FocusedContactStore
queried that contact from the database just by email, and the contact
retured from the database became the focused one. However, sometimes the
returned contact might have the same email but different email, and
given that the `<select>` component is keyed by both name,email, it
couldn't find the appropriate <option> to render, so it could not update
to reflect the newly selected contact

Now, the FocusedContactStore queries by email and name to prevent this

Fix broken test

Summary:
Fixes a test that was broken due to my unfamiliarity with
CoffeeScript :-/

Test Plan: Tests

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: juan

Differential Revision: https://phab.nylas.com/D3302

feat(inline-images): Drag & drop or paste inline images

Summary: Initial support for inline images. Tests still forthcoming!

Test Plan: WIP

Reviewers: mark, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3295

Revert "fix(task-queue): performLocal now operates serially"

This reverts commit 5274ce3543.

fix(lint)

es6(db): DatabaseTransaction & Query moved to ES6

fix(tasks): Add instrumentation to Task's performLocal

A slow performLocal may be one of the causes of #2725

update: Update CHANGELOG for v0.4.55

fix(whitespace)

fix(install-location): Update language and remove buggy regex

fix(tasks): Report slow performLocal only when it takes > 500ms

fix(mail-merge): Reduce max number of emails to 250

Almost always, you will get rate limited trying to send 500 emails.
Reduce to 250 to make it more reasonable

💄(sidebar): Github repos should not wrap

fix(sidebar): Command-click + href to open in background

Global window event handler should work when clicking elements /inside/ of an a tag with an href.

💄(mail-merge): Fix alignment and height of tokens

fix(composer): No need for overlaid z-index: 10, appearing over menus

fix(db): Add an index on Thread.client_id for modelify

fix(overlaid-comps): Check if supports preview only after we know exists

fix(warnings): Correctly remove all unknown props warnings

fix(thread-list): Use interaction handlers, don’t update selection directly

fix(drafts): Sanitize quoted text to avoid overlaid component issues [!!]

fix(lint): Change variable to const

fix(search): Update local search syntax to include more results

Add prefix search. Previously, if searching for a thread with a specific
subject, you had to type the entire subject. Searching for just a prefix
wouldn't return the result.
This should not affect any of the current search results, only add more results

fix(react): React refuses to add `partition` attr to webview

fix(identity): Always refresh accounts after identity

This fixes an issue where changing your Nylas ID didn’t refresh your accounts, and N1 would still think they were invalid.

fix(db): Messages with empty bodies always showing loading spinner due to ‘’ == null

Bump submodule

fix(composer): Dedupe registered key bindings to avoid double undo in composer

fix(calendar): CSS layout fix for Chromium 53

fix(mail-merge): Reduce limit to 150 messages, improve error handling

fix(composer): Add additional isMounted checks

Resolves this exception: https://gist.github.com/jstejada/a26dc6a7a2896dcef9be3cec60eaecdb

fix(perspectives): More robust validation of saved perspectives, never open to blank screen

fix(specs): Fix mail merge specs

🎨(thread-sharing): Fix icon

fix(lint): Fix coffeelint errors

fix(draft-list): Don't render html string in draft subject

fix(dev): Pretty print deltas

🎨(activity-list): punctuation

fix(window-state): Per electron#7278, save state in beforeunload

Related:
https://github.com/electron/electron/issues/7278
https://github.com/atom/atom/pull/3223/files

As of Chromium 36, unload is async and @zcbenz does not think it happens reliabily in Electron. Move saving of window state to beforeunload, following suit with Atom.

fix(composer): Wrap composer instead of allowing overflow-x

fix(spec): remove unnecessary messages & prevent extra hot window

bump(SFDC): 0.4.123

fix(linter): fix linter error

fix(linter): fix linter error

rm(ship-logs): Remove unused log shipping, prevents many-processes bug on win32

feat(bios): Linkify twitter hashtags and mentions in bios

fix(composer): When pasting links that are tracked, extract actual link

fix(self-hosting) Don't load packages that don't support self-hosting

feat(self-hosting) Add onboarding page about self-hosting plugin restrictions

bump(verison): 0.4.56, more items in changelog

fix(data-source): Wait until the next cycle to cleanup

Fixes a crash when switching to the thread list from the draft list, where there are very briefly zero observers.

💄(share-thread): Fix positioning of share thread button

fix(tutorial-tips): Don't display when component is not visible

fix(participants): When copying, include space #2871

fix(spellcheck): Do not spellcheck <code>, <a>, <pre> tags

This fixes #2877. The templates feature becomes broken when variable names contain misspellings.

fix(specs): Minor spec fixes

fix(composer): enable click regions on margins of composer

Change padding, margins, and borders to allow you to click on the left
margin of to, cc, bcc, from, subject fields as well as the composer
margins both above, left, and to the right of the composer.

Ensured attachments and other assets show up in correct spots

Ensure subject looks correct for mail merge

fix(composer): can shift-tab more places

Allow shift-tab to go back to subject from anywhere except in front of a
tab character

fix(composer): fix margin when editing contact chip

fix(composer): tokenizing text field trigger logic moved to composer

Put acess tokens and refresh tokens in keychain

fix modal spacing

bump(SFDC): 0.4.125

fix tokenizing field margins

fix(tutorial-tips): Recompute pos when theme changes

fix(share-thread): Closed when blurred when blurred or new thread selected

fix(dev-mode): Don’t save to config.json, use flag instead

Turns out even the built, packaged version of the app can be restarted into dev mode by adding `—dev` to argv and using the new relaunch API.

es6(db): Move DatabaseStore to ES6

💄(outline-view): Add title attr for tooltips

fix+🎨(notifs): Cleanup, handle nonexistent thread when opening notification

Notifications now check to see the thread they are supposed to open
exists.

Also, clean up FocusedContentStore._onFocus so that it doesn't have the side
effect of dispatching another action and messay logic.
Instead, added Actions.ensureCategoryFocused, to focus any category, and which
should be used separately from focusing content (notifications now use
this action for "opening" the thread)
Also, convert FocusedPerspectiveStore to ES6

fix(specs): Activity List

fix(composer): enable click regions on margins of composer

Change padding, margins, and borders to allow you to click on the left
margin of to, cc, bcc, from, subject fields as well as the composer
margins both above, left, and to the right of the composer.

Ensured attachments and other assets show up in correct spots

Ensure subject looks correct for mail merge

fix(composer): can shift-tab more places

Allow shift-tab to go back to subject from anywhere except in front of a
tab character

fix(composer): fix margin when editing contact chip

fix(composer): tokenizing text field trigger logic moved to composer

🔪 Last remaining traces of coffeescript in submodule!

fix(tools): Make `arc lint` great again

Add proper arc config for linting ES6 files with eslint

fix(files): When download mode is “manual” prompt about inline attachments

Summary:
When you have your "Download attachments for new mail" setting set
to "manually", inline images always appear broken with no explanation.

This patch listens for the image load to fail and displays a button which
queues the fetchFile task on click. This seemed like the best approach because
it doesn't slow down the loading of the message with more fstats / lookups.
(Seeing if the file has already been downloaded is an async operation)

Test Plan: No specs atm

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3313

feat(sidebar-notifs) Create sidebar notifications to replace old bars

Summary:
Move the old bar notifications to the sidebar, and only display one notification
at a time using a priority-rating system. Remove all of the old notification
infrastructure.

Test Plan: Added specs, also reproduced notifications locally

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: juan

Differential Revision: https://phab.nylas.com/D3310

bump(submodule)

fix(lint)

fix(phising): Handle scenarios where input is malformed (Sentry 51642)

https://sentry.nylas.com/sentry/edgehill/group/51642/

fix(templates): Handle error when scanning dir (Sentry 44351)

https://sentry.nylas.com/sentry/edgehill/group/44351/

fix(perspectives): Restore when only account cannot be found (Sentry 59061)

https://sentry.nylas.com/sentry/edgehill/group/59061/

refator(notification): move base notification to nylas-component-kit

Remove all salesforce objects on logout

Add syncing of salesforce objects

Summary:
Depends on D3327
- Also remove all coffeescript
- Make it so salesforce mail label grabs opportunity from database
- Make sure metadata is kept in sync when salesforce objects are deleted
- Set up stub for Salesforce Object cache via SalesforceObjectStore
- Cleanups here and there

Test Plan: Manual

Reviewers: jackie, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3328

fix(db): Switch to better-sqlite3, resolves offline issue

Summary:
Better-SQLite3 is a fork of node-sqlite3 which includes a re-written JavaScript interface. It’s more synchronous, but better reflects what is actually sync vs. async in sqlite’s C++ API. (Not much is really async under the hood.) This diff uses a branch of better-sqlite3 I’ve edited to support Node 6.

In my tests, this branch spends 3.24x less time executing queries than `master`. (Measured time spent in calls to `this._db[run|all|get]` over the first 5000 queries of initial sync. It also increased the performance of starring a thread in the thread list by 28%.

This library also allows us to use a prepared statement cache, which is great because we often make the same queries repeatedly as query subscriptions refresh the UI and deltas are dumped into the app. The old interface didn’t expose statements (cached query plans) to JS.

better-sqlite3 advertises that it uses the JS garbage collector instead of lower level C++ memory management. I tested syncing my entire mailbox to verify that memory usage is not significantly different on this branch after a lot of queries have been made.

Finally, it looks like we can finally stop building sqlite3 from scratch in `script/bootstrap`. This library builds properly with `apm install`. 🎉

We might want to change the DatabaseStore and DatabaseTransaction classes more, now that it’s possible to execute queries synchronously. It could make things cleaner and get us out of promise-hell in a few places. In this diff I tried to change as little as possible.

Test Plan: Run tests, everything still works

Reviewers: juan, jackie

Reviewed By: juan, jackie

Differential Revision: https://phab.nylas.com/D3315

Fixing broken screenshot link (#2911)

Replacing with new screenshot

fix(onboarding): Fire event when user selects account type

bump(sqlite3): Fix issue with CI build / bindings location

fix(reporter): Handle errors cleaning log files (Sentry #6887)

Switch spellcheck libaries

Summary:
Switch to electron-spellchecker, which will allow N1 to
spellcheck more intelligently across languages. It auto-
detects languages and downloads dictionaries on the fly.

Test Plan: Specs, manual testing

Reviewers: bengotow, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D3319

Update Windows.md

fix(jquery): remove jquery

fix(spec): remove unused spec helpers

fix(specs) convert nylas-protocol-handler-spec to ES6 (#2886)

fix(win32): Still need custom sqlite3 build cmd for win32 😥

This also includes a bump of the better-sqlite3 module to support compilation on ia32.

feat(popout-threads) Add functionality to open threads in popout windows

Summary:
Threads can now be opened in separate windows. This can be done via the popout
icon next to the print icon, or by double-clicking the thread when in double-
pane mode. Note that the single-click action is still fired, which is why
double-clicking does not work in single-pane mode. The popout icon changes to a
pop-in icon while in the popout window, to allow users to collapse it back into
the main window.

Test Plan: Tested locally

Reviewers: evan, juan

Reviewed By: juan

Subscribers: sdw

Differential Revision: https://phab.nylas.com/D3332

fix(analytics): Add pgp encryption events

Email Encrypted
Email Encryption Errored
Email Decrypted
Email Decryption Errored

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

bump(version): 0.4.57

 (0.4.58 was accidentally in prev commit)

fix(readme): Improve Win32 build instructions

fix(readme): More Win32-specific instructions

fix(spellchecker): Use cross-platform misspellings, fix lint error

feat(calendar): can pick which calendars you want displayed

Summary:
Adds a resizable column next to the calendar that lets you pick which
calendars you want to turn on and off.

The picker sidebar styling mimics that of the main account sidebar.

Calendars are grouped by account.

We store the disabled calendars in in your config.

I added a `notIn` SQL method so it'll perform `WHERE calendarId NOT IN
['a', 'b', ...]` instead of `NOT (WHERE calendarId IN ['a', 'b', 'c'])`

I wanted it to be an exclusion (instead of inclusion) list so the default
was "all on" and we didn't need to always fetch the full list of
calendarIds from the database to compare against.

This also fixed a test that was failing constantly: The Query Subscription
Pool Spec was not being properly reset on each test. As a result, the test
would fail with an instance of a query subscription that Jasmine would
attempt to pretty print. Jasmine would fail to pretty print it because of
a jasmine bug that fails to properly display Objects with null prototypes.
The DatabaseStore's EventEmitter has a property with a null prototyp
causing the error

Test Plan: manual

Reviewers: bengotow, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3336

fix(linter)

Merge submodule with master

Bump submodule

Bump database version and submodule

fix(contact): add hasSameDomainAsMe method to Contact

Better email syncing with Salesforce

feat(dock): Automatically add N1 to the OS X dock upon install

Note - you need to `killall Dock` to see this after it happens

Add main window calendar package

Summary: Add tiny helper app for calendar goodness

Test Plan: No tests yet

Reviewers: juan, halla

Reviewed By: halla

Differential Revision: https://phab.nylas.com/D3346

cleanup(*): Remove dead .bowerrc, .gitignore files

es6(db): Convert the ORM specs to ES2016

bump(Electron): 1.4.3

fix(license): Swap ref to GPLv3 with the whole thing so GitHub picks it up

Clean up spec-bootstrap and jasmine-helper

Convert spec-suite to es6

Extract out jasmine reporters

Move global imports back to jasmine-helper

Extract to N1SpecRunner

Fold jasmine-helper into spec runner

Convert `spec-suite` to `n1-spec-loader`

Convert spec-helper to es6

Remove unused methods from spec-helper

Move waitsForPromise to jasmine-extensions

Move spec runner & deps into `n1-spec-runner` folder

Remove unused spec-helper-platform

Move specs into subfolders

Initial extraction of all methods out of of spec-helper

Fixes to spec-helper extraction

fix(spec):

Dramatically clean up and simply the spec bootup process.

Converting spec bootup system to es6 from coffee.

Converted old `jasmine-helper`, `spec-helper`, and `spec-suite` to a new
`n1-spec-runner` file.

Each of these old files had tons and tons of code related to various parts
of the spec bootup and running process.

Each of those parts have been extracted into individual files

Fix linter

Add icons to object types in picker

Remove opp references in popover

bump submodule

fix(spellchecker) Add a cache to improve performance

fix(notifs): Don’t render empty <img />

lint(*): Bump to ESLint 3.8

Update linter

bump submodule

bump submodule

bump submodule

bump submodule

bumpd submodule

Add sync thread toggles

Search focused contact by email

fix(mailto): Support body with \n or \r characters

Related to #2923

fix(thread-popout) Add missing packages to the 'thread-popout' window

Summary: Missed some non-composer packages that should be in the 'thread-popout' window

Test Plan: Tested locally

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D3352

fix(mailto): Missing return in URL handling

fix(beta): Add notif when on beta channel

fix(db): Return; preventing ThreadSearch indexing

bump(version): 0.4.58

fix(specs): Don’t run update channel check in specs

fix(search): React warns, convert to ES2016

fix(search): Missed a .default

fix(spellcheck): Don’t include cld sources in build

fix(tooltips): Prevent tooltips from breaking wrapped components

fix(overlaid): Preview button was just invisible?

fix(auth): Hide title when long acct. err present

fix(onboarding): Don’t display “Welcome Back” screen

fix(accounts): Return correct list of email addresses

bump submodule

fix(misc) React warnings, kill cjsx

fix(accounts): Return correct list of email addresses

💄(thread-window): Update pop-out icons

lint(react): InlineImages don’t get session at send-time

fix(mail-merge): Upload files per draft to fix inline images

fix(mail-rules): Allow recipient filters to contain names #2942

bump(version): 0.4.59

💄(thread-window): Add thread-popin icon

update(changelog): 0.4.59

fix(search): Use fts search index for typeahead results

Summary: This improves performance of the search typeahead

Test Plan: Manual

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D3363

fix(popover): 🔪 deprecated popover

fix(popover) Actually 🔪 deprecated popover

feat(flow): Add Flow to Nylas N1

Add flow-typed annotations

Ignore annoying submodules

Add /* @flow */ header to all js & es6 source files

Fix error about having number keys for objects

Remove @flow config from compile-support

Check es6 files

Add jasmine to flow

Revert "Add /* @flow */ header to all js & es6 source files"

This reverts commit c5a57bc402c53633b407b557f28ad12eaa8f27fe.

Update submodule

Add nylas global interface file

Fix generated form and bump

Fixes to generated form

Use customComponent in task

fix(warning): Don't render participant picker with null value

fix(thread-popout): Display the hidden message toggle in the thread-popout

Summary:
Also, maintain the perspective that the thread was opened in, so that the
proper messages are hidden (e.g. hide deleted messages when opened from the
inbox, but not when opened from the trash folder)

Test Plan: Tested locally

Reviewers: juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3366

rm(grim): We’re not using Grim for deprecations

feat(quick-replies): Reply from Mac notifications

use single regex exec for toEquivalentEmailForm (#2962)

Fix JSON spacing (#2958)

Match JSON style to rest of file

Fix issue #2758. Press Escape after a finished search to get back to … (#2939)

* Fix issue #2758. Press Escape after a finished search to get back to Inbox

Use a keydown event when search bar is in focus to capture escape key press

* fix(search): Convert to ES2016

🎨(notifications): Remove indent and left padding from notifications

Revert "Fix issue #2758. Press Escape after a finished search to get back to … (#2939)"

This reverts commit 6377da8291.
This was already fixed in a95c17bce3

fix(utils): Don’t overwrite _ in global scope

feat(tokens): Multi-select for tokenized text fields

Test Plan: Lots of tests, mostly updated to enzyme. Not many new ones.

Reviewers: evan, juan, jackie

Reviewed By: juan, jackie

Subscribers: juan

Differential Revision: https://phab.nylas.com/D3374

fix(tokenizing-text): Re-add shouldBreakOnKeydown prop

build: bump eslint-plugin-import version

feat(field): Let TokenizingTextFields be disabled and onEditMotion
2016-10-26 19:46:54 -04:00
Juan Tejada 9d43f006b3 fix(popover) Actually 🔪 deprecated popover 2016-10-24 16:52:02 -07:00
Juan Tejada 5e7c1ad518 fix(popover): 🔪 deprecated popover 2016-10-24 16:33:17 -07:00
Juan Tejada 689b33a246 💄(thread-window): Add thread-popin icon 2016-10-24 13:46:20 -07:00
Juan Tejada ac659878c4 💄(thread-window): Update pop-out icons 2016-10-24 12:03:19 -07:00
Evan Morikawa de0f2374fe feat(calendar): can pick which calendars you want displayed
Summary:
Adds a resizable column next to the calendar that lets you pick which
calendars you want to turn on and off.

The picker sidebar styling mimics that of the main account sidebar.

Calendars are grouped by account.

We store the disabled calendars in in your config.

I added a `notIn` SQL method so it'll perform `WHERE calendarId NOT IN
['a', 'b', ...]` instead of `NOT (WHERE calendarId IN ['a', 'b', 'c'])`

I wanted it to be an exclusion (instead of inclusion) list so the default
was "all on" and we didn't need to always fetch the full list of
calendarIds from the database to compare against.

This also fixed a test that was failing constantly: The Query Subscription
Pool Spec was not being properly reset on each test. As a result, the test
would fail with an instance of a query subscription that Jasmine would
attempt to pretty print. Jasmine would fail to pretty print it because of
a jasmine bug that fails to properly display Objects with null prototypes.
The DatabaseStore's EventEmitter has a property with a null prototyp
causing the error

Test Plan: manual

Reviewers: bengotow, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3336
2016-10-13 11:37:19 -04:00
Halla Moore 1c675935a7 feat(popout-threads) Add functionality to open threads in popout windows
Summary:
Threads can now be opened in separate windows. This can be done via the popout
icon next to the print icon, or by double-clicking the thread when in double-
pane mode. Note that the single-click action is still fired, which is why
double-clicking does not work in single-pane mode. The popout icon changes to a
pop-in icon while in the popout window, to allow users to collapse it back into
the main window.

Test Plan: Tested locally

Reviewers: evan, juan

Reviewed By: juan

Subscribers: sdw

Differential Revision: https://phab.nylas.com/D3332
2016-10-12 13:55:11 -07:00
Halla Moore 9e3c3c14cd feat(sidebar-notifs) Create sidebar notifications to replace old bars
Summary:
Move the old bar notifications to the sidebar, and only display one notification
at a time using a priority-rating system. Remove all of the old notification
infrastructure.

Test Plan: Added specs, also reproduced notifications locally

Reviewers: bengotow

Reviewed By: bengotow

Subscribers: juan

Differential Revision: https://phab.nylas.com/D3310
2016-10-04 08:08:23 -07:00
Ben Gotow aa7ef91b0b fix(files): When download mode is “manual” prompt about inline attachments
Summary:
When you have your "Download attachments for new mail" setting set
to "manually", inline images always appear broken with no explanation.

This patch listens for the image load to fail and displays a button which
queues the fetchFile task on click. This seemed like the best approach because
it doesn't slow down the loading of the message with more fstats / lookups.
(Seeing if the file has already been downloaded is an async operation)

Test Plan: No specs atm

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3313
2016-10-03 11:22:44 -07:00
Evan Morikawa 8e3b436ba3 fix(composer): enable click regions on margins of composer
Change padding, margins, and borders to allow you to click on the left
margin of to, cc, bcc, from, subject fields as well as the composer
margins both above, left, and to the right of the composer.

Ensured attachments and other assets show up in correct spots

Ensure subject looks correct for mail merge
2016-10-02 12:04:55 -04:00
Halla Moore 3264175b54 feat(self-hosting) Add onboarding page about self-hosting plugin restrictions 2016-09-29 12:12:05 -07:00
Evan Morikawa 68b3ab4225 fix(spec): remove unnecessary messages & prevent extra hot window 2016-09-29 09:52:51 -05:00
Ben Gotow 0e98736f49 fix(composer): Wrap composer instead of allowing overflow-x 2016-09-28 17:39:44 -07:00
Juan Tejada 38b5cc47a7 🎨(thread-sharing): Fix icon 2016-09-28 15:56:37 -07:00
Ben Gotow 69d3571d20 fix(calendar): CSS layout fix for Chromium 53 2016-09-28 12:14:50 -07:00
Ben Gotow 6d3a9bd659 fix(tutorial): Minor tweaks, finalized styling 2016-09-16 17:34:22 -07:00
Ben Gotow 7533c7ae81 feat(tutorial): Overlay bubbles that guide you through initial features
Summary:
Add header to show how many trial days remain

More rendering out of Store, consolidate registry and store and expose via new serviceRegistry

WIP

Merge branch 'master' into hallamoore/feature-walkthrough-tutorial

Switch to using observable instead of AbortablePromise

Update submodule

WIP

WIP

Remove annotations

Remove changes

WIP

Test Plan: No tests

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3260
2016-09-13 02:29:38 -04:00
Evan Morikawa e363024ea1 fix(size): Losslessly compress images via ImageOptim 2016-09-01 11:32:52 -07:00
Evan Morikawa a418f806be fix(less): tokenizing field input no box-shadow on windows 2016-08-30 17:55:19 -07:00
Halla Moore 6616d5c29d fix(icons): Prevent signature dropdown icon from appearing too large
The 1x and 2x icons for the signature dropdown were both actually the same size,
resulting in too large of an icon when N1 thought it should use 1x. Fixing this
by simply removing the 1x file.
2016-07-28 15:25:11 -07:00
Annie 3da5c31cdd build(onboarding): Add input with gmail auth url
Summary:
Added animation and input with url of gmail auth for users where the broswer redirect doesnt work.
Still need to finish up some minor styling.

style(onboarding): add input with link for gmail auth if browser redirect doesnt work

Test Plan: testing on my local install

Reviewers: juan

Reviewed By: juan

Subscribers: sdw

Differential Revision: https://phab.nylas.com/D3119
2016-07-26 15:55:45 -07:00
Annie bd361c8abb refactor(signatures): Removed old signature imgs and made static empty signatures page
Summary:
Refactored signature preferences page to allow more signatures than the previous 1-1 mapping for signatures and accounts. Created a multi select dropdown of the accounts for which a certain signature is set as default for. Added a button into the draft header From field to toggle between saved signatures.

refactor(signatures): Add basic add/remove capabilities to static

refactor(signatures): Hooked up signature actions and signature store for basic functionality

fix(signatures): Cleaned up signature store and started on multiselectdropdown

fix(signatures): Add multi signature toggle select to multiselect dropdown

build(signatures): Built framework for multiselect dropdown

build(signatures): Toggle button functionality for dropdown

build(signatures): Build multi select from components and add debounce

refactor(signatures): Move signature actions and signature store into flux

fix(signatures): Styled composer signatures button/dropdown and fixed preferences checkmarks

build(signatures): Finish main functionality, about to refactor composer signature button into injected component

fix(signatures): Changed position styles

fix(signatures): Fixed background color for dropdown button when blurred

build(signatures): Began to write tests for signatures store, preferences and dropdown

Test Plan: Wrote tests for preferences signatures, signature store, signature composer dropdown and refactored tests for signature composer extension. For signature composer extension I removed applyTransformsToDraft and unapplyTransformsToDraft and tested by sending emails with signatures to different providers to make sure the <signature> tag caused problems.

Reviewers: bengotow, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3073
2016-07-11 12:35:41 -07:00
Jackie Luo 4ea106db3e 🎨(loading): Remove supplement text 2016-06-13 16:32:46 -07:00
Ben Gotow f49239dcf2 fix(pro): Add manual refresh to identity page 2016-06-13 12:06:53 -07:00
logandavis b69f150e6a feat(keybase): Adds PGP Encryption Plugin
commit efe58092494c8870072bdf45991c122624bb93e6
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue Jun 7 13:06:25 2016 -0700

    patching specs

commit 15a346b93efa5a21327f6bd7c14ef60ddc0f79bb
Author: Ben Gotow <bengotow@gmail.com>
Date:   Mon Jun 6 17:49:20 2016 -0700

    A few small fixes

commit d4cc62a90d2d4f101b71bc57b5521353d2175219
Merge: 80018c0 17d9c3d
Author: Ben Gotow <bengotow@gmail.com>
Date:   Mon Jun 6 17:32:00 2016 -0700

    Merge branch 'master' into wip/keybase

    Conflicts:
    	build/Gruntfile.coffee
    	internal_packages/onboarding/lib/page-authenticate.jsx

commit 80018c045527dec331118426ce67d82c44926334
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri Jun 3 18:12:39 2016 -0700

    Re-styles decryption interface, temporarily removes file decryption

    The decryption interface was ugly as hell. Now it's aligned with
    the "Message Encrypted" notice and also the ugly text input is
    gone - replaced by a much nicer-looking popover. In the course of
    this refactor, file decryption was temporarily deactivated, but
    will return soon.

commit ed1e6232803e2c6b8930f5ed2bd6ccde56542b3b
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri Jun 3 15:39:02 2016 -0700

    Adds more information to key-adder UI

    User testing indicated that the key-adder UI didn't provide
    enough feedback about incorrect inputs and the slow load time
    of key generation. This commit adds a spinning wheel while loading
    and a span describing which inputs are incorrect.

commit 4d7908635cd606a3ebb2607537127dd1c5740a35
Author: logandavis <logankeahidavis@gmail.com>
Date:   Thu Jun 2 18:40:57 2016 -0700

    Touches up search

    Fixes a bug in the search debouncing that was sometimes
    allowing users to modify search queries and not have the
    new query searched. Added messaging to stop people from
    trying to search keybase by email address.

commit 140ae6679758d8ed54d1b6b7bd5c837f84132363
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed Jun 1 17:35:39 2016 -0700

    Adds import from file and unifies paste in key-adder.cjsx

    User review feedback indicated that key import was a big pain
    point - pasting keys was a pain in the butt, private keys
    could be saved as public keys, etc. This commit is the functional
    overhaul (and refactor) for the key-adder on the preferences
    page. It adds an Import from File function and merges
    Paste Private and Paste Public into just Paste, which autodetects.

commit 297f9ed482f4e83c52e40e479a31ba1bffad3f7d
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 21:11:01 2016 -0700

    fix(es6): Converstion broke file uploads by adding body: {}

commit 7815e90c49c70339cd6d26d48e818d4f5f962b7f
Merge: af54f01 0af27ee
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed Jun 1 14:49:14 2016 -0700

    Merge branch 'wip/keybase' of github.com:nylas/N1 into wip/keybase

commit af54f0165b95447ffa04c1e324e02d892b20d047
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed Jun 1 14:47:03 2016 -0700

    Bugfixes: clientID not found (from rebase) and modal on new email

    User testing revealed two pretty noxious bugs, one when you email
    someone who's not saved as a contact and one caused by an update
    to mail merge requiring inputs to Participant-Text-Field that
    n1-keybase wasn't provided. This fix patches modal-key-recommender
    to use emails as a fallback to contacts and sets a reasonable
    default for the input to Participant-Text-Field.

commit 0af27ee10666f35f248a4191fe937cde920d6baf
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 19:10:11 2016 -0700

    fix(specs): Empty parameter list

commit 87407249c2bfa7737a4609ac89b46c3b5a074f76
Merge: e4c050b 9892473
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 18:08:46 2016 -0700

    Merge branch 'master' into wip/keybase

commit e4c050b599fbc83b6249634297483a5683fe3c56
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 18:08:42 2016 -0700

    fix

commit 6c7857890df9d277f786b87ab996feeec4089c3b
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 18:05:35 2016 -0700

    fix(linter): Minor issue

commit 36197effd6c8ca3648a5010dac874c9a990fb1b9
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 18:02:26 2016 -0700

    fix(lint)

commit 73dd4850bf675f983ecfcc5ef65e91b9aa118e16
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 17:52:18 2016 -0700

    fix(lint): Don't lint node_modules of packages

commit 15c9d42f2d896f22092465e78cb340d07e0086ac
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 17:36:24 2016 -0700

    patch(auth): Remove unused import

commit 8756b2b5314fd0366caf8b2e12a3bc5e527bc593
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 31 17:33:30 2016 -0700

    patch(auth): Temporarily remove auth flow

commit 135395e4afdfcc8ba57667e60fa73ef55e126c2f
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 31 17:25:08 2016 -0700

    linting fix

commit 1049449f211111e704b3e543d2748339bf9cc6fd
Merge: e6a8f9e e1275eb
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 31 15:50:00 2016 -0700

    merge commit

commit e6a8f9ebadcc3d1b1444c8676d15b730a0d7a5c0
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 31 15:19:27 2016 -0700

    move styling, update readme

commit d388eb737ae9febc197bf0fe22d505a28c669639
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed May 25 16:15:31 2016 -0700

    Add Export Private Key button to preferences

commit f49062639a8f4a67a576b90a02f4b0f06dd492d0
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed May 25 12:40:23 2016 -0700

    Add Export Public Key button to preferences

commit 847221b6a2c9b1a1e8b817708ed9032803de9261
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 20 15:26:37 2016 -0700

    update readme

commit 1f3f14bf9c69bfea7d7d1ac79c39fe0fe6befd37
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 20 15:23:26 2016 -0700

    Beautify Add Email button, catch naggling bugs

    The old add email button on the preferences page, which
    was not playing nice with the styling of KeybaseSearch, has
    been replaced by the drop-in EmailPopover element. Also, two bugs
    that were causing the console to flip out on normal, unencrypted
    emails were caught and fixed - the Decrypt Button now returns
    false instead of null, and attachments without filenames are
    allowed.

commit a7cb363e357ff996b92946e9685416b98133de0b
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 20 14:54:00 2016 -0700

    Debug and style the encryption popover modal

    The encryption popover was ugly as sin and also lacking in
    some functionality - it unnecessarily showed the email list,
    it contained no reference to the Key Management page, it
    didn't display any links to the keybase profile in question...
    now it is a pretty and functional popover.

commit b4e3f5421558d4d128ffc66125657fc8b1abf1f1
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 17 18:56:08 2016 -0700

    Unborks Import Key popover, obscures password fields

    The Import Key popover on the preferences page was rendering off
    the screen because it was always pointing at the last button
    created rather than the button clicked. Now that's fixed.

commit 20ab9f825d65f40451397c8a1df484bb7e63c593
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 17 17:17:44 2016 -0700

    Fixes identity filename/address management, dedupes search, encodes +

    Bunch of minor bugfixes here. The identity.path refactor broke
    PGPKeyStore.addAddressToKey and removeAddressFromKey, which this commit
    fixes. + characters were being incorrectly encoded in messages as &#43;
    which was breaking message decryption - that's now fixed in message
    preprocessing. Finally, basic Keybase search result deduplication
    is now in place.

commit 8a2a5e6dc3c84ade420b16e36d2954cea661d1f1
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 17 14:13:17 2016 -0700

    Adds private key management to preferences page; beautifies

    Previously, the KeyManager element on the Preferences page only
    exposed public keys, and there was no way to see, edit, or delete
    private keys. Now you can do all of those things. This commit
    also fixes some render-timing issues in PGPKeyStore._populate
    that were causing nonexistent keys to appear (one on key generation,
    one on deletion of the final key) and improves the styling of
    the Preferences page.

commit 3c39431dd6ad3a8c19770c6ddd46d508ee92d4bb
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 13 15:22:40 2016 -0700

    burns the dead code out of preferences-keybase

commit eb7b924d5e00946ebb3e7174f54f2c1dde1ff616
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 13 14:58:51 2016 -0700

    Fix key generation and saving from the preferences page

    An earlier refactor away from key objects and towards identity
    objects borked the old key saving code. This commit refactors
    the key-saving code so that keys can be manually added from
    the preferences page again, and also makes said code much
    clearer.

commit e1f78d0080505102bf421c8c3638fee527d84481
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 11 17:41:24 2016 -0700

    add README of todos

commit c44d7995fc3cc097fb8f98689dd18488920488cf
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 11 17:41:12 2016 -0700

    heavy style pass, misc bugfixes, add assets

commit 47208ca2d947ac4b04c1fec14b433f7c6105fe1d
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 11 14:03:06 2016 -0700

    Decrypting files first pass, problem with unlocking keys

commit fc2a56574c1eb0a7098280f3e7a2ca5d6697340c
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 4 17:52:32 2016 -0700

    Cause message to encrypt on key picker popover close

commit 545392dee9db2754c6b729bd9549c071e1568ddd
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 4 12:04:08 2016 -0700

    light design pass on the modal (now a popover)

commit 2726aab32dd74a68936a7d80d6e49b879f182ee3
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon May 2 15:47:45 2016 -0700

    Key picker modal functional for multiple recipients, still needs lots of cleanup

commit 050114acf36b8654de80726352812e945ac88968
Author: Dakota Nelson <dakota@nylas.com>
Date:   Fri Apr 29 14:52:33 2016 -0700

    Key picker modal functional for single recipient

commit 865c7c8894b30a55e4c6027dd6f03fea5d0bb330
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 28 17:31:08 2016 -0700

    modal now allows selection of keybase user

commit 728c995314b3238bdb3222c7d12353ab2e35a65a
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 28 10:46:47 2016 -0700

    consolidate key cache into one object, fix all tests

commit 4bdd49ebd60beadf72b7aa099cfded09861768af
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed Apr 27 11:49:54 2016 -0700

    checkpoint commit for key selection modal in composer

commit 7d33d832f6587814f8da142e14f9a7f8256114b9
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 17:46:01 2016 -0700

    Remove infinite loop of doom, match keys properly

commit 7a4c1d60c1f1455e70a190710b59970ab2ed3b2a
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 14:31:41 2016 -0700

    Re-add some of Logan's changes lost in the repo migration

commit 6c1e31601e499f69c8df5b9f1a5244480ec67da1
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 13:52:55 2016 -0700

    slightly improve style on the decryption interface

commit 78f115f59ce09f57621776be4287e1e3a9d047b4
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 13:10:27 2016 -0700

    update keybase profile type translation to include proofs

commit 664c61fdd5e03d9ba4afa40d14673ad7733b1e30
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 11:54:35 2016 -0700

    Replace undocumented 'key' objects with explicit 'identity' objects

commit 0824cc0a522e9d9d8045d7a87ef3b7ec8381090e
Author: Dakota Nelson <dakota@nylas.com>
Date:   Fri Apr 22 13:33:18 2016 -0700

    Remove unused code

commit f0fd315cf7daf64f63d933508a6799ae4b5b4f18
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 21 17:24:54 2016 -0700

    Further refactor keybase plugin

commit 086e86f289213789f5796b5b1febee709986b89a
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 21 15:53:54 2016 -0700

    Refactor, and a useless commit msg

commit 1fcda3875424a3ba4ba54f25644b43690b153324
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed Apr 20 16:16:26 2016 -0700

    Fix linter errors (reported via cd build; grunt lint)

commit fcc937e6b50e43932478437ecf6dabb2f96fa15c
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed Apr 20 16:08:42 2016 -0700

    Keybase API was 500'ing - move API adapter to standard (err, data) callback format and make it only call the callback once when error is hit (return after erroring)

commit fd0b4220af13cc80b4c88f9e2e63976a54ac50d4
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed Apr 20 15:56:27 2016 -0700

    Fix state were user has no pub keys

commit 13886101fcf63e4e497526c2e039cbb791670c06
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed Apr 20 15:25:30 2016 -0700

    add Logan's changes from the other repo

commit 6e9103b4188414ddd6e01db2c4c50c68ad54caca
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed Apr 20 15:22:34 2016 -0700

    minor styling change to improve keybase popover

commit fd0749a7c1c9202b94dc5a47bad26d8960c17099
Author: Dakota Nelson <dakota.w.nelson@gmail.com>
Date:   Wed Apr 20 12:30:40 2016 -0700

    feat(keybase): Initial commit from n1-keybase repo

commit e1275eb9ea548f76c06eb605b77a62d314f3d10f
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 31 15:19:27 2016 -0700

    move styling, update readme

commit 7f64713cc5d8cfdc59eca3c007cf673e5e2b6dea
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed May 25 16:15:31 2016 -0700

    Add Export Private Key button to preferences

commit 9d4e2552388f94fb7113ab80906519dce4d7350f
Author: logandavis <logankeahidavis@gmail.com>
Date:   Wed May 25 12:40:23 2016 -0700

    Add Export Public Key button to preferences

commit 166585dba9ece8d5dd529418b934947985ace5a3
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 20 15:26:37 2016 -0700

    update readme

commit f875c4146e98152cf4d050fc5af3c322c2d5fdae
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 20 15:23:26 2016 -0700

    Beautify Add Email button, catch naggling bugs

    The old add email button on the preferences page, which
    was not playing nice with the styling of KeybaseSearch, has
    been replaced by the drop-in EmailPopover element. Also, two bugs
    that were causing the console to flip out on normal, unencrypted
    emails were caught and fixed - the Decrypt Button now returns
    false instead of null, and attachments without filenames are
    allowed.

commit 48713d78381fb7320ce265b84c95f8b1497008f7
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 20 14:54:00 2016 -0700

    Debug and style the encryption popover modal

    The encryption popover was ugly as sin and also lacking in
    some functionality - it unnecessarily showed the email list,
    it contained no reference to the Key Management page, it
    didn't display any links to the keybase profile in question...
    now it is a pretty and functional popover.

commit a607f97f8082a14a29ebd5c2d8b397872ef5456a
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 17 18:56:08 2016 -0700

    Unborks Import Key popover, obscures password fields

    The Import Key popover on the preferences page was rendering off
    the screen because it was always pointing at the last button
    created rather than the button clicked. Now that's fixed.

commit 2afd41894aa297dcd6aec0b785cadbb533377f80
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 17 17:17:44 2016 -0700

    Fixes identity filename/address management, dedupes search, encodes +

    Bunch of minor bugfixes here. The identity.path refactor broke
    PGPKeyStore.addAddressToKey and removeAddressFromKey, which this commit
    fixes. + characters were being incorrectly encoded in messages as &#43;
    which was breaking message decryption - that's now fixed in message
    preprocessing. Finally, basic Keybase search result deduplication
    is now in place.

commit 4824556543dce31b14be81ebe471f8febb55e00c
Author: logandavis <logankeahidavis@gmail.com>
Date:   Tue May 17 14:13:17 2016 -0700

    Adds private key management to preferences page; beautifies

    Previously, the KeyManager element on the Preferences page only
    exposed public keys, and there was no way to see, edit, or delete
    private keys. Now you can do all of those things. This commit
    also fixes some render-timing issues in PGPKeyStore._populate
    that were causing nonexistent keys to appear (one on key generation,
    one on deletion of the final key) and improves the styling of
    the Preferences page.

commit 47c05fc485c80b297b6027f9bdabb5f921be77b3
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 13 15:22:40 2016 -0700

    burns the dead code out of preferences-keybase

commit 6fdf34e5c4188994844052d95d927cab1ed182ea
Author: logandavis <logankeahidavis@gmail.com>
Date:   Fri May 13 14:58:51 2016 -0700

    Fix key generation and saving from the preferences page

    An earlier refactor away from key objects and towards identity
    objects borked the old key saving code. This commit refactors
    the key-saving code so that keys can be manually added from
    the preferences page again, and also makes said code much
    clearer.

commit a1b4b4fdb4b35a844ca490d3e9029dbbf4d7bf24
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 11 17:41:24 2016 -0700

    add README of todos

commit 6747a0a447476ca6af829886ec304d57bc5dd0ee
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 11 17:41:12 2016 -0700

    heavy style pass, misc bugfixes, add assets

commit 8544e4b84341f0bc49a1765c057cbf443c220448
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 11 14:03:06 2016 -0700

    Decrypting files first pass, problem with unlocking keys

commit 428dc6739fb29f833c53e957e7a998abf25460ac
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 4 17:52:32 2016 -0700

    Cause message to encrypt on key picker popover close

commit 9d8ef053beca3ef6bbc910de272f1b98033599bf
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed May 4 12:04:08 2016 -0700

    light design pass on the modal (now a popover)

commit b4a0ad2fa2ac33dbf3333e4beb9ac0df04aa107d
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon May 2 15:47:45 2016 -0700

    Key picker modal functional for multiple recipients, still needs lots of cleanup

commit 6bf96d973c7e19de103695f3d6e3346c8db2dab3
Author: Dakota Nelson <dakota@nylas.com>
Date:   Fri Apr 29 14:52:33 2016 -0700

    Key picker modal functional for single recipient

commit f5f0e6aea8c16aefd3cdcbe19664bed708857693
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 28 17:31:08 2016 -0700

    modal now allows selection of keybase user

commit 83f7ad54bcab7c24da033d8fe60a602b27b79ded
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 28 10:46:47 2016 -0700

    consolidate key cache into one object, fix all tests

commit f8ec4576dee108584e946a7e4c6b9f17885921de
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed Apr 27 11:49:54 2016 -0700

    checkpoint commit for key selection modal in composer

commit c4dd851402162bcaa7e3b8cebf911d6a57fdfdbc
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 17:46:01 2016 -0700

    Remove infinite loop of doom, match keys properly

commit 537d2b423b9c4210c97bda0bf00cbbd1a4ebc80f
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 14:31:41 2016 -0700

    Re-add some of Logan's changes lost in the repo migration

commit 91d86ad6b69edee59de4938c24143e186ad5523a
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 13:52:55 2016 -0700

    slightly improve style on the decryption interface

commit 321ea22c01a6f346325870049a0664155b7ee71f
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 13:10:27 2016 -0700

    update keybase profile type translation to include proofs

commit b8821490432e582a53e7416b49476f90ab59f230
Author: Dakota Nelson <dakota@nylas.com>
Date:   Mon Apr 25 11:54:35 2016 -0700

    Replace undocumented 'key' objects with explicit 'identity' objects

commit 0999127bcd9c3cd75e17a8a4e6d37c5b53bc22ef
Author: Dakota Nelson <dakota@nylas.com>
Date:   Fri Apr 22 13:33:18 2016 -0700

    Remove unused code

commit 3ddfc4e6946b3ed3e051c561cdda7499d326058f
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 21 17:24:54 2016 -0700

    Further refactor keybase plugin

commit 1b5a9de2c9b2084a214619ce7c551ed6e9283a96
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 21 15:53:54 2016 -0700

    Refactor, and a useless commit msg

commit 999dd82e225b2d8209ee4f7be3cc0ab43c8e53b8
Author: Dakota Nelson <dakota@nylas.com>
Date:   Thu Apr 21 11:43:02 2016 -0700

    Modify participants func to optionally allow from and bcc

commit 9cdf258f5df9fd34ac94bf9822fdd7256af1bb9a
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed Apr 20 16:16:26 2016 -0700

    Fix linter errors (reported via cd build; grunt lint)

commit c14fc59b6f236191b759bda6561c5f343401e8ab
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed Apr 20 16:08:42 2016 -0700

    Keybase API was 500'ing - move API adapter to standard (err, data) callback format and make it only call the callback once when error is hit (return after erroring)

commit f0225603abb56b14e540f8419cb212760cf0883d
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed Apr 20 15:56:27 2016 -0700

    Fix state were user has no pub keys

commit 818881523c698b1bd368344e9ff29ae870f9aae2
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed Apr 20 15:25:30 2016 -0700

    add Logan's changes from the other repo

commit 69f2003ff11be741b97bbb36a7bb4afd29ac7ecc
Author: Dakota Nelson <dakota@nylas.com>
Date:   Wed Apr 20 15:22:34 2016 -0700

    minor styling change to improve keybase popover

commit 4081ad7ef2b4375f5665904eb2d61992bab9cf4d
Author: Dakota Nelson <dakota.w.nelson@gmail.com>
Date:   Wed Apr 20 12:30:40 2016 -0700

    feat(keybase): Initial commit from n1-keybase repo
2016-06-07 13:30:04 -07:00
Ben Gotow b5a00fe84f fix(sidebar): Show icons when hovering over entire section 2016-06-06 17:57:39 -07:00
Juan Tejada 1f727b1041 🎨(empty-state): Add missing empty-state images 2016-06-06 17:23:16 -07:00
Ben Gotow 063c6b814e bump(electron): 1.2.1 and React Devtools in dev mode 🎉 2016-06-03 10:51:39 -07:00
Jackie Luo 64b9a754db 🎨(load): Update loading screen to new style 2016-06-01 15:43:24 -07:00
Ben Gotow c6354feb41 feat(pro): New Nylas identity provider, onboarding and auth
commit 50d0cfb87c
Author: Ben Gotow <bengotow@gmail.com>
Date:   Fri May 27 14:01:49 2016 -0700

    IdentityStore conveniene methods for subscription state

commit 80c3c7b956
Author: Ben Gotow <bengotow@gmail.com>
Date:   Fri May 27 12:03:53 2016 -0700

    Periodically refresh identity, show expired notice in top bar

commit 5dc39efe98
Merge: 4c4f463 906ea74
Author: Juan Tejada <juans.tejada@gmail.com>
Date:   Thu May 26 15:17:46 2016 -0700

    Merge branch 'bengotow/n1-pro' of github.com:nylas/N1 into bengotow/n1-pro

commit 4c4f463f4b
Author: Juan Tejada <juans.tejada@gmail.com>
Date:   Thu May 26 15:16:48 2016 -0700

    Hijack links inside email that go to billing site and add SSO to them

commit 906ea74807
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu May 26 12:02:29 2016 -0700

    Add custom welcome page for upgrading users

commit 2ba9aedfe9
Author: Juan Tejada <juans.tejada@gmail.com>
Date:   Wed May 25 17:27:12 2016 -0700

    Add styling to Subscription tab in prefs

commit 384433a338
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 16:21:18 2016 -0700

    Add better style reset, more IdentityStore changes

commit c4f9dfb4e4
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 15:29:41 2016 -0700

    Add subscription tab

commit bd4c25405a
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 14:18:40 2016 -0700

    Point to billing-staging for now

commit 578e808bfc
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 13:30:13 2016 -0700

    Rename account helpers > onboarding helpers

commit dfea0a9861
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 13:26:46 2016 -0700

    A few minor fixes

commit 7110217fd4
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 12:58:21 2016 -0700

    feat(onboarding): Nylas Pro onboarding overhaul

    Summary:
    Rip out all invite-related code

    Enable Templates and Translate by default

    Scrub packages page, unused code in onboarding pkg

    Remove resizing

    New onboarding screens

    IMAP provider list, validation

    Call success with response object as well

    Renaming and tweaks

    Test Plan: No tests yet

    Reviewers: evan, juan, jackie

    Differential Revision: https://phab.nylas.com/D2985

commit dc9ea45ca9
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 12:52:39 2016 -0700

    Renaming and tweaks

commit 5ca4cd31ce
Author: Ben Gotow <bengotow@gmail.com>
Date:   Wed May 25 11:03:57 2016 -0700

    Call success with response object as well

commit 45f14f9b00
Author: Ben Gotow <bengotow@gmail.com>
Date:   Tue May 24 18:26:38 2016 -0700

    IMAP provider list, validation

commit c6ca124e6e
Author: Ben Gotow <bengotow@gmail.com>
Date:   Sat May 21 11:14:44 2016 -0700

    New onboarding screens

commit dad918d926
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu May 19 16:37:31 2016 -0700

    Remove resizing

commit ecb1a569e2
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu May 19 16:36:04 2016 -0700

    Scrub packages page, unused code in onboarding pkg

commit 3e0a44156c
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu May 19 16:33:12 2016 -0700

    Enable Templates and Translate by default

commit 0d218bc86f
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu May 19 16:30:47 2016 -0700

    Rip out all invite-related code
2016-05-27 14:21:19 -07:00
Juan Tejada 65ace228ed fix(mail-merge): Prevent send button from being pressed multiple times 2016-05-19 16:13:35 -07:00
Evan Morikawa 7b692022e3 fix(event): add calendar icon to new event card 2016-05-18 14:21:22 -07:00
Ben Gotow 26d4361bfb bump(electron): Fix remaining deprecated requires, move to 1.0.1 2016-05-12 13:59:23 -07:00
Ben Gotow 304d3d7138 fix(spam): Better icons for spam / not spam #2107 2016-05-09 17:28:52 -07:00
Ben Gotow da07fe21ab feat(not-spam): Unmark items as junk / spam #2112 2016-05-09 17:28:52 -07:00
Robert Stanfield be48fc4305 The horizontal scrollbar was not showing up when viewing an email (#2028) 2016-05-06 16:44:30 -07:00
Evan Morikawa a16c37f6e7 feat(babel6): Replace stage-0 with electron 2016-05-06 11:55:23 -07:00
Evan Morikawa c483b7a41d feat(babel6): Switch to using local babel-preset-electron 2016-05-06 11:55:22 -07:00
Evan Morikawa 427a23bbe6 feat(babel6): Add babel presets and lint for require.default 2016-05-06 11:54:52 -07:00
Juan Tejada 81fd29c11f perf(mail-merge): Add lazy rendering to table
Summary: Add new LazyRenderedList component and updates Table to use it

Test Plan: TODO

Reviewers: bengotow, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2936
2016-04-29 13:10:15 -07:00
Ben Gotow cd75db9195 fix(activity-list): Add empty state, cap number of items 2016-04-28 14:20:44 -07:00
Evan Morikawa b226dfb5b1 perf(composer): tweak tooltip animation timing & composer loading 2016-04-28 13:42:30 -07:00
Ben Gotow b396618710 fix(win32): Sharper hamburger, better win32 menu 2016-04-28 12:40:14 -07:00
Evan Morikawa f45c497810 fix(sidebar): fix account name styles 2016-04-28 11:45:44 -07:00
Ben Gotow be5b6bd77b fix(build): resolve lesslint issue 2016-04-27 19:20:59 -07:00