Improvement - 172 - Make default price display in fiat
This commit is contained in:
parent
463eed2583
commit
12f1c2e28a
9 changed files with 118 additions and 2 deletions
42
src/js/controllers/preferencesPriceDisplay.js
Normal file
42
src/js/controllers/preferencesPriceDisplay.js
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('copayApp.controllers').controller('preferencesPriceDisplayController', function($scope, $q, $timeout, configService, $ionicNavBarDelegate) {
|
||||
|
||||
$scope.save = function(priceDisplay) {
|
||||
|
||||
if ($scope.noSave) return;
|
||||
|
||||
var opts = {
|
||||
wallet: {
|
||||
settings: {
|
||||
priceDisplay: priceDisplay
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
configService.set(opts, function(err) {
|
||||
if (err) $log.debug(err);
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$scope.$on("$ionicView.enter", function(event, data) {
|
||||
$ionicNavBarDelegate.showBar(true);
|
||||
});
|
||||
|
||||
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
||||
$scope.init();
|
||||
});
|
||||
|
||||
$scope.init = function () {
|
||||
configService.whenAvailable(function(config) {
|
||||
$scope.selectedPriceDisplay = config.wallet.settings.priceDisplay;
|
||||
|
||||
$timeout(function() {
|
||||
$scope.$apply();
|
||||
});
|
||||
});
|
||||
};
|
||||
});
|
||||
|
|
@ -16,6 +16,8 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
|
|||
isoCode: config.wallet.settings.alternativeIsoCode
|
||||
};
|
||||
|
||||
$scope.selectedPriceDisplay = config.wallet.settings.priceDisplay;
|
||||
|
||||
// TODO move this to a generic service
|
||||
bitpayAccountService.getAccounts(function(err, data) {
|
||||
if (err) $log.error(err);
|
||||
|
|
|
|||
|
|
@ -367,6 +367,15 @@ angular.module('copayApp.controllers').controller('walletDetailsController', fun
|
|||
});
|
||||
|
||||
$scope.$on("$ionicView.beforeEnter", function(event, data) {
|
||||
|
||||
configService.whenAvailable(function (config) {
|
||||
$scope.selectedPriceDisplay = config.wallet.settings.priceDisplay;
|
||||
|
||||
$timeout(function () {
|
||||
$scope.apply();
|
||||
});
|
||||
});
|
||||
|
||||
$scope.walletId = data.stateParams.walletId;
|
||||
$scope.wallet = profileService.getWallet($scope.walletId);
|
||||
if (!$scope.wallet) return;
|
||||
|
|
|
|||
|
|
@ -413,6 +413,15 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
|
|||
}
|
||||
}
|
||||
})
|
||||
.state('tabs.priceDisplay', {
|
||||
url: '/priceDisplay',
|
||||
views: {
|
||||
'tab-settings@tabs': {
|
||||
controller: 'preferencesPriceDisplayController',
|
||||
templateUrl: 'views/preferencesPriceDisplay.html'
|
||||
}
|
||||
}
|
||||
})
|
||||
.state('tabs.about', {
|
||||
url: '/about',
|
||||
views: {
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ angular.module('copayApp.services').factory('configService', function(storageSer
|
|||
unitCode: 'btc',
|
||||
alternativeName: 'US Dollar',
|
||||
alternativeIsoCode: 'USD',
|
||||
priceDisplay: 'fiat', // 'fiat' || 'crypto'
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -181,6 +182,11 @@ angular.module('copayApp.services').factory('configService', function(storageSer
|
|||
configCache.wallet.settings.unitCode = defaultConfig.wallet.settings.unitCode;
|
||||
}
|
||||
|
||||
// If display is not configure, take the default value
|
||||
if (!configCache.wallet.settings.priceDisplay) {
|
||||
configCache.wallet.settings.display = defaultConfig.wallet.settings.priceDisplay;
|
||||
}
|
||||
|
||||
// Convert tarascash wallet to new style cash wallet
|
||||
if (configCache.bwsbcc && configCache.bwsbcc.url && configCache.bwsbcc.url.indexOf('bwsbcc') >= 0) {
|
||||
configCache.bwsbcc = defaultConfig.bwscash.url;
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ body {
|
|||
font-family:'ProximaNova' !important;
|
||||
}
|
||||
|
||||
.capitalize {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
.textlogo {
|
||||
color: #FFF;
|
||||
font-size: 20px;
|
||||
|
|
|
|||
19
www/views/preferencesPriceDisplay.html
Normal file
19
www/views/preferencesPriceDisplay.html
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<ion-view id="settings-fee" class="settings" show-tabs>
|
||||
<ion-nav-bar class="bar-royal">
|
||||
<ion-nav-title>
|
||||
{{'Price display'|translate}}
|
||||
</ion-nav-title>
|
||||
<ion-nav-back-button>
|
||||
</ion-nav-back-button>
|
||||
</ion-nav-bar>
|
||||
<ion-content>
|
||||
<div class="price-display">
|
||||
<ion-radio class="capitalize" ng-value="'fiat'" ng-model="selectedPriceDisplay" ng-click="save(selectedPriceDisplay)">
|
||||
fiat
|
||||
</ion-radio>
|
||||
<ion-radio class="capitalize" ng-value="'crypto'" ng-model="selectedPriceDisplay" ng-click="save(selectedPriceDisplay)">
|
||||
cryptocurrency
|
||||
</ion-radio>
|
||||
</div>
|
||||
</ion-content>
|
||||
</ion-view>
|
||||
|
|
@ -55,7 +55,7 @@
|
|||
{{currentLanguageName|translate}}
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
</a>
|
||||
|
||||
<a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.altCurrency">
|
||||
<i class="icon big-icon-svg">
|
||||
|
|
@ -67,6 +67,17 @@
|
|||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
<a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.priceDisplay">
|
||||
<i class="icon big-icon-svg">
|
||||
<img src="img/icon-alternative-currency.svg" class="bg"/>
|
||||
</i>
|
||||
<span class="setting-title">{{'Price Display' | translate}}</span>
|
||||
<span class="setting-value capitalize">
|
||||
{{selectedPriceDisplay}}
|
||||
</span>
|
||||
<i class="icon bp-arrow-right"></i>
|
||||
</a>
|
||||
|
||||
<a class="item has-setting-value item-icon-left item-icon-right" ui-sref="tabs.fee">
|
||||
<i class="icon big-icon-svg">
|
||||
|
|
|
|||
|
|
@ -30,7 +30,21 @@
|
|||
</div>
|
||||
|
||||
<div
|
||||
ng-show="!updateStatusError && !wallet.balanceHidden && !wallet.scanning"
|
||||
ng-show="selectedPriceDisplay=='fiat' && !updateStatusError && !wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
<strong class="size-36">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</strong>
|
||||
<div
|
||||
class="size-14 amount-alternative"
|
||||
ng-if="status.totalBalanceAlternative && wallet.network == 'livenet'"
|
||||
ng-style="{opacity: altAmountOpacity}">
|
||||
{{status.totalBalanceStr}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
ng-show="selectedPriceDisplay=='crypto' && !updateStatusError && !wallet.balanceHidden && !wallet.scanning"
|
||||
on-hold="hideToggle()"
|
||||
ng-style="{'transform': amountScale}"
|
||||
ng-class="{amount__balance: amountIsCollapsible}">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue