Updated all electron calls for proper interactions

Signed-off-by: French Ben <me+git@frenchben.com>
This commit is contained in:
French Ben 2015-12-23 16:58:10 -05:00
parent 14bdaf25db
commit 53436e81b2
12 changed files with 44 additions and 79 deletions

View File

@ -83,7 +83,6 @@
"jsxhint": "^0.15.1",
"load-grunt-tasks": "^3.2.0",
"minimist": "^1.1.1",
"react-tools": "^0.13.1",
"run-sequence": "^1.0.2",
"shell-escape": "^0.2.0",
"source-map-support": "^0.3.2"

View File

@ -1,24 +1,24 @@
require.main.paths.splice(0, 0, process.env.NODE_PATH);
import remote from 'remote';
var Menu = remote.require('menu');
import electron from 'electron';
const remote = electron.remote;
const Menu = remote.Menu;
// ipcRenderer is used as we're in the process
const ipcRenderer = electron.ipcRenderer;
import React from 'react';
import SetupStore from './stores/SetupStore';
import ipc from 'ipc';
import machine from './utils/DockerMachineUtil';
import metrics from './utils/MetricsUtil';
import template from './menutemplate';
import webUtil from './utils/WebUtil';
import hubUtil from './utils/HubUtil';
import setupUtil from './utils/SetupUtil';
import request from 'request';
import docker from './utils/DockerUtil';
import hub from './utils/HubUtil';
import Router from 'react-router';
import routes from './routes';
import routerContainer from './router';
import repositoryActions from './actions/RepositoryActions';
import util from './utils/Util';
var app = remote.require('app');
import machine from './utils/DockerMachineUtil';
hubUtil.init();
@ -47,6 +47,8 @@ var router = Router.create({
router.run(Handler => React.render(<Handler/>, document.body));
routerContainer.set(router);
setupUtil.setup().then(() => {
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
docker.init();
@ -63,7 +65,7 @@ setupUtil.setup().then(() => {
throw err;
});
ipc.on('application:quitting', () => {
ipcRenderer.on('application:quitting', () => {
if (localStorage.getItem('settings.closeVMOnQuit') === 'true') {
machine.stop();
}

View File

@ -1,8 +1,10 @@
import app from 'app';
import BrowserWindow from 'browser-window';
import electron from 'electron';
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
import fs from 'fs';
import os from 'os';
var ipc = require('electron').ipcMain;
import path from 'path';
import child_process from 'child_process';
@ -18,29 +20,6 @@ try {
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, 'settings.json'), 'utf8'));
} catch (err) {}
let updateCmd = (args, cb) => {
let updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe');
let child = child_process.spawn(updateExe, args, {detached: true});
child.on('close', cb);
};
if (process.platform === 'win32') {
var squirrelCommand = process.argv[1];
let target = path.basename(process.execPath);
switch (squirrelCommand) {
case '--squirrel-install':
case '--squirrel-updated':
updateCmd(['--createShortcut', target], app.quit);
break;
case '--squirrel-uninstall':
updateCmd(['--removeShortcut', target], app.quit);
break;
case '--squirrel-obsolete':
app.quit();
break;
}
}
app.on('ready', function () {
var mainWindow = new BrowserWindow({
width: size.width || 1080,
@ -66,25 +45,18 @@ app.on('ready', function () {
return false;
});
var updating = false;
ipc.on('application:quit-install', function () {
updating = true;
});
if (os.platform() === 'win32') {
mainWindow.on('close', function () {
mainWindow.webContents.send('application:quitting');
return true;
});
app.on('window-all-closed', function() {
app.on('window-all-closed', function () {
app.quit();
});
} else if (os.platform() === 'darwin') {
app.on('before-quit', function () {
if (!updating) {
mainWindow.webContents.send('application:quitting');
}
mainWindow.webContents.send('application:quitting');
});
}

View File

@ -6,8 +6,9 @@ import shell from 'shell';
import util from '../utils/Util';
import metrics from '../utils/MetricsUtil';
import containerActions from '../actions/ContainerActions';
import remote from 'remote';
var dialog = remote.require('dialog');
import electron from 'electron';
const remote = electron.remote;
const dialog = remote.dialog;
import mkdirp from 'mkdirp';
var ContainerHomeFolder = React.createClass({

View File

@ -1,8 +1,9 @@
import $ from 'jquery';
import React from 'react/addons';
import Router from 'react-router';
import remote from 'remote';
var dialog = remote.require('dialog');
import electron from 'electron';
const remote = electron.remote;
const dialog = remote.dialog;
import metrics from '../utils/MetricsUtil';
import {OverlayTrigger, Tooltip} from 'react-bootstrap';
import containerActions from '../actions/ContainerActions';

View File

@ -1,8 +1,9 @@
import _ from 'underscore';
import React from 'react/addons';
import metrics from '../utils/MetricsUtil';
import remote from 'remote';
var dialog = remote.require('dialog');
import electron from 'electron';
const remote = electron.remote;
const dialog = remote.dialog;
import ContainerUtil from '../utils/ContainerUtil';
import containerActions from '../actions/ContainerActions';
import util from '../utils/Util';

View File

@ -1,7 +1,8 @@
import _ from 'underscore';
import React from 'react/addons';
import remote from 'remote';
var dialog = remote.require('dialog');
import electron from 'electron';
const remote = electron.remote;
const dialog = remote.dialog;
import shell from 'shell';
import util from '../utils/Util';
import metrics from '../utils/MetricsUtil';

View File

@ -1,11 +1,11 @@
import React from 'react/addons';
import remote from 'remote';
import RetinaImage from 'react-retina-image';
import ipc from 'ipc';
import util from '../utils/Util';
import metrics from '../utils/MetricsUtil';
var Menu = remote.require('menu');
var MenuItem = remote.require('menu-item');
import electron from 'electron';
const remote = electron.remote;
const Menu = remote.Menu;
const MenuItem = remote.MenuItem;
import accountStore from '../stores/AccountStore';
import accountActions from '../actions/AccountActions';
import Router from 'react-router';
@ -25,12 +25,6 @@ var Header = React.createClass({
document.addEventListener('keyup', this.handleDocumentKeyUp, false);
accountStore.listen(this.update);
ipc.on('application:update-available', () => {
this.setState({
updateAvailable: true
});
});
},
componentWillUnmount: function () {
document.removeEventListener('keyup', this.handleDocumentKeyUp, false);
@ -79,10 +73,6 @@ var Header = React.createClass({
handleFullscreenHover: function () {
this.update();
},
handleAutoUpdateClick: function () {
metrics.track('Restarted to Update');
ipc.send('application:quit-install');
},
handleUserClick: function (e) {
let menu = new Menu();
@ -166,7 +156,6 @@ var Header = React.createClass({
</div>
);
}
let updateWidget = this.state.updateAvailable && !this.props.hideLogin ? <a className="btn btn-action small no-drag" onClick={this.handleAutoUpdateClick}>UPDATE NOW</a> : null;
return (
<div className={headerClasses}>
<div className="left-header">
@ -174,9 +163,6 @@ var Header = React.createClass({
{username}
</div>
<div className="right-header">
<div className="updates">
{updateWidget}
</div>
{util.isWindows () ? this.renderWindowButtons() : this.renderLogo()}
</div>
</div>

View File

@ -1,4 +1,5 @@
import remote from 'remote';
import electron from 'electron';
const remote = electron.remote;
import shell from 'shell';
import router from './router';
import util from './utils/Util';
@ -6,7 +7,7 @@ import metrics from './utils/MetricsUtil';
import machine from './utils/DockerMachineUtil';
import docker from './utils/DockerUtil';
var app = remote.require('app');
const app = remote.app;
// main.js
var MenuTemplate = function () {

View File

@ -121,7 +121,6 @@ export default {
await machine.create();
} else {
let state = await machine.status();
console.log(state);
if (state !== 'Running') {
if (state === 'Saved') {
router.get().transitionTo('setup');

View File

@ -3,9 +3,10 @@ import Promise from 'bluebird';
import fs from 'fs';
import path from 'path';
import crypto from 'crypto';
import remote from 'remote';
var dialog = remote.require('dialog');
var app = remote.require('app');
import electron from 'electron';
const remote = electron.remote;
const dialog = remote.dialog;
const app = remote.app;
module.exports = {
execFile: function (args, options) {

View File

@ -1,5 +1,6 @@
import remote from 'remote';
var app = remote.require('app');
import electron from 'electron';
const remote = electron.remote;
const app = remote.app;
import fs from 'fs';
import util from './Util';
import path from 'path';