Summary:
It wasn't selecting the account after you added it
Fixes T3569
Test Plan: new tests
Reviewers: dillon, bengotow
Reviewed By: bengotow
Maniphest Tasks: T3569
Differential Revision: https://phab.nylas.com/D2085
Summary:
Package names must match directory names
Not going to use new Swithc component, but might as well be part of component kit
Move APMWrapper into core so it can be used from anywhere
Move manual package install coe to package-manager
Gray out window titles when in the background
Do not allow multiple onboarding windows at the same time
Finalize styling f initial-prefs and initial-packages, make it work (only github package atm)
Other nits
Change the welcome copy:
- Call it easy to extend vs easy to use
- Remove the subtitle from the first screen which doesn't really fit
- Make the second page emphasize that its created /for/ developers and easy to extend with Javascript.
- Explain what the sync engine is rather than saying it's "faster and more extensible" (??)
Test Plan: Run tests
Reviewers: evan, dillon
Reviewed By: evan
Maniphest Tasks: T3346
Differential Revision: https://phab.nylas.com/D2079
Summary: Adds a prominent blue button to email us feedback
Test Plan: Run tests
Reviewers: dillon, evan
Reviewed By: dillon, evan
Differential Revision: https://phab.nylas.com/D2081
Summary: Fixes in tabbing and css updates in composer
Test Plan: new tests
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2075
- rm dead addAccount code that came back in a merge
- use command everywhere to open onboarding
- centralize close vs. quit logic in an OnboardingAction
- fix issue where the window size is calculated improperly because we have a padding value which is a fraction of height. In fact, remove no-top / padding-top 10% for good.
Summary:
Now with more CSS
Also fixed flow for when you're just adding an account
Fixes T3805
Test Plan: manual :(
Reviewers: drew, bengotow
Reviewed By: bengotow
Maniphest Tasks: T3805
Differential Revision: https://phab.nylas.com/D2071
- The FocusedContactStore was triggering too often, and leaving it up to the FullcontactStore to fetch the full Contact model for the focused contact (pulled from thread.)
The FocusedContactStore triggers more responsibly, and registering for the role "MessageListSidebar:ContactCard" now gives you the focused contact as a full database model. The whole ContactCard region also fades in and out.
Summary:
Better error handling in the account settings page and a loading spinner
Add Account... replaces "Link External Account", and it works
Clean dead code from onboarding pages, remove base class component
Always show the account switcher
rm dead EdgehillAPI code, AccountStore now manages accounts and credentials in config, not in database
Fix specs
Test Plan: Run tests
Reviewers: dillon, evan
Reviewed By: evan
Projects: #edgehill
Differential Revision: https://phab.nylas.com/D2059
Summary: Simplify the default window size, restore window size when the main window is loaded, fix serialization of packages in beforeunload.
Test Plan: Run tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2061
Summary:
Fixes T3496
This is a patch just so that simple modal doesn't show.
Test Plan: manual
Reviewers: bengotow
Reviewed By: bengotow
Maniphest Tasks: T3496
Differential Revision: https://phab.nylas.com/D2053
Summary:
Remove logout menu item and buttons, turn Link External Account to Add Account
Onboarding window starts hidden, is shown when react component is mounted and sized
Use get/setBounds to animate position and size at the same time smoothly
Fix specs, change 401 notice
Delay bouncing to Gmail to show users the Gmail screen momentarily
Make the animated resizing code defer so it doesn't run in a hard loop, and other animations can run at the same time
Bring back crossfade between screens, remove left/right shift on welcome screens
Test Plan: Run tests
Reviewers: drew, evan
Reviewed By: evan
Maniphest Tasks: T3529
Differential Revision: https://phab.nylas.com/D2054
Summary:
Depends on D2049
This change replaces the onboarding flow to include new graphics, copy, and
support for the new Nylas auth flow. New account choosing UI presents a list
of account types, rather than guessing based on an entered email. Pages before
and after introduce the user to different features of the client.
Known issue: Polling for gmail account connection works, but continues even if
you leave the page.
Test Plan: Manual testing.
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2050
Summary:
Fixes T3510
Fixes T3509
Fixes T3508
Fixes T3549
Extracted clipboard service
Remove unused style prop
Begin extracting quoted text from composer. Spec for clipboard service
Fix contenteditable specs
Begin to extract floating toolbar
Extract out DOMUtils and further extract floating toolbar
Further extracting domutils and floating toolbar
composer floating toolbar extracted
Fixes to hover and link states
Collapse adjacent ul lists
Fix outdent when deleting on a bulleted list
Fix bullet controls
Fixes to list creation and deletion
Add underline keyboard shortcut
Test Plan: manual :(
Reviewers: dillon, bengotow
Reviewed By: bengotow
Maniphest Tasks: T3508, T3509, T3510, T3549
Differential Revision: https://phab.nylas.com/D2036
Summary:
Fixes T3568
The composer windows had the wrong cache in their `ContactStore`s. Since
it's VERY expensive to repopulate a ContactStore's cache, we now have a
`WindowBridge` that allow you to, with a Promise, invoke methods on the
main window instead.
(Still need to fix some tests)
Test Plan: Fixed tests
Reviewers: dillon, bengotow
Reviewed By: dillon, bengotow
Maniphest Tasks: T3568
Differential Revision: https://phab.nylas.com/D2045
Summary:
fixes T3563
todo
[x] check with @bengotow and @evan -- does this solution make sense to you?
[x] decide on the actual visual cue to the user -- @bengotow you suggested a loader or spinner, but i was thinking that actual copy should be used so it doesn't look like an unhelpful spinner which goes indefinitely. what do you think of the copy here?
[ ] implement spinner similar to sending a draft
[ ] write tests
[ ] verify that we're showing progress in a helpful way
problem
- new users would see nothing in edgehill after they log in, with no indication on why they can't see any of their mail
- in actuality, our backend is actively pulling all their mail to serve it to edgehill
- new users think edgehill is broken because they're unaware of the work that our backend was doing
solution
- when the backend sends deltas to edgehill, we show a message in the activity bar saying that we're trying to get their mail
- we'll show the sync progress
Test Plan: still need to add tests. all previous tests still green.
Reviewers: bengotow, evan
Subscribers: sdw, bengotow, evan
Maniphest Tasks: T3563
Differential Revision: https://phab.nylas.com/D2032
Summary: Fixes T3625
Test Plan: Easy to test by opening/closing reply options dropdown as a large image attachment is downloaded
Reviewers: evan, dillon
Reviewed By: dillon
Maniphest Tasks: T3625
Differential Revision: https://phab.nylas.com/D2034
Summary: i accidentally messed up phab and arcanist locally, so this diff is to fix these mistakes i made. it's the combination of D2037 and D2028.
Test Plan: tested manually
Reviewers: bengotow, evan
Differential Revision: https://phab.nylas.com/D2043
Summary:
still WIP, but functionality is there.
TODO:
[x] write tests
[x] swap out the current markasread icon for the correct markasread icon that @sdw is making
[x] figure out how to address this point by @bengotow: https://phab.nylas.com/D2024?id=19139#inline-12168
Test Plan: tested manually. still need to write tests though.
Reviewers: evan, bengotow
Reviewed By: bengotow
Subscribers: sdw
Maniphest Tasks: T3483
Differential Revision: https://phab.nylas.com/D2024
Summary:
I honestly can't wait until we refactor this logic into a sort of "LiveQuery" class so that it can apply to all of the queries in the whole app. These optimizations make deleting / creating drafts quite a bit more responsive because there's no delay between the database store emitting an event and the view updating.
Fixes T3456
No explicit tests for now because we'll pull this into a nice class soon
Test Plan: Run tests
Reviewers: dillon, evan
Reviewed By: evan
Maniphest Tasks: T3456
Differential Revision: https://phab.nylas.com/D2019
Summary: Mailto link handling for ubuntu and other linux platforms
Test Plan: A few new tests
Reviewers: dillon, evan
Reviewed By: dillon, evan
Differential Revision: https://phab.nylas.com/D2023
Summary: ready for final code review! @evan @bengotow
Test Plan: added some tests for the account switcher
Reviewers: evan, bengotow
Reviewed By: evan, bengotow
Maniphest Tasks: T3546
Differential Revision: https://phab.nylas.com/D2016
Summary:
Previously, if a draft was deleted while a DraftChangeSet had uncommitted changes, it would blow up trying to find the draft.
This is bad, and can happen in normal scenarios. There are several changes in this diff:
- The DraftChangeSet no longer retrieves the draft from the database before saving changes. Instead, the save logic is in the DraftStoreProxy which already has a version of the draft kept fresh by a subscription to the DraftStore.
- The SyncbackDraftTask already had logic for POSTing when a PUT to a draft returns a 404, so no new logic was necessary there. THe new "commit" logic causes us to put back the draft that was lost, and then when we save it we detatch it from it's serverId and re-save.
In manual testing, this transparently handles the case where you delete a draft from Gmail while editing it.
Test Plan: I've added 22 tests for the DraftChangeSet and DraftStoreProxy
Reviewers: dillon, evan
Reviewed By: dillon, evan
Differential Revision: https://phab.nylas.com/D2012
Summary: Minor tweaks so that the word is selected and spellcheck / replacement works
Test Plan: No test coverage at the moment - need to think about ways to test selection
Reviewers: evan, dillon
Reviewed By: dillon
Differential Revision: https://phab.nylas.com/D2006
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:
Fixes:
- Search bar dropdown doesn’t go away if you focus into a message
- If a search times out, it continues to display nothing
- Clicked “Inbox” from a search and it didn’t clear the search box
Test Plan: edgehill --test
Reviewers: dillon, bengotow
Reviewed By: dillon, bengotow
Differential Revision: https://phab.nylas.com/D2000
Summary:
This started when I noticed that drafts weren't dissapearing from the
draft list after send. This was a pretty big bug because if you ever
clicked on one again and tried to re-send it would throw a 400 error
saying the draft id doesn't exist.
This uncovered a few fundamental issues with the DB.
First of all, the reason the draft list wasn't updating was because the DB
trigger that happened when we got in a new message, was being ignored
since the diff contained no drafts (it's now a message).
The bigger issue was that if you had a draft with only a clientId, gave it
a serverId, and tried to call "save", the REPLACE INTO method would not
update the old object, but rather create a second duplicate. This is
because the `id` field was being used as the PRIMARY KEY, and in this
case, that `id` field changed! The fix was to change the PRIMARY KEY to be
the `cilent_id` instead of the `id` and use that as the REPLACE INTO
index.
We still need the `id` field; however, because all of our reads depend on
that field usually being the serverId
Fixes T3507
Test Plan: See new and updated tests
Reviewers: dillon, bengotow
Reviewed By: bengotow
Maniphest Tasks: T3507
Differential Revision: https://phab.nylas.com/D1992
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: Fixed a bug bug with the quoted text clearing the bodies on replies
Test Plan: all the tests
Reviewers: dillon, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1981
Summary: Mixpanel API misuse makes me sad.
Test Plan: No tests, but easy to check with Mixpanel.com
Reviewers: dillon, evan
Reviewed By: dillon, evan
Differential Revision: https://phab.nylas.com/D1978
Summary: Also enhancements to the developer toolbar
Test Plan: edgehill --test
Reviewers: dillon, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1976
Summary: Fixes T2095, iFrames resize when images load, when container is resized, etc.
Test Plan: Run tests
Reviewers: dillon, evan
Reviewed By: dillon, evan
Maniphest Tasks: T2095
Differential Revision: https://phab.nylas.com/D1964
Summary: NOTE: this ticket and this diff do not address turning the 'Important' label into a more user-friendly chevron. I created T3477 for that.
Test Plan: added more tests. however, seems like somebody merged some tests which are failing.
Reviewers: bengotow, evan
Reviewed By: evan
Maniphest Tasks: T3454
Differential Revision: https://phab.nylas.com/D1963
Summary:
Move sync workers and Edgehill token checks to work window
Move the task queue and database setup to the work window
Move ContactStore background refresh to work window
Store the task queue in the database
WIP
The TaskQueue now puts tasks in the database instead of in a file, which also means it can be observed
Move all delta sync and initial sync to a package, make NylasSyncStore which exposes read-only sync state
DraftStore no longer reads task status. Once you set the "sending" bit on a draft, it never gets unset. But that's fine actually.
If your package lists windowTypes, you *only* get loaded in those windowTypes. If you specify no windowTypes, you get loaded in the root window.
This means that onboarding, worker-ui, worker-sync, etc. no longer get loaded into the main window
ActivitySidebar has a special little store that observes the task queue since it's no longer in the window
Move "toggle component regions" / "toggle react remote" to the Developer menu
Move sync worker specs, update draft store specs to not rely on TaskQueue at all
Test Plan: Run existing tests, all pass
Reviewers: dillon, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1936
Summary: Emergency fix for broken logic consuming delta updates. Also includes specs for untested functionality.
Test Plan: Run new tests
Reviewers: dillon, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1939
Summary:
Fixes T3427
Use the more generic serialize registered objects instead of the DatabaseObjectRegistry directly.
Fix a bug in the serialize function that was preventing it from inflating the top level object if it had a constructorName.
Remove contact checks because tokenizing-test-field is generic. Participant text field checks type.
Hot new drag and drop integration test
Test Plan: Run new test (<3 react)
Reviewers: dillon, evan
Reviewed By: dillon, evan
Maniphest Tasks: T3427
Differential Revision: https://phab.nylas.com/D1933
Summary:
We designed the onBeforeUnload handler to resume a "close window" event, but it actually needs to resume a quit as well. This has become an issue recently and may be due to the DraftStore sessions not being removed from the DraftStore.
To test: Create a popout draft, close it, and then try to quit the app.
Test Plan: Run updated tests
Reviewers: dillon, evan
Reviewed By: dillon, evan
Differential Revision: https://phab.nylas.com/D1932
Summary:
d1c44dcb54
Also lock config across processes to prevent the user from being logged out when the main process reads config before it's finished writing. This is what is causing the login window to appear.
Test Plan: Rapidly tap between the two display modes. Note that it no longer reverts to the wrong one intermittently.
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1931
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:
Adding serialzable registry
Added DatabaseObjectRegistry
rename modelReviver to deserializeObject
Consolidate deserizlie
Get rid of model methods from Utils
DatabaseRegistry change notifications
Logic to throttle database refresh requests
Fixes in nylas-exports
Silent model setup
Continue to resolving the database setup phase for non main windows.
A packages `activate` method does not actually get called until the
DatabaseStore says that it's ready. This is necessary to ensure that a
package that introduces database changes has those schema changes take
hold before the activate happens.
However, in windows like the `onboarding` window that do not depend on a
database at all, there is no setup that is run and the promise use to
never resolve thereby making the packages never activate.
In this case, any external windows will go ahead and let their packages
activate.
Check subclass instead of instance!
Use the correct types for "messages" and "drafts"
Move Salesforce models
Proper references to Model and Attributes
Convert Salesforce stores to NylasStores and fix paths
Move database setup to DB
Test Plan: todo
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1899
Summary:
Fixes T3252
When links were clicked with malformed, relative, or malicious href links
we'd perform default behavior instead of catching them.
If you have href="www.foo.bar" the browser by default thinks it's a
relative link. In our case it would prepend the full default base URI
which is file://path/to/edgehill. This would at best fail to do anything
and at worst execute an arbitrary file.
We now blacklist `file:` and check for the existence of a valid RFC 3986
schema on the URI.
Test Plan: manual
Reviewers: bengotow
Reviewed By: bengotow
Maniphest Tasks: T3252
Differential Revision: https://phab.nylas.com/D1888
Summary: @evan -- would love to get your opinion on this approach!
Test Plan: add new tests
Reviewers: evan
Reviewed By: evan
Subscribers: evan
Maniphest Tasks: T3360
Differential Revision: https://phab.nylas.com/D1904
Summary:
"results.length" not "result.length".
Eventually I want MessageBodyProcessor to be the public interface to another process which asynchronously runs message body parsing? At the very least, caching the results means that miscelaneous refreshes to the message list don't incur significant string processing cost.
Test Plan: No new tests here
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1898
Summary:
Things still to come:
- General tab
- Signatures tab (potentially remove and land)
Adding emacs things to gitignore
Adding progress. iterating on html/css is incredibly painful
Added layout for accounts page.
Adding layout for appearance page
layout for shortcuts preferences page
adding layount for notifications menu
Adding signatures layout
WIP
WIP - tab switching, accounts tab
WIP ALL THE THINGS
Keymap template support (Gmail / outlook, etc.)
Test Plan: No tests atm
Reviewers: evan
Differential Revision: https://phab.nylas.com/D1890
Summary: Archive folder does not exist in Gmail. Instead, use the all mail folder
Test Plan: manual
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1891
Summary: fix(service): Remove redundant tail newline when hiding previous in compose view. Fixes T2467.
Test Plan: Added a test to verify that all tail newlines are removed except one. Added another to verify that non-tail newlines aren't removed. Tweaked an existing test to make it pass.
Reviewers: bengotow
Reviewed By: bengotow
Maniphest Tasks: T2467
Differential Revision: https://phab.nylas.com/D1864
Summary: Allow 'Subject=' and 'SUBJECT=' as valid keys for 'mailto:' links.
Test Plan: Didn't break any tests, so I added a few.
Reviewers: bengotow
Reviewed By: bengotow
Maniphest Tasks: T2415
Differential Revision: https://phab.nylas.com/D1865
This fixes T2233, which was caused by the main window trying to write config.cson very often as initial sync happened, and the parent process trying to observe those changes on disk to watch for the user's API key being removed. Further refactoring would be good but this will fix it.
- It's slow, and causes performLocal to take much longer
- It's making changes we receive from the streaming API a few moments later
- We don't actually display nested folder data anywhere important
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
Summary:
We now have a `MessageItemContainer` class that handles the logic of
deciding what kind of message to show. We introduce a new `PendingMessage`
(which is just a sublcass of `MessageItem`) that has the spinner and
stuff.
Also tests
Test Plan: edgehill --test
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1833
Summary:
fix(undo-redo): UndoRedoComponent does not take props
fix(category-picker):
- Use Actions.queueTask like the rest of the app so UndoRedoStore can see it. Can change this in the future but it's currently the only place in the app we directly queue tasks.
- Stop subscribing to the FocusedContentStore / FocusedCategoryStore (which are not used in setState?) since we receive threads as props
- Rename categoryDatum to item because it's not a category. (Was super confused that categories were becoming JSON in `_extendCategoryWithDisplayData`) Give item a category property so that tasks can specify items and not IDs (allows for better descriptions like "Moved one thread to Archive"
Add simple shouldComponentUpdate to retina-img
Test Plan: Run tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1832
Summary:
Give UpdateThreadsTask a description method for strings like "Marked as read"
Give ChangeLabelsTask a better description method that returns shorter strings and is specific when possible
Give ChangeFolderTask a more specific description and don't assume folderOrId will always be a folder
Make it so that passive "mark as read" from the message store isn't undoable
Give the base class a description method that names the object
Change UndoRedo component CSS a bit:
- Use "inline-flexbox" with a max-width so that we can define shrinking rules on the label and Undo button (label gets ellipsis, button does not shrink at all)
- Avoid left:39%, since it assumed that the undo-redo element would be 22% of the width of the thread list, which wasn't always true. Instead, make the `undo-redo-manager` container "text-align:center", so the `undo-redo` div is always centered within it.
- Add `cursor:default` so that the user sees the pointer, not the text insertion cursor when hovering over "Undo"
- Add overflow / text-overflow so that if the message is ever too long, the user sees `...` ellipsis properly.
Test Plan: Run a few new tests
Reviewers: evan, ethanb
Reviewed By: ethanb
Differential Revision: https://phab.nylas.com/D1830
Summary:
The TokenizingTextField has several new optional props, including onEdit, which enables
editing of the tokens and tokenIsInvalid, which allows you to make tokens red, while still
accepting them as tokens.
When you go to send a message with invalid recipients it won't let you until you remove/
edit them.
Hotloading
Edit chips, keymappings not through command registry, 7 new tests for editing chips
Test Plan: Run 7 new tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1825
Summary: A notification now appears at the bottom of the window when the user performs an action that can be undone
Test Plan: Tested manually
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: mg
Differential Revision: https://phab.nylas.com/D1820
Summary:
fix misc spec failure by making event store fetch immediately on setup
add specs for displayExtension, displayName
Test Plan: Run new tests
Reviewers: evan
Maniphest Tasks: T2387
Differential Revision: https://phab.nylas.com/D1821
Summary:
- New JSONCache class hides logic around saving/loading rankings from a file
- Contacts are sorted whenever they're loaded so the runtime of searchContacts is still O(limit * n)
Test Plan: Run tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1793
Summary: This is still a work in progress and needs more specs
Test Plan: Run tests
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1808
Summary:
- We now build sqlite3 manually from source in script/bootstrap
- We now allow queries to run in parallel outside of transaction blocks
- When signining in and out, the main window creates the database file and then advances the database "phase", which allows all the windows to connect to the initialized database.
This diff also fixes T2411 where popout drafts opened twice, and several issues around Windows icons and install.
Test Plan: Run existing tests
Reviewers: evan
Reviewed By: evan
Maniphest Tasks: T2411
Differential Revision: https://phab.nylas.com/D1815
Summary: RSVP tile now appears for messages with attached events.
Test Plan: Tested manually. Will add unit tests
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1797
Summary: Threads are now sorted using the thread's receivedrecentdate instead of recentdate
Test Plan: Tested Manually
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: mg
Differential Revision: https://phab.nylas.com/D1812
Summary:
Getting rid of things that I'm pretty sure we don't need. Lmk if you see
anything to the otherwise.
Test Plan: edgehill --test
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1799
Summary:
# Conflicts:
# static/components/tokenizing-text-field.less
Wat no
Test Plan: Tested with ci build
Reviewers: evan
Reviewed By: evan
Maniphest Tasks: T1216
Differential Revision: https://phab.nylas.com/D1804
Summary:
The popover class now will adjust itself until it fits within the window
frame. You don't see the intermediate state in the double render.
Test Plan: edgehill --test
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1795
Summary:
The new, styled folder and label picker!
Some highlights:
- Folder picker has custom icons and a divider
- Label picker has checkboxes with off, checked, and intermediate state
- Extracted LabelColorizer out of mail-label
- Search will bold the results it found
- Fixes to Tooltip to prevent it displaying at invalid moments
- Keyboard UX improvements to Menu
Test Plan: coming soon
Reviewers: bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D1790
Summary:
- New control will likely be shortlived - SDW mocking up replacement for when settings UI lands
- New action for toggling location hidden
- New rule for mail labels: can't remove "Sent"
Test Plan: Run tests - none new atm
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1782
Summary:
Drag threads to the folders / labels in the sidebar
WIP
Drag and drop is styled!
Test Plan: Tests WIP
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1785
Summary:
- Remove thread_participants prop, we don't use them anywhere and the underscore-case is ugly.
- Move autolinker into extension, update autolinker to 0.18.1 for phone number support
- document message.coffee, add isFromMe()
- Add tracking pixel extension that removes pixels from mail you *send*. Maybe more features later.
Test Plan: Run 1 new test! (woo...)
Reviewers: evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D1787
Summary:
This is the initial diff for the label picker UI. This is all of the
functionality and none of the CSS.
Test Plan: todo
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: sdw
Differential Revision: https://phab.nylas.com/D1761
- Message reply dropdown uses new images. Fixes T2355
- New hover actions which are darker. Fixes T2358
- New reply icon in the message footer. Fixes T2359
- Toolbar buttons are the correct height. Fixes T2360
- Thread list selection state changes mail label style
- Removed dead assets
Summary:
Fixes: T2196
While new incoming messages were syncing properly, a new message you sent
was not getting synced.
Since we re-fetch all of the `Messages` immediately after a send, we had
to be sure that the `sendDraftSuccess` Action fired after the new Message
had been persisted to the DB. Unfortunately, `_handleModelResponse` was
returning before the persist happened. This makes `_handleModelResponse`,
and by extension `NylasAPI::makeRequest`, resolve only after the new
models have been persisted to the DB.
We also were just dumping all of the HTML into the synced SalesforceObject
thread, making it entirely unreadable.
We now grab the `innerText` instead, which works great for basic
conversations. It usually includes the `On {date} {person} wrote:`
information, except for the first message, which we manually include.
The next version will likely create individual tasks for each individual
message, however, doing this properly will require a much more complex
Message <-> SFObject syncing task, as well as tying into the QuotedText
enging so we only sync the correct pieces. We'll also likely need a more
sophisticated plain text interpreter other then `innerText`. I wish we
could get access to the raw TEXT MIME part…
Test Plan: manual
Reviewers: bengotow
Reviewed By: bengotow
Subscribers: gleb
Differential Revision: https://phab.nylas.com/D1766
Note: Starred is conspicuously missing. That label is being removed from the backend and exposed as "starred" which will unfortunately behave differently.
Summary:
We need to remove quoted text completely from bodies in a composer.
Unfortunately, that makes it very difficult to determine how to put it
back in.
For now the scheme is to append the quoted text at the end. However, that
means that we need to only pull out quoted text at the end of a message.
Unfortunately there are lots of places that quoted text appears inline
with regular text.
Determining whether or not some content is at the "end" of a message
turned out to be non-trivial.
We now have a new `DOMUtils` that looks for empty areas at the end.
We also have a new quoted HTML parser that finds trailing quotes.
Fixes T2335
Test Plan: lots of new quoted text tests
Reviewers: bengotow
Reviewed By: bengotow
Maniphest Tasks: T2335
Differential Revision: https://phab.nylas.com/D1773