accountSetting.Controller.js 6.96 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'));
          if($scope.userid && $scope.userid != null && $scope.userid != undefined){
            var id = $scope.userid;
            AccountSettingService.loginUserData(id).then(function(result) {
                $scope.userData = result;
                $scope.userData.status = $scope.userData.account.user.status.toLowerCase();
                $scope.userData.userType = $scope.userData.userType.type.toLowerCase();
            })
          }

          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(){
          
            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;

            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.testFunction();
              })
              
            })
          }
          $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.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');
           }
          
      }
})();