Skip to content

Commit

Permalink
Merge branch 'master' into stable
Browse files Browse the repository at this point in the history
  • Loading branch information
bengotow committed Apr 12, 2016
2 parents 0ee6123 + cf926b0 commit d2b6ad2
Show file tree
Hide file tree
Showing 4,018 changed files with 13,603 additions and 22,507 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ before_script:
sh -e /etc/init.d/xvfb start;
fi

script: script/cibuild
script: script/cibuild --verbose

cache:
directories:
Expand Down
42 changes: 41 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# N1 Changelog

### 0.4.25 (4/12/16)

- Features:
+ Search: N1 now performs client-side search and streams results from backend providers,
dramatically improving search performance.

+ Quick Schedule: Create events and propose meeting times right from the composer. We've
overhauled the design and implementation of the old Quick Scheduler, and more calendar
features are coming soon.

+ Offline Status: N1 now displays a notice when it's disconnected from the API, so it's easy
to tell if your mailbox is up-to-date.

- Performance:
+ We've redesigned the join tables that back the thread list, improving unified inbox
loading speed ~53%.

- Bugs:
+ N1 now ships with emoji artwork so emoji aren't missing or incomplete on many platforms.
+ The thread list updates more quickly following rapid mailbox actions.
+ Thread drag-and-drop now works properly in all scenarios.
+ Messages with invalid dates no longer cause N1 to crash.
+ The thread list no longer displays an empty state briefly when loading.
+ Sync progress in the sidebar no longer appears in some scenarios after sync has finished.
+ Images with no width or height are now correctly scaled to the viewport size in emails.
+ BCC'd recipients are no longer listed in headers when forwarding a message.
+ `.ly` links and many others are now automatically highlighted in emails correctly.
+ Read receipts no longer throw exceptions when the only message on a thread is a draft.
+ The "Process All Mail" option in mail rules preferences now only processes the inbox,
and never skips threads.
+ Themes with dashes in their folder names no longer break the theme picker.
+ N1 always handles mailto: links itself rather than launching the default client.
+ Inline images now load properly in all scenarios and display a progress indicator as they download.
+ The preferences interface has a brand new look!

- Development:
+ SQLite table names no longer contain dashes.
+ N1 now uses React `0.14.7`, will be moving to 15 very soon.
+ 12% fewer LOC in CoffeeScript than `0.4.19`! We are slowly moving N1 to ES2016.

### 0.4.19 (3/25/16)

