Commit graph

7505 commits

Author SHA1 Message Date
Evan Morikawa
cf839fad9c fix(composer): normalize html before getting selection 2015-03-02 19:44:17 -08:00
Ben Gotow
542c2bd4d7 fix(specs): Indentation issue causing bad code 2015-03-02 15:47:13 -08:00
Evan Morikawa
e7868df1ad feat(contenteditable): a React compatible contenteditable
Summary:
toolbar popup displays

restore caret protection on contenteditable

BAD - can't use cursor saving and restoring with react :(

_findNode works

saves and restores cursor state

contenteditable fixes to support cursor

comments on cursor

initial undo manager

extract undo manager and move up in stack

make undo manager a mixin

adding selection snapshots in composer

fixes in undo manager

selection saves selection states properly

move UndoManager and fix draft

selection state can now select backwards

selection works backwards and click not overridden

change bold class to allow for bolding and unbolding

styling of hover component

can set links in composer

bold and italic clicking works. text seleciton works

show link modal on hover

selection fixes

Test Plan: TODO

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1249
2015-03-02 15:33:58 -08:00
Ben Gotow
e1fc34a562 fix(drafts): Draft syncing completely disabled to reduce code complexity
Summary:
fix(streaming): Reconnect every 30 seconds, always

Never accept drafts via any API source

fix(attachments): Fix for changes to open API

Get rid of shouldAbort, just let tasks decide what to do in cleanup

Never let SaveDraftTask run while another SaveDraftTask for same draft is running

Never used IPC

Ignore destroy draft 404

Moving draft store proxy to draft store level

Only block on older saves

Replace SaveDraftTask with SyncbackDraftTask, do saving directly from proxy

Never sync back ;-)

Fix specs

Alter SendDraftTask so that it can send an unsaved draft

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1245
2015-03-02 11:23:35 -08:00
Ben Gotow
71e216ddff fix(messages): Timestamp display issue after merge 2015-02-24 16:24:01 -08:00
Ben Gotow
2a93c70214 fix(quoted-text): Show quoted text for short forwarded msgs
Summary: tiny patch, but with lots of tests for message-item and factored out message-timestamp

Test Plan: Run brand new specs!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1225
2015-02-24 16:20:57 -08:00
Ben Gotow
0468cb4b39 feat(drafts) Reply to draft and minor fixes
Summary:
Initial hooks for reply to message

Per-message actions and reply to message!

Always commit changes before openinig popout composer

Flip message display - newest at bottom like Gmail

WIP specs

New activity bar inspector for deltas

Don't allow long polling connection to restart after end() called

A bit of activity bar refactoring and filter options, clear

Include "On ... someone wrote" in replies / fw

Slightly more robust quoted text removal, detects "On..."

Abort request to really end it

Additional specs for draft store

Test Plan: Run 20 new tests!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1230
2015-02-24 16:19:47 -08:00
Ben Gotow
10e9b62ab8 fix(sound): Don't play sounds in specs 2015-02-23 15:13:18 -08:00
Evan Morikawa
3b0fc853fb fix(composer): fix bug where message body says undefined 2015-02-23 09:34:27 -08:00
Evan Morikawa
25acabc3a0 fix(autocomplete): autocomplete dropown can be clicked & selects first 2015-02-22 18:08:04 -08:00
Evan Morikawa
bb7909f379 fix(draft): saves silently resolve if draft can't be found 2015-02-22 17:26:34 -08:00
Evan Morikawa
551ced639e fix(build): no more squirrel 2015-02-20 18:33:37 -08:00
Evan Morikawa
742d38c4ef fix(draft): fix draft not sending if it wasn't saved first 2015-02-20 17:50:39 -08:00
Ben Gotow
344524d259 temp(streaming): Never consume deletions to messages 2015-02-20 14:39:02 -08:00
Ben Gotow
39cdb7abfa temp(streaming): Never consume changes to drafts 2015-02-20 14:34:46 -08:00
Evan Morikawa
132263c38c refactor(tasks): refactor task store
Summary:
task store fixes

more task store fixes

check for blocked tasks

retry tasks

add spec descriptions

