Commit graph

646 commits

Author SHA1 Message Date
Ben Gotow
73ee5c0227 fix(test): function execution order seems different on CI server? 2015-06-05 19:25:42 -07:00
Ben Gotow
c2b4343880 fix(css): Invalid padding value separated by commas 2015-06-05 18:33:17 -07:00
Ben Gotow
c6880ab42b fix(RetinaImg): shoudn't throw an exception if you forget to provide an image name 2015-06-05 18:28:06 -07:00
Ben Gotow
af5e2ea1dd fix(mac-build): CSS Linter warnings treated as errors 2015-06-05 18:22:11 -07:00
Ben Gotow
6fa2e20197 fix(iframes): Contextual menus for email contents
Summary: Fixes T1191

Test Plan: No new tests to see here.

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1191

Differential Revision: https://phab.nylas.com/D1603
2015-06-05 16:47:30 -07:00
Ben Gotow
df13b06c2a feat(scrollbars): Custom scrollbars via ScrollRegion
Summary:
ScrollRegion with support for tooltips shown as you scroll, custom tooltips for thread list and message list.

fix(specs): all other scrollbars hidden to prevent incompatibility

fix scrollbar sizing when used in conjunction with resizableregion

Test Plan: Need to write tests and docs for ScrollRegion - no tests yet

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1597
2015-06-05 11:50:55 -07:00
Ben Gotow
5fbd881304 feat(theming): Definitely not hacker mode. I don't know what you're talking about.
Summary: Add docs for new RetinaImg modes

Test Plan: Not much to test, except that it looks good!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1595
2015-06-05 11:40:44 -07:00
Ben Gotow
4f41845a22 fix(draft-speed): Optimize draft creation and reduce scroll / focus delays
Summary:
This diff attempts to improve the responsiveness of the app when you hit "Reply". This is achieved by being smarter about creating the draft and loading it into the draft store, and also by allowing the compose* actions to take objects instead of just IDs (resulting in a fetch of the object).

Allow Actions.composeReply,etc. to optionally be called with thread and message objects instead of IDs. This prevents a database lookup and the data is "right there."

Create DraftStoreProxy for new drafts optimistically—this allows us to hand it the draft model we just created and it doesn't have to go query for it

When we create a new Draft, immediately bind it to a LocalId. This means that when the MessageStore receives the trigger() event from the Database, it doesn't have to wait while a localId is created

When MessageStore sees a new Message come in which is on the current thread, a draft, and not in the localIds map, assume it's a new draft and shortcut fetchFromCaceh to manually add it to the items array and display. This means the user sees the...

...draft instantly.

Remove delays from focusing draft, scrolling to draft after content is ready. I actually removed these thinking it would break something, and it didn't break anything.... Maybe new Chromium handles better?

Fix specs

Test Plan: Run specs - more in progress right now

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1598
2015-06-05 11:38:30 -07:00
Ben Gotow
a26b8d4bc4 fix(*): Resolve a variety of small and simple bugs
Summary:
Fix T1822 - saving templates not working, not showing template

Fix T1800 - give composers a minimum size

Fix the bottom bar of the composer so the gray bar goes all the way across in popout mode.

Fix T1825 - switch to a more attractive "June 4, 2015 at 3:10 PM" styling for expanded dates

Remove, rather than hide, react components for text fields in composer. Fixes T1147

Fix specs

Switch to 999+ instead of infinity. Fixes T1768

Fix broken TemplateStore specs

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1147, T1768, T1822, T1800, T1825

Differential Revision: https://phab.nylas.com/D1601
2015-06-05 11:02:44 -07:00
Ben Gotow
5cc775fe3e fix(sentry): Switch to private sentry 2015-06-03 18:00:17 -07:00
Ben Gotow
e303705b45 feat(*): draft icon, misc fixes, and WorkspaceStore / custom toolbar in secondary windows
Summary:
Features:
- ThreadListParticipants ignores drafts when computing participants, renders "Draft" label, pending design

- Put the WorkspaceStore in every window—means they all get toolbars and custom gumdrop icons on Mac OS X

