diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2018-07-24 16:42:18 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2018-07-24 16:42:18 -0400 |
| commit | 6bb63d25c49142db1d637624570ea2ac9a1918e2 (patch) | |
| tree | 0a3ee2ec20c4d00acdc2c3d4c2e1305b94e179cd /www/js/TimelineCtrl.js | |
| parent | c09dec1ac77704203d17a2ea00853c11648e4395 (diff) | |
#675 timeline keybindings
Diffstat (limited to 'www/js/TimelineCtrl.js')
| -rw-r--r-- | www/js/TimelineCtrl.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/www/js/TimelineCtrl.js b/www/js/TimelineCtrl.js index d69cfd24..dec34504 100644 --- a/www/js/TimelineCtrl.js +++ b/www/js/TimelineCtrl.js @@ -277,6 +277,12 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla //------------------------------------------------- $scope.$on('$ionicView.leave', function () { + if ($rootScope.platformOS == 'desktop') { + NVRDataModel.debug ("Removing keyboard handler"); + window.removeEventListener('keydown', keyboardHandler, true); + + } + NVRDataModel.debug("Timeline: Deregistering broadcast handles"); for (var i = 0; i < broadcastHandles.length; i++) { // broadcastHandles[i](); @@ -305,8 +311,75 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla timeline = ''; $scope.newEvents = ''; + if ($rootScope.platformOS == 'desktop') { + window.addEventListener('keydown', keyboardHandler, true); + + } + + }); + // Keyboard handler for desktop versions + function keyboardHandler(evt) { + + var handled = false; + var keyCodes = { + + //events + LEFT: 37, + RIGHT: 39, + UP:38, + DOWN:40, + + ESC: 27, + + PREVDAY_A: 65, + NEXTDAY_D: 68, + + }; + + $timeout (function () { + var keyCode = evt.keyCode; + + console.log (keyCode + " PRESSED"); + + if (keyCode == keyCodes.UP) { + + timeline.zoomIn(0.2); + + } + else if (keyCode == keyCodes.DOWN) { + + timeline.zoomIn(0.2); + + } + else if (keyCode == keyCodes.LEFT) { + + move (-0.2); + } + else if (keyCode == keyCodes.RIGHT) { + move (0.2); + } + + else if (keyCode == keyCodes.ESC) { + timeline.fit(); + } + + else if (keyCode == keyCodes.PREVDAY_A) { + $scope.moveDays(-1); + } + + else if (keyCode == keyCodes.NEXTDAY_D) { + $scope.moveDays(1); + } + + + handled = true; + return handled; + + }) + } + //------------------------------------------- // Entire reason for existence: // double tap doesn't reliably work |
