[CORD-965] Fixed Safari bug on Keyboard Shortcut and added tests

Change-Id: Ibaf99ea4eccda47105f6dba149950b55ad7f383c
diff --git a/src/app/template/directives/directives.ts b/src/app/template/directives/directives.ts
index 625c101..3e4840d 100644
--- a/src/app/template/directives/directives.ts
+++ b/src/app/template/directives/directives.ts
@@ -7,23 +7,41 @@
 import * as $ from 'jquery';
 import {IXosKeyboardShortcutService} from '../../core/services/keyboard-shortcut';
 
+export interface IXosNavHandlerService {
+  minimalize: () => void;
+}
+
+export class XosNavHandlerService implements IXosNavHandlerService {
+
+  static $inject = ['XosKeyboardShortcut'];
+
+  constructor(
+    private XosKeyboardShortcut: IXosKeyboardShortcutService
+  ) {
+    this.XosKeyboardShortcut.registerKeyBinding({
+      key: 'n',
+      description: 'Toggle Navigation',
+      cb: this.minimalize,
+    }, 'global');
+  }
+
+  public minimalize() {
+    $("body").toggleClass("nav-toggle");
+  }
+
+}
+
 /**
  * minimalizaSidebar - Directive for minimalize sidebar
  */
-export function minimalizaMenu($rootScope, XosKeyboardShortcut: IXosKeyboardShortcutService) {
+export function minimalizaMenu() {
   return {
     restrict: 'EA',
     template: '<div class="left-nav-toggle"><a href ng-click="minimalize()"><i class="stroke-hamburgermenu"></i> </a>',
-    controller: function ($scope, $element) {
+    controller: function ($scope, XosNavHandler: IXosNavHandlerService) {
       $scope.minimalize = function () {
-        $("body").toggleClass("nav-toggle");
+        XosNavHandler.minimalize();
       };
-
-      XosKeyboardShortcut.registerKeyBinding({
-        key: 'n',
-        description: 'Toggle Navigation',
-        cb: $scope.minimalize,
-      }, 'global');
     }
   };
 }
diff --git a/src/app/template/index.ts b/src/app/template/index.ts
index 11557f9..0e68771 100644
--- a/src/app/template/index.ts
+++ b/src/app/template/index.ts
@@ -1,6 +1,6 @@
 // TODO check used deps
 
-import {minimalizaMenu, panelTools} from './directives/directives';
+import {minimalizaMenu, panelTools, XosNavHandlerService} from './directives/directives';
 export const xosTemplate = 'xosTemplate';
 
 import 'angular-ui-bootstrap';
@@ -26,6 +26,7 @@
     // 'datatables.buttons',       // Datatables Buttons
     // 'ui.tree'                   // Angular ui Tree
   ])
+    .service('XosNavHandler', XosNavHandlerService)
     .directive('minimalizaMenu', minimalizaMenu)
     // .directive('sparkline', sparkline)
     .directive('panelTools', panelTools)