Bug Fixes:

- Never display notifications for email the user just sent

- Fix obscure issue with DatabaseView trying to update metadata on items it froze. This resolves issue with names remaining bold after marking as read, drafts not appearing in message list immediately.

- When you pop out a draft, save it first and *wait* for the commit() promise to succeed.

- If you scroll very fast, you node.contentWindow can be null in eventedIframe

Other:

Make it OK to re-register the same component

Make it possible to unregister a hot window

Break the Sheet Toolbar out into it's own file to make things manageable

Replace `package.windowPropsReceived` with a store-style model where anyone can listen for changes to `windowProps`

When I put the WorkspaceStore in every window, I ran into a problem because the package was no longer rendering an instance of the Composer, it was declaring a root sheet with a composer in it. This meant that it was actually a React component that needed to listen to window props, not the package itself.

`atom` is already an event emitter, so I added a `onWindowPropsReceived` hook so that components can listen to window props as if they were listening to a store. I think this might be more flexible than only broadcasting the props change event to packages.

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1592
2015-06-03 16:02:19 -07:00
Ben Gotow
01f83e4d83 fix(build): Temporarily disable 'Task' tests Jenkins can't run, and avoid empty ui-variables files 2015-06-03 12:04:43 -07:00
Ben Gotow
7f80507cf8 fix(mac-build): Lint error breaking jenkins 2015-06-03 11:10:42 -07:00
Ben Gotow
40c3de5590 fix(fakt): Switch to otf fonts with correct baseline, remove hacky styles 2015-06-03 11:07:59 -07:00
Ben Gotow
3f8486547a add(specs): Empty folders and node_modules in spec fixture to fix specs 2015-06-03 10:23:54 -07:00
Ben Gotow
f82e6da9c0 add(specs): +101 specs and 403 assertions from Atom 2015-06-02 19:51:00 -07:00
Ben Gotow
a3b45cf33a feature(package-management): Package management interface, APM integration
Summary:
Update a few more packages to deactivate properly

Miscelaneous fixes

Initial commit of new settings package

WIP

WIP - can load and unload and install / uninstall

Click to create new boilerplate package, package updating

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1582
2015-06-02 19:04:21 -07:00
Michael Grinich
de9402e426 Move guides from Edgehill repo to Redwood and only generate docs from classes 2015-06-02 16:24:56 -07:00
Ben Gotow
0ce50bb4c1 fix(commands): Broken event dispatch after 0.27.2 push 2015-06-01 18:31:42 -07:00
Ben Gotow
ce68a3b99d fix(database-view): Double-query when creating DatabaseView objects
Summary: Remove debounce on initial view creation that was causing `retrievePage` to be called twice

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1587
2015-06-01 18:29:54 -07:00
Ben Gotow
a749b87d3a fix(selection): Fix issue where selecting offscreen thread (null) could break selection
Summary:
- ModelViewSelection shouldn't break if you accidentally call it with null

- ModelViewSelection methods should throw if you pass non-items, need to do this to narrow down other Sentry errors