more test stubs

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1209
2015-02-20 12:24:15 -08:00
Ben Gotow
c952ea3b12 feat(notifications): Initial pass at new mail notifications
Summary:
Eventually, notification stuff should be moved out of InboxAPI into a separate package, and we should have some documented way of watching for "new" things. (Right now it'd be a bit hard to do on the database store...)

Additional fixes:
- AddRemoveTagsTask now optimistically updates the version. Before it would get the new version from the API response. This was bad because it could still cause local changes to be overwritten if you were changing tags really fast.

- AddRemoveTagsTask now takes a threadId, not a thread for consistency with all the rest of our Tasks

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1214
2015-02-20 12:19:34 -08:00
Ben Gotow
e8dff2005d fix(streaming): A few minor fixes for login/logout 2015-02-18 17:41:18 -08:00
Ben Gotow
cd8afcadf6 fix(build): Minor LESS lint issue 2015-02-18 14:32:20 -08:00
Ben Gotow
a94f9ad2a8 fix(autoupdater): Restore auto update functionality, this time with tests
Summary:
fix(autoupdater): Fix bizarrely broken code in autoupdater

fix(urls): Use nilas.com instead of inboxapp

fix(show-main-window): Cmd-1 is the mac standard

fix(autoupdater): TESTS

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1199
2015-02-18 14:24:34 -08:00
Ben Gotow
165f5045fb feat(quoted-text): Edit quoted text in replies
Summary:
Use blockquote, apply gmail's styling

Fix in popout composer so the ... button rests at the bottom

Test Plan: Need to figure out the best strategy for tests here - will write tomorrow

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1197
2015-02-18 14:24:16 -08:00
Ben Gotow
651f105740 fix(tests): Clean up after ReactTestUtils, wipe ComponentRegistry between specs
Summary:
Why does message-list have default participants? No other packages do

Component registry warns if mixin component name not found

Clear the component registry between tests and wipe React elements inserted into DOM

Everything should have a displayName, even you ComposerView

Stub all ComponentRegistry dependencies, always

Test Plan: Run all the tests at the same time

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1201
2015-02-18 14:09:46 -08:00
Ben Gotow
b97f607a6e fix(long-polling): Close streaming connections, wait for changes to stop
Summary: fix(*): Minor onboarding react issue

Test Plan: Run existing tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1208
2015-02-18 13:59:58 -08:00
Ben Gotow
f97a1bec22 fix(unread): Use the API instead of the database for unread counts
Summary: Populates the unread tag counts using new API feature instead of using the local cache.

Test Plan: No tests for now :-(

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1195
2015-02-16 17:24:23 -08:00
Ben Gotow
dc59b876d3 fix(streaming) Use thread/draft version #'s to prevent bad updates
Summary:
fix(http): Support http for API in addition to https throughout

test(attributes): Additional testing for model attributes

fix(versioning): Use version numbers with drafts as well as threads

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1194
2015-02-16 17:22:29 -08:00
Evan Morikawa
e8533d8903 fix(composer): focus on creation and sanitize paste
Summary:
focuses on draft when replying

focus on to field on new composer

santize html on paste in contentedtiable

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1177
2015-02-16 17:09:28 -08:00
Ben Gotow
e1b504b1d1 🍴 Removing Text Editor, Project and other source
Summary:
🍴 Removing dot-atom

🍴 Fix specs

Remove more unnecessary files

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1186
2015-02-12 11:40:45 -08:00
Ben Gotow
104267050d fix(specs): Lots of spec improvements. See details
Summary:
- Remove unnecessary log statements
- Use dbPath = null in specs, results in in-memory database
- Only surface promise errors that are Javascript syntax, refernece range or type problems
- Stub out NamespaceStore.current() always

Test Plan: Run tests, see less garbage!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1171
2015-02-10 11:36:29 -08:00
Evan Morikawa
637d5928e6 fix(ui): upgrade packages, minor ui/ux fixes
Summary:
fix keymaps and add archive-and-previous

test for star thread

focus bcc and cc

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1174
2015-02-10 11:10:14 -08:00
Ben Gotow
ac30c25696 fix(cid): Remove src="cid:" when we don't have the source 2015-02-09 19:31:23 -08:00
Ben Gotow
e9cda3ee7e fix(lint): Resolves minor linter issues 2015-02-09 16:42:53 -08:00
Ben Gotow
feacf8948b fix(feedback): Don't include tokens in feedback logs 2015-02-09 16:22:45 -08:00
Ben Gotow
2fc89f7d6f fix(launch-services): Use the same approach on all Mac OS X versions 2015-02-09 16:15:08 -08:00
Ben Gotow
70b260b285 fix(launch-services): Support for secure launch services plist 2015-02-09 15:22:58 -08:00
Ben Gotow
99ff91be3f Merge branch 'master' of github.com:inboxapp/edgehill 2015-02-09 11:23:14 -08:00
Ben Gotow
6f6b916377 fix(database): Fix missing require that caused Linux to silently fail 2015-02-09 11:23:09 -08:00
Evan Morikawa
a48e5ac3ec fix(packages): upgrade package versions to fix io.js bug 2015-02-09 10:29:58 -08:00
Ben Gotow
51922d23a2 refactor(*): Remove disabledPackages that no longer exist 2015-02-06 17:07:01 -08:00
Ben Gotow
73b99880fd refactor(*): Remove Atom package dependecies and Atom styles!
Test Plan: Run existing tests

Reviewers: evan

Differential Revision: https://review.inboxapp.com/D1160
2015-02-06 16:57:33 -08:00
Evan Morikawa
210162167f fix(keymaps): typo 2015-02-06 18:57:03 -05:00
Evan Morikawa
2ec4161b85 fix(keymaps): make shift arrows and others work in inputs 2015-02-06 18:55:37 -05:00
Evan Morikawa
9b15858bf2 fix(attachment): fix message attachment & rename to AttachmentComponent 2015-02-06 18:48:13 -05:00
Ben Gotow
59b7155357 fix(flex): Slightly tweaked flex constants (only until redesign) 2015-02-06 15:28:36 -08:00
Ben Gotow
4f1746503b fix(*): Post-merge cleanup, keymaps, database init issue 2015-02-06 15:09:51 -08:00
Ben Gotow
a54f4ed3ba refactor(database): Open only one sqlite connection, run requests from Browser process
Summary: This diff is the beginning of a larger refactor to move lots of stuff to the Browser process!

Test Plan: No tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1156
2015-02-06 14:47:10 -08:00
Ben Gotow
e4889b390f refactor(participants): Use DragDropMixin, Menu
Summary:
This diff replaces the participant text fields with ones based on TokenizingTextField, a new core
component that handles autocompletion, drag and drop of tokens, etc.

Fix large queries overloading SQLite size limits

New general purpose tokenized text field with token selection, copy paste, etc

Move pre-send logic to the view since DraftStore requests from db, which may not have settled

Tests - still a WIP

Support for contextual menus instead of X

Test Plan: Run new tests. Needs many more, but have higher priority things to fix

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1142
2015-02-06 14:46:30 -08:00
Evan Morikawa
a31c2808a9 fix(composer): make uploading attachments work
Summary:
There were several issues causing uploading to not work:

  # The file upload response came back as a string instead of an Object. Needed to detect and `JSON.parse`
  # The `MessageAttachment` component was not available as a package on the popout composer (since it used to be inside of `MessageList`)
  # The `message.draft` bit was not set properly causing the DB changes to be ignored
  # The actions notifying of `uploadStateChanged` were only being broadcasted in the main window (where the `TaskStore` is) and never making it to the popout composer.

Also keybindings for close window and up & down arrows were fixed.

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1157
2015-02-06 17:41:59 -05:00
Ben Gotow
db669fd9a9 feature(attachments): Inline attachments, download store does not use tasks
Summary:
This diff updates the FileDownloadStore to use it's own internal Download class instead of leveraging the TaskStore (since downloads shouldn't be resumable / serialized to disk anyway). This means things can be tighter and less dependent on Actions. Downloads are now promise-based, so actions like "open file after downloading" can be chained to the end of the Download promise.

The MessageStore now queues downloads for inline attachments when you view the thread, and the MessageItem.cjsx substitutes in local file paths for cid:<CID>.

Test Plan: I made some pretty big changes and did not break any tests. This is a bad sign... Tests forthcoming, but will probably ship this to users tomorrow first.

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1149
2015-02-06 13:13:31 -08:00
Evan Morikawa
4f8366a772 refactor(keymaps): override-key-bindings instead of native-key-bindings
Summary: This diff essentially inverts the behavior of native-key-bindings. Instead of opting-in to native-key-bindings, they're applied UNLESS there's an override-key-bindings class. I think this may be a better solution for us since we don't often want to override behavior like Copy and Select All.

Test Plan: No new tests on this one...

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1124
2015-02-04 21:31:41 -05:00
Evan Morikawa
708dff10ed feat(star): add star to tabular thread list item
Summary:
Also fixed a bug whereby the thread list item wasn't changing because the
tag change was too deep for React to diff properly

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://review.inboxapp.com/D1132
2015-02-04 21:22:23 -05:00