Yangman - Menus overlapping in params dialog 91/43491/3
authormichal.kovacik <mikovaci@cisco.com>
Tue, 9 Aug 2016 09:55:21 +0000 (11:55 +0200)
committermichal.kovacik <mikovaci@cisco.com>
Wed, 10 Aug 2016 08:31:53 +0000 (10:31 +0200)
- dialog menu is closed after click outside menu and two menus are not
  overlapping now
-missing mdMenu injection added

Change-Id: I01eee4946146e028eac5c92cfc2d27cdca15ca11
Signed-off-by: michal.kovacik <mikovaci@cisco.com>
modules/yangman-resources/src/main/resources/yangman/controllers/params-admin.controller.js

index fe7c8fae6de43faa13c8a4abe139bc0c5600253b..4d5fcf4b96d75f96eeaed281b20316a792389fb2 100644 (file)
@@ -5,10 +5,11 @@ define([
 
     angular.module('app.yangman').controller('ParamsAdminCtrl', ParamsAdminCtrl);
 
-    ParamsAdminCtrl.$inject = ['$mdDialog', '$scope', '$timeout', 'YangmanService', 'YMHandleFileService', 'parametersList'];
+    ParamsAdminCtrl.$inject = ['$mdMenu', '$mdDialog', '$scope', '$timeout', 'YangmanService', 'YMHandleFileService', 'parametersList'];
 
-    function ParamsAdminCtrl($mdDialog, $scope, $timeout, YangmanService, YMHandleFileService, parametersList) {
-        var vm = this;
+    function ParamsAdminCtrl($mdMenu, $mdDialog, $scope, $timeout, YangmanService, YMHandleFileService, parametersList) {
+        var openMenuListener,
+            vm = this;
 
         vm.parametersList = parametersList;
         vm.search = '';
@@ -138,6 +139,10 @@ define([
         function init(){
             vm.parametersList.loadListFromStorage();
             createEmptyParam();
+            openMenuListener = $scope.$on('$mdMenuOpen', function () {
+                closeOpenedMenu();
+                $timeout(registerClickOutside);
+            });
         }
 
         /**
@@ -172,6 +177,29 @@ define([
             init();
         }
 
+        function registerClickOutside() {
+            $(document).click(function () {
+                closeOpenedMenu();
+            });
+        }
+
+        function unregisterClickOutside() {
+            $(document).off('click');
+        }
+
+        function openMenuDestroyListener() {
+            $scope.$on('$destroy', function () {
+                openMenuListener();
+            });
+        }
+
+        function closeOpenedMenu() {
+            unregisterClickOutside();
+            openMenuDestroyListener();
+            $mdMenu.hide();
+        }
+
+
 
     }