Test Plan: Run new specs

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1589
2015-06-01 18:29:39 -07:00
Ben Gotow
cc92e5dbda fix(T1167): When focusing an iFrame, remove selection from the parent document
Summary: Fixes T1167 (MG's additional scenario)

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1167

Differential Revision: https://phab.nylas.com/D1585
2015-06-01 16:01:13 -07:00
Ben Gotow
e5e72e25da fix(app): When there is no focused window, dispatch events to the mainWindow
Summary: This fixes T1766 and probably others as well, ensuring that commands not handled by the browser-side are still delivered to the main window even when it's hidden.

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1766

Differential Revision: https://phab.nylas.com/D1586
2015-06-01 16:00:57 -07:00
Ben Gotow
bb2c1e30a7 bump(electron): Electron 0.27.1, Chromium 43
Summary:
0.27.1? Nope webview still broken

Update atom-keymap

As of Chromium 42, you cannot subclass CustomEvent or Event using Object.create(event). This caused the CommandRegistry to break. Creating a new object with the properties of the event seems to work fine.

Resolves "Deprecated attempt to access property 'target' on a non-Event object.
dispatchEvent
fireCustomEventevent-test.html:8
global codeevent-test.html:21
event-test.html:8" in Safari and "TypeError: Illegal Invocation" in Chromium

Test Plan: Tests still pass

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1584
2015-06-01 15:21:40 -07:00
Ben Gotow
215dbbd3f3 fix(focus): When composing a forward, focus on the To field.
Summary:
fix specs

This functionality used to work but `component` isn't defined and focus: was failing. Added specs to make sure this doesn't happen again.

Test Plan: Run new specs

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1583
2015-06-01 15:12:18 -07:00
Evan Morikawa
28a6668567 Fixes T1751: Make sure composer can't send twice
Summary:
Fixes T1751
Since there's time between clicking "send" and the draft appearing on the
TaskQueue (which is what we use to determine sending state declaratively)
it's possible for it to send twice.

I opted to use `setState` at the Composer View level since I don't think
we should debouce the Action or the Store. It's totally fine for a script
to queue a bunch of messages to send via the queue. We really just want to
stop it at the user intaction level.

Test Plan: There's a test for this now in the composer-spec

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T1751

Differential Revision: https://phab.nylas.com/D1576
2015-06-01 11:24:32 -04:00
Ben Gotow
9b37bfe4cb fix(T1744): Display attachments when message has no body, additional specs
Summary:
This fixes T1744 and adds specs for the logic in _attachmentComponents.
 - Attachments should display even when the body is an empty string or null
 - Attachments should not include files without names (mime parts of the message)

Test Plan: Run 2 new tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1744

Differential Revision: https://phab.nylas.com/D1566
2015-05-28 18:15:47 -07:00
Ben Gotow
55d375bab5 Fixes T1743: Add replyTo field handling, tests to DraftStore
Summary: Fixed T1743. Adds the replyTo field to Message objects and handling to the DraftStore. Also adds specs to make sure we don't break it.

Test Plan: Run 3 new tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1743

Differential Revision: https://phab.nylas.com/D1565
2015-05-28 18:13:46 -07:00
Evan Morikawa
afffa01b17 Fixes T1741: database getting deleted on quit
Summary:
Fixes T1741
The database was getting deleted on every quit!
Since the ~/.nylas/config.cson wasn't getting updated messages weren't
getting refetched.

Now we only delete on logout

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T1741

Differential Revision: https://phab.nylas.com/D1564
2015-05-27 14:23:15 -04:00
Evan Morikawa
ac1ad67123 Removed invalid Action.notificationDismissed firing
Summary:
If a notification is dismissed manually, the setInterval dismissal is still fired.
         This patch adds a check and removes the notification dismissal action from firing

Test Plan: none

Reviewers: ktalwar, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1218
2015-05-27 12:31:07 -04:00
Ben Gotow
af357ef005 fix(auto-update): Contrary to all reason, autoUpdater.quitAndInstall does not call before-quit 2015-05-26 16:26:21 -07:00
Evan Morikawa
f399e76408 Fixes T1731: code in iframes renders with white-space: normal
Summary:
Fixes T1731
Chrome by default on a user-agent stylesheet sets white-space to `pre`.
For `pre` elements. This is useful in most cases since whitespace is taken
literally.

Unfortunately when people send out emails with code in them, the `pre`
blocks can get mangled because there may be unnecessary whitespace in
them.

I personally think the default behavior is much better, however, I think
we should have `pre` blocks render with `white-space: normal` because
anyone who's sending an email with code it in will probably use <span> and
<br> and inline styles to ensure it looks correct on most readers. Since
many places (like Outlook) strip whitespace out of HTML, I think we should
mimic that behavior too.

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T1731

Differential Revision: https://phab.nylas.com/D1561
2015-05-26 18:47:26 -04:00
Ben Gotow
337e7a0cd9 fix(quit): Destroy hot-loaded windows so they don't block quit - fixes T1282
Summary:
teardown dblite on quit—if it faiels to exit, it blocks the main process from quitting on linux

fix edge case where the ".quit" sql command is queued to run and then doesn't run because closeRequested is true

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1282

Differential Revision: https://phab.nylas.com/D1559
2015-05-26 14:15:12 -07:00
Ben Gotow
480b0e799d fix(downloads): Wait for download file stream to finalize before resolving and rendering inline attachments. Fixes T1210
Test Plan: No new tests, need to figure out how to prevent regression here.

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T1210

Differential Revision: https://phab.nylas.com/D1558
2015-05-26 14:14:18 -07:00
Ben Gotow
16979f371f fix(iframes): Clear selection when blurring iFrames - Fixes T1167 2015-05-25 11:04:11 -07:00
Ben Gotow
a7da51617c fix(notifications): Give notifications tag like HTML5 Notifications so you can de-dupe 2015-05-25 10:27:36 -07:00
Ben Gotow
a7740559d2 fix(spellchecking): Turn off spellcheck on email fields 2015-05-22 17:04:37 -07:00
Ben Gotow
a2116f6c1a fix(linux): Closes T1392, updating spellchecker library to be ASAR-aware 2015-05-22 12:06:26 -07:00
Ben Gotow
82e5cb6509 fix(linux-build): Move the license file out of app so it works with ASAR 2015-05-21 18:22:11 -07:00
Ben Gotow
b194d7fb37 fix(mailto): Handle mailto on application launch, populate NamespaceStore synchronously
Summary:
atom-window `sendMessage` was not the same as `browserWindow.webContents.send`. WTF.

Save current namespace to config.cson so that it is never null when window opens

Don't re-create thread view on namespace change unless the namespace has changed

Tests for NamespaceStore state

Push worker immediately in workerForNamcespace to avoid creating two connections per namespace

Allow \n to be put into sreaming buffer, but only one

Clear streaming buffer when we're reconnecting to avoid processing same deltas twice (because of 400msec throttle)

Make `onProcessBuffer` more elegant—No functional changes

Test Plan: Run tests!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1551
2015-05-21 18:08:29 -07:00
Evan Morikawa
7bd3f7ac78 update linter to look at all less files
Test Plan: script/grunt lint

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1549
2015-05-21 14:50:40 -07:00
Ben Gotow
e198c4f6c4 fix(asar): Support ASAR, and running of specs in prod builds
Summary:
fix(task-queue): Repair the findTask function

Add "ship logs" and "open logs" to the developer menu

Patches for Chromium 42

Test Plan: Run tests!

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1547
2015-05-21 14:41:30 -07:00
Evan Morikawa
5e4fea01e5 Fixes T1363: move file success to task and listen to DB event
Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T1363

Differential Revision: https://phab.nylas.com/D1548
2015-05-21 13:43:14 -07:00
Ben Gotow
614e2d022e fix(linux-build): Adding linux icons 2015-05-20 14:21:22 -07:00
Ben Gotow
4b0365afc7 fix(linux-build): Update build script to reflect 'electron' name 2015-05-20 12:09:14 -07:00
Ben Gotow
23bf42c227 fix(auto-updater): Make updates check happen every 5 minutes, fix critical crash
Summary:
Additional references to the windowmanager

Improve some log messages to make them more clear

Make shipLogs the throttled version. Calling shipLogs over and over leads to crash

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1538
2015-05-20 12:04:31 -07:00
Evan Morikawa
9d18b1e1d5 Fixes T1344: composer links fixed 2015-05-20 10:22:03 -07:00
Evan Morikawa
0588b0c7eb refactor(code): replace all instances of atom-shell and AtomShell and atomShell
Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1537
2015-05-20 10:20:10 -07:00
Ben Gotow
80adb41d2e fix(ship-logs): never use the .coffee extension 2015-05-19 22:28:30 -07:00
Ben Gotow
4a4872ec27 fix(archive): Remove optimizations that were breaking archive... 2015-05-19 19:23:34 -07:00