Agent menu (#540)

* Add generate version module script

* Remove Fork me on GitHub banner

* Add app-version.ts

* Revert "Add app-version.ts"

This reverts commit fe1a37e631.

* Add app-version.ts

* Add agent icon class

* Move settings component under agent folder

* Add AboutComponent

* Add agent routes

* Add index.ts for agent folder

* Fix agent folder imports in shared module

* Add agent menu to side menu, with Settings and About pages under it

* Fix agent icon alignment in side menu

* Simplify About page

* Make Agent menu 0 level in side menu

* Remove bottom Settings menu

* Fix Agent menu closing if My UHK is closed in side menu

* Fix version text alignment in auto update settings

* Remove github fork ribbon styles

* use package.json instead of app-version.ts

* fix OpenUrlInNewWindow naming

* fix lint request

* fix: firmware download url calculation
This commit is contained in:
Mikko Lakomaa
2018-01-13 18:10:21 +02:00
committed by László Monda
parent fdcf64d5c6
commit 3ee6c680a1
34 changed files with 199 additions and 137 deletions

View File

@@ -15,9 +15,5 @@
},
"dependencies": {
"node-hid": "0.5.7"
},
"firmwareVersion": "8.0.0",
"deviceProtocolVersion": "4.0.0",
"userConfigVersion": "4.0.0",
"hardwareConfigVersion": "1.0.0"
}
}

View File

@@ -1,7 +1,5 @@
import { BrowserWindow, ipcMain } from 'electron';
import { BrowserWindow, ipcMain, shell } from 'electron';
import { UhkHidDevice } from 'uhk-usb';
import { readFile } from 'fs';
import { join } from 'path';
import { AppStartInfo, IpcEvents, LogService } from 'uhk-common';
import { MainServiceBase } from './main-service-base';
@@ -18,53 +16,31 @@ export class AppService extends MainServiceBase {
ipcMain.on(IpcEvents.app.getAppStartInfo, this.handleAppStartInfo.bind(this));
ipcMain.on(IpcEvents.app.exit, this.exit.bind(this));
ipcMain.on(IpcEvents.app.openUrl, this.openUrl.bind(this));
logService.info('[AppService] init success');
}
private async handleAppStartInfo(event: Electron.Event) {
this.logService.info('[AppService] getAppStartInfo');
const packageJson = await this.getPackageJson();
const response: AppStartInfo = {
commandLineArgs: {
addons: this.options.addons || false,
autoWriteConfig: this.options['auto-write-config'] || false
},
deviceConnected: this.uhkHidDeviceService.deviceConnected(),
hasPermission: this.uhkHidDeviceService.hasPermission(),
agentVersionInfo: {
version: packageJson.version,
firmwareVersion: packageJson.firmwareVersion,
deviceProtocolVersion: packageJson.deviceProtocolVersion,
moduleProtocolVersion: packageJson.moduleProtocolVersion,
userConfigVersion: packageJson.userConfigVersion,
hardwareConfigVersion: packageJson.hardwareConfigVersion
}
hasPermission: this.uhkHidDeviceService.hasPermission()
};
this.logService.info('[AppService] getAppStartInfo response:', response);
return event.sender.send(IpcEvents.app.getAppStartInfoReply, response);
}
/**
* Read the package.json that delivered with the bundle. Do not use require('package.json')
* because the deploy process change the package.json after the build
* @returns {Promise<any>}
*/
private async getPackageJson(): Promise<any> {
return new Promise((resolve, reject) => {
readFile(join(__dirname, 'package.json'), {encoding: 'utf-8'}, (err, data) => {
if (err) {
return reject(err);
}
resolve(JSON.parse(data));
});
});
}
private exit() {
this.logService.info('[AppService] exit');
this.win.close();
}
private openUrl(event: Electron.Event, urls: Array<string>) {
shell.openExternal(urls[0]);
}
}