Commit graph

3112 commits

Author SHA1 Message Date
Evan Morikawa c9ea5b6483 feat(scheduler): Add Overlaid Components
Summary:
SEE ASSOCIATED SUBMODULE DIFF

This enables rich React components (like the Scheduler's `NewEventCard`)
to be used in contenteditables.

We introduce the concept of an "Overlaid Component". These are rendered
React components that are absolutely positioned on top of an equivalent
"Anchor" in a contenteditable.

Inside the contenteditable are special `<img />` tags that have an
id corresponding to a particular rich overlaid component. This way, even
if those img tags are cut and pasted or moved, they'll have a mapping to a
  particular component stored in the `OverlaidComponentStore`. Img tags
  are fairly well handled natively by contenteditable and allow you to
  maniuplate these overlaid components as normal text elements.

The `OverlaidComponentStore` is responsible for listening to and managing
the state of the Anchors and their equivalent OverlaidComponents.

We use a decorator called `ListenToChanges` that allows us to wrap
components to update their corresponding anchor. Since we need to know
about ALL changes that could affect rendered height and width, we need to
use a `MuatationListener` instead of the React render cycle.

This is only the initial diff. There are several TODOs here:
https://paper.dropbox.com/doc/Composer-Overlaid-Components-FoZrF0cFggzSUZirZ9MNo

Test Plan: TODO. Manual

Reviewers: juan, bengotow

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2946
2016-05-24 15:47:49 -07:00
Ben Gotow 77733253eb fix(undo): Move undo/redo to session, properly undo all changes
Summary:
- Simplify undoManager to just maintain the undo/redo history items
- DraftEditingSession manages snapshotting state of draft, hack allows it to also save selection (still hoping to eventually put selection in body HTML as markers)
- Switch from `debounce` to `throttle` style behavior so typing for along time followed by undo doesn't undo away your entire block.

This resolves two issues:
+ Changes to participant fields are no longer undoable because they go straight to the session.
+ Changes to metadata weren't undoable.

Test Plan: Tests WIP

Reviewers: evan, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2956
2016-05-24 11:48:33 -07:00
Jackie Luo c3d8ab5ceb feat(multi-send): Allow multi-send for non-Exchange accounts
Summary:
Updates the send task to use multi-send for emails with link/open tracking metadata sent via SMTP. Places an email without link/open tracking in the sent folder.

TODO: Override send button (i.e., mail merge) and move all of the multi-send tasks to package.

Test Plan: Tested locally.

Reviewers: evan, bengotow, juan

Reviewed By: bengotow, juan

Differential Revision: https://phab.nylas.com/D2974
2016-05-24 11:24:57 -07:00
MAA 3211301b66 Fixing small typo. (#2298) 2016-05-24 11:08:40 -07:00
Ben Gotow c2e9ac6fab fix(dialogs): Use new buttonLabel as needed 2016-05-23 10:34:44 -07:00
Ben Gotow 9507deb322 bump(version): 0.4.41, Electron 1.1.1 2016-05-23 10:34:44 -07:00
Jackie Luo 0700a28dc5 feat(multi-send): Register opens/clicks by individual recipient
Summary: The activity list now shows specifically which recipient
opened/clicked for an event.

Test Plan: Tested locally.

Reviewers: bengotow, evan, juan

Reviewed By: juan

Subscribers: juan

Differential Revision: https://phab.nylas.com/D2971
2016-05-20 11:00:05 -07:00
Hon Nguyen 9900c2867c fixed bug timezone cannot detect in fedora (#2250)
* fixed bug timezone cannot detect in fedora

* update spec build fedora package

* rpm package for fedora 22

* change code follow coffee-script style

* remove fedora binary file
2016-05-19 16:16:00 -07:00
Juan Tejada 65ace228ed fix(mail-merge): Prevent send button from being pressed multiple times 2016-05-19 16:13:35 -07:00
Ben Gotow 60632b5ee0 fix(send-later): Add isValidDraft to specs 2016-05-19 15:27:43 -07:00
Ben Gotow 52f050c5f5 fix(pli): Always indent where indicators are, even if blank 2016-05-19 14:58:12 -07:00
Juan Tejada 87d4d102e4 fix(window-launcher): Check if instance of hot window is present 2016-05-19 14:57:34 -07:00
Ben Gotow f14bbdadac fix(changelog): Additional releas notes 2016-05-19 14:53:42 -07:00
Ben Gotow d8f1d9d9fe fix(config): Using fs.resolve as path.join 2016-05-19 14:38:54 -07:00
Juan Tejada 072490ebcc fix(send-later): Check if draft is valid before scheduling send later 2016-05-19 13:28:28 -07:00
Juan Tejada eeda318c15 fix(send-later): Update button to show Sending now when time is past 2016-05-19 12:47:21 -07:00
Juan Tejada 9ac83df24d fix(specs): Fix specs for TaskQueue 2016-05-19 12:33:31 -07:00
Evan Morikawa 73529d9db7 fix(spec): fix asynchronicity in NewEventCardSpec due to draft session 2016-05-19 12:30:13 -07:00
Ben Gotow cd40bb7e6d fix(win-launching): Only create hot window when one is used 2016-05-19 12:28:29 -07:00
Juan Tejada 11799c8ce8 fix(accts): Display perspective for a newly added acct correctly
- Will wait for categories to be ready before attempting to focus the
inbox for the new account, preventing a blank screen when a new account
is added
- Add temprary action to set the collapsed state of a sidebar action
after adding a new account
2016-05-19 12:12:22 -07:00
Evan Morikawa b8adb922e3 fix(spec): remove obsolete account store spec 2016-05-19 11:59:02 -07:00
Evan Morikawa bf9052391f fix(spec): fix config setting spy 2016-05-19 11:50:19 -07:00
Ben Gotow 3118f19c11 fix(tasks): Check Task is in registry, remove any non-tasks when loading 2016-05-19 11:35:48 -07:00
Evan Morikawa bf25a8efc2 fix(tasks): ensure NotifyPluginsOfTask gets properly serialized
Fixes:
https://sentry.nylas.com/sentry/edgehill/group/31200/
2016-05-19 11:31:21 -07:00
Juan Tejada 04e3a5a3a1 fix(sidebar): Add state to determine wether to show unified sidebar
- Adds a piece of global state that will be persisted to
`NylasEnv.savedState` indicating wether the accounts for the sidebar
should be reset whenever the FocusedPerspective changes
- #2257
2016-05-19 11:30:31 -07:00
Ben Gotow dcc665ce71 bump(version): 0.4.40 and changelog 2016-05-19 11:15:56 -07:00
Juan Tejada bb6a6b5b47 fix(hot-window): Correctly manage references to the hot window
- Fixes issue where app was not properly relaunching when all accounts were
removed
2016-05-19 10:15:32 -07:00
Ben Gotow 37019a599b fix(accounts): When removing, focus remaining accts before accountForId() stops working 2016-05-18 17:57:57 -07:00
Juan Tejada 7f735e9f41 fix(aliases): Properly set selected state on account update 2016-05-18 17:35:07 -07:00
Ben Gotow 394c5a3e4d fix(config): id was only added recently, use getId() 2016-05-18 17:27:46 -07:00
Ben Gotow 6dbf4ad51a fix(config): Don't loop config changes through ipc 2016-05-18 17:12:57 -07:00
Evan Morikawa c370f3583c refator(undo): convert UndoRedoStore from coffee to es6 2016-05-18 16:58:06 -07:00
Evan Morikawa 7091bc0784 fix(undo): can redo more than one undo item 2016-05-18 16:43:48 -07:00
Ben Gotow 1999e11504 fix(win32): Wait longer before quitting if no windows are open 2016-05-18 16:25:06 -07:00
Ben Gotow a8f54c25df fix(win32): Ignore path in argv when --squirrel flag is present 2016-05-18 16:25:06 -07:00
Jackie Luo 29b448989c fix(plugins): Update plugins list on install 2016-05-18 16:02:57 -07:00
Evan Morikawa 690229aad2 fix(db): can manually call _handleSetupError with no args 2016-05-18 15:44:47 -07:00
Ben Gotow 8b0f0a2323 fix(quit): Booleans on globals are not exposed through remote properly 2016-05-18 15:41:24 -07:00
Evan Morikawa 37eeb5a7a4 fix(scheduler): don't event events 1 second early 2016-05-18 15:37:26 -07:00
Jackie Luo fdc7b0aa5d 🎨(templates): Change language and remove gray box in demo template 2016-05-18 15:30:16 -07:00
Ben Gotow 5b5320997f fix(pkg-install): Use the package.json name, not the folder name 2016-05-18 15:25:18 -07:00
Evan Morikawa 7b692022e3 fix(event): add calendar icon to new event card 2016-05-18 14:21:22 -07:00
Ben Gotow a186f985ba bump(version): 0.4.39 2016-05-18 10:10:31 -07:00
Ben Gotow 98d3c1e8e9 fix(build): prebuild less was using wrong options, cache not used at runtime 2016-05-17 19:28:18 -07:00
Ben Gotow a46bcd1c34 fix(compile-cache): Write atomically to prevent process collisions 2016-05-17 19:28:01 -07:00
Ben Gotow 564d77421f perf(spellcheck): Limit misspellings to 15, recycle nodes 2016-05-17 18:48:01 -07:00
Ben Gotow 21303cecb5 fix(nylas-exports): Avoid repeatedly calling require inside lazyLoad 2016-05-17 18:37:20 -07:00
Evan Morikawa 0db70868a8 fix(composer): reduction in composer bootup time 2016-05-17 15:03:49 -07:00
Evan Morikawa 517a9cdd47 feat(perf): add perf monitoring to composer open time
Summary:
Add basic globally accessible performance monitoring.

Allows us to measure load times for composer windows (or whatever else we
want) and view the data as a Histogram on Mixpanel

Test Plan: manual

Reviewers: bengotow, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2965
2016-05-17 14:23:14 -07:00
Evan Morikawa 6f355093e0 feat(composer): speed up composer loading & fix deactivate error 2016-05-17 12:37:46 -07:00