Initial OpenECOMP Portal commit
[portal.git] / ecomp-portal-FE / client / app / views / header / user-edit / edit-user.controller.js
diff --git a/ecomp-portal-FE/client/app/views/header/user-edit/edit-user.controller.js b/ecomp-portal-FE/client/app/views/header/user-edit/edit-user.controller.js
new file mode 100644 (file)
index 0000000..507b3a0
--- /dev/null
@@ -0,0 +1,134 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal
+ * ================================================================================
+ * 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.
+ * ================================================================================
+ */
+'use strict';
+
+(function () {
+    class EditUserController {
+        constructor($scope,$log, message, $q, $http, conf,contactUsService,confirmBoxService,userProfileService,adminsService) {
+               
+               $scope.newUser ={
+                               firstName:'',
+                               lastName:'',
+                               emailAddress:'',
+                               middleName:'',
+                               loginId:'',
+                               loginPwd:'',
+               };
+               
+               $scope.userId = $scope.ngDialogData.loginId;
+               $scope.updateRemoteApp = $scope.ngDialogData.updateRemoteApp;
+               try {
+               userProfileService.getCurrentUserProfile($scope.userId)
+                .then(res=> {
+                  $scope.newUser.firstName = res.firstName;
+                  $scope.newUser.lastName = res.lastName;
+                  $scope.newUser.emailAddress = res.email;
+                  $scope.newUser.middleName = res.middleInitial;
+                  $scope.newUser.loginId = res.loginId;
+                  $scope.newUser.loginPwd = res.loginPwd;
+                  $scope.newUser.loginPwdCheck = res.loginPwd;
+                  
+                }).catch(err=> {
+                 $log.error('HeaderCtrl::LoginSnippetCtrl:get Current User Profile error: ' + err);
+                });
+            } catch (err) {
+                $log.error('HeaderCtrl::LoginSnippetCtrl:getFunctionalMenuStaticInfo failed: ' + err);
+            }          
+               
+            $scope.changePwdText = function(){
+               $scope.newUser.loginPwdCheck = '';
+            }
+               
+               $scope.closeDialog = function(){
+                       $scope.closeThisDialog( $scope.widgetData);
+               }
+               
+               $scope.updateUserFun = function(){
+               
+                  if ($scope.newUser.firstName==''||$scope.newUser.lastName==''||$scope.newUser.loginPwd=='') {
+                                       var warningMsg = "Please enter missing values";
+                                       confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;});
+                                       return;
+                          } else if ($scope.newUser.loginPwd != $scope.newUser.loginPwdCheck) {
+                          var warningMsg = "Passwords do not match, please try again.";
+                          confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;});
+                          return;
+                  } else {
+                          
+                          // check password length complexity.
+                          var warningMsg = adminsService.isComplexPassword($scope.newUser.loginPwd);
+                          if (warningMsg != null) {
+                                  confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;});
+                                  return;
+                          }
+                       
+                       adminsService.addNewUser($scope.newUser,'No').then(res=> {
+                              
+                                      $scope.closeThisDialog();
+                                       
+                                  confirmBoxService.showInformation('Update User Info successfully');
+                                                  userProfileService.broadCastUpdatedUserInfo();
+
+                                  
+                                  if($scope.updateRemoteApp){
+                                                 //need update remote app's database
+                                                 var remoteAppId = $scope.ngDialogData.appId;
+                                                 if(remoteAppId!=null){
+                                                                                         
+                                                          userProfileService.updateRemoteUserProfile($scope.userId,remoteAppId).then(res=> {
+                                                                                               
+                                                        
+                                                              }).catch(err=> {
+                                                                  $log.error('userProfileService: update user profile in remote app  error:: ', err);
+                                                                  confirmBoxService.showInformation('Update User in remote app failed: ' + err);
+                                                                 
+                                                              }).finally(() => {
+                                                                  
+                                                              });
+                                                 
+                                                 
+                                                 }
+                                          
+                                      }
+                        
+                              }).catch(err=> {
+                                  $log.error('adminsService: addNewUser error:: ', err);
+                                 // $scope.errMsg=err;
+                                  confirmBoxService.showInformation('Add New User failed: ' + err);
+                                 
+                              }).finally(() => {
+                                  //this.isLoadingTable = false;
+                                  
+                              });
+                       
+               }
+         }
+               
+               
+        }        
+    }
+    EditUserController.$inject = ['$scope','$log',  'message', '$q', '$http', 'conf','contactUsService','confirmBoxService','userProfileService','adminsService'];
+    angular.module('ecompApp').controller('editUserController', EditUserController);
+
+})();
+function validateUrl(value){
+    return /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
+  }
\ No newline at end of file