Deliver centralized role management feature
[portal.git] / ecomp-portal-FE-common / client / app / views / role / role-function-list-controller.js
index e719599..5e7c62c 100644 (file)
  * limitations under the License.
  * ================================================================================
  */
-app.controller('roleFunctionListController', function ($scope,RoleService,$http,$state,conf,confirmBoxService, ngDialog){
+app.controller('roleFunctionListController', function ($scope,RoleService,$http,$state,conf,confirmBoxService, ngDialog,$modal){
        $( "#dialog" ).hide();
-       
+       $scope.isLoadingRoleFunctions = true;
        RoleService.getRoleFunctionList().then(function(data){
                
                var j = data;
                $scope.data = JSON.parse(j.data);
                $scope.availableRoleFunctions =JSON.parse($scope.data.availableRoleFunctions);
-               
                //$scope.resetMenu();
        
        },function(error){
                console.log("failed");
                //reloadPageOnce();
+       }) .finally(function(){
+               $scope.isLoadingRoleFunctions = false;
        });
        
        $scope.editRoleFunction = null;
@@ -46,32 +47,35 @@ app.controller('roleFunctionListController', function ($scope,RoleService,$http,
                $scope.editRoleFunction = availableRoleFunction;
                $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
                //$scope.availableRoleFunctions={};
-               var modalInstance = ngDialog.open({
-                   templateUrl: 'app/views/role/popup_modal_rolefunction.html',
-                   controller: 'rolefunctionpopupController',
-                   resolve: {
-                       message: function () {
-                               var message = {
-                                               availableRoleFunction:  $scope.editRoleFunction,
-                                               availableRoleFunctions: $scope.availableRoleFunctionsTemp
-                               };
-                         return message;
-                       },
-                       isEditing: function () {
-                               return true;
-                       }
-                     }
-                 }); 
-               modalInstance.closePromise.then(response =>{
-                       if(response.value!=null){
-               if(response.value.result){
-                       $scope.availableRoleFunctions=response.value.availableRoleFunctions;    
-               }
-            }                  
-            /*else
-               $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
-            */
-        });
+               
+                var modalInstance = $modal.open({
+             templateUrl: 'app/views/role/popup_modal_rolefunction.html',
+             controller: 'rolefunctionpopupController',
+             sizeClass: 'modal-small', 
+             resolve: {
+                       message: function () {
+                               var message = {
+                                               availableRoleFunction:  $scope.editRoleFunction,
+                                               availableRoleFunctions: $scope.availableRoleFunctionsTemp
+                               };
+                         return message;
+                       },
+                       isEditing: function () {
+                               return true;
+                       }
+                     }
+                 });
+         
+         modalInstance.result.then(function (response) {
+                if(response.value!=null){
+               if(response.value.result){
+                       $scope.availableRoleFunctions=response.value.availableRoleFunctions;    
+               }
+             }                 
+             else
+               $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
+             
+         });
        };
        
        $scope.addNewRoleFunctionModalPopup = function(availableRoleFunction) {
@@ -79,34 +83,36 @@ app.controller('roleFunctionListController', function ($scope,RoleService,$http,
                $scope.editRoleFunction = null;
                $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
                //$scope.availableRoleFunctions={};
-               var modalInstance = ngDialog.open({
-                   templateUrl: 'app/views/role/popup_modal_rolefunction.html',
-                   controller: 'rolefunctionpopupController',
-                   resolve: {
-                       message: function () {
-                               var message = {
-                                               availableRoleFunction: $scope.editRoleFunction,
-                                               availableRoleFunctions: $scope.availableRoleFunctionsTemp
-                               };
-                         return message;
-                       },
-                       isEditing: function () {
-                               return false;
-                       }
-                     }
-                 });
-               modalInstance.closePromise.then(response => {
-            if(response.value!=null){
-               if(response.value.result){
-                       $scope.availableRoleFunctions=response.value.availableRoleFunctions;    
-               }
-            }
-           /* if(response.availableRoleFunctions != undefined)
-               $scope.availableRoleFunctions=response.availableRoleFunctions;
-            else
-               $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
-               */
-        });
+                var modalInstance = $modal.open({
+             templateUrl: 'app/views/role/popup_modal_rolefunction.html',
+             controller: 'rolefunctionpopupController',
+             sizeClass: 'modal-small', 
+             resolve: {
+                       message: function () {
+                               var message = {
+                                               availableRoleFunction: $scope.editRoleFunction,
+                                               availableRoleFunctions: $scope.availableRoleFunctionsTemp
+                               };
+                         return message;
+                       },
+                       isEditing: function () {
+                               return false;
+                       }
+                     }
+                 });
+         
+         modalInstance.result.then(function (response) {
+               if(response.value!=null){
+               if(response.value.result){
+                       $scope.availableRoleFunctions=response.value.availableRoleFunctions;    
+               }
+        }
+        if(response.availableRoleFunctions != undefined)
+               $scope.availableRoleFunctions=response.availableRoleFunctions;
+        else
+               $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
+               
+    });
        };
        
        $scope.addNewRoleFunctionPopup = function() {
@@ -134,27 +140,28 @@ app.controller('roleFunctionListController', function ($scope,RoleService,$http,
                
                $scope.removeRole = function(availableRoleFunction) {
                        confirmBoxService.confirm("You are about to delete the role function "+availableRoleFunction.name+". Do you want to continue?").then(
-                               function(confirmed){
-                                       if(confirmed){
-                                                       $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
-                                                       //$scope.availableRoleFunctions={};
-                                                 var uuu = conf.api.removeRoleFunction;
-                                                 var postData={availableRoleFunction: availableRoleFunction};
-                                                 $http.post(uuu,postData).then(function(response) {
-                                                         var data = response.data;
-                                                         if(data.availableRoleFunctions == undefined)
-                                                               confirmBoxService.showInformation("Error while deleting: "+ data);
-                                                         else 
-                                                                 $scope.availableRoleFunctions=data.availableRoleFunctions; 
-                                                 },
-                                               function() {
-                                                       $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
-                                                       confirmBoxService.showInformation("Error while deleting: "+ data.responseText);
-                                                 }
-                                                 );
-                                       }                       
-                               });
-                       
-               };
+                       function(confirmed){
+                       if(confirmed){
+                       $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
+                       //$scope.availableRoleFunctions={};
+                       var uuu = conf.api.removeRoleFunction;
+                       var postData=availableRoleFunction;
+                       $http.post(uuu,postData).then(function(response) {
+                       var data = response.data;
+                       if(data == undefined)
+                       confirmBoxService.showInformation("Error while deleting: "+ data);
+                       else
+                       $scope.availableRoleFunctionsTemp.splice($scope.availableRoleFunctionsTemp.indexOf(availableRoleFunction), 1);
+                       $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
+                       },
+                       function() {
+                       $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
+                       confirmBoxService.showInformation("Error while deleting: "+ data.responseText);
+                       }
+                       );
+                       }
+                       });
+
+                       };
 
 });