Files
agent/packages/uhk-web/src/app/components/device/configuration/device-configuration.component.ts
Róbert Kiss f0139c55ee 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
2018-01-08 05:29:31 +01:00

50 lines
1.5 KiB
TypeScript

import { Component } from '@angular/core';
import { Store } from '@ngrx/store';
import { AppState } from '../../../store';
import { ResetUserConfigurationAction } from '../../../store/actions/device';
import {
LoadUserConfigurationFromFileAction,
SaveUserConfigInBinaryFileAction,
SaveUserConfigInJsonFileAction
} from '../../../store/actions/user-config';
@Component({
selector: 'device-settings',
templateUrl: './device-configuration.component.html',
styleUrls: ['./device-configuration.component.scss'],
host: {
'class': 'container-fluid'
}
})
export class DeviceConfigurationComponent {
constructor(private store: Store<AppState>) {
}
resetUserConfiguration() {
this.store.dispatch(new ResetUserConfigurationAction());
}
saveConfigurationInJSONFormat() {
this.store.dispatch(new SaveUserConfigInJsonFileAction());
}
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]);
}
}