diff --git a/public/views/preferences.html b/public/views/preferences.html index 8770b88a0..d431d8d17 100644 --- a/public/views/preferences.html +++ b/public/views/preferences.html @@ -20,6 +20,15 @@ +
  • + Email Notifications + + + Disabled + {{index.preferences.email}} + +
  • +
  • Color @@ -31,16 +40,6 @@ Encrypt Private Key
  • -
  • - email Notifications - - - Disabled - {{index.preferences.email}} - -
  • - -

     

  • diff --git a/public/views/preferencesEmail.html b/public/views/preferencesEmail.html index dac07f5e9..43280ba5e 100644 --- a/public/views/preferencesEmail.html +++ b/public/views/preferencesEmail.html @@ -22,7 +22,7 @@ -
    +
    {{prefEmail.error|translate}} @@ -32,8 +32,8 @@ + ng-style="{'background-color':index.backgroundColor}" ng-disabled="emailForm.$invalid && !index.preferences.email"> -

    Setting up email notifications could weaken your privacy, if the wallet service provider is compromised. Information available to an attacker would include be the positive confirmation of a bitcoin wallet and its balance, but no more. +

    Setting up email notifications could weaken your privacy, if the wallet service provider is compromised. Information available to an attacker would include your wallet addresses and its balance, but no more.

    diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index c29a1efef..ff69df286 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -145,6 +145,20 @@ angular.module('copayApp.controllers').controller('indexController', function($r $rootScope.$emit('Local/TabChanged', tab); }; + + self.updatePreferences = function(cb) { + var fc = profileService.focusedClient; + fc.getPreferences(function(err, preferences) { + if (err) { + self.handleError(err); + return cb(err); + } + self.preferences = preferences; + return cb(err, preferences); + }); + }; + + self.updateAll = function(walletStatus, untilItChanges, initBalance, tries) { tries = tries || 0; if (untilItChanges && lodash.isUndefined(initBalance)) { @@ -192,6 +206,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.walletStatus = walletStatus.wallet.status; self.walletScanStatus = walletStatus.wallet.scanStatus; self.copayers = walletStatus.wallet.copayers; + self.preferences = walletStatus.preferences; self.setBalance(walletStatus.balance); $rootScope.$apply(); }); @@ -345,7 +360,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r lodash.each(txs, function(tx) { tx.ts = tx.minedTs || tx.sentTs; // no future transaction... - if (tx.ts > now) + if (tx.ts > now) ts.ts = now; tx.rateTs = Math.floor((tx.ts || now) / 1000); tx.amountStr = profileService.formatAmount(tx.amount); //$filter('noFractionNumber')( @@ -579,13 +594,16 @@ angular.module('copayApp.controllers').controller('indexController', function($r }); }); - $rootScope.$on('Local/UnitSettingUpdated', function(event) { self.updateAll(); self.updateTxHistory(); }); + $rootScope.$on('Local/EmailUpdated', function(event, cb) { + self.updatePreferences(cb); + }); + $rootScope.$on('Local/BWSUpdated', function(event) { profileService.applyConfig(); }); @@ -665,7 +683,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r var msg = 'Error at Wallet Service: '; if (err.message) msg = msg + err.message; else if (err.error) msg = msg + err.error; - else msg = msg + err; + else msg = msg + (lodash.isObject(err) ? JSON.stringify(err) : err); self.clientError(msg); } $rootScope.$apply(); @@ -684,31 +702,6 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.setDefaultLanguage(setLang); }); - $rootScope.$on('Animation/Disable', function(event) { - $timeout(function() { - self.slideLeft = false; - self.slideRight = false; - self.slideUp = false; - self.slideDown = false; - }, 400); - }); - - $rootScope.$on('Animation/SlideLeft', function(event) { - self.slideLeft = true; - }); - - $rootScope.$on('Animation/SlideRight', function(event) { - self.slideRight = true; - }); - - $rootScope.$on('Animation/SlideUp', function(event) { - self.slideUp = true; - }); - - $rootScope.$on('Animation/SlideDown', function(event) { - self.slideDown = true; - }); - $rootScope.$on('NewIncomingTx', function() { self.updateBalance(); $timeout(function() { @@ -716,10 +709,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r }, 5000); }); - - // remove transactionProposalRemoved (only for compat) - - lodash.each(['NewOutgoingTx', 'NewTxProposal', 'TxProposalFinallyRejected', 'transactionProposalRemoved', 'TxProposalRemoved', + lodash.each(['NewOutgoingTx', 'NewTxProposal', 'TxProposalFinallyRejected', 'TxProposalRemoved', 'Local/NewTxProposal', 'Local/TxProposalAction', 'ScanFinished' ], function(eventName) { $rootScope.$on(eventName, function(event, untilItChanges) { diff --git a/src/js/controllers/preferencesEmail.js b/src/js/controllers/preferencesEmail.js index 140c41cd0..783ba82ee 100644 --- a/src/js/controllers/preferencesEmail.js +++ b/src/js/controllers/preferencesEmail.js @@ -1,26 +1,29 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesEmailController', - function($scope, go, profileService ,gettext, $log) { + function($scope, go, profileService, gettext, $log) { this.save = function(form) { - this.error=null; + this.error = null; - if (!form.$valid) { + if (!form.$valid && this.email) { this.error = gettext('Invalid email'); return; } -console.log('[preferencesEmail.js.12]', this.email); //TODO var fc = profileService.focusedClient; - this.saving =true; - fc.savePreferences({email:this.email}, function(err) { - fc.saving =false; + this.saving = true; + fc.savePreferences({ + email: this.email + }, function(err) { + fc.saving = false; if (err) { $log.warn(err); $scope.$emit('Local/ClientError', err); return; } - go.walletHome(); + $scope.$emit('Local/EmailUpdated', function(err){ + go.path('preferences'); + }); }); };