contracts, index, rootGBPcontroller
[groupbasedpolicy.git] / groupbasedpolicy-ui / module / src / main / resources / gbp / common / gbp.controller.js
index 0b6d52cb93794bcc4017f12cada0cc7ada33b0f9..9d44ace27938d4614c8fcf497fe974f31f86310e 100644 (file)
@@ -3,25 +3,47 @@ define(['app/gbp/common/gbp.service'], function () {
 
     angular.module('app.gbp').controller('RootGbpCtrl', RootGbpCtrl);
 
-    RootGbpCtrl.$inject = ['$state', '$scope', 'RootGbpService'];
+    RootGbpCtrl.$inject = ['$state', '$scope', 'RootGbpService', 'TenantListService', 'TenantService', 'ContractService'];
 
-    function RootGbpCtrl($state, $scope, RootGbpService) {
+    function RootGbpCtrl($state, $scope, RootGbpService, TenantListService, TenantService, ContractService) {
         /* properties */
         $scope.stateUrl = null;
         $scope.sidePanelPage = false;
+        $scope.rootTenant = TenantService.createObject();
+        $scope.rootTenants = TenantListService.createList();
+        $scope.policyDisabled = true;
 
         /* methods */
+        $scope.broadcastFromRoot = broadcastFromRoot;
         $scope.closeSidePanel = closeSidePanel;
         $scope.openSidePanel = openSidePanel;
+        $scope.setRootTenant = setRootTenant;
+        $scope.disableButton = disableButton;
 
         RootGbpService.setMainClass();
         console.log('RootGbpCtrl initialized');
 
+        init();
+
         /* implementations */
         /**
          * Sets '$scope.sidePanelPage' to false. This variable is watched in index.tpl.html template
          * and opens/closes side panel
          */
+        function init() {
+            $scope.rootTenants.clear();
+            $scope.rootTenants.get('config');
+        }
+
+        function broadcastFromRoot(eventName, val) {
+            $scope.$broadcast(eventName, val);
+        }
+
+        function setRootTenant() {
+            $scope.broadcastFromRoot('ROOT_TENANT_CHANGED');
+            enableButtons();
+        }
+
         function closeSidePanel() {
             $scope.sidePanelPage = false;
         }
@@ -42,6 +64,18 @@ define(['app/gbp/common/gbp.service'], function () {
             $scope.sidePanelPage = true;
         }
 
+        function disableButton() {
+            if (Object.keys($scope.rootTenant.data) > 0) {
+                return true;
+            }
+            else {
+                return false;
+            }
+        }
+
+        function enableButtons() {
+            $scope.policyDisabled = false;
+        }
         /* event listeners */
         /**
          * Event fired after content loaded, setStateUrl function is called to fill stateUrl method