added message for backup to file for when instide copay shell

This commit is contained in:
Gordon Hall 2014-06-03 12:55:40 -04:00
parent 2818ff6d60
commit ceafc3bb4f
2 changed files with 25 additions and 8 deletions

View File

@ -15,6 +15,15 @@ angular.module('copay.backup').controller('BackupController',
var filename = walletName + '-' + timestamp + '.json.aes'; var filename = walletName + '-' + timestamp + '.json.aes';
var wallet = _getEncryptedWallet(); var wallet = _getEncryptedWallet();
var blob = new Blob([wallet], {type: 'text/plain;charset=utf-8'}); var blob = new Blob([wallet], {type: 'text/plain;charset=utf-8'});
// show a native save dialog if we are in the shell
// and pass the wallet to the shell to convert to node Buffer
if (window.cshell) {
return window.cshell.send('backup:download', {
name: walletName,
wallet: wallet
});
}
// otherwise lean on the browser implementation
saveAs(blob, filename); saveAs(blob, filename);
}; };
@ -27,7 +36,7 @@ angular.module('copay.backup').controller('BackupController',
alert('Enter a valid email address'); alert('Enter a valid email address');
} else { } else {
var body = _getEncryptedWallet(); var body = _getEncryptedWallet();
var subject = ($rootScope.wallet.name ? $rootScope.wallet.name + ' - ' : '') + $rootScope.wallet.id; var subject = ($rootScope.wallet.name ? $rootScope.wallet.name + ' - ' : '') + $rootScope.wallet.id;
var href = 'mailto:' + email + '?' var href = 'mailto:' + email + '?'
+ 'subject=[Copay Backup] ' + subject + '&' + 'subject=[Copay Backup] ' + subject + '&'
+ 'body=' + body; + 'body=' + body;
@ -42,5 +51,5 @@ angular.module('copay.backup').controller('BackupController',
} }
} }
}; };
}); });

View File

@ -17,6 +17,9 @@
if (window.process && process.type === 'renderer') { if (window.process && process.type === 'renderer') {
window.cshell = initCopayShellBindings(); window.cshell = initCopayShellBindings();
} }
else {
return;
}
function controller(name) { function controller(name) {
return angular.element( return angular.element(
@ -35,46 +38,51 @@
var ipc = require('ipc'); var ipc = require('ipc');
ipc.on('address:create', function(data) { ipc.on('address:create', function(data) {
location.href = '#/addresses';
var ctrl = controller('AddressesController'); var ctrl = controller('AddressesController');
if (!ctrl) return needsWalletLogin(ipc); if (!ctrl) return needsWalletLogin(ipc);
location.href = '#/addresses';
ctrl.newAddr(); ctrl.newAddr();
}); });
ipc.on('transactions:send', function(data) { ipc.on('transactions:send', function(data) {
location.href = '#/send';
var ctrl = controller('SendController'); var ctrl = controller('SendController');
if (!ctrl) return needsWalletLogin(ipc); if (!ctrl) return needsWalletLogin(ipc);
location.href = '#/send';
}); });
ipc.on('transactions:all', function(data) { ipc.on('transactions:all', function(data) {
location.href = '#/transactions';
var ctrl = controller('TransactionsController'); var ctrl = controller('TransactionsController');
if (!ctrl) return needsWalletLogin(ipc); if (!ctrl) return needsWalletLogin(ipc);
location.href = '#/transactions';
ctrl.show(); ctrl.show();
}); });
ipc.on('transactions:pending', function(data) { ipc.on('transactions:pending', function(data) {
location.href = '#/transactions';
var ctrl = controller('TransactionsController'); var ctrl = controller('TransactionsController');
if (!ctrl) return needsWalletLogin(ipc); if (!ctrl) return needsWalletLogin(ipc);
location.href = '#/transactions';
ctrl.show(true); ctrl.show(true);
}); });
ipc.on('backup:download', function(data) { ipc.on('backup:download', function(data) {
location.href = '#/backup';
var ctrl = controller('BackupController'); var ctrl = controller('BackupController');
if (!ctrl) return needsWalletLogin(ipc); if (!ctrl) return needsWalletLogin(ipc);
location.href = '#/backup';
ctrl.download(); ctrl.download();
}); });
ipc.on('backup:email', function(data) { ipc.on('backup:email', function(data) {
location.href = '#/backup';
var ctrl = controller('BackupController'); var ctrl = controller('BackupController');
if (!ctrl) return needsWalletLogin(ipc); if (!ctrl) return needsWalletLogin(ipc);
location.href = '#/backup';
ctrl.email(); ctrl.email();
}); });
// let the shell know when an error occurs
window.onerror = function(err) {
ipc.send('error', err);
};
return ipc; return ipc;
}; };