mirror of https://github.com/BTCPrivate/copay.git
82 lines
2.2 KiB
JavaScript
82 lines
2.2 KiB
JavaScript
/*
|
|
** copay-shell - message handler
|
|
*/
|
|
|
|
var ipc = require('ipc');
|
|
var dialog = require('dialog');
|
|
var config = require('../config');
|
|
var windows = (process.platform === 'win32');
|
|
var HOME = process.env[windows ? 'USERPROFILE' : 'HOME'];
|
|
var fs = require('fs');
|
|
var shell = require('shell');
|
|
|
|
module.exports = function(renderer) {
|
|
|
|
// handle alerts sent from renderer (browser window)
|
|
ipc.on('alert', function(e, type, message) {
|
|
dialog.showMessageBox(renderer, {
|
|
type: type || 'info',
|
|
buttons: ['Okay'],
|
|
title: 'Copay',
|
|
message: message
|
|
});
|
|
});
|
|
|
|
// handle saving a wallet backup
|
|
ipc.on('backup:download', function(e, data) {
|
|
var backup = new Buffer(data.wallet);
|
|
var filename = data.name + '-' + (+(new Date)) + '.json.aes';
|
|
// open save dialog
|
|
dialog.showSaveDialog(renderer, {
|
|
title: 'Backup Wallet',
|
|
defaultPath: HOME + '/' + filename
|
|
}, function(path) {
|
|
if (!path) return;
|
|
fs.writeFile(path, backup, function(err) {
|
|
dialog.showMessageBox(renderer, {
|
|
type: err ? 'warning' : 'info',
|
|
buttons: ['Okay'],
|
|
title: 'Copay',
|
|
message: err ? err.message : 'Wallet backup saved!'
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
// handle emailing a wallet backup
|
|
ipc.on('backup:email', function(e, href) {
|
|
// open email client
|
|
shell.openExternal(href)
|
|
});
|
|
|
|
// handle importing a wallet backup
|
|
ipc.on('backup:import', function(e, data) {
|
|
|
|
// open file dialog
|
|
dialog.showOpenDialog(renderer, {
|
|
title: 'Import Wallet Backup',
|
|
defaultPath: HOME,
|
|
properties: ['openFile']
|
|
}, function(path) {
|
|
if (!path) return;
|
|
fs.readFile(path[0], function(err, contents) {
|
|
if (err) {
|
|
return dialog.showMessageBox(renderer, {
|
|
type: 'warning',
|
|
buttons: ['Okay'],
|
|
title: 'Copay',
|
|
message: err.message
|
|
});
|
|
}
|
|
renderer.send('backup:import:data', contents.toString());
|
|
});
|
|
});
|
|
});
|
|
|
|
// if we get an error, let's pop open the console for the user
|
|
ipc.on('error', function() {
|
|
if (config.debug) renderer.toggleDevTools();
|
|
});
|
|
|
|
};
|