Initial OpenECOMP policy/engine commit
[policy/engine.git] / ecomp-sdk-app / src / main / webapp / app / fusion / scripts / controllers / rolepopupmodelController.js
diff --git a/ecomp-sdk-app/src/main/webapp/app/fusion/scripts/controllers/rolepopupmodelController.js b/ecomp-sdk-app/src/main/webapp/app/fusion/scripts/controllers/rolepopupmodelController.js
new file mode 100644 (file)
index 0000000..f8ecfad
--- /dev/null
@@ -0,0 +1,205 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ================================================================================
+ */
+var rolepopupController =  function ($scope, $modalInstance, role, roleId, availableRoles, availableRoleFunctions,AdminService,modalService){
+       
+                       $scope.role = role;
+                       console.log($scope.role);
+                       if($scope.role.childRoles==null){
+                               $scope.role.childRoles=[];
+                       }
+                       
+                       $scope.ociavailableRoles=availableRoles;
+                       console.log($scope.ociavailableRoles);
+                       
+                       $scope.availableRoles=[];
+                       if($scope.ociavailableRoles)
+                               $.each($scope.ociavailableRoles, function(i, a){ 
+                                       var availableRole = a;
+                                       availableRole.selected = false;
+                                       if($scope.role.childRoles){
+                                   $.each($scope.role.childRoles, function(j, b){ 
+                                       if(a.id === b.id) {
+                                               availableRole.selected = true;
+                                       }
+                                   });
+                                       };
+                                   $scope.availableRoles.push(availableRole);      
+                               });     
+                               
+                       $scope.ociavailableRoleFunctions = availableRoleFunctions; 
+                       console.log($scope.ociavailableRoleFunctions);
+                       $scope.availableRoleFunctions = []; 
+                       if($scope.ociavailableRoleFunctions)
+                               $.each($scope.ociavailableRoleFunctions, function(i, a){ 
+                                       var availableRoleFunction = a;
+                                       availableRoleFunction.selected = false;
+                                   $.each($scope.role.roleFunctions, function(j, b){ 
+                                       if(a.code === b.code) {
+                                               availableRoleFunction.selected = true;
+                                       }
+                                   });
+                                   $scope.availableRoleFunctions.push(availableRoleFunction);      
+                       });
+                       //$scope.resetMenu();
+               
+               $scope.toggleRoleFunction = function(selected,availableRoleFunction) {
+                       //alert('toggleRole: '+selected);
+                        
+                       if(!selected) {
+                               //remove role function
+                               if(role.id==null){
+                                       var index = $scope.role.roleFunctions.indexOf(availableRoleFunction);
+                                       if(index>=0)
+                                               $scope.role.roleFunctions.splice(index, 1);
+                                       return;
+                               }
+                               var uuu = "role/removeRoleFunction.htm?role_id=" + roleId;
+                               modalService.popupConfirmWinWithCancel("Confirm","You are about to remove the role function "+availableRoleFunction.name+" from the role for "+$scope.role.name+". Do you want to continue?",
+                                       function(){
+                                                               var postData={roleFunction:availableRoleFunction};
+                                                                 $.ajax({
+                                                                        type : 'POST',
+                                                                        url : uuu,
+                                                                        dataType: 'json',
+                                                                        contentType: 'application/json',
+                                                                        data: JSON.stringify(postData),
+                                                                        success : function(data){
+                                                                               $scope.$apply(function(){$scope.role=data.role;}); 
+                                                                        },
+                                                                        error : function(data){
+                                                                                modalService.showFailure("Fail","Error while saving.");
+                                                                        }
+                                                                 });
+                                       
+                       },
+                       function(){
+                               availableRoleFunction.selected=!availableRoleFunction.selected;
+                       })
+       
+                       } else {
+                               //add role function
+                               if(role.id==null){
+                                       $scope.role.roleFunctions.push(availableRoleFunction);
+                                       return;
+                               }
+                               var uuu = "role/addRoleFunction.htm?role_id=" + roleId;
+                               
+                               modalService.popupConfirmWinWithCancel("Confirm","You are about to add the role function "+availableRoleFunction.name+" to the role for "+$scope.role.name+". Do you want to continue?",
+                                       function(){
+                                         var postData={roleFunction:availableRoleFunction};
+                                         $.ajax({
+                                                type : 'POST',
+                                                url : uuu,
+                                                dataType: 'json',
+                                                contentType: 'application/json',
+                                                data: JSON.stringify(postData),
+                                                success : function(data){
+                                                       $scope.$apply(function(){$scope.role=data.role;}); 
+                                                },
+                                                error : function(data){
+                                                        modalService.showFailure("Fail","Error while saving.");
+                                                }
+                                         });
+                                       
+                       },
+                       function(){
+                               availableRoleFunction.selected=!availableRoleFunction.selected;
+                       })
+                       }
+                       
+                         
+       };
+       
+       $scope.toggleChildRole = function(selected,availableRole) {
+               //alert('toggleRole: '+selected);
+
+               if(!selected) {
+                       //remove role
+                       if(role.id==null){
+                               var index = $scope.role.childRoles.indexOf(availableRole);
+                               if(index>=0)
+                                       $scope.role.childRoles.splice(index, 1);
+                               return;
+                       }
+                       var uuu = "role/removeChildRole.htm?role_id=" + roleId;
+                       
+                       modalService.popupConfirmWinWithCancel("Confirm","You are about to remove the child role "+availableRole.name+" from the role for "+$scope.role.name+". Do you want to continue?",
+                               function(){
+                                               var postData={childRole:availableRole};
+                                                 $.ajax({
+                                                        type : 'POST',
+                                                        url : uuu,
+                                                        dataType: 'json',
+                                                        contentType: 'application/json',
+                                                        data: JSON.stringify(postData),
+                                                        success : function(data){
+                                                                console.log('role',data.role);
+                                                                $scope.$apply(function(){$scope.role=data.role;}); 
+                                                        },
+                                                        error : function(data){
+                                                                modalService.showFailure("Fail","Error while saving.");
+                                                        }
+                                                 });
+                               
+               },
+               function(){
+                        availableRole.selected=true;                   
+               })
+               
+               } else {
+                       //add role
+                       if(role.id==null){
+                               $scope.role.childRoles.push(availableRole);
+                               return;
+                       }
+                       var uuu = "role/addChildRole.htm?role_id=" + roleId;
+                       
+                       modalService.popupConfirmWinWithCancel("Confirm","You are about to add the child role "+availableRole.name+" to the role for "+$scope.role.name+". Do you want to continue?",
+                               function(){
+                                 var postData={childRole:availableRole};
+                                 $.ajax({
+                                        type : 'POST',
+                                        url : uuu,
+                                        dataType: 'json',
+                                        contentType: 'application/json',
+                                        data: JSON.stringify(postData),
+                                        success : function(data){
+                                               $scope.$apply(function(){$scope.role=data.role;}); 
+                                        },
+                                        error : function(data){
+                                                modalService.showFailure("Fail","Error while saving.");
+                                        }
+                               });
+                               
+               },
+               function(){
+                       availableRole.selected=false;
+               })
+               }
+               
+                 
+       };
+       
+       $scope.close = function() {
+               console.log('role', $scope.role);
+               $modalInstance.close({role:$scope.role});
+       };
+       
+}