diff --git a/package.json b/package.json index a6a361ad71..49caedb2f2 100644 --- a/package.json +++ b/package.json @@ -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" diff --git a/src/app.js b/src/app.js index c706a18be4..293cf72481 100644 --- a/src/app.js +++ b/src/app.js @@ -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(, 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(); } diff --git a/src/browser.js b/src/browser.js index 7104cda3c4..0ffca63efc 100644 --- a/src/browser.js +++ b/src/browser.js @@ -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'); }); } diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index e56fa451be..cab35902df 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -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({ diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index 76c9d886a0..2791ca9d22 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -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'; diff --git a/src/components/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js index a9650d43ce..8e8066e2ce 100644 --- a/src/components/ContainerSettingsGeneral.react.js +++ b/src/components/ContainerSettingsGeneral.react.js @@ -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'; diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index c6e42c2d39..914fa57494 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -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'; diff --git a/src/components/Header.react.js b/src/components/Header.react.js index d56ec9a7b8..4381554a15 100644 --- a/src/components/Header.react.js +++ b/src/components/Header.react.js @@ -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({ ); } - let updateWidget = this.state.updateAvailable && !this.props.hideLogin ? UPDATE NOW : null; return (
@@ -174,9 +163,6 @@ var Header = React.createClass({ {username}
-
- {updateWidget} -
{util.isWindows () ? this.renderWindowButtons() : this.renderLogo()}
diff --git a/src/menutemplate.js b/src/menutemplate.js index 043d89239f..c6d3b79bce 100644 --- a/src/menutemplate.js +++ b/src/menutemplate.js @@ -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 () { diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index b6d8787654..02faddafb8 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -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'); diff --git a/src/utils/Util.js b/src/utils/Util.js index e3418c7c3a..c8e376021d 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -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) { diff --git a/src/utils/WebUtil.js b/src/utils/WebUtil.js index 8bc2f735e9..2d774fe013 100644 --- a/src/utils/WebUtil.js +++ b/src/utils/WebUtil.js @@ -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';