Merge pull request #686 from maraoz/automatic/backup

Automatic backup after create/join
This commit is contained in:
Gustavo Maximiliano Cortez 2014-06-17 10:56:27 -03:00
commit 03993b5172
9 changed files with 150 additions and 79 deletions

View file

@ -0,0 +1,47 @@
'use strict';
var BackupService = function() {};
BackupService.prototype.getName = function(wallet) {
return (wallet.name ? (wallet.name+'-') : '') + wallet.id;
};
BackupService.prototype.download = function(wallet) {
var ew = wallet.toEncryptedObj();
var timestamp = +(new Date());
var walletName = this.getName(wallet);
var filename = walletName + '-' + timestamp + '-keybackup.json.aes';
var blob = new Blob([ew], {
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: ew
});
}
// otherwise lean on the browser implementation
saveAs(blob, filename);
};
BackupService.prototype.sendEmail = function(email, wallet) {
var ew = wallet.toEncryptedObj();
var body = ew;
var subject = this.getName(wallet);
var href = 'mailto:' + email + '?' + 'subject=[Copay Backup] ' + subject + '&' + 'body=' + body;
if (window.cshell) {
return window.cshell.send('backup:email', href);
}
var newWin = window.open(href, '_blank', 'scrollbars=yes,resizable=yes,width=10,height=10');
if (newWin) {
setTimeout(function() {
newWin.close();
}, 1000);
}
};
angular.module('copayApp.services').value('backupService', new BackupService());