More spec fixes
replace process.nextTick with setTimeout(fn, 0) for specs
Also added an unspy in the afterEach
Temporarily disable specs
fix(spec): start fixing specs
Summary:
This is the WIP fix to our spec runner.
Several tests have been completely commented out that will require
substantially more work to fix. These have been added to our sprint
backlog.
Other tests have been fixed to update to new APIs or to deal with genuine
bugs that were introduced without our knowing!
The most common non-trivial change relates to observing the `NylasAPI` and
`NylasAPIRequest`. We used to observe the arguments to `makeRequest`.
Unfortunately `NylasAPIRequest.run` is argumentless. Instead you can do:
`NylasAPIRequest.prototype.run.mostRecentCall.object.options` to get the
`options` passed into the object. the `.object` property grabs the context
of the spy when it was last called.
Fixing these tests uncovered several concerning issues with our test
runner. I spent a while tracking down why our participant-text-field-spec
was failling every so often. I chose that spec because it was the first
spec to likely fail, thereby requiring looking at the least number of
preceding files. I tried binary searching, turning on and off, several
files beforehand only to realize that the failure rate was not determined
by a particular preceding test, but rather the existing and quantity of
preceding tests, AND the number of console.log statements I had. There is
some processor-dependent race condition going on that needs further
investigation.
I also discovered an issue with the file-download-spec. We were getting
errors about it accessing a file, which was very suspicious given the code
stubs out all fs access. This was caused due to a spec that called an
async function outside ot a `waitsForPromise` block or a `waitsFor` block.
The test completed, the spies were cleaned up, but the downstream async
chain was still running. By the time the async chain finished the runner
was already working on the next spec and the spies had been restored
(causing the real fs access to run).
Juan had an idea to kill the specs once one fails to prevent cascading
failures. I'll implement this in the next diff update
Test Plan: npm test
Reviewers: juan, halla, jackie
Differential Revision: https://phab.nylas.com/D3501
Disable other specs
Disable more broken specs
All specs turned off till passing state
Use async-safe versions of spec functions
Add async test spec
Remove unused package code
Remove canary spec
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/D3300https://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/7278https://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
Summary: Ran into issues with the selected tag having different styles associated with it in taiga and in darkside. Fixed these.
Test Plan: Tested on my machine
Reviewers: jackie
Reviewed By: jackie
Subscribers: jackie
Differential Revision: https://phab.nylas.com/D3144
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 +
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 +
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
Summary:
Keymaps & menus CSON => JSON, remove AtomKeymaps, CommandRegistry use of CSS selectors, use Mousetrap instead
Important Notes:
- The `application:` prefix is reserved for commands which are handled in the application process. Don't use it for other things. You will not receive the events in the window.
- Maintaining dynamic menus seems to come with quite an overhead, because Electron updates the entire menu every time. In the future, we'll need https://github.com/electron/electron/issues/528 to really make things nice. I will be tracking this upstream.
- The format for keyboard shortcuts has changed. `cmd-X` is now `command+shift+x`
Test Plan: Run tests
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2917
Summary:
- Removes controlled focus in the composer!
- No React components ever perfom focus in lifecycle methods. Never again.
- A new `Utils.schedule({action, after, timeout})` helper makes it easy to say "setState or load draft, etc. and then focus"
- The DraftStore issues a focusDraft action after creating a draft, which causes the MessageList to focus and scroll to the desired composer, which itself decides which field to focus.
- The MessageList never focuses anything automatically.
- Refactors ComposerView apart — ComposerHeader handles all top fields, DraftSessionContainer handles draft session initialization and exposes props to ComposerView
- ComposerHeader now uses a KeyCommandRegion (with focusIn and focusOut) to do the expanding and collapsing of the participants fields. May rename that container very soon.
- Removes all CommandRegistry handling of tab and shift-tab. Unless you preventDefault, the browser does it's thing.
- Removes all tabIndexes greater than 1. This is an anti-pattern—assigning everything a tabIndex of 0 tells the browser to move between them based on their order in the DOM, and is almost always what you want.
- Adds "TabGroupRegion" which allows you to create a tab/shift-tabbing group, (so tabbing does not leave the active composer). Can't believe this isn't a browser feature.
Todos:
- Occasionally, clicking out of the composer contenteditable requires two clicks. This is because atomicEdit is restoring selection within the contenteditable and breaking blur.
- Because the ComposerView does not render until it has a draft, we're back to it being white in popout composers for a brief moment. We will fix this another way - all the "return unless draft" statements were untenable.
- Clicking a row in the thread list no longer shifts focus to the message list and focuses the last draft. This will be restored soon.
Test Plan: Broken
Reviewers: juan, evan
Reviewed By: juan, evan
Differential Revision: https://phab.nylas.com/D2814
Summary:
- New behavior is that the in split mode, you will perform actions on
the selection via the MessageListToolbar (the toolbar positioned above
the message list)
- Refactored and moved around a bunch of code to achieve this:
- Mostly renaming stuff and moving stuff around and removing some
duplication
- Update naming of toolbar role to a single role, and update relevant code
- Converted and refactored a bunch of code into ES6, specifically to reuse the code for the ThreadActionsToolbar at the 2 locations
- Deprecated MultiselectActionBar in favor of MultiselectToolbar
- Deprecated old roles
- Punted the animation for the stackable cards in the selection display for now.
- #370
Test Plan: - Manual and unit tests
Reviewers: evan, drew, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2756
Summary:
- In Gmail all threads /must/ belong to either All Mail, Trash and Spam, and
they are mutually exclusive, so we need to make sure that any add/remove
label operation still guarantees that constraint
- Update ChangeLabelsTask to modify the set of labels to add and remove
based on this rule
- Update tasksFor archiving, moving to trash and moving to spam so they
don't affect any other labels in the thread, as gmail does.
- Removing from view /will/ remove any current labels, but will also
move between all mail and trash as needed
- Remove Inbox, Trash and Spam from the CategoryPicker, as Gmail does
Test Plan: - Unit tests
Reviewers: drew, evan, bengotow
Reviewed By: drew, evan, bengotow
Differential Revision: https://phab.nylas.com/D2715
Summary:
- FixedPopover now correctly adjusts itself when overflowing outside
window, in all directions
- Updates styles
- Adds specs
- Remove Popover and popover.less, and refactor all code that used it in
favor of the new FixedPopover
Test Plan: Unit tests
Reviewers: drew, evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2697
- Removes use of observables from category store and keeps a big cache
of categories per account
- Upates Category Observables with new helper observables
- Updates CategoryPicker and AccountSidebarStore to use observables
- Misc fixes
Summary:
- WIP: Need to fix tests and some errors!
- Refactors Category class to hold information about its type
- Refactors CategoryStore to rely on observables instead of local caches
- Adds and updates Observables and helpers
- Refactors ContactStore to hold entire cache of contacts instead of per
current account
- Same for ContactRankingStore and other stores
- Refactors method names for AccountStore + some helpers
- Updates MailViewFilter to hold an account
- Adds basic Unified filter
- Replaces AccountStore.current calls with either:
- The account of the currently focused MailViewFilter
- The account associated with a thread, message, file, etc...
- A parameter to be passed in
- Arbitrarily, the first account in the AccountsStore
Test Plan: - Unit tests
Reviewers: evan, bengotow
Differential Revision: https://phab.nylas.com/D2423
Summary:
Refactor keymaps to wrap components with a <KeymapHandlers /> component.
This more Reactful way of declaring keyback handlers prevents us from
needing to subscribe to `atom.commands`
Test Plan: new tests
Reviewers: bengotow, juan
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2226
Summary:
This diff centralizes logic for creating common tasks for things like moving to trash, archive, etc. TaskFactory exposes a set of convenience methods and hides the whole "and also remove the current label" business from the user.
This diff also formally separates the concept of "moving to trash" and "archiving" so that "remove" isn't used in an unclear way.
I also refactored where selection is managed. Previously you'd fire some action like archiveSelection and it'd clear the selection, but if you selected some items and used another method to archive a few, they were still selected. The selection is now bound to the ModelView as intended, so if items are removed from the modelView, they are removed from it's attached selection. This means that it shouldn't /technically/ be possible to have selected items which are not in view.
I haven't refactored the tests yet. They are likely broken...
Fix next/prev logic
Test Plan: Run tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2157
Summary:
write tests for adding/removing existing labels and popover closing
add more tests
address code review comments
fix the tests
add test for creating label
add test for creating label and queueing change label task
add test for creating a folder
add syncback category task spec
make the rest of the tests pass
remove unnecessary parens
add a few more tests
add last test
Test Plan: added some tests. all tests green
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2010
Summary:
This diff fixes T3389 and makes it possible to define mail views which are not based on a category and focus them in the app.
I think that we need to create a new index on the starred attribute to make sure the query runs fast.
More tests WIP
Test Plan: Run tests, more coming soon!
Reviewers: dillon, evan
Reviewed By: evan
Maniphest Tasks: T3389
Differential Revision: https://phab.nylas.com/D1979
Summary:
This diff replaces the Namespace object with the Account object, and changes all references to namespace_id => account_id, etc. The endpoints are now `/threads` instead of `/n/<id>/threads`.
This diff also adds preliminary support for multiple accounts. When you log in, we now log you in to all the attached accounts on edgehill server. From the preferences panel, you can auth with / unlink additional accounts. Shockingly, this all seems to pretty much work.
When replying to a thread, you cannot switch from addresses. However, when creating a new message in a popout composer, you can change the from address and the SaveDraftTask will delete/re-root the draft on the new account.
Search bar doesn't need to do full refresh on clear if it never committed
Allow drafts to be switched to a different account when not in reply to an existing thread
Fix edge case where ChangeMailTask throws exception if no models are modified during performLocal
Show many dots for many accounts in long polling status bar
add/remove accounts from prefs
Spec fixes!
Test Plan: Run tests, none broken!
Reviewers: evan, dillon
Reviewed By: evan, dillon
Differential Revision: https://phab.nylas.com/D1928
Summary:
Consolidate the smarts from ChangeFolderTask into a generic ChangeMailTask
ChangeMailTask:
- only makes requests for threads / messages that actually changed
- handles incrementing / decrementing locks
- writes changes to the database in a single pass, and only writes modified models
- encapsulates the undo state that was built into ChangeFolderTask
This change means that ChangeLabelsTask enjoys the same "smarts" as ChangeFolderTask. Label changes resulting in no-ops do not create web requests, you can undo label changes and they go back to the correct previous state.
Replace "UpdateThreadsTask" and "UpdateNylasObjectsTask" with subclasses based on the same code used for folder/labels
This means that the naming and parameter sets are consistent for all thread/message changing tasks. It also means that starring/marking as use the same (tested) business logic and starring 999 already-starred threads doesn't create 999 requests.
Go away DraftCountStore - nobody wants you in secondary windows
Add "Debug query plans" option which prints out the steps the database is taking. Look for "SCAN" to now you're having a bad time.
Make "version" field queryable, when we receive deltas/API response, find all versions of existing models in a single query without loading or parsing the objects
Contact: Add index for lookup by email
Label: add index for lookup by name
Message: Add index for message body join table
Test Plan: Run tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1840