diff --git a/public/views/includes/sidebar.html b/public/views/includes/sidebar.html index 9ad4c1617..bb41f2c7a 100644 --- a/public/views/includes/sidebar.html +++ b/public/views/includes/sidebar.html @@ -36,5 +36,15 @@
Glidera
+
  • + + + +
    + Settings +
    +
    Global preferences
    +
    +
  • diff --git a/public/views/preferences.html b/public/views/preferences.html index 48cc5e9d4..ff31aaa0f 100644 --- a/public/views/preferences.html +++ b/public/views/preferences.html @@ -2,7 +2,7 @@
    + ng-init="titleSection='Wallet Preferences'; closeToHome = true">
    @@ -17,7 +17,7 @@ {{index.alias||index.walletName}} -
    Wallet Alias
    +
    Alias
  • @@ -50,7 +50,7 @@
  • - Still not done + Still not done
    @@ -77,62 +77,6 @@
  • -

    diff --git a/public/views/preferencesAbout.html b/public/views/preferencesAbout.html index c584a6c46..703534699 100644 --- a/public/views/preferencesAbout.html +++ b/public/views/preferencesAbout.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='About Copay'; goBackToState = 'preferencesGlobal'; noColor = true">
    diff --git a/public/views/preferencesAltCurrency.html b/public/views/preferencesAltCurrency.html index 19caee5da..faab726c8 100644 --- a/public/views/preferencesAltCurrency.html +++ b/public/views/preferencesAltCurrency.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='Alternative Currency'; goBackToState = 'preferencesGlobal'; noColor = true">
    diff --git a/public/views/preferencesFee.html b/public/views/preferencesFee.html index 5fed61128..73b10bf7d 100644 --- a/public/views/preferencesFee.html +++ b/public/views/preferencesFee.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='Bitcoin Network Fee Policy'; goBackToState = 'preferencesGlobal'; noColor = true">

    diff --git a/public/views/preferencesGlobal.html b/public/views/preferencesGlobal.html new file mode 100644 index 000000000..7162d2bb3 --- /dev/null +++ b/public/views/preferencesGlobal.html @@ -0,0 +1,78 @@ + +
    +
    + + +
    + +
      +

      + +
    • +
      + {{prefGlobal.currentLanguageName|translate}} + +
      +
      Language
      +
    • +
    +
      +

      +
    • +
      + {{prefGlobal.unitName}} + +
      +
      Unit
      +
    • +
    • +
      + {{prefGlobal.selectedAlternative.name}} + +
      +
      Alternative Currency
      +
    • +
    +
      +

      +
    • +
      + {{index.feeOpts[index.currentFeeLevel]|translate}} + +
      +
      Bitcoin Network Fee Policy
      +
    • +
    • + +
      Use Unconfirmed Funds
      +
    • +
    +
      +

      +
    • + +
      Enable Glidera Service
      +
    • + + +
    +
      +

      +
    • + +
      About Copay
      +
    • +
    +

    + +
    +
    diff --git a/public/views/preferencesLanguage.html b/public/views/preferencesLanguage.html index c0fbc3abc..ebe614bcb 100644 --- a/public/views/preferencesLanguage.html +++ b/public/views/preferencesLanguage.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='Language'; goBackToState = 'preferencesGlobal'; noColor = true">
    diff --git a/public/views/preferencesLogs.html b/public/views/preferencesLogs.html index c561c2668..aca235e8a 100644 --- a/public/views/preferencesLogs.html +++ b/public/views/preferencesLogs.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='Session log'; goBackToState = 'about'; noColor = true">
    diff --git a/public/views/preferencesUnit.html b/public/views/preferencesUnit.html index 4ab852b35..eccd26b4c 100644 --- a/public/views/preferencesUnit.html +++ b/public/views/preferencesUnit.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='Unit'; goBackToState = 'preferencesGlobal'; noColor = true">
    diff --git a/public/views/translators.html b/public/views/translators.html index 24415ca38..f0989984a 100644 --- a/public/views/translators.html +++ b/public/views/translators.html @@ -1,7 +1,7 @@
    + ng-init="titleSection='Translators'; goBackToState = 'about'; noColor = true">
    diff --git a/public/views/walletHome.html b/public/views/walletHome.html index be1b3adca..1fb74a5e3 100644 --- a/public/views/walletHome.html +++ b/public/views/walletHome.html @@ -11,8 +11,8 @@
    -
    - +
    +
    diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 194c2884c..3dcedc4ae 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -868,6 +868,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r self.updateHistory = function() { var fc = profileService.focusedClient; + if (!fc) return; var walletId = fc.credentials.walletId; if (!fc.isComplete() || self.updatingTxHistory[walletId]) return; diff --git a/src/js/controllers/preferences.js b/src/js/controllers/preferences.js index b06098502..1701f16be 100644 --- a/src/js/controllers/preferences.js +++ b/src/js/controllers/preferences.js @@ -1,20 +1,10 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesController', - function($scope, $rootScope, $filter, $timeout, $modal, $log, lodash, configService, profileService, uxLanguage) { + function($scope, $rootScope, $timeout, $log, configService, profileService) { this.init = function() { var config = configService.getSync(); - this.unitName = config.wallet.settings.unitName; - this.bwsurl = config.bws.url; - this.currentLanguageName = uxLanguage.getCurrentLanguageName(); - this.selectedAlternative = { - name: config.wallet.settings.alternativeName, - isoCode: config.wallet.settings.alternativeIsoCode - }; - $scope.spendUnconfirmed = config.wallet.spendUnconfirmed; - $scope.glideraEnabled = config.glidera.enabled; - $scope.glideraTestnet = config.glidera.testnet; var fc = profileService.focusedClient; if (fc) { $scope.encrypt = fc.hasPrivKeyEncrypted(); @@ -31,20 +21,7 @@ angular.module('copayApp.controllers').controller('preferencesController', } }; - var unwatchSpendUnconfirmed = $scope.$watch('spendUnconfirmed', function(newVal, oldVal) { - if (newVal == oldVal) return; - var opts = { - wallet: { - spendUnconfirmed: newVal - } - }; - configService.set(opts, function(err) { - $rootScope.$emit('Local/SpendUnconfirmedUpdated'); - if (err) $log.debug(err); - }); - }); - - var unwatch = $scope.$watch('encrypt', function(val) { + var unwatchEncrypt = $scope.$watch('encrypt', function(val) { var fc = profileService.focusedClient; if (!fc) return; @@ -80,32 +57,6 @@ angular.module('copayApp.controllers').controller('preferencesController', } }); - var unwatchGlideraEnabled = $scope.$watch('glideraEnabled', function(newVal, oldVal) { - if (newVal == oldVal) return; - var opts = { - glidera: { - enabled: newVal - } - }; - configService.set(opts, function(err) { - $rootScope.$emit('Local/GlideraUpdated'); - if (err) $log.debug(err); - }); - }); - - var unwatchGlideraTestnet = $scope.$watch('glideraTestnet', function(newVal, oldVal) { - if (newVal == oldVal) return; - var opts = { - glidera: { - testnet: newVal - } - }; - configService.set(opts, function(err) { - $rootScope.$emit('Local/GlideraUpdated'); - if (err) $log.debug(err); - }); - }); - var unwatchRequestTouchid = $scope.$watch('touchid', function(newVal, oldVal) { if (newVal == oldVal || $scope.touchidError) { $scope.touchidError = false; @@ -139,10 +90,7 @@ angular.module('copayApp.controllers').controller('preferencesController', }); $scope.$on('$destroy', function() { - unwatch(); - unwatchSpendUnconfirmed(); - unwatchGlideraEnabled(); - unwatchGlideraTestnet(); + unwatchEncrypt(); unwatchRequestTouchid(); }); }); diff --git a/src/js/controllers/preferencesAltCurrency.js b/src/js/controllers/preferencesAltCurrency.js index 1a5d9a725..c62ab2281 100644 --- a/src/js/controllers/preferencesAltCurrency.js +++ b/src/js/controllers/preferencesAltCurrency.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesAltCurrencyController', - function($scope, $rootScope, configService, go, rateService, lodash) { + function($scope, $timeout, $log, configService, rateService, lodash, go) { this.hideAdv = true; this.hidePriv = true; this.hideSecret = true; @@ -48,8 +48,12 @@ angular.module('copayApp.controllers').controller('preferencesAltCurrencyControl }; configService.set(opts, function(err) { - if (err) console.log(err); + if (err) $log.warn(err); + go.preferencesGlobal(); $scope.$emit('Local/UnitSettingUpdated'); + $timeout(function() { + $scope.$apply(); + }, 100); }); }; diff --git a/src/js/controllers/preferencesColor.js b/src/js/controllers/preferencesColor.js index 77b99f870..6f9946416 100644 --- a/src/js/controllers/preferencesColor.js +++ b/src/js/controllers/preferencesColor.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesColorController', - function($scope, configService, profileService, go) { + function($scope, $timeout, $log, configService, profileService, go) { var config = configService.getSync(); this.colorOpts = [ '#DD4B39', @@ -33,12 +33,12 @@ angular.module('copayApp.controllers').controller('preferencesColorController', opts.colorFor[walletId] = color; configService.set(opts, function(err) { - if (err) { - $scope.$emit('Local/DeviceError', err); - return; - } - self.color = color; + if (err) $log.warn(err); + go.preferences(); $scope.$emit('Local/ColorUpdated'); + $timeout(function() { + $scope.$apply(); + }, 100); }); }; diff --git a/src/js/controllers/preferencesGlobal.js b/src/js/controllers/preferencesGlobal.js new file mode 100644 index 000000000..a3733882b --- /dev/null +++ b/src/js/controllers/preferencesGlobal.js @@ -0,0 +1,63 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('preferencesGlobalController', + function($scope, $rootScope, $log, configService, uxLanguage) { + + this.init = function() { + var config = configService.getSync(); + this.unitName = config.wallet.settings.unitName; + this.currentLanguageName = uxLanguage.getCurrentLanguageName(); + this.selectedAlternative = { + name: config.wallet.settings.alternativeName, + isoCode: config.wallet.settings.alternativeIsoCode + }; + $scope.spendUnconfirmed = config.wallet.spendUnconfirmed; + $scope.glideraEnabled = config.glidera.enabled; + $scope.glideraTestnet = config.glidera.testnet; + }; + + var unwatchSpendUnconfirmed = $scope.$watch('spendUnconfirmed', function(newVal, oldVal) { + if (newVal == oldVal) return; + var opts = { + wallet: { + spendUnconfirmed: newVal + } + }; + configService.set(opts, function(err) { + $rootScope.$emit('Local/SpendUnconfirmedUpdated'); + if (err) $log.debug(err); + }); + }); + + var unwatchGlideraEnabled = $scope.$watch('glideraEnabled', function(newVal, oldVal) { + if (newVal == oldVal) return; + var opts = { + glidera: { + enabled: newVal + } + }; + configService.set(opts, function(err) { + $rootScope.$emit('Local/GlideraUpdated'); + if (err) $log.debug(err); + }); + }); + + var unwatchGlideraTestnet = $scope.$watch('glideraTestnet', function(newVal, oldVal) { + if (newVal == oldVal) return; + var opts = { + glidera: { + testnet: newVal + } + }; + configService.set(opts, function(err) { + $rootScope.$emit('Local/GlideraUpdated'); + if (err) $log.debug(err); + }); + }); + + $scope.$on('$destroy', function() { + unwatchSpendUnconfirmed(); + unwatchGlideraEnabled(); + unwatchGlideraTestnet(); + }); + }); diff --git a/src/js/controllers/preferencesLanguage.js b/src/js/controllers/preferencesLanguage.js index 4b2d39021..687ab635e 100644 --- a/src/js/controllers/preferencesLanguage.js +++ b/src/js/controllers/preferencesLanguage.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesLanguageController', - function($scope, $log, $timeout, configService, go, uxLanguage) { + function($scope, $log, $timeout, configService, uxLanguage, go) { this.availableLanguages = uxLanguage.getLanguages(); @@ -17,9 +17,10 @@ angular.module('copayApp.controllers').controller('preferencesLanguageController configService.set(opts, function(err) { if (err) $log.warn(err); + go.preferencesGlobal(); $scope.$emit('Local/LanguageSettingUpdated'); $timeout(function() { - go.preferences(); + $scope.$apply(); }, 100); }); }; diff --git a/src/js/controllers/preferencesUnit.js b/src/js/controllers/preferencesUnit.js index 7df745976..cface9b0d 100644 --- a/src/js/controllers/preferencesUnit.js +++ b/src/js/controllers/preferencesUnit.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('preferencesUnitController', - function($rootScope, $scope, $log, configService, go) { + function($scope, $timeout, $log, configService, go) { var config = configService.getSync(); this.unitName = config.wallet.settings.unitName; this.unitOpts = [ @@ -52,8 +52,11 @@ angular.module('copayApp.controllers').controller('preferencesUnitController', configService.set(opts, function(err) { if (err) $log.warn(err); + go.preferencesGlobal(); $scope.$emit('Local/UnitSettingUpdated'); - go.preferences(); + $timeout(function() { + $scope.$apply(); + }, 100); }); }; diff --git a/src/js/routes.js b/src/js/routes.js index 326527899..44f7ca551 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -433,11 +433,14 @@ angular }, } }) - .state('settings', { - url: '/settings', - controller: 'settingsController', - templateUrl: 'views/settings.html', - needProfile: false + .state('preferencesGlobal', { + url: '/preferencesGlobal', + needProfile: true, + views: { + 'main': { + templateUrl: 'views/preferencesGlobal.html', + }, + } }) .state('warning', { url: '/warning', diff --git a/src/js/services/animationService.js b/src/js/services/animationService.js index 6ce701cbe..c1dbbd549 100644 --- a/src/js/services/animationService.js +++ b/src/js/services/animationService.js @@ -21,6 +21,7 @@ angular.module('copayApp.services').factory('animationService', function(isCordo uriglidera: -1, preferences: 11, + preferencesGlobal: 11, glidera: 11, preferencesColor: 12, backup: 12, @@ -151,4 +152,4 @@ angular.module('copayApp.services').factory('animationService', function(isCordo } return root; -}); \ No newline at end of file +}); diff --git a/src/js/services/go.js b/src/js/services/go.js index 782683e7f..eb09e5d41 100644 --- a/src/js/services/go.js +++ b/src/js/services/go.js @@ -79,6 +79,10 @@ angular.module('copayApp.services').factory('go', function($window, $rootScope, $state.go('preferences'); }; + root.preferencesGlobal = function() { + $state.go('preferencesGlobal'); + }; + root.reload = function() { $state.reload(); };