From 1503faa5b16b050474d99b642b030cf38b478365 Mon Sep 17 00:00:00 2001 From: Tom Ladendorf Date: Thu, 15 Oct 2015 13:09:00 -0500 Subject: [PATCH] Fixed saving and tab switching for settings --- .../account-info/account-info.controller.js | 16 +++++++++------- .../edit-profile/edit-profile.controller.js | 15 ++++++++------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/app/settings/account-info/account-info.controller.js b/app/settings/account-info/account-info.controller.js index bd81db5da..67da0bfdf 100644 --- a/app/settings/account-info/account-info.controller.js +++ b/app/settings/account-info/account-info.controller.js @@ -15,12 +15,13 @@ accountInfoForm: false, newPasswordForm: false }; + var originalUserData = userData; activate(); function activate() { - processData(); - vm.userData = userData; + vm.userData = userData.clone(); + processData(vm.userData); UserService.getUserProfile({fields: 'credential'}) .then(function(res) { vm.isSocialRegistrant = !res.credential.hasPassword; @@ -31,7 +32,7 @@ }); vm.countries = ISO3166.getAllCountryObjects(); - vm.countryObj = ISO3166.getCountryObjFromAlpha3(userData.homeCountryCode); + vm.countryObj = ISO3166.getCountryObjFromAlpha3(vm.userData.homeCountryCode); // Timeout needed since newPasswordForm.currentPassword doesn't exist until later $timeout(function(){ @@ -53,7 +54,7 @@ var isValidCountry = _.isUndefined(countryCode) ? false : true; vm.accountInfoForm.country.$setValidity('required', isValidCountry); if (isValidCountry) { - userData.homeCountryCode = countryCode; + vm.userData.homeCountryCode = countryCode; } } @@ -69,11 +70,12 @@ function saveAccountInfo() { vm.formProcessing.accountInfoForm = true; - userData.addresses = getAddr(); - ProfileService.updateUserProfile(userData) + vm.userData.addresses = getAddr(); + ProfileService.updateUserProfile(vm.userData) .then(function(data) { vm.formProcessing.accountInfoForm = false; toaster.pop('success', "Success!", "Your account information was updated."); + for (var k in vm.userData) userData[k] = vm.userData[k]; }) .catch(function() { vm.formProcessing.accountInfoForm = false; @@ -81,7 +83,7 @@ }) } - function processData() { + function processData(userData) { vm.homeAddress = _.find(userData.addresses, {type: 'HOME'}) || {}; } diff --git a/app/settings/edit-profile/edit-profile.controller.js b/app/settings/edit-profile/edit-profile.controller.js index 1bb0d98c4..166fde1f8 100644 --- a/app/settings/edit-profile/edit-profile.controller.js +++ b/app/settings/edit-profile/edit-profile.controller.js @@ -18,6 +18,7 @@ activate(); function activate() { + vm.userData = userData.clone(); vm.linkedExternalAccounts = []; vm.linkedExternalAccountsData = {}; vm.skills = false; @@ -26,12 +27,11 @@ vm.tracks = {}; vm.countries = ISO3166.getAllCountryObjects(); - vm.countryObj = ISO3166.getCountryObjFromAlpha3(userData.competitionCountryCode); + vm.countryObj = ISO3166.getCountryObjFromAlpha3(vm.userData.competitionCountryCode); - processData(userData); - vm.userData = userData; + processData(vm.userData); - ExternalAccountService.getLinkedExternalAccounts(userData.userId).then(function(data) { + ExternalAccountService.getLinkedExternalAccounts(vm.userData.userId).then(function(data) { vm.linkedExternalAccounts = data; }); @@ -114,6 +114,7 @@ vm.profileFormProcessing = false; $log.info('Saved successfully'); toaster.pop('success', "Success!", "Your account information was updated."); + for (var k in vm.userData) userData[k] = vm.userData[k]; }) .catch(function(err) { vm.profileFormProcessing = false; @@ -128,9 +129,9 @@ function processData(userInfo) { vm.tracks = { - DESIGN: _.contains(userData.tracks, 'DESIGN'), - DEVELOP: _.contains(userData.tracks, 'DEVELOP'), - DATA_SCIENCE: _.contains(userData.tracks, 'DATA_SCIENCE'), + DESIGN: _.contains(userInfo.tracks, 'DESIGN'), + DEVELOP: _.contains(userInfo.tracks, 'DEVELOP'), + DATA_SCIENCE: _.contains(userInfo.tracks, 'DATA_SCIENCE'), }; } }