Deliver centralized role management feature
[portal.git] / ecomp-portal-FE-common / client / app / views / role / role-function-list-controller.js
1 /*-
2  * ================================================================================
3  * ECOMP Portal
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ================================================================================
19  */
20 app.controller('roleFunctionListController', function ($scope,RoleService,$http,$state,conf,confirmBoxService, ngDialog,$modal){
21         $( "#dialog" ).hide();
22         $scope.isLoadingRoleFunctions = true;
23         RoleService.getRoleFunctionList().then(function(data){
24                 
25                 var j = data;
26                 $scope.data = JSON.parse(j.data);
27                 $scope.availableRoleFunctions =JSON.parse($scope.data.availableRoleFunctions);
28                 //$scope.resetMenu();
29         
30         },function(error){
31                 console.log("failed");
32                 //reloadPageOnce();
33         }) .finally(function(){
34                 $scope.isLoadingRoleFunctions = false;
35         });
36         
37         $scope.editRoleFunction = null;
38         var dialog = null;
39         $scope.editRoleFunctionPopup = function(availableRoleFunction) {
40                 $scope.editRoleFunction = availableRoleFunction;
41                 $( "#dialog" ).dialog({
42                       modal: true
43             });
44         };
45         
46         $scope.editRoleFunctionModalPopup = function(availableRoleFunction) {
47                 $scope.editRoleFunction = availableRoleFunction;
48                 $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
49                 //$scope.availableRoleFunctions={};
50                 
51                  var modalInstance = $modal.open({
52              templateUrl: 'app/views/role/popup_modal_rolefunction.html',
53              controller: 'rolefunctionpopupController',
54              sizeClass: 'modal-small', 
55              resolve: {
56                         message: function () {
57                                 var message = {
58                                                 availableRoleFunction:  $scope.editRoleFunction,
59                                                 availableRoleFunctions: $scope.availableRoleFunctionsTemp
60                                 };
61                           return message;
62                         },
63                         isEditing: function () {
64                                 return true;
65                         }
66                       }
67                   });
68          
69          modalInstance.result.then(function (response) {
70                  if(response.value!=null){
71                 if(response.value.result){
72                         $scope.availableRoleFunctions=response.value.availableRoleFunctions;    
73                 }
74              }                  
75              else
76                 $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
77              
78          });
79         };
80         
81         $scope.addNewRoleFunctionModalPopup = function(availableRoleFunction) {
82                 
83                 $scope.editRoleFunction = null;
84                 $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
85                 //$scope.availableRoleFunctions={};
86                  var modalInstance = $modal.open({
87              templateUrl: 'app/views/role/popup_modal_rolefunction.html',
88              controller: 'rolefunctionpopupController',
89              sizeClass: 'modal-small', 
90              resolve: {
91                         message: function () {
92                                 var message = {
93                                                 availableRoleFunction: $scope.editRoleFunction,
94                                                 availableRoleFunctions: $scope.availableRoleFunctionsTemp
95                                 };
96                           return message;
97                         },
98                         isEditing: function () {
99                                 return false;
100                         }
101                       }
102                   });
103          
104          modalInstance.result.then(function (response) {
105                 if(response.value!=null){
106                 if(response.value.result){
107                         $scope.availableRoleFunctions=response.value.availableRoleFunctions;    
108                 }
109         }
110         if(response.availableRoleFunctions != undefined)
111                 $scope.availableRoleFunctions=response.availableRoleFunctions;
112         else
113                 $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
114                 
115     });
116         };
117         
118         $scope.addNewRoleFunctionPopup = function() {
119                 $scope.editRoleFunction = null;
120                 $( "#dialog" ).dialog({
121                       modal: true
122             });
123         };
124         
125         $scope.saveRoleFunction = function(availableRoleFunction) {
126                   var uuu = conf.api.saveRoleFuncion;
127                   var postData={availableRoleFunction: availableRoleFunction};
128                   $http.post(uuu,postData).then(function(response) {
129                           var data = response.data;
130                         $scope.availableRoleFunctions=data.availableRoleFunctions; 
131                         $scope.editRoleFunction = null;
132                   },              
133                 function() {
134                         
135                         confirmBoxService.showInformation("Error while saving");
136                   }
137                   );
138                 };
139         
140                 
141                 $scope.removeRole = function(availableRoleFunction) {
142                         confirmBoxService.confirm("You are about to delete the role function "+availableRoleFunction.name+". Do you want to continue?").then(
143                         function(confirmed){
144                         if(confirmed){
145                         $scope.availableRoleFunctionsTemp=$scope.availableRoleFunctions;
146                         //$scope.availableRoleFunctions={};
147                         var uuu = conf.api.removeRoleFunction;
148                         var postData=availableRoleFunction;
149                         $http.post(uuu,postData).then(function(response) {
150                         var data = response.data;
151                         if(data == undefined)
152                         confirmBoxService.showInformation("Error while deleting: "+ data);
153                         else
154                         $scope.availableRoleFunctionsTemp.splice($scope.availableRoleFunctionsTemp.indexOf(availableRoleFunction), 1);
155                         $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
156                         },
157                         function() {
158                         $scope.availableRoleFunctions=$scope.availableRoleFunctionsTemp;
159                         confirmBoxService.showInformation("Error while deleting: "+ data.responseText);
160                         }
161                         );
162                         }
163                         });
164
165                         };
166
167 });