186 Commits

Author SHA1 Message Date
Jonas Hermsmeier
408ab99774
Merge pull request #1921 from resin-io/link-to-windows-usbboot-drivers
feat(GUI): link to drivers when clicking a driverless usbboot device
2018-05-09 16:48:00 +02:00
Jonas Hermsmeier
28cb21db13
Merge pull request #2292 from resin-io/bench-verify
feat(writer): Use xxHash instead of SHA512 for verification
2018-05-09 16:46:02 +02:00
Jonas Hermsmeier
5f85258e84
feat(gui): Add ability to read settings from a config file
This adds the capability to configure settings via a `.etcher.json` file,
either in the user's home directory, or the current working directory.
In the case of the home directory, the config file is `$HOME/.config/etcher/config.json`,
while on Windows `$HOME/.etcher.json` is used.
The defined settings are merged with localStorage settings, and preceding
configuration files.
If both are present, the current working directory takes precedence.

Change-Type: minor
Changelog-Entry: Add support for configuration files
2018-05-09 16:22:07 +02:00
Benedict Aas
66c7806cfa
feat(GUI): blacklist drives with an env var (#2315)
We add an environment variable `ETCHER_BLACKLISTED_DRIVES` that allows
us to filter certain drives from ever showing up in Etcher with comma
separated device paths, e.g. `/dev/sda,/dev/sdb,/dev/mmcblk0`.

Closes: https://github.com/resin-io/etcher/issues/2264
Change-Type: patch
Changelog-Entry: Allow blacklisting of drives through and environment
variable ETCHER_BLACKLISTED_DRIVES.
2018-05-09 11:06:18 +01:00
Benedict Aas
2cdb6945ba
feat(GUI): show selected drives below drive step (#2309)
We add a list of selected drives below the drive selection step, able to
accommodate four lines of drives before scrolling occurs.

Closes: https://github.com/resin-io/etcher/issues/2263
Change-Type: patch
Changelog-Entry: Show selected drives below drive selection step.
2018-05-08 17:45:27 +01:00
Benedict Aas
ca45855ed7
feat(GUI): add drive quantity to flash analytics (#2298)
We add a field `driveCount` to the flash analytics events in the image
writer.

Change-Type: patch
2018-05-08 10:56:15 +01:00
Benedict Aas
07ed90ed11
minifix: add jsx files to gitattributes and attribute jviotti (#2302)
Change-Type: patch
2018-05-04 14:46:27 +01:00
Benedict Aas
c1b97b1b44
minifix(GUI): negate predicate to show help icon (#2300)
Change-Type: patch
2018-05-03 11:00:37 +01:00
Benedict Aas
674019ea75
feat(GUI): add button to cancel flash process (#2301)
We add a cancel button next to the flash progress bar that gracefully
aborts the flash process.

Closes: https://github.com/resin-io/etcher/issues/1791
Closes: https://github.com/resin-io/etcher/issues/2234
Closes: https://github.com/resin-io/etcher/issues/2245
Change-Type: patch
Changelog-Entry: Add a button to cancel the flash process.
2018-05-03 10:58:15 +01:00
Jonas Hermsmeier
8f762484f2
feat(gui): Add CTA in drivelist, update drive download modal 2018-05-02 23:37:15 +02:00
Jonas Hermsmeier
4174991345
feat(gui): Add simple confirmation modal 2018-05-02 23:21:02 +02:00
Benedict Aas
71064cc760
fix(GUI): fix multi-writes analytics (#2295)
We make the analytics block into a function `handleErrorLogging` and
use it in the fail event that happens during multi-writes. Previously
error events would be handled when single drives were flashed on Promise
rejection, instead we now only handle the Promise rejection when all
devices fail as a special event.

Change-Type: patch
Changelog-Entry: Fix multi-writes analytics by reusing existing logic in
multi-write events.
2018-05-02 22:02:31 +01:00
Juan Cruz Viotti
4c40c8ff30
feat(GUI): link to drivers when clicking a driverless usbboot device
Step 2 until we support installing the drivers from within Etcher. This
also introduces an "Open drive link" Mixpanel event.

See: https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md
See: https://github.com/resin-io/etcher/pull/1892
Change-Type: patch
Changelog-Entry: Download usbboot drivers installer when clicking a driverless usbboot device on Windows.
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
2018-05-02 22:10:49 +02:00
Benedict Aas
d7211b130b
feat(GUI): allow disabling links and hiding help link (#2290)
We allow users to pass an env var `ETCHER_DISABLE_EXTERNAL_LINKS` to
disable external links and hide links rendered useless by the change
such as the help icon.

Closes: https://github.com/resin-io/etcher/issues/2246
Closes: https://github.com/resin-io/etcher/issues/2247
Change-Type: patch
Changelog-Entry: Allow disabling links and hiding help link with an env var.
2018-05-02 17:29:08 +01:00
Jonas Hermsmeier
d3a4753b79
feat(writer): Use xxHash instead of SHA512 for verification
This switches from SHA512 to xxHash for verification hashing,
as xxHash provides more throughput.

Change-Type: patch
2018-04-27 21:51:05 +02:00
Benedict Aas
b88a45aa79
refactor(GUI): make the finish notification message concise (#2268)
We make the finish notification message print the device name as usual
when there's one target, and instead list quantity of successful and
failed devices when there are multiple. Previously it would list all
device names, and wouldn't specify how many were successful or failures.

Change-Type: patch
2018-04-24 22:04:36 +01:00
Jonas Hermsmeier
3c20a056e6
Merge pull request #2228 from resin-io/change-succeeded-successful
refactor: use word successful instead of succeeded
2018-04-24 18:24:05 +02:00
Benedict Aas
82a57d34b8
fix(GUI): remove success screen dots with a quantity of zero (#2227)
We remove success screen dots that are zero, which mainly means that the
error dot disappears as it shouldn't currently be possible to end up
with zero successful devices on that screen.

Change-Type: patch
2018-04-23 18:33:31 +01:00
Benedict Aas
c4d7076fe8 refactor: use word successful instead of succeeded
We replace 'succeeded' with 'successful' throughout the codebase.

Change-Type: patch
2018-04-23 18:31:44 +01:00
Jonas Hermsmeier
963f1a11eb
fix(gui): Fix zero-zero devices when verify is disabled
This fixes a state where the success screen would display
zero succeeded and zero failed devices if verification was
turned off. This could occur due to the "done" event being
emitted before the next progress event could set the relevant data.

Change-Type: patch
2018-04-20 01:04:30 +02:00
Jonas Hermsmeier
1d4ea2164f
fix(gui): De-serialize errors from flashResults
Change-Type: patch
2018-04-19 21:46:03 +02:00
Jonas Hermsmeier
4c8b97afb3
fix(usbboot): Move blob handling to SDK
This moves the usbboot blob handling into the SDK to avoid
root dirname conflicts through shimmed __dirname in bundled UI
and different contexts of execution.

Change-Type: patch
2018-04-19 16:54:23 +02:00
Jonas Hermsmeier
b3a7255eed
fix(drive-scanner): Fix usbboot blob path when bundled
This fixes the usbboot blobs path when the application is bundled & packaged.

Change-Type: fix
Changelog-Entry: Fix usbboot blob loading
2018-04-18 21:42:53 +02:00
Jonas Hermsmeier
4179def119
Merge pull request #2211 from resin-io/remove-iserror
fix(image-writer): Remove use of _.isError
2018-04-18 19:12:47 +02:00
Jonas Hermsmeier
c225dd89c6
fix(image-writer): Remove use of _.isError
`_.isError()` returns `true` for anything that has a `name` and `message`
property, causing the check here to always keep the plain object as error.

Change-Type: patch
2018-04-18 17:44:14 +02:00
Benedict Aas
d59ebad167 fix(GUI): display untitled device when device lacks description
We fallback to `'Untitled Device'` when the device lacks a
`.description` field.

Change-Type: patch
Changelog-Entry: Display Untitled Device when the device lacks a
description field.
2018-04-18 16:33:39 +01:00
Benedict Aas
32bc615e78
feat(GUI): display succeeded and failed devices on finish screen (#2206)
We display the quantity of succeeded and failed devices using status
dots on the finish screen.

Change-Type: patch
Changelog-Entry: Display succeeded and failed device quantities on the
finish screen.
2018-04-17 15:52:02 +01:00
Benedict Aas
a1b5766a71
minifeat(GUI): prefix multiple devices label with quantity (#2204)
Change the `Multiple Devices (n)` label on selected devices to a
quantity-prefixed form `n Devices`.

Change-Type: patch
2018-04-16 20:11:44 +01:00
Benedict Aas
aeeb1d4294
feat(GUI): remove unnecessary status dots (#2202)
We remove usage of the status dots except when failed devices occur, in
which case we still display the red failed dot and quantity. We also use
singular and plural depending on the quantity of failed devices.

Change-Type: patch
2018-04-16 20:11:19 +01:00
Benedict Aas
7ceec47246
feat(GUI): make the progress button blue on verification (#2203)
We make the progress button blue on verification.

Change-Type: patch
Changelog-Entry: Make the progress button blue on verification.
2018-04-16 20:06:40 +01:00
Jonas Hermsmeier
fe43e21484
fix(writer): Fix erronous event handling in write pipeline
This fixes the use and handling of events in the write pipeline,
such that the pipeline would not be prematurely stalled or terminated.
Also, a new `fail` event is introduced, to signal non-fatal errors.

Change-Type: patch
2018-04-06 20:26:01 +02:00
Jonas Hermsmeier
0344a3f104
Merge pull request #2173 from resin-io/label-size-newline
fix(gui): Ensure image/drive size displayed on new line
2018-04-05 18:53:34 +02:00
Benedict Aas
c17247da58
feat(GUI): move drive selector warning to flash step (#1917)
We move the drive selector warning to the flash step, and concatenate
warning messages when more than one needs to be displayed at once.

Change-Type: patch
Changelog-Entry: Move the drive selector warning dialog to the flash step.
2018-04-05 17:26:16 +01:00
Jonas Hermsmeier
9601daedb7
Merge pull request #2174 from resin-io/update-codespell
test(lint): Update codespell 1.11.0 -> 1.12.0
2018-04-05 17:18:03 +02:00
Jonas Hermsmeier
f958f3751d
fix(gui): Ensure image/drive size displayed on new line
This forces the image and device size to always be displayed on the
second line for visual consistency.

Change-Type: patch
2018-04-05 16:52:26 +02:00
Jonas Hermsmeier
0d1b9641c7
Merge pull request #2172 from resin-io/fix-inherit-env-windows
fix(image-writer): Don't inherit environment on Windows
2018-04-05 16:43:13 +02:00
Jonas Hermsmeier
dd961ad30b
test(lint): Update codespell 1.11.0 -> 1.12.0
This updates codespell, and fixes new spelling error detections

```
lib/shared/models/selection-state.js:377: Unselect  ==> Deselect
lib/gui/app/components/modal/styles/_modal.scss:72: programatically  ==> programmatically
tests/shared/errors.spec.js:88: prioritise  ==> prioritize
tests/shared/errors.spec.js:94: prioritise  ==> prioritize
tests/shared/errors.spec.js💯 prioritise  ==> prioritize
tests/gui/components/svg-icon.spec.js💯 prioritise  ==> prioritize
docs/MAINTAINERS.md:19: artefacts  ==> artifacts
docs/MAINTAINERS.md:21: artefacts  ==> artifacts
docs/MAINTAINERS.md:25: artefacts  ==> artifacts
docs/MAINTAINERS.md:36: artefacts  ==> artifacts
docs/MAINTAINERS.md:96: artefacts  ==> artifacts
docs/MAINTAINERS.md:147: artefacts  ==> artifacts
CHANGELOG.md:492: interferring  ==> interfering
```

Change-Type: patch
2018-04-04 21:00:34 +02:00
Jonas Hermsmeier
abf2dc3efc
fix(image-writer): Don't inherit environment on Windows
Due to improper command escaping, cmd metacharacters lead to failure
in spawning the child writer process on Windows when the entire environment
is passed through the command line. The user's environment will still
be inherited by default on Windows.

Change-Type: patch
2018-04-04 20:23:33 +02:00
Benedict Aas
99f819dfbf
minifix: add spacing to drive warning icon (#2169)
Change-Type: patch
Changelog-Entry: Add spacing to the drive warning icon.
2018-04-04 14:53:20 +01:00
Benedict Aas
f97b439bc0
minifix: use multi-drive methods with drive-list warning button (#2170)
Change-Type: patch
Changelog-Entry: Use multi-drive methods with drive-list warning button.
2018-04-03 20:33:20 +01:00
Benedict Aas
65a4a959bb
feat: expose all flash state fields to the store (#2153)
We expose all the flash state fields to the store, and mirror
`speed`'s format with `totalSpeed` with MB as the size unit.
We also format the progress state messages to use information
available with multiwrites.

Change-Type: patch
Changelog-Entry: Expose all flash state fields to the store.
2018-04-03 20:32:38 +01:00
Jonas Hermsmeier
73155cca66
Merge pull request #2159 from resin-io/hide-size-multiple-devices
fix(GUI): hide the size label given multiple devices
2018-03-29 22:55:03 +02:00
Jonas Hermsmeier
267ccf6f97
Merge pull request #2160 from resin-io/wrap-button-sizes-cleanly
fix(GUI): line wrap selector size subtitles wholly
2018-03-29 22:53:55 +02:00
Benedict Aas
3498d59258 fix(GUI): line wrap selector size subtitles wholly
We line wrap the main-page image and drive size labels as a whole
instead of partially, if the drive or image title is long enough for a
line wrap.

Change-Type: patch
Changelog-Entry: Line wrap selector size subtitles wholly
2018-03-29 15:45:38 +01:00
Benedict Aas
f8accd62ed fix(GUI): hide the size label given multiple devices
We hide the size label when there are multiple selected devices, as this
doesn't make sense because you could only logically show the sum size,
which isn't very helpful on its own.

Change-Type: patch
Changelog-Entry: Hide the size label given multiple devices.
2018-03-29 15:36:18 +01:00
Benedict Aas
57c4a285d8 refactor: inline middle-ellipsis package as util
We remove our dependency on the `middle-ellipses` package and include
and expose the function in `lib/shared/utils`, alongside the regular
Angular filter it exposes. This allows use of the middle ellipsis
method in React.

Change-Type: patch
Changelog-Entry: Inline middle-ellipsis package as util.
2018-03-29 15:25:55 +01:00
Jonas Hermsmeier
ce71b81dbe
Merge pull request #2140 from resin-io/fix-usbboot-appimages
fix: use correct usbbot blob path in appimages
2018-03-27 19:48:36 +02:00
Benedict Aas
cd697d7205 fix: use correct usbbot blob path in appimages
We use the `app.asar` relative path to read the usbboot blob files
instead of relative to the normal project root.

Change-Type: patch
Changelog-Entry: Use correct usbboot blob path in AppImages.
2018-03-26 18:18:05 +01:00
Benedict Aas
cf340f48c3 fix(GUI): fix status dots to their position
We ensure the status dots don't move about and stick to their position
by using absolute positioning relative to its parent element.

Change-Type: patch
Changelog-Entry: Fix status dots to their position.
2018-03-23 17:33:32 +00:00
Benedict Aas
4140d49db3
refactor: multi-writes preparatory changes (#2124)
We add some preparatory changes including new utility functions, as well
as changes throughout the codebase that reflect the change from single
drives to a list of drives, given multi-writes is coming.

Change-Type: patch
Changelog-Entry: Various preparatory changes to account for
multi-writes.
2018-03-23 14:36:39 +00:00