diff --git a/src/js/controllers/preferencesEmail.js b/src/js/controllers/preferencesEmail.js index 7d24ef4ec..c916e6570 100644 --- a/src/js/controllers/preferencesEmail.js +++ b/src/js/controllers/preferencesEmail.js @@ -1,17 +1,30 @@ 'use strict'; -angular.module('copayApp.controllers').controller('preferencesEmailController', function($rootScope, $scope, $ionicHistory, $stateParams, $ionicNavBarDelegate, gettextCatalog, profileService, walletService) { +angular.module('copayApp.controllers').controller('preferencesEmailController', function($scope, $ionicHistory, $stateParams, $ionicNavBarDelegate, gettextCatalog, profileService, walletService, configService) { $ionicNavBarDelegate.title(gettextCatalog.getString('Email Notifications')); + + var wallet = profileService.getWallet($stateParams.walletId); + var walletId = wallet.credentials.walletId; + + var config = configService.getSync(); + config.emailFor = config.emailFor || {}; + $scope.email = config.emailFor && config.emailFor[walletId]; + $scope.save = function(form) { - var wallet = profileService.getWallet($stateParams.walletId); var email = $scope.email || ''; + var opts = { + emailFor: {} + }; + opts.emailFor[walletId] = $scope.email; walletService.updateRemotePreferences(wallet, { - email: email, + email: $scope.email, }, function(err) { if (err) $log.warn(err); - $ionicHistory.goBack(); + configService.set(opts, function(err) { + if (err) $log.warn(err); + $ionicHistory.goBack(); + }); }); }; - }); diff --git a/src/js/services/configService.js b/src/js/services/configService.js index 53bb686e9..9ef2fdf23 100644 --- a/src/js/services/configService.js +++ b/src/js/services/configService.js @@ -122,6 +122,7 @@ angular.module('copayApp.services').factory('configService', function(storageSer configCache.bwsFor = configCache.bwsFor || {}; configCache.colorFor = configCache.colorFor || {}; configCache.aliasFor = configCache.aliasFor || {}; + configCache.emailFor = configCache.emailFor || {}; // Coinbase // Disabled for testnet diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index a5f5c8769..2c240035b 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -32,10 +32,11 @@ angular.module('copayApp.services') var defaults = configService.getDefaults(); var config = configService.getSync(); - wallet.usingCustomBWS = config.bwsFor[wallet.id] && (config.bwsFor[wallet.id] != defaults.bws.url); + wallet.usingCustomBWS = config.bwsFor && config.bwsFor[wallet.id] && (config.bwsFor[wallet.id] != defaults.bws.url); - wallet.name = config.aliasFor[wallet.id] || wallet.credentials.walletName; - wallet.color = config.colorFor[wallet.id] || '#4A90E2'; + wallet.name = config.aliasFor && (config.aliasFor[wallet.id] || wallet.credentials.walletName); + wallet.color = config.colorFor && (config.colorFor[wallet.id] || '#4A90E2'); + wallet.email = config.emailFor && config.emailFor[wallet.id]; } root.setBackupFlag = function(walletId) { @@ -431,8 +432,8 @@ angular.module('copayApp.services') // check if exist if (lodash.find(root.profile.credentials, { - 'walletId': walletData.walletId - })) { + 'walletId': walletData.walletId + })) { return cb(gettext('Cannot join the same wallet more that once')); } } catch (ex) { @@ -822,7 +823,6 @@ angular.module('copayApp.services') }; }); - var finale = shown; // GROUPING DISABLED! // var finale = [], @@ -885,7 +885,7 @@ angular.module('copayApp.services') } if (j == l) { notifications = lodash.sortBy(notifications, 'createdOn'); - notifications = lodash.compact(lodash.flatten(notifications)).slice(0,MAX); + notifications = lodash.compact(lodash.flatten(notifications)).slice(0, MAX); return cb(null, process(notifications)); }; });