+
+
Changing wallet alias only afects the local wallet name.
+
+
diff --git a/src/js/controllers/backup.js b/src/js/controllers/backup.js
index 6959b7144..0aec01726 100644
--- a/src/js/controllers/backup.js
+++ b/src/js/controllers/backup.js
@@ -1,4 +1,3 @@
-
'use strict';
angular.module('copayApp.controllers').controller('backupController',
@@ -45,6 +44,9 @@ angular.module('copayApp.controllers').controller('backupController',
}
window.plugins.toast.showShortCenter('Preparing backup...');
var name = (fc.credentials.walletName || fc.credentials.walletId);
+ if (fc.alias) {
+ name = fc.alias + ' [' + name + ']';
+ }
var ew = this.getBackup();
var properties = {
subject: 'Copay Wallet Backup: ' + name,
diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js
index e3b4388d2..d2bc71373 100644
--- a/src/js/controllers/index.js
+++ b/src/js/controllers/index.js
@@ -102,6 +102,7 @@ angular.module('copayApp.controllers').controller('indexController', function($r
self.txps = [];
self.copayers = [];
self.updateColor();
+ self.updateAlias();
storageService.getBackupFlag(self.walletId, function(err, val) {
self.needsBackup = self.network == 'testnet' ? false : !val;
@@ -344,6 +345,14 @@ angular.module('copayApp.controllers').controller('indexController', function($r
});
};
+ self.updateAlias = function() {
+ var config = configService.getSync();
+ config.aliasFor = config.aliasFor || {};
+ self.alias = config.aliasFor[self.walletId];
+ var fc = profileService.focusedClient;
+ fc.alias = self.alias;
+ };
+
self.updateColor = function() {
var config = configService.getSync();
config.colorFor = config.colorFor || {};
@@ -552,6 +561,14 @@ angular.module('copayApp.controllers').controller('indexController', function($r
});
});
+ $rootScope.$on('Local/AliasUpdated', function(event) {
+ self.updateAlias();
+ $timeout(function() {
+ $rootScope.$apply();
+ });
+ });
+
+
$rootScope.$on('Local/UnitSettingUpdated', function(event) {
self.updateAll();
self.updateTxHistory();
diff --git a/src/js/controllers/paymentUri.js b/src/js/controllers/paymentUri.js
index 2dac95c32..5d0cddefe 100644
--- a/src/js/controllers/paymentUri.js
+++ b/src/js/controllers/paymentUri.js
@@ -39,11 +39,12 @@ angular.module('copayApp.controllers').controller('paymentUriController',
if (!profileService.profile) return;
var config = configService.getSync();
config.colorFor = config.colorFor || {};
+ config.aliasFor = config.aliasFor || {};
var ret = lodash.map(profileService.profile.credentials, function(c) {
return {
m: c.m,
n: c.n,
- name: c.walletName,
+ name: config.aliasFor[c.walletId] || c.walletName,
id: c.walletId,
network: c.network,
color: config.colorFor[c.walletId] || '#2C3E50'
@@ -52,7 +53,7 @@ angular.module('copayApp.controllers').controller('paymentUriController',
ret = lodash.filter(ret, function(w) {
return (w.network == network);
});
- return lodash.sortBy(ret, 'walletName');
+ return lodash.sortBy(ret, 'name');
};
this.selectWallet = function(wid) {
diff --git a/src/js/controllers/preferencesAlias.js b/src/js/controllers/preferencesAlias.js
new file mode 100644
index 000000000..385f4e258
--- /dev/null
+++ b/src/js/controllers/preferencesAlias.js
@@ -0,0 +1,32 @@
+'use strict';
+
+angular.module('copayApp.controllers').controller('preferencesAliasController',
+ function($scope, $timeout, configService, profileService, go) {
+ var config = configService.getSync();
+ var fc = profileService.focusedClient;
+ var walletId = fc.credentials.walletId;
+
+ var config = configService.getSync();
+ config.aliasFor = config.aliasFor || {};
+ this.alias = config.aliasFor[walletId] || fc.credentials.walletName;
+
+ this.save = function() {
+ var self = this;
+ var opts = {
+ aliasFor: {}
+ };
+ opts.aliasFor[walletId] = self.alias;
+
+ configService.set(opts, function(err) {
+ if (err) {
+ $scope.$emit('Local/DeviceError', err);
+ return;
+ }
+ $scope.$emit('Local/AliasUpdated');
+ $timeout(function(){
+ go.path('preferences');
+ }, 50);
+ });
+
+ };
+ });
diff --git a/src/js/controllers/preferencesDelete.js b/src/js/controllers/preferencesDelete.js
index 448dc0b0d..cfd6dfa39 100644
--- a/src/js/controllers/preferencesDelete.js
+++ b/src/js/controllers/preferencesDelete.js
@@ -34,14 +34,15 @@ angular.module('copayApp.controllers').controller('preferencesDeleteWalletContro
var _deleteWallet = function() {
var fc = profileService.focusedClient;
- var walletName = fc.credentials.walletName;
+ var name = fc.credentials.walletName;
+ var walletName = (fc.alias||'') + ' [' + name + ']';
var self = this;
profileService.deleteWalletFC({}, function(err) {
if (err) {
self.error = err.message || err;
} else {
- notification.success(gettext('Success'), gettextCatalog.getString('The wallet "{{walletName}}" was deleted', {walletName: walletName}));
+ notification.success(gettext('Success'), gettextCatalog.getString('The wallet "{{walletName}}" was deleted', {walletName: name}));
}
});
};
diff --git a/src/js/controllers/sidebar.js b/src/js/controllers/sidebar.js
index a514fcefd..43dc61242 100644
--- a/src/js/controllers/sidebar.js
+++ b/src/js/controllers/sidebar.js
@@ -15,6 +15,11 @@ angular.module('copayApp.controllers').controller('sidebarController',
self.setWallets();
});
+ $rootScope.$on('Local/AliasUpdated', function(event) {
+ self.setWallets();
+ });
+
+
self.signout = function() {
profileService.signout();
};
@@ -35,16 +40,17 @@ angular.module('copayApp.controllers').controller('sidebarController',
if (!profileService.profile) return;
var config = configService.getSync();
config.colorFor = config.colorFor || {};
+ config.aliasFor = config.aliasFor || {};
var ret = lodash.map(profileService.profile.credentials, function(c) {
return {
m: c.m,
n: c.n,
- name: c.walletName,
+ name: config.aliasFor[c.walletId] || c.walletName,
id: c.walletId,
color: config.colorFor[c.walletId] || '#7A8C9E',
};
});
- self.wallets = lodash.sortBy(ret, 'walletName');
+ self.wallets = lodash.sortBy(ret, 'name');
};
self.setWallets();
diff --git a/src/js/routes.js b/src/js/routes.js
index e0ebe98a3..2a9ed234c 100644
--- a/src/js/routes.js
+++ b/src/js/routes.js
@@ -245,6 +245,19 @@ angular
},
}
})
+ .state('preferencesAlias', {
+ url: '/preferencesAlias',
+ templateUrl: 'views/preferencesAlias.html',
+ walletShouldBeComplete: true,
+ needProfile: true,
+ views: {
+ 'main': {
+ templateUrl: 'views/preferencesAlias.html'
+ },
+
+ }
+ })
+
.state('preferencesBwsUrl', {
url: '/preferencesBwsUrl',
templateUrl: 'views/preferencesBwsUrl.html',
@@ -378,6 +391,7 @@ angular
preferencesUnit: 12,
preferencesAltCurrency: 12,
preferencesBwsUrl: 12,
+ preferencesAlias: 12,
about: 12,
logs: 13,
add: 11,
diff --git a/src/js/services/backupService.js b/src/js/services/backupService.js
index c70232ba5..4b0d8363f 100644
--- a/src/js/services/backupService.js
+++ b/src/js/services/backupService.js
@@ -75,7 +75,7 @@ angular.module('copayApp.services')
var ew = root.walletExport(password);
if (!ew) return cb('Could not create backup');
- var walletName = fc.credentials.walletName;
+ var walletName = (fc.alias || '') + (fc.alias ? '-' : '') + fc.credentials.walletName;
var filename = walletName + '-Copaybackup.aes.json';
_download(ew, filename, cb)
};
diff --git a/src/js/services/notificationsService.js b/src/js/services/notificationsService.js
index d34ed6858..ea26be0f4 100644
--- a/src/js/services/notificationsService.js
+++ b/src/js/services/notificationsService.js
@@ -53,35 +53,36 @@ angular.module('copayApp.services')
var config = configService.getSync();
config.colorFor = config.colorFor || {};
var color = config.colorFor[walletId] || '#2C3E50';
+ var name = config.aliasFor[walletId] || walletName;
switch (notificationData.type) {
case 'NewTxProposal':
notification.new(gettext('New Transaction'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'TxProposalAcceptedBy':
notification.success(gettext('Transaction Signed'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'TxProposalRejectedBy':
notification.error(gettext('Transaction Rejected'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'TxProposalFinallyRejected':
notification.error(gettext('A transaction was finally rejected'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'NewOutgoingTx':
notification.sent(gettext('Transaction Sent'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'NewIncomingTx':
notification.funds(gettext('Funds received'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'ScanFinished':
notification.success(gettext('Scan Finished'),
- walletName, {color: color} );
+ name, {color: color} );
break;
case 'NewCopayer':