From 8f5bce2a15a6b235a2e8328acc3f95d687169406 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 10 Jan 2017 10:23:01 -0300 Subject: [PATCH] Refactor preferences-fee --- src/js/controllers/preferencesFee.js | 39 +++++++++++++++++----------- src/sass/views/tab-settings.scss | 3 +-- www/views/preferencesFee.html | 18 ++++++++----- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/js/controllers/preferencesFee.js b/src/js/controllers/preferencesFee.js index d01f25262..9c8627838 100644 --- a/src/js/controllers/preferencesFee.js +++ b/src/js/controllers/preferencesFee.js @@ -1,38 +1,47 @@ 'use strict'; -angular.module('copayApp.controllers').controller('preferencesFeeController', function($scope, $timeout, $ionicHistory, gettextCatalog, configService, feeService, ongoingProcess, popupService) { - - ongoingProcess.set('gettingFeeLevels', true); - feeService.getFeeLevels(function(err, levels) { - ongoingProcess.set('gettingFeeLevels', false); - if (err) { - popupService.showAlert(gettextCatalog.getString('Error'), err); - return; - } - $scope.feeLevels = levels; - $scope.$apply(); - }); +angular.module('copayApp.controllers').controller('preferencesFeeController', function($scope, $timeout, $ionicHistory, lodash, gettextCatalog, configService, feeService, ongoingProcess, popupService) { $scope.save = function(newFee) { var opts = { wallet: { settings: { - feeLevel: newFee.level + feeLevel: newFee } } }; configService.set(opts, function(err) { if (err) $log.debug(err); - $scope.currentFeeLevel = newFee.level; + $scope.currentFeeLevel = newFee; + updateCurrentValues(); $timeout(function() { $scope.$apply(); }); }); }; - $scope.$on("$ionicView.enter", function(event, data) { + $scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.feeOpts = feeService.feeOpts; $scope.currentFeeLevel = feeService.getCurrentFeeLevel(); + $scope.loadingFee = true; + feeService.getFeeLevels(function(err, levels) { + $scope.loadingFee = false; + if (err) { + popupService.showAlert(gettextCatalog.getString('Error'), err); + return; + } + $scope.feeLevels = levels; + updateCurrentValues(); + $scope.$apply(); + }); }); + + var updateCurrentValues = function() { + var feeLevelValue = lodash.find($scope.feeLevels['livenet'], { + level: $scope.currentFeeLevel + }); + $scope.feePerKBUnit = feeLevelValue.feePerKBUnit; + $scope.avgConfirmationTime = feeLevelValue.nbBlocks * 10; + }; }); diff --git a/src/sass/views/tab-settings.scss b/src/sass/views/tab-settings.scss index 7ecc5abc7..b279fc3e9 100644 --- a/src/sass/views/tab-settings.scss +++ b/src/sass/views/tab-settings.scss @@ -138,11 +138,10 @@ .estimates { font-size: 15px; color: $dark-gray; + margin-bottom: .5rem; } .fee-minutes, .fee-rate { font-weight: bold; - display: block; - margin-bottom: .5rem; } .fee-policies { border-color: #fff; diff --git a/www/views/preferencesFee.html b/www/views/preferencesFee.html index a4e453b2e..8254f912c 100644 --- a/www/views/preferencesFee.html +++ b/www/views/preferencesFee.html @@ -10,16 +10,22 @@
Bitcoin transactions include a fee collected by miners on the network.
The higher the fee, the greater the incentive a miner has to include that transaction in a block. Current fees are determined based on network load and the selected policy.
-
-
- Average confirmation time: {{fee.nbBlocks * 10}} minutes +
+
+ Average confirmation time: + {{avgConfirmationTime | amDurationFormat: 'minute'}} + ... +
+
+ Current fee rate for this policy: + {{feePerKBUnit}}/kiB + ...
- Current fee rate for this policy: {{fee.feePerKBUnit}}/kiB
- - {{feeOpts[fee.level]|translate}} + + {{level|translate}}