* Extend ProgressButton to support a striped progress bar
This feature will be used to implement the burn validation step.
* Implement alert-ribbon CSS component
This component will be used to inform an error situation to the user
during the burn/check processes.
* Add "Enable write validation on success" setting
* Implement write validation support
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
Fixes: https://github.com/resin-io/etcher/issues/45
Electron's `shell.openExternal()` fails on GNU/Linux when Electron is
ran with `sudo`. The issue was reported, and this is a workaround until
its fixed on the Electron side.
`node-open` is smart enough to check the `$SUDO_USER` environment
variable and to prepend `sudo -u <user>` if needed.
We keep `shell.openExternal()` for OSes other than Linux since we intend
to fully rely on it when the issue is fixed, and since its closer
integration with the operating system might lead to more accurate
results than a third party NPM module.
See https://github.com/electron/electron/issues/5039
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
This modal provides a more advanced way to select a drive. It prevents
certain issues the dropdown was having, like the contents overflowing
when there were many connected drives.
Fixes: https://github.com/resin-io/etcher/issues/202
The "Select Image" dialog now permits the user selecting zip files. Once
the zip file is selected, `resin-zip-image` scans the archive to ensure
its validity. If its not valid, an error alert is shown and nothing is
selected.
Later versions make use of shell commands over the internal contents of
the module causing errors when the application is packaged as an
`asar`.
This issue is being fixed here: https://github.com/jorangreef/sudo-prompt/issues/10
The `drivelist` module includes a new property called `name` in `2.0.7`
that resolves to the drive letter (mount point) on Windows, and to the
drive otherwise.
For some reason, when using `windosu`, the app is elevated three times.
However this only happens when the application is packaged for
distribution.
After a couple of days debugging this issue, we have no clue about
what's going on, but `elevator` seems to work fine.
Fixes: https://github.com/resin-io/herostratus/issues/29
Currently we fire and forget `sudoPrompt.exec()` and run a timeout for
`process.exit(0)` right away, however this means that the timeout will
start as soon as the elevation dialog is shown when no sudo cache exists
and therefore the timeout will finish before the user can type his
password and submit.
The fix is to keep the parent alive until the children dies, but call
`app.dock.hide()` to make the parent completely invisible to the
operating system.
Fixes: https://github.com/resin-io/herostratus/issues/31