Commit Graph
2134 Commits
Author SHA1 Message Date
Scott NonnenbergandScott Nonnenberg 383e02edc4 New section in settings screen, full-screen 'are you sure?' 2018-03-14 14:42:13 -07:00
Scott NonnenbergandScott Nonnenberg 198f356792 Return number (not id) in getNumber, remove unnecessary comment 2018-03-14 14:42:13 -07:00
Scott NonnenbergandScott Nonnenberg 9acb189650 Remove config after unlink, clear db when linked with new number 2018-03-14 14:42:13 -07:00
Daniel Gasienica 8a1bff0fad Remove unused require 2018-03-08 17:50:10 -05:00
Daniel Gasienica 43b47fd349 Avoid ensure-error for privacy reasons
Example:

```
> node
> const nonError = {foo: 'i-am-private'};
undefined

// before
> util.inspect(nonError);
'{ foo: \'i-am-private\' }'

// after
> nonError.toString()
'[object Object]'
>
```
2018-03-08 16:23:51 -05:00
Daniel Gasienica ea07915e6b Escape special characters in file path 2018-03-08 16:23:51 -05:00
Daniel Gasienica 44b81f68dd Remove privacy redaction from Errors.toLogFormat 2018-03-08 16:23:51 -05:00
Daniel Gasienica 49e0850fb2 Extract Privacy module
Centralizes how we redact sensitive information.
2018-03-08 16:23:51 -05:00
Daniel Gasienica 0c317c5498 Redact all private information from logs 2018-03-08 16:23:04 -05:00
Daniel Gasienica 0e2f8a8a06 Extract Errors.redactSensitivePaths 2018-03-08 16:22:38 -05:00
Daniel Gasienica 33bbb12626 Use Errors.toLogFormat in backgrounds.js 2018-03-08 16:22:38 -05:00
Daniel Gasienica 3dffdc3f0b Rename Errors to GlobalErrors for clarity 2018-03-08 16:22:38 -05:00
Daniel Gasienica 2575196617 Extract Errors.addGlobalHandler procedure 2018-03-08 16:22:38 -05:00
Daniel Gasienica be3e4d86c2 Add Errors.toLogFormat
Allows errors to be formatted and sanitized for logging. Removes sensitive paths
such as the app root directory.

