feat(user-config): Upload user configuration from json/bin file (#545)

* feat(user-config): Upload user configuration from json/bin file

* fix error message

* remove file extension filter

* apply user config after loaded from file

* add file filter

* remove file filter
This commit is contained in:
Róbert Kiss
2018-01-08 05:29:31 +01:00
committed by László Monda
parent b3f2e3451e
commit f0139c55ee
8 changed files with 117 additions and 9 deletions

View File

@@ -14,9 +14,11 @@
<span role="button" class="btn-link" (click)="saveConfigurationInBINFormat()">binary</span> format.
</li>
<li>
<button class="btn btn-default"
>Upload device configuration
</button>
<label class="btn btn-default btn-file">
Upload device configuration
<input type="file"
(change)="changeFile($event)">
</label>
</li>
<li>
<button class="btn btn-danger"

View File

@@ -3,7 +3,11 @@ import { Store } from '@ngrx/store';
import { AppState } from '../../../store';
import { ResetUserConfigurationAction } from '../../../store/actions/device';
import { SaveUserConfigInBinaryFileAction, SaveUserConfigInJsonFileAction } from '../../../store/actions/user-config';
import {
LoadUserConfigurationFromFileAction,
SaveUserConfigInBinaryFileAction,
SaveUserConfigInJsonFileAction
} from '../../../store/actions/user-config';
@Component({
selector: 'device-settings',
@@ -29,4 +33,17 @@ export class DeviceConfigurationComponent {
saveConfigurationInBINFormat() {
this.store.dispatch(new SaveUserConfigInBinaryFileAction());
}
changeFile(event): void {
const files = event.srcElement.files;
const fileReader = new FileReader();
fileReader.onloadend = function () {
const arrayBuffer = new Uint8Array(fileReader.result);
this.store.dispatch(new LoadUserConfigurationFromFileAction({
filename: event.srcElement.value,
data: Array.from(arrayBuffer)
}));
}.bind(this);
fileReader.readAsArrayBuffer(files[0]);
}
}