Commit Graph
46 Commits
Author SHA1 Message Date
Róbert Kiss 7baf9ad009 fix(user-config): Layer switcher key behaviour on non-base layers (#440)
* refactor(user-config): Optimize imports

* feat(user-config): Clone SwitchLayerAction to destination layer

* fix(user-config): Fix Keymap SwitchLayerAction normalization

* test(user-config): Remove spy callThrough

* build: Add uhk-common test runner

* build: delete test serialization files

* fix(user-config): Add missing "type": "basic" properties to the user-config.json

* test(user-config): Add KeyMacroAction tests

* fix(user-config): Delete SwitchLayerAction from non destination layer

* fix(user-config): Keymap normalize delete SwitchLayerActions from non base layers

* ci: turn of uhk-web tests

* ci: turn off karma watch mode in uhk-web test
2017-10-13 12:25:57 +02:00
Róbert Kiss 46b97a9b62 feat(user-config): Add ISO key scancode (#441)
close: #437
2017-10-11 22:22:34 +02:00
Róbert Kiss 0e5d6d1a25 refactor(device): Rename UserConfigSize => MaxUserConfigSize (#436)
Rename SystemPropertyIds.UserConfigSize => SystemPropertyIds.MaxUserConfigSize because it better describe which date will return from device
2017-10-09 23:20:06 +02:00
Róbert Kiss ba1fff788d feat(device): Reset user configuration on device (#435) 2017-10-08 00:23:46 +02:00
Róbert Kiss 23af522a48 fix(user-config): Fix user configuration savings (#433)
* test(user-config): Fix saveAs functionality

* feat(user-config): Add 2 space indent when save user-config to json file

* refactor(user-config): Move user config savings into user config effect

* build: Remove unused package
2017-10-07 16:19:32 +02:00
Róbert Kiss 35c0d98cd2 test(serializer): Add KeystrokeAction tests (#430)
* test: add basis of the unit testing of the uhk-common package

* test(serializer): Add KeystrokeAction tests

* fix(serializer): Fix KeystrokeAction scancode mapping

* test(serializer): Add NoneAction test cases

* test(serializer): Add MouseAction test cases

* test(serializer): Add PlayMacroAction test cases

* test(serializer): Add SwitchKeymapAction test cases

* test(serializer): Add UserConfiguration test cases

fix KeyAction mapping

* test(serializer): Add SwitchLayerAction test cases
2017-10-06 22:24:33 +02:00
Róbert Kiss 9294bede50 feat(config): Read / write hardware configuration area (#423)
* add write-hca.js

* refactor: Move config serializer into the uhk-common package

* refactor: Move getTransferBuffers into the uhk-usb package

* refactor: delete obsoleted classes

* build: add uhk-usb build command

* refactor: move eeprom transfer to uhk-usb package

* fix: Fix write-hca.js

* feat: load hardware config from the device and

* style: fix ts lint errors

* build: fix rxjs dependency resolve

* test: Add jasmine unit test framework to the tet serializer

* fix(user-config): A "type": "basic", properties to the "keystroke" action types

* feat(usb): set chmod+x on write-hca.js

* feat(usb): Create USB logger

* style: Fix type

* build: Add chalk to dependencies.

Chalk will colorize the output
2017-09-26 16:57:27 +00:00
Róbert Kiss 8f85254b5c fix(tooltip): Uncomment JQuery tooltip codes (#420) 2017-09-17 13:26:11 +00:00
Róbert Kiss 73ce1dfa67 fix(keymap): Should not automatically capitalize keymap name (#421) 2017-09-17 12:51:14 +00:00
Róbert Kiss 96e968729d feat(device): Read user config from eeprom (#413)
* feat(device): Read user config from eeprom

* read data from eeprom

* fix user config serialization

* fix device connected detection

* not allow override default config is eeprom is empty

* add error handling to eeprom parsing

* colorize log output

* add USB[T] feature

* add class name to USB[T] log

* remove redundant error log msg

* Add USB[T] to Apply user config
2017-09-17 12:45:20 +00:00
Róbert Kiss d621b1e5e6 feat(device): Write user configuration into the eeprom (#411)
* feat(device): Write user configuration into the eeprom

* when save user config settings wait until is not keyboard busy
2017-09-14 22:13:00 +00:00
Róbert Kiss 901a5eb5d1 refactor: Add UhkHidDevice wrapper that unified the USB communication (#414)
* refactor: Add UhkHidDevice wrapper that unified the USB communication

* fix(log): Hack Replace console.debug to console.log
2017-09-13 22:58:41 +00:00
Róbert Kiss 8d7269a998 feat(device): Add 'Save to keyboard' button (#402)
* feat(device): Add 'Save to keyboard' button

Created a 'Progress Button' that have 2 state in progress or not.
Able to set different text for different state:
- baseText for normal state
- progressText for in progress state
close: #377

* fix 'Save to keyboard' button visibility in web version

* remove success notification when save to keyboard success

* feat(notifier): Turn off auto hide of the notifier

* feat(device): Show saved state of 'Save to keyboard button'

* style: Format import in app.component.ts

* feat(device): Auto hide 'Save to Keyboard' button

* fix(device): Fix saving animation

* fix(device): Fix saving animation

* fix(device): Fix tslint
2017-09-10 23:22:54 +00:00
Róbert Kiss 30c74c06d3 refactor(usb): Use hid-api instead of lib-usb (#404)
* refactor(usb): Rewrite jump-to-bootloder to node-hid

* refactor(usb): Rewrite the whole usb packages to HID-API

* refactor(usb): Deleted not valid usb command files

* refactor(usb): Deleted not supported usb commands

* Remove obsolete script.

* Remove obsolete script.

* Fix script.

* Fix script.

* No need to assign the silent property because it has been removed.

* This workaround may work on other platforms, but it certainly doesn't work on Linux. It makes some scripts not work, so I'm commenting it out.

* Fix bootloader VID and PID.
2017-09-06 14:32:58 +02:00
Róbert Kiss ee93466a08 build: Fix reflection and minification conflict (#399)
The minification change the class name so constructor.name not give back the correct class name.
Introduced getName() method in KeyAction and MacroAction Abstract class
2017-08-27 02:38:55 +02:00
Róbert Kiss be3e116130 build: Configure AOT (#394)
* build: Configure AOT

* build: Fix appveyor ENV settings
2017-08-26 00:56:28 +02:00
Róbert Kiss 015d110c2b fix(keymap): Hide horizontal scrollbar (#392)
close #391
2017-08-20 19:22:22 +02:00
Róbert Kiss b2466f01aa fix(keymap): Add new keymap scrolling (#390)
close #389
2017-08-20 15:37:06 +02:00
Róbert Kiss 0f558e4132 refactore: create feature modules (#387)
* add @angular/cli to the project

* increase nodejs version -> 8.2.1

* add lerna

* merge web and shared module

* move electron module into packages as uhk-agent

Electron agent functionality is not working

* delete symlinker

* convert private properties to public of component if used in html

* revert uhk-message.component

* fix component path

* fix the correct name of the uhk-message.component.scss

* building web and electron module

* delete uhk-renderer package

* handle device connect disconnect state

* add privilege detection

* fix set privilege functionality

* turn back download keymap functionality

* add bootstrap, select2 js and fix null pointer exception

* turn back upload data to keyboard

* fix send keymap

* fix test-serializer

* add missing package.json

* merging

* fix appveyor build

* fix linting

* turn back electron storage service

* commit the missing electron-datastorage-repository

* update node to 8.3.0 in .nvmrc and log node version in appveyor build

* set exact version number in appveyor build

* vertical align privilege and missing device components

* set back node version to 8 in appveyor

* move node-usb dependency from usb dir to root

maybe it is fix the appveyor build

* revert usb to root

* fix electron builder script

* fix electron builder script

* turn off electron devtools

* remove CTRL+U functionality

* fix CTRL+o

* fix lint error

* turnoff store freeze

* start process when got `Error: EPERM: operation not permitted` error

* move files from root usb dir -> packages/usb
2017-08-19 20:02:17 +02:00
Róbert Kiss ee248e9c93 fix(keymap): Fix 'Capture keystroke' button in FF (#375)
Close #374
2017-07-25 21:00:25 +02:00
Róbert Kiss 817daafd18 feat: Set no wrap on Delete Keymap and Delete Macro icons (#371)
close #369
2017-07-25 00:38:43 +02:00
Róbert Kiss ec085d574c ci: Travis do not use cache (#372) 2017-07-25 00:30:35 +02:00
Róbert Kiss 803ae8bb8f build: update dev dependencies (#370) 2017-07-24 22:17:25 +02:00
Róbert Kiss aad0c155dd fix(keymap): Change keymap name and abbr algorithm (#365)
* feat(keymap): Change keymap name and abbr algorithm

Close #363

* feat(keymap): When rename a keymap or macro and the new name is exists do nothing
2017-07-23 22:30:19 +02:00
Róbert Kiss 42683e32f9 feat(notification): Add undoable notification, close #318 (#338)
* feat(notification): Add undoable notification

* feat(notification): Add undoable notification

* feat(notification): Use uhk-header to the notification

* half ready solution

* - fix: "Keymap has been deleted" is displayed for macros.
- When a keymap/macro deletion gets undone, please set the route of the restored keymap/macro.
- When the user switches to another route, please make the undo notification disappear.

* fix(keymap): Store prev user configuration in the application reducer

Store the previous state in application reducer, because refactoring the
user-config reducer is not easy

* feat(keymap): Fix review request
2017-07-23 22:17:53 +02:00
Róbert Kiss ce55cac380 fix(keymap): Add tooltips to action icons (#366)
* fix(keymap): Add tooltips to action icons

* fix(keymap): Remove console.log write

* feat(tooltip): New design of the tooltip

* feat(keymap): Show the tooltip of "Long press action" downward

* style(tooltip): Fix linting issues
2017-07-19 23:27:25 +02:00
Róbert Kiss a4d41f36d5 feat(app): Show add-on menu if start app with --addons arg (#359)
* refactor(store): Move app reducer from electron to shared module

* feat(app): Show add-on menu if start app with --addons arg

close: #351
2017-07-18 09:46:55 +02:00
Róbert Kiss 25257132a6 fix(keymap) allow 0 in keymap abbr when rename (#362) 2017-07-18 00:06:36 +02:00
Róbert Kiss db8a4413de feat(settings): Only display settings in Agent-electron (#358)
close #252
2017-07-17 01:01:29 +02:00
Róbert Kiss 3db019812a feat(keymap): Keymap abbr should be only number or ASCII char (#360)
* feat(keymap): Keymap abbr should be only number or ASCII char

close #341

* fix(keymap): Allow '1' when generate keymap abbreviation
2017-07-17 00:48:31 +02:00
Róbert Kiss 131fdea0c5 refactor: Create uhk-header component (#354)
Create a header wrapper component that will contains the undo
notification component.
2017-07-15 14:41:06 +02:00
Róbert Kiss dc6a016db2 build: Update .nvmrc -> 8.1.4 (#348)
This file manage the node version on travis build.
Suggest to everyone to use nvm to manage node version on dev environment.
2017-07-15 11:00:24 +02:00
Róbert Kiss 67a55363da build(webpack): Fix the request of a dependency is an expression (#337)
* build(webpack): Fix the request of a dependency is an expression

Critical dependency: the request of a dependency is an expression

* style: Fix spaces after object literal braces
2017-07-05 18:35:56 +02:00
Róbert Kiss 1796e61f02 style: Fix styelint warning (#336)
Deprecation Warning: 'selector-no-id' has been deprecated and in 8.0 will be removed.
Instead use 'selector-max-id' with '0' as its primary option.
See: https://stylelint.io/user-guide/rules/selector-no-id/
2017-07-05 18:02:31 +02:00
Róbert Kiss 66525f7e84 style: Fix tslint warning: The 'no-use-before-declare' rule requires type checking (#335) 2017-07-05 18:00:37 +02:00
Róbert Kiss 3a86b77421 refactor(log): Refactor logging service (#332)
* refactor(log): Refactor logging service

Removed the InjectionToken and changed LogService as default logger.
Finally ElectronLogService implements LogService directly.

* refactor: Optimize imports

* fix(app-update): Add missing rxjs imports

* style: Remove extra line
2017-07-05 13:44:52 +02:00
Róbert Kiss f7212320e6 refactor(auto-update): Show notification messages with the angular-notifier (#334)
* refactor(log): Refactor logging service

Removed the InjectionToken and changed LogService as default logger.
Finally ElectronLogService implements LogService directly.

* refactor: Optimize imports

* fix(app-update): Add missing rxjs imports

* style: Remove extra line

* refactor(store): Move app.actions.ts to shared module

* feat(notification): Add notification panel

Add angular-notifier to the app and created the ShowNotificationAction
to manage notifications

* style(notification): Fix tslint suggestion

* fix(notification): Add missing rxjs imports

* refactor(app-update): Refactor app-update notification

* fix(auto-update): Add missing rxjs imports
2017-07-05 13:41:45 +02:00
Róbert Kiss c9a1e9853c feat(notification): display app errors, close #319 (#333)
* refactor(log): Refactor logging service

Removed the InjectionToken and changed LogService as default logger.
Finally ElectronLogService implements LogService directly.

* refactor: Optimize imports

* fix(app-update): Add missing rxjs imports

* style: Remove extra line

* refactor(store): Move app.actions.ts to shared module

* feat(notification): Add notification panel

Add angular-notifier to the app and created the ShowNotificationAction
to manage notifications

* style(notification): Fix tslint suggestion

* fix(notification): Add missing rxjs imports
2017-07-05 13:41:31 +02:00
Róbert Kiss 6bc2bc8331 fix(device): Agent-electron should always read the configuration from the UHK over USB. (#327)
The feature will implement later.
2017-07-02 22:38:29 +02:00
Róbert Kiss 2df8f2ea54 Windows set up permission button #261 (#300)
* style(privilege): Fix typo 'excusive' -> 'exclusive'

* style(privilege): remove unused imports

* style(privilege): Fix typo 'initizalized$' -> 'initialized$'

* feat(log): Add application wide logger and error handler

It is help to debug electron install app on different device

* feat(privilege): Add windows USB driver installation

* build: I need the windows installer to test the app on windows

* fix(privilege): change wdi-simpler installer to zadic

* feat(log): change log level to debug in renderer process

* chore: Add author in package.json

* feat(privilege): Add privilege setter file as extraResource

* fix(log): Allowed transport level change only in main process

* fix(privilege): Fix app path calculation

* fix(privilege): Take the scriptPath between double quote

* build: revert the appveyor settings

* refactor(privilege): Extract vendor ID, product ID and MAX_PAYLOAD_SIZE into constants file

* refactor(privilege): Add both 32 and 64 bit zadics to extraResource of the installer

* feat(device): Add HID API communication protocol

* build: Fix npm install process

* build: Fix npm install process v2

* ci: Add libudev-dev as travis apt dependencies

* ci: Merge travis apt packages

* ci: remove node-hid from build:usb

* ci: try to fix linux build

* ci: node-hid use git repo

* ci: Add libusb-1.0-0-dev to travis apt dependency

* feat(device): Use logging service when communicate with the device

* build: create test build

* build: PUBLISH_FOR_PULL_REQUEST override

* build: revert TEST_BUILD to false

* build: node-hid use package version instead of git repo

* refactor: remove unused device store files from PR

* ci: Manage test build from environment variable

* fix(privilege): Set rules files dir base on dev or prod mode

* fix(log): Extract nested properties of the logged object

* feat(log): use util.inspect in logger service

* build: upgrade @types/node-hid -> 0.5.2

* fix(device): Add extra logging when try to open device.

* fix(device): log device description and not the device

* fix(device): add win specific write

* fix(device): add report id as first byte

* style(privilege): Reformat else and comment in privilege-checker component

* fix(privilege): Comment out windows branch
2017-07-02 20:33:28 +02:00
Róbert Kiss 121807a65a Add 'New update available' dialog to the electron version (#299)
* build(tsconfig): Rename root tsconfig.json -> tsconfig.base.json

* feat(auto-update): Add update dialog

When new update available than new message will visible of the top of the screen with 2 buttons 'Update' and 'Close'.
- Update button: Update the application (close and restart)
- Close button: Hide the updatePanel

* fix(auto-update): Add types to the event methods

* style: Add comma after SafeStylePipe import

I forgot add the comma when I rebased the branch

* fix(auto-update): Use electron-is-dev package to detect dev build

I removed the isDev() function from the shared util library because it is electron specific code.

* ci: Change osx_image: xcode8.3

Recommended after the last travis upgrade

* feat(auto-update): Add auto update settings page and save config save on electron platform

* ci: Fix osx image

* ci: Upgrade the electron builder -> 19.6.1

The builder now use the 2 package.json structure and build only
the necessary dependencies.
2017-06-22 14:22:54 +02:00
Róbert Kiss 438aab5c71 fix(keymap): Save keymap user configuration after changed (#313)
* fix(keymap): Save keymap user configuration after changed

fix #308 issue

* fix(keymap): remove unused imports

* fix(keymap): change switchMap to map
2017-06-17 21:35:29 +02:00
Róbert Kiss 367bc42457 refactor(store): Refactor reducer initialisation (#298)
* refactor(store): Refactor reducer initialization

Refactored the ngrx/store reducer initialization, because hard to extend the original solution.
Bad practise the object initialization inside the components / services. The new solution use angular DI everywhere.
Separated the web and electron configuration store.

* Media key support (#294)

* Introduce type for KeystrokeAction

* Increment dataModelVersion

New property 'type' for KeystrokeAction

* Mapping for media keys

* Media key selecting support for KeypressTab

* refactor: Use more meaningful name (selectedScancodeOption)

* Store the keystroke type in key action type instead of a new field

* Fix NoneAction validation
Fixes #301

* Update electron version

It fixes electron build. The types are part of the electron package itself.

* Fix keystroke selection when additional field is given but no scancode (#306)

* Additional media keys with icons (#307)

* Add missing scancodes for media keystrokes

* Use icons for media keys

* Fix media scancodes.

* Create README.md

* build: upgrade electron and typescript version

Electron contains the typings files.

* refactor(store): Refactor reducer initialization

Refactored the ngrx/store reducer initialization, because hard to extend the original solution.
Bad practise the object initialization inside the components / services. The new solution use angular DI everywhere.
Separated the web and electron configuration store.

* build: upgrade electron and typescript version

Electron contains the typings files.

* fix(store): Remove the I prefix from IDataStorageRepositoryService

* fix(store): fix observer operator import

* fix(store): Add missing rxjs imports to user-config effect

* fix(store): Add missing rxjs imports to keymap effect
2017-06-13 14:41:40 +02:00
Róbert Kiss 8e823b57b4 style(editorconfig): Add json rule to editor config (#297)
We aggreed to use 2 indent size in json files. The reason is npm use 2 indent in package.json and this is the defacto
2017-06-07 08:57:56 +02:00
Róbert Kiss f2b358ba96 Add electron-builder packager (#293)
* style(.editorconfig): Add json rule to editorconfig file

* build(build): Add application images

These images need to create installers
Contains images for:
- Win
- Mac
- Linux

* fix(device): Mac is not allow excusive right to use USB

* build(npm): Add standard-version script

* chore(device): Fix comment in UhkDeviceService

* chore(release): 1.0.0-alpha.1

* ci(travis): Change travis to c language and add osx, linux build matrix

* build(build): Windows icon size must be at least 256x256

* ci(appveyor): Add temporary GH_TOKEN to test msi installer

* build(tsconfig): Optimalize tsconfigs

Needed a tsconfig.json in the shared/src library because if it not exist the code builded after the second build on mac, and travis linux. Reproduce the error:
- Delete node_modules directory
- npm i
- npm run build
- error occured (ERROR in ./shared/src/polyfills.ts
Module build failed: error while parsing tsconfig.json)
Created a new tscfonfig.json in the project root folder.
The old config files extends this root configs.

* build(tsconfig): in tsconfig-electron-main not override module version

* chore(editorconfig): Delete json rule

* style: Reformat the main package.json to apply editorconfig style
2017-06-05 23:34:46 +02:00
Róbert Kiss 14392fe580 Add appveyor CI integration (#292)
* build(npm): Add .nvmrc file

* style(.editorconfig): Add json rule to editorconfig file

* build(npm): Add test srcipt command to the package.json file

* build(appveyor): Add appveyor CI

* build(appveyor): not npm upgrade to the latest version

* style(editorconfig): Revert json rule
2017-05-31 21:30:55 +02:00