- Features:
Expand All @@ -25,7 +65,7 @@
+ Filesystem errors (no disk space, wrong permissions, etc.) are presented when uploading or downloading attachments.
+ Double-clicking image attachments now opens them.
+ When you receive email to an alias, replies are sent from that alias by default.
+ Search works more reliably, waits loner for results, and displays errors when results cannot be loaded.
+ Search works more reliably, waits longer for results, and displays errors when results cannot be loaded.
+ Read receipts are now visible in the narrow thread list.
+ The undo/redo bar no longer appears when returning to your mailbox from Drafts.
+ N1 no longer hangs while processing links in very large emails.
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,13 @@ We're working on building a plugin index that makes it super easy to add them to
- [Dark](https://github.com/nylas/N1/tree/master/internal_packages/ui-dark)
- [Darkside](https://github.com/nylas/N1/tree/master/internal_packages/ui-darkside) (designed by [Jamie Wilson](https://github.com/jamiewilson))
- [Taiga](https://github.com/nylas/N1/tree/master/internal_packages/ui-taiga) (designed by [Noah Buscher](https://github.com/noahbuscher))
- [Ubuntu](https://github.com/nylas/N1/tree/master/internal_packages/ui-ubuntu) (designed by [Ahmed Elhanafy](https://github.com/ahmedlhanafy))

#### Community Themes
[Create your own theme!](http://github.com/nylas/N1-theme-starter)
- [Arc Dark](https://github.com/varlesh/Nylas-Arc-Dark-Theme)
- [Predawn](https://github.com/adambmedia/N1-Predawn)
- [ElementaryOS](https://github.com/edipox/elementary-nylas)
- [Ubuntu](https://github.com/ahmedlhanafy/Ubuntu-Ui-Theme-for-Nylas-N1)
- [Ido](https://github.com/edipox/n1-ido) — Polymail-inspired theme
- [Solarized Dark](https://github.com/NSHenry/N1-Solarized-Dark)
- [Berend](https://github.com/Frique/N1-Berend)
Expand All @@ -42,11 +43,12 @@ We're working on building a plugin index that makes it super easy to add them to
- [Less Is More](https://github.com/P0WW0W/less-is-more/)
- [ToogaBooga](https://github.com/brycedorn/N1-ToogaBooga)
- [Material](https://github.com/jackiehluo/n1-material)
- [Monokai](https://github.com/jamiehenson/n1-monokai)

#### Bundled Plugins
Great starting points for creating your own plugins!
- [Translate](https://github.com/nylas/N1/tree/master/internal_packages/composer-translate) — Works with 10 languages
- [Quick Schedule](https://github.com/nylas/N1/tree/master/internal_packages/quick-schedule) — Show your availability to schedule a meeting with someone
- [Scheduler](https://github.com/nylas/N1/tree/master/internal_packages/composer-scheduler) — Show your availability to schedule a meeting with someone
- [Quick Replies](https://github.com/nylas/N1/tree/master/internal_packages/composer-templates) — Send emails faster with templates
- [Send Later](https://github.com/nylas/N1/tree/master/internal_packages/send-later) — Schedule your emails to be sent at a later time
- [Open Tracking](https://github.com/nylas/N1/tree/master/internal_packages/open-tracking) — See if your emails have been read
Expand Down
2 changes: 1 addition & 1 deletion docs/Database.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ DatabaseStore.findAll(Thread).where([Thread.attributes.tags.contains('inbox')])
This is equivalent to writing the following SQL:

```sql
SELECT `Thread`.`data` FROM `Thread` INNER JOIN `Thread-Tag` AS `M1` ON `M1`.`id` = `Thread`.`id` WHERE `M1`.`value` = 'inbox' ORDER BY `Thread`.`last_message_timestamp` DESC
SELECT `Thread`.`data` FROM `Thread` INNER JOIN `ThreadTag` AS `M1` ON `M1`.`id` = `Thread`.`id` WHERE `M1`.`value` = 'inbox' ORDER BY `Thread`.`last_message_timestamp` DESC
```

#### Listening for Changes
Expand Down
12 changes: 0 additions & 12 deletions internal_packages/account-error-header/lib/main.es6

This file was deleted.

13 changes: 0 additions & 13 deletions internal_packages/account-error-header/package.json

This file was deleted.

This file was deleted.

4 changes: 3 additions & 1 deletion internal_packages/category-picker/lib/category-picker.cjsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
_ = require 'underscore'
React = require 'react'
ReactDOM = require 'react-dom'

{Actions,
AccountStore,
Expand Down Expand Up @@ -38,7 +39,7 @@ class CategoryPicker extends React.Component
_onOpenCategoryPopover: =>
return unless @props.items.length > 0
return unless @context.sheetDepth is WorkspaceStore.sheetStack().length - 1
buttonRect = React.findDOMNode(@refs.button).getBoundingClientRect()
buttonRect = ReactDOM.findDOMNode(@refs.button).getBoundingClientRect()
Actions.openPopover(
<CategoryPickerPopover
threads={@props.items}
Expand All @@ -62,6 +63,7 @@ class CategoryPicker extends React.Component
return (
<KeyCommandsRegion style={order: -103} globalHandlers={@_keymapHandlers()}>
<button
tabIndex={-1}
ref="button"
title={tooltip}
onClick={@_onOpenCategoryPopover}
Expand Down
11 changes: 6 additions & 5 deletions internal_packages/category-picker/spec/category-picker-spec.cjsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
_ = require 'underscore'
React = require "react/addons"
ReactTestUtils = React.addons.TestUtils
React = require "react"
ReactDOM = require 'react-dom'
ReactTestUtils = require 'react-addons-test-utils'
CategoryPickerPopover = require '../lib/category-picker-popover'

{Utils,
Expand Down Expand Up @@ -99,13 +100,13 @@ describe 'CategoryPickerPopover', ->
expect(count).toBe 0

it "is visible when the search box has text", ->
inputNode = React.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(@picker, "input")[0])
inputNode = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(@picker, "input")[0])
ReactTestUtils.Simulate.change inputNode, target: { value: "calendar" }
count = ReactTestUtils.scryRenderedDOMComponentsWithClass(@picker, 'category-create-new').length
expect(count).toBe 1

it "shows folder icon if we're using exchange", ->
inputNode = React.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(@picker, "input")[0])
inputNode = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(@picker, "input")[0])
ReactTestUtils.Simulate.change inputNode, target: { value: "calendar" }
count = ReactTestUtils.scryRenderedDOMComponentsWithClass(@picker, 'category-create-new-folder').length
expect(count).toBe 1
Expand All @@ -115,7 +116,7 @@ describe 'CategoryPickerPopover', ->
setupForCreateNew.call @, "label"

it "shows label icon if we're using gmail", ->
inputNode = React.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(@picker, "input")[0])
inputNode = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(@picker, "input")[0])
ReactTestUtils.Simulate.change inputNode, target: { value: "calendar" }
count = ReactTestUtils.scryRenderedDOMComponentsWithClass(@picker, 'category-create-new-tag').length
expect(count).toBe 1
Expand Down
6 changes: 2 additions & 4 deletions internal_packages/composer-emoji/lib/categorized-emoji.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,7 @@ export default categorizedEmojiList = {
'cold_sweat',
'hushed',
'frowning',
'anguished'
],
'More People': [
'anguished',
'cry',
'disappointed_relieved',
'sleepy',
Expand Down Expand Up @@ -1310,4 +1308,4 @@ export default categorizedEmojiList = {
'flag-zm',
'flag-zw'
]
}
}
Loading

0 comments on commit d2b6ad2

Please sign in to comment.