accountSetting.Controller.js 13.4 KB
(function() {
    'use strict'
    
    angular.module('acufuel')
        .controller('AccountSettingController', [ '$scope', '$filter', '$rootScope', '$state', 'AccountSettingService', AccountSettingController]);
        
      function AccountSettingController($scope, $filter, $rootScope, $state, AccountSettingService) {
          $scope.addArray = [];
          $scope.userData = {};
          getAdditionalAccounts();
          
          function getAdditionalAccounts() {
            AccountSettingService.getAdditionalAccounts().then(function(result) {
              $scope.additionalAccounts = result;
                })
          }
          
          $scope.userid = JSON.parse(localStorage.getItem('userProfileId'));

          //call this function after upload data
            function getLoginUserData(){
            if($scope.userid && $scope.userid != null && $scope.userid != undefined){
              var id = $scope.userid;
              AccountSettingService.loginUserData(id).then(function(result) {
                if(result.userTimeZone != null){

                  if(result.userTimeZone.slice(0,1)==="P"){

                      result.userTimeZone = result.userTimeZone.replace("P","+");

                     }else if(result.userTimeZone.slice(0,1)==="M"){
                  
                       result.userTimeZone = result.userTimeZone.replace("M","-");
                     }
                  
                }
                  $scope.userData = result;
                  //console.log("===userData===",$scope.userData)
                  $scope.userData.status = $scope.userData.account.user.status.toLowerCase();
                  $scope.userData.userType = $scope.userData.userType.type.toLowerCase();
              })
            }
          }

          getLoginUserData();


          AccountSettingService.getProducts().then(function(result) {
                $scope.productList = result;
                for(var i=0;i<$scope.productList.length;i++){
                  var obj = {
                    id : $scope.productList[i].id,
                    name : $scope.productList[i].name,
                    status : $scope.productList[i].status
                  }
                  $scope.addArray.push(obj);
                }
          })

          $scope.productData = {};
          $scope.productData.productList = [];
          
          $scope.checkProduct = function(productlist, product, index){
              $scope.addArray[index].id =  productlist[index].id;
              $scope.addArray[index].name =  productlist[index].name;
              $scope.addArray[index].status =  productlist[index].status;
              $scope.productData.productList = $scope.addArray;
              // console.log($scope.productData)
          } 
          
          $scope.updateUser = function(){
          
            window.localStorage.setItem('userTimeZone',JSON.stringify($scope.userData.userTimeZone));
            //Database not save the = and - sign of timezone offset
            if($scope.userData.userTimeZone.slice(0,1)==="+"){

                $scope.userData.userTimeZone = $scope.userData.userTimeZone.replace("+","P");

            }else if($scope.userData.userTimeZone.slice(0,1)==="-"){
                
                $scope.userData.userTimeZone = $scope.userData.userTimeZone.replace("-","M");
            }
           
            var updateData = "companyName=" + $scope.userData.companyName + "&username=" + $scope.userData.username + "&firstName=" + $scope.userData.firstName 
            + "&lastName=" + $scope.userData.lastName + "&phone=" + $scope.userData.phone + "&mobile=" + $scope.userData.mobile 
            + "&status=" + $scope.userData.status + "&userType=" + $scope.userData.userType + "&userTypeId=" + $scope.userData.userType.id + "&userProfileId=" + $scope.userid + "&userTimeZone=" + $scope.userData.userTimeZone + "&icao=" + $scope.userData.icao;

            // console.log("======updateData===",updateData)
            AccountSettingService.updateUserProfile(updateData).then(function(result) {
              
              AccountSettingService.updateProducts($scope.productData).then(function(result) {
                toastr.success(''+result.success+'', {
                    closeButton: true
                });
                window.localStorage.setItem('currentUserName', JSON.stringify($scope.userData.firstName +' '+ $scope.userData.lastName));
                window.localStorage.setItem('companyName', JSON.stringify($scope.userData.companyName));
                $scope.currentUserName = JSON.parse(localStorage.getItem('currentUserName'));
                $scope.companyName= JSON.parse(localStorage.getItem('companyName'));
                $scope.userTimeZone = JSON.parse(localStorage.getItem('userTimeZone'));
                //console.log("====value after update===",$scope.userTimeZone )
                window.localStorage.removeItem('userTime');
                $scope.testFunction();
                getLoginUserData();
              })
              
            })
          }
          $scope.accountdata = {};
          $scope.accountdata.userName = '';
          $scope.accountdata.status = true;

            $scope.addAccount = function(){
              $('#demo-modal').css('display', 'block');
               $scope.accountdata.status = true;
          }

          $scope.cancelAddAccount = function(){
              $scope.accountdata = {};
              $('#demo-modal').css('display', '');
          }
          
          $scope.checkEmail = function(email, type) {
        	  //console.log(type)
        	  AccountSettingService.checkEmail(email).then(function(result) {
        		  if(result.status == 'ACTIVE'){
        			  toastr.error('Email already exists.', {
                          closeButton: true
                      }) 
                      if(type == 'additional'){
                    	  $scope.accountdata.userName = '';
                      }
        		  }
        	  })
          }

           $scope.additionalAccnObj = {};
           $scope.createAddAccount = function(){
            $scope.accountdata.status = true;
              if ($scope.accountdata.userName === '') {
                toastr.error('Please enter all the fields.', {
                    closeButton: true
                })
              }else{
                if (validateEmail($scope.accountdata.userName)) {
                  //console.log("checkbox",$scope.accountdata.allowEpd ,$scope.accountdata.allowFma)
                   AccountSettingService.addAdditionalAccount($scope.accountdata).then(function(result) {
                      getAdditionalAccounts();
                      $scope.accountdata = {};
                      $('#demo-modal').css('display', '');
                      toastr.success(''+result.success+'', {
                          closeButton: true
                      })
                    }) 
                }else{
                  toastr.error('Please enter valid email.', {
                      closeButton: true
                  })
                }
              }
                        
          }

        /*Validate Email */
         function validateEmail(email) {
            var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
            return re.test(email);
          }

               $scope.changeStatus = function(id, index){
               event.stopPropagation();
               var id = id;
               var statusData = "status=" + $scope.additionalAccounts[index].status + "&id=" + $scope.additionalAccounts[index].id + "&firstName=" + $scope.additionalAccounts[index].firstName 
               + "&lastName=" + $scope.additionalAccounts[index].lastName + "&username=" + $scope.additionalAccounts[index].userName + "&password=" + $scope.additionalAccounts[index].password
               + "&allowEpd=" + $scope.additionalAccounts[index].allowEpd + "&allowFma=" + $scope.additionalAccounts[index].allowFma;
               AccountSettingService.updateStatus(statusData).then(function(result) {
                   if(result.success){
                     toastr.success('Updated Successfully', {
                           closeButton: true
                       })
                   }
               })
            }
           var deleteAccnId = "";
           $scope.deleteAdditionalAccount = function(id) {
             $('#delete1').css('display', 'block');
               deleteAccnId = id;
             
           }
           
           $scope.accnDelete = function(){
             AccountSettingService.deleteAccount(deleteAccnId).then(function(result) {
               getAdditionalAccounts();
               $('#delete1').css('display', 'none');
                   if(result.success){
                     toastr.success('Deleted Successfully', {
                           closeButton: true
                       })
                   }
               })
           }
          
           
           $scope.cancelDelete = function(){
             $('#delete1').css('display', 'none');
           }

           $scope.resetPassword = function(email) {
             //console.log("emailid",email)
             AccountSettingService.resetPassword(email).then(function(result){
                if(typeof result == 'object') {
                  toastr.info("Password generated successfully. Please check your email for new password");
                  //localStorage.setItem('requiredChangePwd', "Y");
                  //$state.go('login');
                } else {
                  toastr.info("Error in generating password");
                }
              })
            }

      
     $scope.timeZoneList = [{name:'(GMT-12:00) International Date Line West',value:'-12.00'},
                            {name:'(GMT-11:00) Midway Island, Samoa',value:'-11.00'},
                            {name:'(GMT-10:00) Hawaii',value :'-10.00'},
                            {name:'(GMT-09:30) Pacific/Marquesas (French Polynesia)',value :'-09.30'},
                            {name:'(GMT-09:00) Pacific/Gambier(French Polynesia)(US)',value :'-09.00'},
                            {name:'(GMT-08:00) Alaska',value :'-08.00'},
                            {name:'(GMT-07:00) Arizona,(US and Canada)',value :'-07.00'},
                            {name:'(GMT-06:00) (Central America),Chihuahua,Saskatchewan,Ecuador',value :'-06.00'},
                            {name:'(GMT-05:00) Central Time (US and Canada) Bogota, Mexico City,Lima,Brazil, Quito',value :'-05.00'},
                            {name:'(GMT-04:00) Eastern Time (US and Canada),Caracas, La Paz,Indiana (East)',value :'-04.00'},
                            {name:'(GMT-03:00) Atlantic Time (Canada),Santiago,Brasilia,Buenos Aires',value :'-03.00'},
                            {name:'(GMT-02:30) Newfoundland and Labrador,(Canada)',value :'-02.30'},
                            {name:'(GMT-02:00) Mid-Atlantic,Greenland',value :'-02.00'},
                            {name:'(GMT-01:00) Cape Verde Islands',value :'-01.00'},
                            {name:'(GMT) Azores,Dublin, Edinburgh, Lisbon, London',value :'00.00'},
                            {name:'(GMT+01:00) West Central Africa,Canary Islands,Casablanca, Monrovia',value :'+01.00'},
                            {name:'(GMT+02:00) Brussels,Amsterdam,Harare,Madrid,Paris,Cairo,Belgrade',value :'+02.00'},
                            {name:'(GMT+03:00) Moscow,Jerusalem,St.Petersburg, Athens,Baghdad,Kuwait,Helsinki,Nairobi',value :'+03.00'},
                            {name:'(GMT+04:00) Armenia,Azerbaijan,UAE,(Russia)',value :'+04.00'},
                            {name:'(GMT+04:30) Kabul,(Afghanistan)',value :'+04.30'},
                            {name:'(GMT+05:00) Islamabad, Karachi, Tashkent (Pakistan)',value :'+05.00'},
                            {name:'(GMT+05:30) Chennai,New Delhi(India),(Sri Lanka)',value :'+05.30'},
                            {name:'(GMT+05:45) Kathmandu (Nepal)',value :'+05.45'},
                            {name:'(GMT+06:00) Astana,Kazakhstan,Dhaka(Bangladesh),(Bhutan),(Russia)',value :'+06.00'},
                            {name:'(GMT+06:30) Yangon Rangoon (Myanmar)',value :'+06.30'},
                            {name:'(GMT+07:00) Laos,Krasnoyarsk,Hanoi,Bangkok(Thailand),Jakarta(Indonesia)',value :'+07.00'},
                            {name:'(GMT+08:00) Perth(Western Australia),Beijing(China),Kuala Lumpur(Singapore),(Malaysia)',value :'+08.00'},
                            {name:'(GMT+08:45) Australia/Eucla',value :'+08.45'},
                            {name:'(GMT+09:00) Japan/North Korea/South Korea/East Timor',value :'+09.00'},
                            {name:'(GMT+09:30) Adelaide/Darwin(Australia)',value :'+09.30' },
                            {name:'(GMT+10:00) Guam, Port Moresby,Hobart,Vladivostok,Brisbane,Melbourne(Australia),Papua New Guinea',value :'+10.00'},
                            {name:'(GMT+10:30) Australia/Lord_Howe',value :'+10.30'},
                            {name:'(GMT+11:00) Magadan, Solomon Islands, New Caledonia',value :'+11.00'},
                            {name:'(GMT+12:00) Auckland, Wellington,Fiji Islands, Kamchatka, Marshall Islands',value :'+12.00'},
                            {name:'(GMT+12:45) Pacific/Chatham, New Zealand',value :'+12.45'},
                            {name:'(GMT+13:00) Nuku alofa,Samoa,Tonga',value :'+13.00'},
                            {name:'(GMT+14:00) Pacific/Kiritimati',value :'+14.00'}]

                    
      }
})();