Commit graph

1864 commits

Author SHA1 Message Date
Evan Morikawa 9cde226598 refactor(registry): move all registries into src/registries 2016-11-14 14:01:00 -08:00
Halla Moore a366f3be9b feat(calendar): Add functionality to create/edit events
Summary:
Add some basic functionality for creating and editing calendar events

This is a weird work-around diff. Original review is at
https://phab.nylas.com/D3396

Test Plan: manual

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D3426
2016-11-14 12:21:29 -08:00
Joris Pelgröm 55fc10b513 Rename Google Apps to G Suite in onboarding (#3047)
Google renamed Google Apps (both 'normal' and education editions) to G
Suite on 2016-09-29. See
https://blog.google/products/g-suite/all-together-now-introducing-g-suite/
for the announcement. Updated text for account selection to match Google's
branding.
2016-11-14 10:53:47 -08:00
Ben Gotow 80b315d708 deps(*): Lift deps out of packages for simpler install / better deduping 2016-11-09 14:24:10 -08:00
Ben Gotow 1157fdc450 build(*): electron-compile, electron-packager instead of custom tooling
Summary:
This diff removes significant cruft from N1's compilation and build tooling:

- Electron-Packager replaces most of the code in build/tasks/* used to copy things,
  bundle things, download electron, etc.

- script/bootstrap has been replaced with a much simpler script that does not use
  APM, does not download Electron (we just use electron as an NPM dep) and does
  not manully compile sqlite. It requires NPMv3, but I think that's safe.

- babel and eslint are now devDependencies of the main project. The main project
  also supports optionalDependencies now.

- npm test and npm start replace ./N1.sh

- APM is still around, and is only put into N1 so it can install plugins at runtime.
  It should be removed as soon as we notify package maintainers and have them provide zips.

- N1 no longer has it's own compile-cache or babel/typescript/coffeescript compilers.
  It delegates to electron-compile and electron-compilers. Both of these packages had
  to be forked and modified slightly, but I'm hopeful the modifications will make it back
  in to the projects and you can still consult their documentation for more info.

  + In the near future, I think we should stop shipping electron-compilers with N1. This
    would mean that all plugins would need to be compiled on pre-publish, just like NPM
    packages, and would complicate the local development story a bit, but would make the
    app smaller. electron-compile is not supposed to compile at runtime in the prod app,
    just pull from the compile cache.

- I've re-organized Grunt according to Grunt best practices, where each tasks/* file
  specifies it's own config and imports grunt tasks.

- Unfortunately, I was not able to use any open source projects for the deb and rpm builds,
  because we have things like postinst hooks and start menu items which are not supported
  by the electron installer-generators.

WIP

Turn off all LESS compilation, because themes. Doh.

Use Grunt for new build process too, just remove tasks

More changes

Add babel-eslint

Remove unused react-devtools

WIP

Add name

Ignore nonexistent

Switch to more modern approach to config for grunt

Move zipping to mac installer task

Restructure publish task so it aggregates first, can log useful info if publishing is disabled

Fix build dirs

Fix win installer

Fix linux installer

Fix linux installer

Try making linux

A few more

Updates

Upadtes

fixes

fixes

Get rid of non-meaningful variables

Resolve assets path

Insert nylas.sh

Clean up args more

Actually use description

Fix display name ugh

More tweaks

Expliclty write /usr/bin/nylas

Improve vars

Use old nylas.sh

Reinstate APM to better scope this diff

Test Plan: Test on Mac, Windows, Linux

Reviewers: evan, jackie, juan

Reviewed By: jackie, juan

Differential Revision: https://phab.nylas.com/D3411
2016-11-09 13:52:10 -08:00
Ben Gotow f558f05d69 fix(image-editing): Fix selector for finding <img> 2016-11-08 11:54:19 -08:00
Juan Tejada 35343ac963 fix(send-and-archive) Make sure package is registered in work window so PerformSendActionTask can find it (#3023) 2016-11-07 14:35:38 -08:00
Ben Gotow 34b02018ff fix(local-sync): Display relevant error so users can debug 2016-11-07 14:12:53 -08:00
Jamie Wilson d366957829 (darkside) fixing composer fields spacing (#3020)
* fixing composer fields spacing

* updating attachement selector names
2016-11-07 09:49:25 -08:00
Evan Morikawa b102b39037 fix(spec): fix DST related spec failure & linter error 2016-11-05 11:56:23 -07:00
Jackie Luo 3dbd9b7278 feat(notifications): Allow notifications to be dismissable 2016-11-04 16:30:28 -07:00
Ben Gotow 4cd60e1042 fix(darkside): remove notifications shadow 2016-11-04 11:32:14 -07:00
Ben Gotow d214a52192 fix(prefs): Only scroll to top when switching tabs 2016-11-04 11:32:14 -07:00
Halla Moore a269a103e1 Revert "💄(messages): Remove max-width styles"
This reverts commit 45dc4a08be.
2016-11-04 11:03:22 -07:00
Ben Gotow 403d2096b8 fix(gh-sidebar): Don’t customize <h2> styling 2016-11-04 10:58:34 -07:00
Halla Moore 45dc4a08be 💄(messages): Remove max-width styles
Although some word-wrapping may look better at 800px, it looks much worse
when we can't properly display html emails that are meant for a wider area.
It also just seems a little weird to limit our users in this way.
2016-11-04 10:52:51 -07:00
Juan Tejada ff61527d75 fix(search): Prevent duplicate results from search query
This is a temporary fix which adds defensive code to prevent duplicate results
from being returned from the thread search query which causes N1 to enter a loop
and freeze (#3001).

Duplicate results from the search query likely indicate that a thread
was indexed twice, which was not the case before. The cause for this is
still at large.
2016-11-04 10:50:10 -07:00
Ben Gotow 919697c070 fix(theme-picker): Regression in design of theme picker 2016-11-04 10:29:59 -07:00
Juan Tejada 3fc9ee7927 💄(attachments): Fix file attachment styles 2016-11-03 23:02:15 -07:00
Juan Tejada 2c63ae944b fix(attachments) Add default value for filePreviewPaths in case they are not provided 2016-11-03 18:26:11 -07:00
Ben Gotow be3d2f0b44 fix(auth): Add partition back to webview 2016-11-03 17:42:20 -07:00
Juan Tejada 189b15e586 feat(attachments): Generate and display thumbnail previews for files (mac only)
Summary: Adds option to view preview thumbnails for attachments. This commit updates the FileDownloadStore to generate file thumbnail previews for attachments via `qlmanage` and displays them in the AttachmentItem component.

Test Plan: Manual

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D3393
2016-11-02 17:27:53 -07:00
Jackie Luo 4efcbb4fc3 fix(email-frame): Refactor if/else for frame height 2016-11-02 15:56:27 -07:00
Jackie Luo 57c25b7fa9 fix(email-frame): Revert to body scrollHeight if documentElement's is zero 2016-11-02 15:35:58 -07:00
Jackie Luo bf95181ea8 fix(logging): Remove console.log() 2016-11-02 15:35:58 -07:00
Jackie Luo e1a5e6e1ea fix(email-frame): Prioritize documentElement for scroll height 2016-11-02 15:35:58 -07:00
Ben Gotow c59fc486d7 fix(search): Rename package, fix column naming issue 2016-11-02 13:13:16 -07:00
Ben Gotow 432012a6bc feat(search): Fix slow queries with FTS5 on Contacts 2016-11-02 13:03:28 -07:00
Halla Moore d996273b7b fix(email-frame) Only use documentElement scrollHeight if it is taller than body
There are cases where the documentElement has a scrollHeight of 0, even if
the body has a larger scrollHeight. Before, we were always using the
documentElement if it was present. Now, we use the maximum scrollHeight.
2016-11-02 11:38:26 -07:00
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
Halla Moore afbcfb6853 fix(sidebar-notifs): Set containersRequired on the notifs-wrapper
Switch from manually setting containerRequired to false on each individual
notification to setting it on the InjectedComponentSet within the
notifs-wrapper. This way, people adding new notifications don't need to
remember to manually set it themselves.
2016-11-01 11:46:47 -07:00
Juan Tejada 44a7fa7117 fix(reminders): Add missing assets, ui cleanup, restore dead code
Summary:
This commit adds a couple of missing assets, including the icon for the
plugin list and other misc icons. It also switches to the new UI where
we use the thread timestamps to display the reminder date in the
Reminders perspective instead of using mail labels. It also adds a
header to the threads inside the reminders perspective to indicate that
a reminder will be triggered if no one replies to their email.

It also adds a header to indicate when a message has been brought back
to the inbox due to a reminder based on sdw's designs.

Finally it restores some code that magically disappeared when landing
reminders + other misc cleanup

Test Plan: Manual

Reviewers: bengotow, halla

Reviewed By: bengotow, halla

Differential Revision: https://phab.nylas.com/D3388
2016-11-01 11:39:50 -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 2c1dbeb31f fix(channel): only show stable or beta
Or the salesforce channel if you've ever used it before
2016-10-28 16:49:10 -04:00
Ben Gotow 020cc06b36 lint(send-action-button): Whoa nylaslint just chill 😂 2016-10-27 15:06:51 -07:00
Ben Gotow 1c21137600 es6(list): ListDataSource, subclasses => ES2016 2016-10-27 12:08:59 -07:00
Juan Tejada 990719685a fix(warnings):Fix react warning caused by decorator 2016-10-27 12:05:02 -07:00
Juan Tejada da48d8433e fix(specs): Fix date input specs 2016-10-27 11:35:37 -07: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 316933fa58 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
2016-10-26 13:20:26 -07:00
Jackie Luo 0d5301c9ce 🎨(notifications): Remove indent and left padding from notifications 2016-10-26 12:19:12 -07:00
Yishu See 6377da8291 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
2016-10-26 11:57:57 -07:00
Niraj Pant 48db9ecd9f Fix JSON spacing (#2958)
Match JSON style to rest of file
2016-10-26 11:54:48 -07:00
Jackie Luo dc934b396a Merge branch 'master' of github.com:nylas/N1 2016-10-25 14:08:26 -07:00
Jackie Luo ef9ed7886f fix(warning): Don't render participant picker with null value 2016-10-25 14:08:13 -07:00
Halla Moore 55bf203596 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
2016-10-25 11:05:34 -07:00
Evan Morikawa 1c4ff31d68 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
2016-10-24 22:44:16 -04:00
Juan Tejada a95c17bce3 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
2016-10-24 14:18:29 -07:00