Merge branch 'ref/design' of https://github.com/bitpay/bitpay-wallet into feature/address_book

This commit is contained in:
Jamal Jackson 2016-09-23 13:58:21 -04:00
commit b5a4597416
34 changed files with 132 additions and 112 deletions

View file

@ -42,7 +42,7 @@
ng-attr-placeholder="{{'Amount in USD'}}" ng-attr-placeholder="{{'Amount in USD'}}"
min="0.01" min="0.01"
max="500" max="500"
ng-model="fiat" ng-model="formData.fiat"
ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/"
step="0.01" step="0.01"
autocomplete="off" ignore-mouse-wheel required> autocomplete="off" ignore-mouse-wheel required>
@ -53,7 +53,7 @@
<wallets ng-if="wallets[0]" wallets="wallets"></wallets> <wallets ng-if="wallets[0]" wallets="wallets"></wallets>
<button class="button button-block button-positive" <button class="button button-block button-positive"
ng-disabled="!fiat" ng-disabled="!formData.fiat"
type="submit"> type="submit">
Buy now Buy now
</button> </button>

View file

@ -75,7 +75,7 @@
</div> </div>
<div class="item"> <div class="item">
<div ng-if="btx.action == 'received'"> <div ng-if="btx.action == 'received' || 'moved'">
<span translate>Date</span> <span translate>Date</span>
<span class="item-note"> <span class="item-note">
<time>{{ btx.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time> <time>{{ btx.time * 1000 | amDateFormat:'MM/DD/YYYY HH:mm a'}}</time>

View file

@ -19,7 +19,7 @@
<a class="item" ng-show="wallet.isPrivKeyExternal()"> <a class="item" ng-show="wallet.isPrivKeyExternal()">
<span translate>Hardware Wallet</span> <span translate>Hardware Wallet</span>
<span class="item-note"> <span class="item-note">
{{wallet.externalSource}} {{externalSource}}
</span> </span>
</div> </div>
<a class="item item-icon-right" ui-sref="tabs.preferences.preferencesColor"> <a class="item item-icon-right" ui-sref="tabs.preferences.preferencesColor">
@ -45,12 +45,12 @@
<i class="icon nav-item-arrow-right"></i> <i class="icon nav-item-arrow-right"></i>
</a> </a>
<div ng-show="wallet.canSign()"> <div ng-show="wallet.canSign()">
<ion-toggle ng-model="encryptEnabled" toggle-class="toggle-balanced" ng-change="encryptChange()"> <ion-toggle ng-model="encryptEnabled.value" toggle-class="toggle-balanced" ng-change="encryptChange()">
<span class="toggle-label" translate>Request Spending Password</span> <span class="toggle-label" translate>Request Spending Password</span>
</ion-toggle> </ion-toggle>
</div> </div>
<div ng-show="wallet.canSign() && touchIdAvailable"> <div ng-show="wallet.canSign() && touchIdAvailable">
<ion-toggle ng-model="touchIdEnabled" toggle-class="toggle-balanced" ng-change="touchIdChange()"> <ion-toggle ng-model="touchIdEnabled.value" toggle-class="toggle-balanced" ng-change="touchIdChange()">
<span class="toggle-label" translate>Request Fingerprint</span> <span class="toggle-label" translate>Request Fingerprint</span>
</ion-toggle> </ion-toggle>
</div> </div>

View file

@ -11,7 +11,7 @@
<div class="card list"> <div class="card list">
<label class="item item-input item-stacked-label"> <label class="item item-input item-stacked-label">
<span class="input-label" transalate>Alias for {{walletName}}</span> <span class="input-label" transalate>Alias for {{walletName}}</span>
<input type="text" id="alias" name="alias" ng-model="alias" placeholder="John" required> <input type="text" id="alias" name="alias" ng-model="alias.value" placeholder="John" required>
</label> </label>
</div> </div>
<button type="submit" <button type="submit"

View file

@ -9,7 +9,7 @@
<div class="card list"> <div class="card list">
<label class="item item-input item-stacked-label no-border"> <label class="item item-input item-stacked-label no-border">
<span class="input-label">Wallet Service URL</span> <span class="input-label">Wallet Service URL</span>
<input type="text" id="bwsurl" type="text" name="bwsurl" ng-model="bwsurl"> <input type="text" id="bwsurl" type="text" name="bwsurl" ng-model="bwsurl.value">
<a class="postfix" on-tap="resetDefaultUrl()"> <a class="postfix" on-tap="resetDefaultUrl()">
<i class="icon ion-ios-reload"></i> <i class="icon ion-ios-reload"></i>
</a> </a>

View file

@ -11,7 +11,7 @@
<div class="card list"> <div class="card list">
<label class="item item-input item-stacked-label"> <label class="item item-input item-stacked-label">
<span class="input-label" transalate>Email for wallet notifications</span> <span class="input-label" transalate>Email for wallet notifications</span>
<input type="email" id="email" name="email" ng-model="email" required></input> <input type="email" id="email" name="email" ng-model="email.value" required></input>
</label> </label>
</div> </div>
<button type="submit" <button type="submit"

View file

@ -29,7 +29,7 @@
</ion-checkbox> </ion-checkbox>
</div> </div>
<div class="box-notification error" ng-show="!canSign"> <div class="box-notification error ng-hide" ng-show="!canSign">
<span class="size-14"> <span class="size-14">
<i class="ion-alert-circled"></i> <i class="ion-alert-circled"></i>
<span translate> <span translate>
@ -38,7 +38,7 @@
</span> </span>
</div> </div>
<div class="box-notification error" ng-show="formData.noSignEnabled"> <div class="box-notification error ng-hide" ng-show="formData.noSignEnabled">
<span class="size-14"> <span class="size-14">
<i class="ion-alert-circled"></i> <i class="ion-alert-circled"></i>
<span translate> <span translate>

View file

@ -10,8 +10,8 @@
<i class="icon ion-search placeholder-icon"></i> <i class="icon ion-search placeholder-icon"></i>
<input type="text" <input type="text"
placeholder="Search or enter bitcoin address" placeholder="Search or enter bitcoin address"
ng-model="search" ng-model="formData.search"
ng-change="findContact(search)" ng-change="findContact(formData.search)"
ng-model-onblur> ng-model-onblur>
</label> </label>
</div> </div>

View file

@ -37,7 +37,7 @@ angular.module('copayApp.controllers').controller('addressbookAddController', fu
}; };
$scope.goHome = function() { $scope.goHome = function() {
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
}; };

View file

@ -3,12 +3,13 @@
angular.module('copayApp.controllers').controller('amazonController', angular.module('copayApp.controllers').controller('amazonController',
function($scope, $timeout, $ionicModal, $log, lodash, bwcError, amazonService, platformInfo, externalLinkService, popupService) { function($scope, $timeout, $ionicModal, $log, lodash, bwcError, amazonService, platformInfo, externalLinkService, popupService) {
$scope.network = amazonService.getEnvironment();
$scope.openExternalLink = function(url, target) { $scope.openExternalLink = function(url, target) {
externalLinkService.open(url, target); externalLinkService.open(url, target);
}; };
var initAmazon = function() { var initAmazon = function() {
$scope.network = amazonService.getEnvironment();
amazonService.getPendingGiftCards(function(err, gcds) { amazonService.getPendingGiftCards(function(err, gcds) {
if (err) { if (err) {
popupService.showAlert(err); popupService.showAlert(err);
@ -82,7 +83,7 @@ angular.module('copayApp.controllers').controller('amazonController',
}); });
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.beforeEnter", function(event, data){
initAmazon(); initAmazon();
}); });
}); });

View file

@ -10,7 +10,11 @@ angular.module('copayApp.controllers').controller('amountController', function($
var SMALL_FONT_SIZE_LIMIT = 13; var SMALL_FONT_SIZE_LIMIT = 13;
var LENGTH_EXPRESSION_LIMIT = 19; var LENGTH_EXPRESSION_LIMIT = 19;
$scope.$on("$ionicView.enter", function(event, data){ $scope.toAddress = $stateParams.toAddress;
$scope.toName = $stateParams.toName;
$scope.toEmail = $stateParams.toEmail;
$scope.$on("$ionicView.beforeEnter", function(event, data) {
if (!$stateParams.toAddress) { if (!$stateParams.toAddress) {
$log.error('Bad params at amount') $log.error('Bad params at amount')
@ -46,11 +50,6 @@ angular.module('copayApp.controllers').controller('amountController', function($
angular.element($window).off('keydown'); angular.element($window).off('keydown');
}); });
$scope.toAddress = $stateParams.toAddress;
$scope.toName = $stateParams.toName;
$scope.toEmail = $stateParams.toEmail;
var config = configService.getSync().wallet.settings; var config = configService.getSync().wallet.settings;
$scope.unitName = config.unitName; $scope.unitName = config.unitName;
$scope.alternativeIsoCode = config.alternativeIsoCode; $scope.alternativeIsoCode = config.alternativeIsoCode;

View file

@ -97,7 +97,7 @@ angular.module('copayApp.controllers').controller('backupController',
if ($stateParams.fromOnboarding) { if ($stateParams.fromOnboarding) {
$state.go('onboarding.disclaimer'); $state.go('onboarding.disclaimer');
} else { } else {
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
} }
}; };

View file

@ -4,6 +4,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController',
function($scope, $log, $timeout, $state, lodash, profileService, bwcError, gettextCatalog, configService, walletService, amazonService, ongoingProcess, platformInfo, externalLinkService, popupService) { function($scope, $log, $timeout, $state, lodash, profileService, bwcError, gettextCatalog, configService, walletService, amazonService, ongoingProcess, platformInfo, externalLinkService, popupService) {
var self = this; var self = this;
var network = amazonService.getEnvironment();
var wallet; var wallet;
$scope.$on('Wallet/Changed', function(event, w) { $scope.$on('Wallet/Changed', function(event, w) {
@ -20,7 +21,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController',
}; };
this.confirm = function() { this.confirm = function() {
var message = gettextCatalog.getString('Amazon.com Gift Card purchase for ${{amount}} USD', {amount: $scope.fiat}); var message = gettextCatalog.getString('Amazon.com Gift Card purchase for ${{amount}} USD', {amount: $scope.formData.fiat});
var ok = gettextCatalog.getString('Buy'); var ok = gettextCatalog.getString('Buy');
popupService.showConfirm(null, message, ok, null, function(res) { popupService.showConfirm(null, message, ok, null, function(res) {
if (res) self.createTx(); if (res) self.createTx();
@ -40,7 +41,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController',
var dataSrc = { var dataSrc = {
currency: 'USD', currency: 'USD',
amount: $scope.fiat, amount: $scope.formData.fiat,
uuid: wallet.id uuid: wallet.id
}; };
var outputs = []; var outputs = [];
@ -209,7 +210,7 @@ angular.module('copayApp.controllers').controller('buyAmazonController',
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.enter", function(event, data){
var network = amazonService.getEnvironment(); $scope.formData = { fiat: null };
$scope.wallets = profileService.getWallets({ $scope.wallets = profileService.getWallets({
network: network, network: network,
onlyComplete: true onlyComplete: true

View file

@ -7,6 +7,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController',
var self = this; var self = this;
this.show2faCodeInput = null; this.show2faCodeInput = null;
this.success = null; this.success = null;
$scope.network = glideraService.getEnvironment();
$scope.$on('Wallet/Changed', function(event, w) { $scope.$on('Wallet/Changed', function(event, w) {
if (lodash.isEmpty(w)) { if (lodash.isEmpty(w)) {
@ -116,9 +117,7 @@ angular.module('copayApp.controllers').controller('buyGlideraController',
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.enter", function(event, data){
$scope.network = glideraService.getEnvironment(); $scope.token = null;
$scope.token = accessToken;
$scope.permissions = null; $scope.permissions = null;
$scope.email = null; $scope.email = null;
$scope.personalInfo = null; $scope.personalInfo = null;

View file

@ -4,6 +4,16 @@ angular.module('copayApp.controllers').controller('confirmController', function(
var cachedTxp = {}; var cachedTxp = {};
var isChromeApp = platformInfo.isChromeApp; var isChromeApp = platformInfo.isChromeApp;
$scope.toAddress = $stateParams.toAddress;
$scope.toName = $stateParams.toName;
$scope.toEmail = $stateParams.toEmail;
$scope.description = $stateParams.description;
$scope.paypro = $stateParams.paypro;
$scope.$on("$ionicView.enter", function(event, data) {
initConfirm();
});
var initConfirm = function() { var initConfirm = function() {
if ($stateParams.paypro) { if ($stateParams.paypro) {
return setFromPayPro($stateParams.paypro, function(err) { return setFromPayPro($stateParams.paypro, function(err) {
@ -26,12 +36,6 @@ angular.module('copayApp.controllers').controller('confirmController', function(
var amount = $scope.toAmount = parseInt($stateParams.toAmount); var amount = $scope.toAmount = parseInt($stateParams.toAmount);
$scope.amountStr = txFormatService.formatAmountStr($scope.toAmount); $scope.amountStr = txFormatService.formatAmountStr($scope.toAmount);
$scope.toAddress = $stateParams.toAddress;
$scope.toName = $stateParams.toName;
$scope.toEmail = $stateParams.toEmail;
$scope.description = $stateParams.description;
$scope.paypro = $stateParams.paypro;
var networkName = (new bitcore.Address($scope.toAddress)).network.name; var networkName = (new bitcore.Address($scope.toAddress)).network.name;
$scope.network = networkName; $scope.network = networkName;
@ -309,8 +313,4 @@ angular.module('copayApp.controllers').controller('confirmController', function(
$scope.cancel = function() { $scope.cancel = function() {
$state.go('tabs.send'); $state.go('tabs.send');
}; };
$scope.$on("$ionicView.enter", function(event, data) {
initConfirm();
});
}); });

View file

@ -175,12 +175,11 @@ angular.module('copayApp.controllers').controller('createController',
if ($scope.seedSource.id == 'set') { if ($scope.seedSource.id == 'set') {
profileService.setBackupFlag(client.credentials.walletId); profileService.setBackupFlag(client.credentials.walletId);
} }
$ionicHistory.removeBackView();
if (!client.isComplete()) { if (!client.isComplete()) {
$ionicHistory.nextViewOptions({ $ionicHistory.nextViewOptions({
disableAnimate: true disableAnimate: true
}); });
$ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
$timeout(function() { $timeout(function() {
$state.transitionTo('tabs.copayers', { $state.transitionTo('tabs.copayers', {

View file

@ -71,7 +71,7 @@ angular.module('copayApp.controllers').controller('exportController',
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Failed to export')); popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Failed to export'));
return; return;
} }
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
}); });
}); });
@ -158,7 +158,7 @@ angular.module('copayApp.controllers').controller('exportController',
}); });
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.beforeEnter", function(event, data) {
init(); init();
}); });

View file

@ -3,13 +3,13 @@
angular.module('copayApp.controllers').controller('glideraController', angular.module('copayApp.controllers').controller('glideraController',
function($scope, $timeout, $ionicModal, $log, storageService, glideraService, ongoingProcess, platformInfo, externalLinkService, popupService, gettextCatalog) { function($scope, $timeout, $ionicModal, $log, storageService, glideraService, ongoingProcess, platformInfo, externalLinkService, popupService, gettextCatalog) {
$scope.network = glideraService.getEnvironment();
$scope.openExternalLink = function(url, target) { $scope.openExternalLink = function(url, target) {
externalLinkService.open(url, target); externalLinkService.open(url, target);
}; };
var initGlidera = function(accessToken) { var initGlidera = function(accessToken) {
$scope.network = glideraService.getEnvironment();
$scope.token = null; $scope.token = null;
$scope.permissions = null; $scope.permissions = null;
$scope.email = null; $scope.email = null;
@ -113,7 +113,7 @@ angular.module('copayApp.controllers').controller('glideraController',
}); });
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.beforeEnter", function(event, data){
initGlidera(); initGlidera();
}); });

View file

@ -345,6 +345,7 @@ angular.module('copayApp.controllers').controller('importController',
if (err) $log.error(err); if (err) $log.error(err);
}); });
} }
$ionicHistory.removeBackView();
$state.go('tabs.home', { $state.go('tabs.home', {
fromOnboarding: $stateParams.fromOnboarding fromOnboarding: $stateParams.fromOnboarding
}); });

View file

@ -145,7 +145,7 @@ angular.module('copayApp.controllers').controller('joinController',
walletService.updateRemotePreferences(client, {}, function() { walletService.updateRemotePreferences(client, {}, function() {
$log.debug('Remote preferences saved for:' + client.credentials.walletId) $log.debug('Remote preferences saved for:' + client.credentials.walletId)
}); });
$ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
}); });
}, 100); }, 100);

View file

@ -3,11 +3,14 @@
angular.module('copayApp.controllers').controller('txStatusController', function($scope, $timeout, $state, $ionicHistory, $log, addressbookService) { angular.module('copayApp.controllers').controller('txStatusController', function($scope, $timeout, $state, $ionicHistory, $log, addressbookService) {
if ($scope.cb) $timeout($scope.cb, 100); if ($scope.cb) $timeout($scope.cb, 100);
$scope.fromSendTab = $ionicHistory.viewHistory().backView.stateName === "tabs.send.amount";
$scope.cancel = function() { $scope.cancel = function() {
$ionicHistory.clearHistory();
$state.go('tabs.home');
$scope.txStatusModal.hide(); $scope.txStatusModal.hide();
if ($scope.fromSendTab) {
$ionicHistory.removeBackView();
$state.go('tabs.home');
}
}; };
$scope.save = function(addressbookEntry) { $scope.save = function(addressbookEntry) {
@ -23,7 +26,6 @@ angular.module('copayApp.controllers').controller('txStatusController', function
}); });
} }
$scope.fromSendTab = $ionicHistory.viewHistory().backView.stateName === "tabs.send.amount";
addressbookService.list(function(err, ab) { addressbookService.list(function(err, ab) {
if (err) $log.error(err); if (err) $log.error(err);
if (ab[$scope.tx.toAddress]) { if (ab[$scope.tx.toAddress]) {

View file

@ -96,7 +96,7 @@ angular.module('copayApp.controllers').controller('paperWalletController',
popupService.showAlert(gettextCatalog.getString('Error sweeping wallet:'), err || err.toString()); popupService.showAlert(gettextCatalog.getString('Error sweeping wallet:'), err || err.toString());
} else { } else {
$scope.openStatusModal('broadcasted', function() { $scope.openStatusModal('broadcasted', function() {
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
}); });
} }

View file

@ -47,7 +47,7 @@ angular.module('copayApp.controllers').controller('paymentUriController',
this.selectWallet = function(wid) { this.selectWallet = function(wid) {
var self = this; var self = this;
profileService.setAndStoreFocus(wid, function() {}); profileService.setAndStoreFocus(wid, function() {});
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
$timeout(function() { $timeout(function() {
$rootScope.$emit('paymentUri', self.bitcoinURI); $rootScope.$emit('paymentUri', self.bitcoinURI);

View file

@ -8,7 +8,7 @@ angular.module('copayApp.controllers').controller('preferencesController',
$scope.encryptChange = function() { $scope.encryptChange = function() {
if (!wallet) return; if (!wallet) return;
var val = $scope.encryptEnabled; var val = $scope.encryptEnabled.value;
if (val && !walletService.isEncrypted(wallet)) { if (val && !walletService.isEncrypted(wallet)) {
$log.debug('Encrypting private key for', wallet.name); $log.debug('Encrypting private key for', wallet.name);
@ -17,7 +17,7 @@ angular.module('copayApp.controllers').controller('preferencesController',
$log.warn(err); $log.warn(err);
// ToDo show error? // ToDo show error?
$scope.encryptEnabled = false; $scope.encryptEnabled.value = false;
return; return;
} }
profileService.updateCredentials(JSON.parse(wallet.export()), function() { profileService.updateCredentials(JSON.parse(wallet.export()), function() {
@ -31,7 +31,7 @@ angular.module('copayApp.controllers').controller('preferencesController',
$log.warn(err); $log.warn(err);
// ToDo show error? // ToDo show error?
$scope.encryptEnabled = true; $scope.encryptEnabled.value = true;
return; return;
} }
profileService.updateCredentials(JSON.parse(wallet.export()), function() { profileService.updateCredentials(JSON.parse(wallet.export()), function() {
@ -43,10 +43,10 @@ angular.module('copayApp.controllers').controller('preferencesController',
}; };
$scope.touchIdChange = function() { $scope.touchIdChange = function() {
var newStatus = $scope.touchIdEnabled; var newStatus = $scope.touchIdEnabled.value;
walletService.setTouchId(wallet, !!newStatus, function(err) { walletService.setTouchId(wallet, !!newStatus, function(err) {
if (err) { if (err) {
$scope.touchIdEnabled = !newStatus; $scope.touchIdEnabled.value = !newStatus;
$timeout(function() { $timeout(function() {
$scope.$apply(); $scope.$apply();
}, 1); }, 1);
@ -64,12 +64,17 @@ angular.module('copayApp.controllers').controller('preferencesController',
var config = configService.getSync(); var config = configService.getSync();
$scope.encryptEnabled = walletService.isEncrypted(wallet); $scope.encryptEnabled = {
value: walletService.isEncrypted(wallet)
};
if (wallet.isPrivKeyExternal) if (wallet.isPrivKeyExternal)
$scope.externalSource = wallet.getPrivKeyExternalSourceName() == 'ledger' ? 'Ledger' : 'Trezor'; $scope.externalSource = wallet.getPrivKeyExternalSourceName() == 'ledger' ? 'Ledger' : 'Trezor';
$scope.touchIdAvailable = fingerprintService.isAvailable(); $scope.touchIdAvailable = fingerprintService.isAvailable();
$scope.touchIdEnabled = config.touchIdFor ? config.touchIdFor[walletId] : null; $scope.touchIdEnabled = {
value: config.touchIdFor ? config.touchIdFor[walletId] : null
};
$scope.deleted = false; $scope.deleted = false;
if (wallet.credentials && !wallet.credentials.mnemonicEncrypted && !wallet.credentials.mnemonic) { if (wallet.credentials && !wallet.credentials.mnemonicEncrypted && !wallet.credentials.mnemonic) {

View file

@ -3,18 +3,20 @@
angular.module('copayApp.controllers').controller('preferencesAliasController', angular.module('copayApp.controllers').controller('preferencesAliasController',
function($scope, $timeout, $stateParams, $ionicHistory, gettextCatalog, configService, profileService, walletService) { function($scope, $timeout, $stateParams, $ionicHistory, gettextCatalog, configService, profileService, walletService) {
var wallet = profileService.getWallet($stateParams.walletId); var wallet = profileService.getWallet($stateParams.walletId);
$scope.wallet = wallet;
var walletId = wallet.credentials.walletId; var walletId = wallet.credentials.walletId;
var config = configService.getSync(); var config = configService.getSync();
$scope.walletName = wallet.credentials.walletName; $scope.walletName = wallet.credentials.walletName;
$scope.alias = (config.aliasFor && config.aliasFor[walletId]) || wallet.walletName; $scope.alias = {
value: (config.aliasFor && config.aliasFor[walletId]) || wallet.credentials.walletName
};
$scope.save = function() { $scope.save = function() {
var opts = { var opts = {
aliasFor: {} aliasFor: {}
}; };
opts.aliasFor[walletId] = $scope.alias;
opts.aliasFor[walletId] = $scope.alias.value;
configService.set(opts, function(err) { configService.set(opts, function(err) {
if (err) $log.warn(err); if (err) $log.warn(err);

View file

@ -9,16 +9,18 @@ angular.module('copayApp.controllers').controller('preferencesBwsUrlController',
var defaults = configService.getDefaults(); var defaults = configService.getDefaults();
var config = configService.getSync(); var config = configService.getSync();
$scope.bwsurl = (config.bwsFor && config.bwsFor[walletId]) || defaults.bws.url; $scope.bwsurl = {
value: (config.bwsFor && config.bwsFor[walletId]) || defaults.bws.url
};
$scope.resetDefaultUrl = function() { $scope.resetDefaultUrl = function() {
$scope.bwsurl = defaults.bws.url; $scope.bwsurl.value = defaults.bws.url;
}; };
$scope.save = function() { $scope.save = function() {
var bws; var bws;
switch ($scope.bwsurl) { switch ($scope.bwsurl.value) {
case 'prod': case 'prod':
case 'production': case 'production':
bws = 'https://bws.bitpay.com/bws/api' bws = 'https://bws.bitpay.com/bws/api'
@ -34,13 +36,13 @@ angular.module('copayApp.controllers').controller('preferencesBwsUrlController',
}; };
if (bws) { if (bws) {
$log.info('Using BWS URL Alias to ' + bws); $log.info('Using BWS URL Alias to ' + bws);
$scope.bwsurl = bws; $scope.bwsurl.value = bws;
} }
var opts = { var opts = {
bwsFor: {} bwsFor: {}
}; };
opts.bwsFor[walletId] = $scope.bwsurl; opts.bwsFor[walletId] = $scope.bwsurl.value;
configService.set(opts, function(err) { configService.set(opts, function(err) {
if (err) $log.debug(err); if (err) $log.debug(err);

View file

@ -7,16 +7,18 @@ angular.module('copayApp.controllers').controller('preferencesEmailController',
var config = configService.getSync(); var config = configService.getSync();
config.emailFor = config.emailFor || {}; config.emailFor = config.emailFor || {};
$scope.email = config.emailFor && config.emailFor[walletId]; $scope.email = {
value: config.emailFor && config.emailFor[walletId]
};
$scope.save = function(form) { $scope.save = function() {
var opts = { var opts = {
emailFor: {} emailFor: {}
}; };
opts.emailFor[walletId] = $scope.email; opts.emailFor[walletId] = $scope.email.value;
walletService.updateRemotePreferences(wallet, { walletService.updateRemotePreferences(wallet, {
email: $scope.email, email: $scope.email.value,
}, function(err) { }, function(err) {
if (err) $log.warn(err); if (err) $log.warn(err);
configService.set(opts, function(err) { configService.set(opts, function(err) {

View file

@ -125,7 +125,7 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
$scope.$emit('Local/ClearHistory'); $scope.$emit('Local/ClearHistory');
$timeout(function() { $timeout(function() {
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
}, 100); }, 100);
}); });

View file

@ -1,7 +1,7 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('preferencesInformation', angular.module('copayApp.controllers').controller('preferencesInformation',
function($scope, $log, $timeout, $ionicHistory, platformInfo, gettextCatalog, lodash, profileService, configService, $stateParams, walletService, $state) { function($scope, $log, $timeout, $ionicHistory, $ionicScrollDelegate, platformInfo, gettextCatalog, lodash, profileService, configService, $stateParams, walletService, $state) {
var base = 'xpub'; var base = 'xpub';
var wallet = profileService.getWallet($stateParams.walletId); var wallet = profileService.getWallet($stateParams.walletId);
var walletId = wallet.id; var walletId = wallet.id;
@ -65,7 +65,7 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
opts.colorFor[walletId] = color; opts.colorFor[walletId] = color;
configService.set(opts, function(err) { configService.set(opts, function(err) {
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
if (err) $log.warn(err); if (err) $log.warn(err);
}); });
@ -77,7 +77,7 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
$scope.scan = function() { $scope.scan = function() {
walletService.startScan(wallet); walletService.startScan(wallet);
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
}; };
@ -116,7 +116,7 @@ angular.module('copayApp.controllers').controller('preferencesInformation',
$timeout(function() { $timeout(function() {
$scope.$apply(); $scope.$apply();
}); });
$ionicScrollDelegate.resize();
}); });
}); });

View file

@ -3,6 +3,9 @@
angular.module('copayApp.controllers').controller('preferencesLogs', angular.module('copayApp.controllers').controller('preferencesLogs',
function($scope, historicLog, gettextCatalog) { function($scope, historicLog, gettextCatalog) {
$scope.$on("$ionicView.enter", function(event, data) {
$scope.logs = historicLog.get();
$scope.prepare = function() { $scope.prepare = function() {
var log = 'Copay Session Logs\n Be careful, this could contain sensitive private data\n\n'; var log = 'Copay Session Logs\n Be careful, this could contain sensitive private data\n\n';
log += '\n\n'; log += '\n\n';
@ -28,7 +31,5 @@ angular.module('copayApp.controllers').controller('preferencesLogs',
); );
}; };
$scope.$on("$ionicView.enter", function(event, data){
$scope.logs = historicLog.get();
}); });
}); });

View file

@ -8,6 +8,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
this.show2faCodeInput = null; this.show2faCodeInput = null;
this.success = null; this.success = null;
var wallet; var wallet;
$scope.network = glideraService.getEnvironment();
$scope.$on('Wallet/Changed', function(event, w) { $scope.$on('Wallet/Changed', function(event, w) {
if (lodash.isEmpty(w)) { if (lodash.isEmpty(w)) {
@ -189,9 +190,7 @@ angular.module('copayApp.controllers').controller('sellGlideraController',
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.enter", function(event, data){
$scope.network = glideraService.getEnvironment(); $scope.token = null;
$scope.token = accessToken;
$scope.permissions = null; $scope.permissions = null;
$scope.email = null; $scope.email = null;
$scope.personalInfo = null; $scope.personalInfo = null;

View file

@ -84,6 +84,7 @@ angular.module('copayApp.controllers').controller('tabSendController', function(
}; };
$scope.$on("$ionicView.enter", function(event, data){ $scope.$on("$ionicView.enter", function(event, data){
$scope.formData = { search: null };
updateList(); updateList();
}); });

View file

@ -28,10 +28,16 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
$scope.$digest(); $scope.$digest();
}); });
} }
$scope.spendUnconfirmed = {value : config.wallet.spendUnconfirmed}; $scope.spendUnconfirmed = {
$scope.glideraEnabled = {value: config.glidera.enabled}; value: config.wallet.spendUnconfirmed
};
$scope.glideraEnabled = {
value: config.glidera.enabled
};
$scope.coinbaseEnabled = config.coinbase.enabled; $scope.coinbaseEnabled = config.coinbase.enabled;
$scope.pushNotifications = {value: config.pushNotifications.enabled}; $scope.pushNotifications = {
value: config.pushNotifications.enabled
};
$scope.otherWallets = lodash.filter(profileService.getWallets(self.network), function(w) { $scope.otherWallets = lodash.filter(profileService.getWallets(self.network), function(w) {
return w.id != self.walletId; return w.id != self.walletId;
}); });

View file

@ -19,7 +19,7 @@ angular.module('copayApp.services')
if (isChromeApp) { if (isChromeApp) {
chrome.runtime.reload(); chrome.runtime.reload();
} else if (isNW) { } else if (isNW) {
$ionicHistory.clearHistory(); $ionicHistory.removeBackView();
$state.go('tabs.home'); $state.go('tabs.home');
$timeout(function() { $timeout(function() {
var win = require('nw.gui').Window.get(); var win = require('nw.gui').Window.get();