Ideally, this module would be called singular `Error` but that is already a
global name. Using `Errors` plural is  similar to Java convention for utilities
such as `Arrays`, `Collections`, `Files`, etc. See:
https://stackoverflow.com/a/11673838
2018-03-08 16:22:38 -05:00
Daniel Gasienica b049412bfd Document workaround for got FormData bug
See: https://github.com/sindresorhus/got/pull/466
2018-03-08 16:21:27 -05:00
Daniel Gasienica 710701d0fc Document why key comes first 2018-03-08 16:21:27 -05:00
Daniel Gasienica 8b71155e7c Replace superagent with got for debug logs 2018-03-08 16:21:27 -05:00
Daniel Gasienica 52f7de6a10 Add debuglogs module 2018-03-08 16:21:27 -05:00
Daniel Gasienica e4b34a6287 Make DebugLogView::submit async 2018-03-08 16:21:27 -05:00
Daniel Gasienica 3ab3e93a28 Upload debug logs to debuglogs.org 2018-03-08 16:21:27 -05:00
Daniel Gasienica cb464c6301 Ensure isFocused always returns boolean 2018-03-08 16:21:27 -05:00
Daniel Gasienica 969127a72a Remove triple parens 2018-03-08 13:46:51 -05:00
Daniel Gasienica f6fd979ccb Remove explicit ESLint browser directives 2018-03-08 13:46:51 -05:00
Daniel Gasienica 168788600a Fix lint errors 2018-03-08 13:46:51 -05:00
Daniel Gasienica 325c0628cd Remove Vim modeline 2018-03-08 13:46:51 -05:00
Daniel Gasienica b3a3729261 Fix lint errors 2018-03-08 13:46:51 -05:00
Daniel Gasienica 6f7f55f783 Whitelist globals 2018-03-08 13:46:51 -05:00
Daniel Gasienica 090345523f Disable ESLint strict rule for module
`js/logging.js` acts as a module even though it lives in `js/*`.
2018-03-08 13:46:51 -05:00
Daniel Gasienica 7db44e35bd Allow node environment for js/logging.js 2018-03-08 13:46:51 -05:00
Daniel Gasienica d4c9422a99 Apply ESLint auto-fixes: debug_log_view.js 2018-03-08 13:46:51 -05:00
Daniel Gasienica 5d6cd0ea39 Apply ESLint auto-fixes: js/logging.js 2018-03-08 13:46:51 -05:00
Daniel Gasienica a61f2939fd Make isEnabled an instance variable 2018-03-05 10:29:11 -05:00
Daniel Gasienica d6ff5af843 🎨 shouldUpdate --> needUpdate 2018-03-05 10:29:11 -05:00
Daniel Gasienica 541e0bfb72 Reduce log noise / size 2018-03-05 10:29:11 -05:00
Daniel Gasienica a5a4ed7de7 Extract isAudioNotificationEnabled constant 2018-03-05 10:29:11 -05:00
Daniel Gasienica dc38d40f20 Revert to disabled notification sound on <= Windows 7
We haven’t had the chance to test this using `node-notifier` on Windows 7.
2018-03-05 10:29:11 -05:00
Daniel Gasienica 5a4773fee7 Only play audio notification on supported platforms 2018-03-05 10:29:11 -05:00
Daniel Gasienica 85b121aca4 Rename shouldShowAudioNotificationSetting
Use `isAudioNotificationSupported` to make it less presentation layer specific.
2018-03-05 10:29:11 -05:00
Daniel Gasienica dcf651fb51 Hide notifications audio setting on Linux 2018-03-05 10:29:11 -05:00
Daniel Gasienica 21339c6866 Add Settings type 2018-03-05 10:29:11 -05:00
Daniel Gasienica 91daedd619 Add OS module 2018-03-05 10:29:11 -05:00
Daniel Gasienica dbc242c37f Improve debug log for notifications 2018-03-05 10:29:11 -05:00
Daniel Gasienica b5e7882267 Use system notification sounds
Alternatively, there is per-platform support for specific sounds, but that would
require a larger investment:
- macOS: https://github.com/mikaelbr/node-notifier/tree/9420a38fc329c7700eefd35594319bf3a96227a0#all-notification-options-with-their-defaults
- Windows: https://docs.microsoft.com/en-us/previous-versions/windows/apps/hh761492(v=win.10)
2018-03-05 10:29:11 -05:00
Daniel Gasienica 59e59fb754 Remove new message audio notification
Bye, bye, dear Ka-Klunk!
2018-03-05 10:29:11 -05:00
Daniel Gasienica 8a8972f7ac NOTE: Improve i18n pluralization 2018-03-05 10:29:11 -05:00
Daniel Gasienica a76b1389e6 Extract hasNotifications 2018-03-05 10:29:11 -05:00
Daniel Gasienica 9516d667da Rename enabled --> isEnabled 2018-03-05 10:29:11 -05:00
Scott NonnenbergandGitHub 59bee6690d Choose device name screen: Finish by pressing enter (#2085) 2018-03-02 15:34:51 -08:00
Daniel Gasienica 3df22026ab UX Improvements: Global Menu & Copy Changes (#2078)
- [x] Removed ‘Restart Signal’ global menu item
- [x] Change _Click to create contact…_ to _Start conversation…_
- [x] Move global menu (top-left kebab) into OS menu bar,
      i.e. **Settings** > **Preferences…**
- [x] Add tests for OS menu bar templates
- [x] Fix bug with **Window** menu on macOS when showing setup options
- [x] Use _Title Case_ for all OS menu bar menu items for consistency

commit dedf7c9af0
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:53:42 2018 -0500

    Use ‘Title Case’ to be consistent with OS menus

    References:
    - Apple:
        - https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/#menu-and-menu-item-titles
        - https://developer.apple.com/library/content/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html#//apple_ref/doc/uid/TP40013782-CH6-SW1
    - https://titlecaseconverter.com/

commit 3286da29b3
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:36:50 2018 -0500

    Fix bug for macOS ‘Window’ menu with setup options

commit 236a23d1ea
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:27:46 2018 -0500

    Test menus with included setup options

commit c5d5f5abb8
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:10:27 2018 -0500

    Move settings (‘Preferences’) into OS-level menu

    This reduces our reliance on custom UI until we have more design resources.

commit 027803f8f4
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:02:56 2018 -0500

    Prepare tests for menu with/without included setup

commit 9e2f006924
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 15:55:46 2018 -0500

    Destructure `includeSetup`

commit 6b2a1eccdf
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 15:55:14 2018 -0500

    🔤 `createTemplate` `options`

commit c2fecba34b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:49:55 2018 -0500

    Test menu for Windows and Linux

commit 60281b1af9
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:40:39 2018 -0500

    Add `yarn run test-app` command

commit 1a0489919c
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:40:29 2018 -0500

    Add test for `SignalMenu.createTemplate` on macOS

commit 9638b86c0f
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:34:46 2018 -0500

    Make `createTemplate` pure

    Extracting `options.platform` makes it easier to test without having to
    stub `process.platform`.

commit 9c26404892
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:47:39 2018 -0500

    Extract `locale.load` `appLocale` & `logger` for testability

    This allows us to run this code in a non-Electron environment, e.g. Node.js
    Mocha test suite.

commit 710b22438d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:46:13 2018 -0500

    🔤 npm scripts

commit 9ae22937fb
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:45:30 2018 -0500

    Use 2-space indendation for `app` module tests

commit 22c26baf61
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:22:55 2018 -0500

    Prefer named exports

commit 9c95261952
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:22:46 2018 -0500

    🔤 Organize `require`s

commit 2f144d24d9
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:13:50 2018 -0500

    Remove existing global hamburger menu

    This will be replaced by a OS-level ‘Preferences’ menu.

commit f5adb374cb
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 18:40:54 2018 -0500

    Remove ‘Restart Signal’ menu from settings

    Apparently, this is a remnant from the Chrome web application.

commit d7a206bc8e
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 17:16:49 2018 -0500

    Clarify label for starting a new conversation

    When user a enters a number that is not a contact, we prompt them to start a new
    conversation.

commit 715a406436
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 16:46:26 2018 -0500

    Use ‘Enter name or number’ as prompt’

    This follows implementation of Android and recommendation from Alissa.
2018-03-02 15:59:39 -05:00
Daniel GasienicaandGitHub 3c15e01630 Auto-fixes: UX Improvements (#2077)
* Whitelist `conversation_search_view` for ESLint

* Autofix `conversation_search_view`

* Remove Vim modeline

* Whitelist globals for ESLint

* Ignore unnamed module IIFE

* Whitelist legacy `then` expressions

* Extract `isSearchable`

Fixes line length violations.

* Remove unused constant

* Remove unnecessary escaping for parens

Suggested by ESLint `no-useless-escape` rule.

* 🎨 Organize file list

* Whitelist `inbox_view` for ESLint

* Autofix `inbox_view`

* Remove Vim modeline

* Add function names

* Whitelist globals for ESLint

* Fix lint errors

* 🔤 `options` properties

* 🎨 Improve `then` chain formatting

* Consider `js/*.js` files as scripts not modules

Forces use of 'use strict' directive per ESLint.

* Ignore unnamed module IIFE

* Fix function argument line breaks
2018-03-02 15:54:15 -05:00