feat: enhance device firmware page (#588)
* feat: enhance device firmware page * remove confirmation dialog from firmware upgrade buttons
This commit is contained in:
committed by
László Monda
parent
e8fe0f8d3e
commit
2f00a5eaf4
16
package-lock.json
generated
16
package-lock.json
generated
@@ -3359,22 +3359,14 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"electron": {
|
"electron": {
|
||||||
"version": "1.7.11",
|
"version": "1.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/electron/-/electron-1.7.11.tgz",
|
"resolved": "https://registry.npmjs.org/electron/-/electron-1.8.3.tgz",
|
||||||
"integrity": "sha1-mTtqp54OeafPzDafTIE/vZoLCNk=",
|
"integrity": "sha512-ZZYSPB9tLh0m4uZOTcQllv/U8ts3GaMyEkBTooBr5rO+xl0WfQlecUcPuyw6aqtrZfNKsqLprorXKgsFmwcI5w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "7.0.52",
|
"@types/node": "8.0.53",
|
||||||
"electron-download": "3.3.0",
|
"electron-download": "3.3.0",
|
||||||
"extract-zip": "1.6.5"
|
"extract-zip": "1.6.5"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@types/node": {
|
|
||||||
"version": "7.0.52",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.52.tgz",
|
|
||||||
"integrity": "sha512-jjpyQsKGsOF/wUElNjfPULk+d8PKvJOIXk3IUeBYYmNCy5dMWfrI+JiixYNw8ppKOlcRwWTXFl0B+i5oGrf95Q==",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"electron-builder": {
|
"electron-builder": {
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
"decompress": "4.2.0",
|
"decompress": "4.2.0",
|
||||||
"decompress-tarbz2": "^4.1.1",
|
"decompress-tarbz2": "^4.1.1",
|
||||||
"devtron": "1.4.0",
|
"devtron": "1.4.0",
|
||||||
"electron": "1.7.11",
|
"electron": "1.8.3",
|
||||||
"electron-builder": "20.4.0",
|
"electron-builder": "20.4.0",
|
||||||
"electron-debug": "1.4.0",
|
"electron-debug": "1.4.0",
|
||||||
"electron-devtools-installer": "2.2.0",
|
"electron-devtools-installer": "2.2.0",
|
||||||
|
|||||||
@@ -15,22 +15,20 @@
|
|||||||
</i></p>
|
</i></p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Flash firmware {{ (getAgentVersionInfo$ | async).firmwareVersion }} (bundled with Agent)
|
|
||||||
<button class="btn btn-primary"
|
<button class="btn btn-primary"
|
||||||
[disabled]="flashFirmwareButtonDisbabled$ | async"
|
[disabled]="flashFirmwareButtonDisbabled$ | async"
|
||||||
(click)="onUpdateFirmware()">Flash firmware
|
(click)="onUpdateFirmware()">
|
||||||
</button>
|
Flash firmware {{ (getAgentVersionInfo$ | async).firmwareVersion }} (bundled with Agent)
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Flash firmware file <input id="firmware-file-select"
|
|
||||||
type="file"
|
|
||||||
[disabled]="flashFirmwareButtonDisbabled$ | async"
|
|
||||||
(change)="changeFile($event)">
|
|
||||||
<button class="btn btn-primary"
|
|
||||||
[disabled]="flashFirmwareButtonDisbabled$ | async"
|
|
||||||
(click)="onUpdateFirmwareWithFile()">Flash firmware
|
|
||||||
</button>
|
</button>
|
||||||
|
<label class="btn btn-primary btn-file"
|
||||||
|
[class.disabled]="flashFirmwareButtonDisbabled$ | async">
|
||||||
|
Choose firmware file and flash it
|
||||||
|
<input id="firmware-file-select"
|
||||||
|
type="file"
|
||||||
|
accept=".tar.bz2"
|
||||||
|
[disabled]="flashFirmwareButtonDisbabled$ | async"
|
||||||
|
(change)="changeFile($event)">
|
||||||
|
</label>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ export class DeviceFirmwareComponent implements OnDestroy {
|
|||||||
getAgentVersionInfo$: Observable<VersionInformation>;
|
getAgentVersionInfo$: Observable<VersionInformation>;
|
||||||
firmwareOkButtonDisabled$: Observable<boolean>;
|
firmwareOkButtonDisabled$: Observable<boolean>;
|
||||||
|
|
||||||
arrayBuffer: Uint8Array;
|
|
||||||
@ViewChild('scrollMe') divElement: ElementRef;
|
@ViewChild('scrollMe') divElement: ElementRef;
|
||||||
|
|
||||||
constructor(private store: Store<AppState>) {
|
constructor(private store: Store<AppState>) {
|
||||||
@@ -48,14 +47,6 @@ export class DeviceFirmwareComponent implements OnDestroy {
|
|||||||
this.store.dispatch(new UpdateFirmwareAction());
|
this.store.dispatch(new UpdateFirmwareAction());
|
||||||
}
|
}
|
||||||
|
|
||||||
onUpdateFirmwareWithFile(): void {
|
|
||||||
if (!this.arrayBuffer) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.store.dispatch(new UpdateFirmwareWithAction(Array.prototype.slice.call(this.arrayBuffer)));
|
|
||||||
}
|
|
||||||
|
|
||||||
onOkButtonClick(): void {
|
onOkButtonClick(): void {
|
||||||
this.store.dispatch(new UpdateFirmwareOkButtonAction());
|
this.store.dispatch(new UpdateFirmwareOkButtonAction());
|
||||||
}
|
}
|
||||||
@@ -64,14 +55,13 @@ export class DeviceFirmwareComponent implements OnDestroy {
|
|||||||
const files = event.srcElement.files;
|
const files = event.srcElement.files;
|
||||||
|
|
||||||
if (files.length === 0) {
|
if (files.length === 0) {
|
||||||
this.arrayBuffer = null;
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const fileReader = new FileReader();
|
const fileReader = new FileReader();
|
||||||
fileReader.onloadend = function () {
|
fileReader.onloadend = function () {
|
||||||
this.arrayBuffer = new Uint8Array(fileReader.result);
|
const arrayBuffer = new Uint8Array(fileReader.result);
|
||||||
|
this.store.dispatch(new UpdateFirmwareWithAction(Array.prototype.slice.call(arrayBuffer)));
|
||||||
}.bind(this);
|
}.bind(this);
|
||||||
fileReader.readAsArrayBuffer(files[0]);
|
fileReader.readAsArrayBuffer(files[0]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,12 +128,14 @@
|
|||||||
<ul [@toggler]="animation['agent']">
|
<ul [@toggler]="animation['agent']">
|
||||||
<li class="sidebar__level-2--item">
|
<li class="sidebar__level-2--item">
|
||||||
<div class="sidebar__level-2" [routerLinkActive]="['active']">
|
<div class="sidebar__level-2" [routerLinkActive]="['active']">
|
||||||
<a [routerLink]="['/settings']">Settings</a>
|
<a [routerLink]="['/settings']"
|
||||||
|
[class.disabled]="updatingFirmware$ | async">Settings</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="sidebar__level-2--item">
|
<li class="sidebar__level-2--item">
|
||||||
<div class="sidebar__level-2" [routerLinkActive]="['active']">
|
<div class="sidebar__level-2" [routerLinkActive]="['active']">
|
||||||
<a [routerLink]="['/about']">About</a>
|
<a [routerLink]="['/about']"
|
||||||
|
[class.disabled]="updatingFirmware$ | async">About</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -9,6 +9,10 @@
|
|||||||
|
|
||||||
a {
|
a {
|
||||||
color: #333;
|
color: #333;
|
||||||
|
|
||||||
|
&.disabled {
|
||||||
|
opacity: 0.65;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// General list styles for the sidebar-menu.
|
// General list styles for the sidebar-menu.
|
||||||
@@ -112,6 +116,10 @@ ul {
|
|||||||
&:focus {
|
&:focus {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.disabled {
|
||||||
|
opacity: 0.65;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user