3268 Commits

Author SHA1 Message Date
Jonas Hermsmeier
de501f5ba3
Merge pull request #2369 from resin-io/feature-settings
feat: Use settings for feature control
2018-05-29 23:47:58 +02:00
Jonas Hermsmeier
c5e5141b21
refactor(local-settings): Log JSON parse errors 2018-05-29 22:06:41 +02:00
Jonas Hermsmeier
c08cf61d0c
chore(app): Use settings instead of env vars
Change-Type: patch
2018-05-29 22:06:41 +02:00
Jonas Hermsmeier
6728382141
feat: Use settings for feature control
Change-Type: minor
2018-05-29 22:06:40 +02:00
Jonas Hermsmeier
7c3f104d1b
Merge pull request #2368 from resin-io/refactor-settings
feat(gui): Persist local settings to config file
2018-05-29 22:06:02 +02:00
Jonas Hermsmeier
ad6be11bbc
refactor(store): Return unsubscribe directly 2018-05-29 17:36:51 +02:00
Benedict Aas
f09faf6645
minifix(GUI): move success banner back down (#2367)
Change-Type: patch
2018-05-29 12:56:54 +01:00
Benedict Aas
117a7762e1 fix(GUI): restrict webkit drag to header
We ensure that the `-webkit-app-region` attribute is only set to `drag`
on the header element and we explicitly disable it on modals, as this
has unintended behaviour on a non-draggable window with touch-screens.

Change-Type: patch
2018-05-29 11:23:54 +01:00
Jonas Hermsmeier
3d47f494a8
fix(app): Fix config path on Windows, typos 2018-05-28 17:25:22 +02:00
Jonas Hermsmeier
e0ebdc9045
fix(test): Fix lint errors & tests 2018-05-25 20:35:59 +02:00
Jonas Hermsmeier
53f8e9328d
feat(app): Make store change-observable
This adds true change observability to the store,
as the `.subscribe()` callback triggers with every dispatch,
even if the data didn't change.

Now `store.observe(onChange)` can be used to only be notified
once the state data actually changes

Change-Type: minor
2018-05-25 20:35:59 +02:00
Jonas Hermsmeier
687e0b563b
refactor(gui): Move shared models to app/models 2018-05-25 20:35:59 +02:00
Jonas Hermsmeier
6232cc7d49
test(settings): Update test specs accordingly
Change-Type: patch
2018-05-25 20:35:59 +02:00
Jonas Hermsmeier
2a6670a404
refactor: Remove use of localStorage for local settings
Change-Type: minor
2018-05-23 21:20:51 +02:00
Jonas Hermsmeier
447efc7096
refactor: Move shared/store.js -> gui/app/models/store.js 2018-05-23 21:20:50 +02:00
Benedict Aas
c47878202d
feat(GUI): center content independent to window resolution (#2299)
We pave way for different sizes of Etcher windows by dynamically
centering the content with flexbox.

Connects-To: #2263
Closes: #2241
Change-Type: patch
Changelog-Entry: Center content independent to window resolution.
2018-05-23 20:10:02 +01:00
Jonas Hermsmeier
349076bf34
Merge pull request #2353 from resin-io/webber-packer
chore(package): Add npm run script for webpack
2018-05-23 19:43:22 +02:00
Jonas Hermsmeier
1748bf2e2a
chore(package): Add npm run script for webpack
Make life simpler

Change-Type: patch
2018-05-22 18:44:59 +02:00
Jonas Hermsmeier
d9a7730511 test(eslint): Fix JSX not being linted (#2358)
Change-Type: patch
2018-05-21 11:28:22 +01:00
Jonas Hermsmeier
4a239cc217 upgrade(package): Update React to v16 (#2355)
Change-Type: patch
2018-05-21 11:23:42 +01:00
Benedict Aas
ce2534c5b7
minifix(GUI): resolve react missing key field warning (#2354)
We attach key fields where necessary to make the warnings go away.

Change-Type: patch
2018-05-21 11:23:20 +01:00
Jonas Hermsmeier
3083f5fd55
Merge pull request #2351 from resin-io/fix-username-spaces-diskpart
fix(diskpart): Fix diskpart argv when tmpdir contains spaces
2018-05-18 17:46:42 +02:00
Jonas Hermsmeier
2045066b16
fix(diskpart): Fix diskpart argv when tmpdir contains spaces
This escapes the diskpart script filename when shelling out,
to avoid failure when the username and thus the `os.tmpdir()` path
contains spaces.

Change-Type: patch
2018-05-17 18:03:41 +02:00
Jonas Hermsmeier
995177498f
Merge pull request #2349 from resin-io/add-files-module
fix: add missing files module
2018-05-17 18:02:55 +02:00
Benedict Aas
c00b7b62d6 fix: add missing files module
We add a convenience module for file and path operations.
Tests included.

Change-Type: patch
2018-05-17 15:34:34 +01:00
Benedict Aas
93b772f197
fix: ensure file-picker is slicing arrays (#2350)
We ensure the file-picker is slicing arrays when the localStorage values
aren't available.

Change-Type: patch
2018-05-17 10:40:19 +01:00
Benedict Aas
7782f94daa
feat(GUI): add electron-native file-picker component (#2333)
We add a file-picker written with Rendition/React. It is activated with
the `ETCHER_EXPERIMENTAL_FILE_PICKER` environment variable. Further
customisation can be done with the `ETCHER_FILE_BROWSER_CONSTRAIN_FOLDER`
variable that takes a path and allows one to constrain the file-picker to
a folder.

Related: https://github.com/resin-io/etcher/issues/2238
Related: https://github.com/resin-io/etcher/issues/2285
Change-Type: patch
Changelog-Entry: Add electron-native file-picker component.
2018-05-16 20:34:04 +01:00
Jonas Hermsmeier
7c97dc8004
Merge pull request #2346 from CherryDT/master
Fix devtools key binding for Windows in SUPPORT.md
2018-05-16 21:10:25 +02:00
Benedict Aas
34ce00e2d5
feat(GUI): hide unsafe mode option with env var (#2347)
We hide the unsafe mode option toggle with an env var
`ETCHER_HIDE_UNSAFE_MODE` that also enables unsafe mode.

Closes: https://github.com/resin-io/etcher/issues/2243
Change-Type: patch
Changelog-Entry: Hide unsafe mode option toggle with an env var.
2018-05-16 19:52:55 +01:00
CherryDT
702658cca5
Fix devtools key binding for Windows in SUPPORT.md 2018-05-16 16:39:33 +02:00
Benedict Aas
e472fe0276
feat: blacklist devices by device path (#2345)
We use `devicePath` instead of `device` to blacklist drives using the
`ETCHER_BLACKLISTED_DRIVES` environment variable.

Closes: https://github.com/resin-io/etcher/issues/2264
Change-Type: patch
2018-05-16 15:28:10 +01:00
Jonas Hermsmeier
fb1c381ab7
Merge pull request #2343 from resin-io/disable-notifications
feat(gui): Add desktop notification setting
Close #2254
2018-05-16 00:51:49 +02:00
Jonas Hermsmeier
03c7998c11
feat(gui): Add desktop notification setting
This adds a setting to disable desktop notifications, to be controlled
via configuration file

Change-Type: feat
2018-05-15 18:58:10 +02:00
Benedict Aas
35729fc36b
feat(GUI): use design background and drive size ordering (#2341)
We use the new design background color, and order the drive step size in
accordance with the new design as well.

Related: https://github.com/resin-io/etcher/issues/2310
Change-Type: patch
Changelog-Entry: Use new design background color and drive step size
ordering.
2018-05-15 14:23:33 +01:00
Benedict Aas
f6ce603e45
feat(GUI): add convenience localstorage class (#2276)
* feat(GUI): add convenience localstorage class

We add a class `Storage` and accompanying helper methods that makes
localStorage usage easier.

Change-Type: patch
Changelog-Entry: Add a convenience Storage class on top of localStorage.
2018-05-15 11:59:36 +01:00
Benedict Aas
81a75ca955
feat(GUI): use new design blue and spacing (#2327)
We use the new design blue, spacing, and order of step buttons.

Closes: https://github.com/resin-io/etcher/issues/2310
Change-Type: patch
2018-05-14 15:58:45 +01:00
Jonas Hermsmeier
b57c9a51f8
Merge pull request #2331 from resin-io/env-analytics
feat(gui): Add ability to set analytics tokens via env
Close #2329
2018-05-11 20:04:21 +02:00
Jonas Hermsmeier
df396966b0
Merge pull request #2332 from resin-io/disable-update-notify
minifix(gui): Don't check for updates when in resin
2018-05-11 20:03:45 +02:00
Jonas Hermsmeier
b8897e0193
minifix(gui): Don't check for updates when in resin
This disabled Etcher checking for updates & showing update notifications
if running under resinOS with update locks enabled

Change-Type: patch
2018-05-11 16:36:14 +02:00
Jonas Hermsmeier
150e8112ea
feat(gui): Add ability to set analytics tokens via env
This adds the ability to set the Sentry & Mixpanel API tokens
via environment variables.

Change-Type: patch
2018-05-11 16:25:11 +02:00
Jonas Hermsmeier
196f16b941
Merge pull request #2326 from resin-io/resin-update-lock
feat(gui): Add resin update lock based on inactivity
2018-05-10 21:07:01 +02:00
Benedict Aas
21cb7a4847
feat(GUI): env var toggle autoselecting all valid drives (#2306)
We introduce an environment variable
`ETCHER_DISABLE_EXPLICIT_DRIVE_SELECTION` that both enables
autoselection of drives and disables explicit drive selection by hiding
the buttons allowing this. All valid drives are autoselected, i.e. any
drive-image pair that does not result in an error, however warnings are
accepted.

Closes: https://github.com/resin-io/etcher/issues/2262
Change-Type: patch
Changelog-Entry: Introduce env var to toggle autoselection of all
drives.
2018-05-10 18:53:53 +01:00
Jonas Hermsmeier
bb2dac7504
feat(gui): Add resin update lock based on inactivity
This adds functionality to acquire & release the update lock
when running under resinOS, re-using the `ELECTRON_RESIN_UPDATE_LOCK`
environment variable from `resin-electronjs`.

Further this adds the `ETCHER_INTERACTION_TIMEOUT_MS` env var, to
facilitate adjusting the inactivity period required to release the lock.

Change-Type: minor
2018-05-10 19:15:31 +02:00
Jonas Hermsmeier
f5fd2f2be3
Merge pull request #2325 from resin-io/update-drivelist
upgrade(package): Bump drivelist 6.1.7 -> 6.2.2
Close #2235
2018-05-10 14:20:38 +02:00
Jonas Hermsmeier
e6ea3879c3
upgrade(package): Bump drivelist 6.1.7 -> 6.2.2
This will enable use of unique device paths on Linux

Change-Type: patch
2018-05-10 13:33:50 +02:00
Jonas Hermsmeier
c07895d418
Merge pull request #2319 from resin-io/update-keyserver
doc(README): Use ubuntu keyserver for apt-key
2018-05-09 21:04:49 +02:00
Jonas Hermsmeier
58fb1cf4c3
Merge pull request #2318 from resin-io/kiosk
minifix(gui): Only enable Kiosk Mode when FULLSCREEN is set
2018-05-09 20:09:29 +02:00
Jonas Hermsmeier
52cc8cb8fc
doc(README): Use ubuntu keyserver for apt-key
As pgp.mit.edu has become extremely unreliable, this switches to
keyserver.ubuntu.com for retrieval of package keys

Change-Type: patch
2018-05-09 17:30:40 +02:00
Benedict Aas
1b30dab8eb
fix(webpack): don't rewrite import paths inside node_modules (#2195)
We ensure that paths inside node_modules files are kept untouched, as
currently the RegExp can match 'shared' folders inside those and rewrite
paths, breaking them.

Change-Type: patch
2018-05-09 16:09:17 +01:00
Jonas Hermsmeier
40df4a94a7
minifix(gui): Only enable Kiosk Mode when FULLSCREEN is set
This fixes the `kiosk` setting always being true, and causing
the operating system's desktop to disappear.

Change-Type: patch
2018-05-09 17:04:38 +02:00