mirror of https://github.com/docker/docs.git
Updated all electron calls for proper interactions
Signed-off-by: French Ben <me+git@frenchben.com>
This commit is contained in:
parent
14bdaf25db
commit
53436e81b2
|
|
@ -83,7 +83,6 @@
|
||||||
"jsxhint": "^0.15.1",
|
"jsxhint": "^0.15.1",
|
||||||
"load-grunt-tasks": "^3.2.0",
|
"load-grunt-tasks": "^3.2.0",
|
||||||
"minimist": "^1.1.1",
|
"minimist": "^1.1.1",
|
||||||
"react-tools": "^0.13.1",
|
|
||||||
"run-sequence": "^1.0.2",
|
"run-sequence": "^1.0.2",
|
||||||
"shell-escape": "^0.2.0",
|
"shell-escape": "^0.2.0",
|
||||||
"source-map-support": "^0.3.2"
|
"source-map-support": "^0.3.2"
|
||||||
|
|
|
||||||
20
src/app.js
20
src/app.js
|
|
@ -1,24 +1,24 @@
|
||||||
require.main.paths.splice(0, 0, process.env.NODE_PATH);
|
require.main.paths.splice(0, 0, process.env.NODE_PATH);
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var Menu = remote.require('menu');
|
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 React from 'react';
|
||||||
import SetupStore from './stores/SetupStore';
|
|
||||||
import ipc from 'ipc';
|
|
||||||
import machine from './utils/DockerMachineUtil';
|
|
||||||
import metrics from './utils/MetricsUtil';
|
import metrics from './utils/MetricsUtil';
|
||||||
import template from './menutemplate';
|
import template from './menutemplate';
|
||||||
import webUtil from './utils/WebUtil';
|
import webUtil from './utils/WebUtil';
|
||||||
import hubUtil from './utils/HubUtil';
|
import hubUtil from './utils/HubUtil';
|
||||||
import setupUtil from './utils/SetupUtil';
|
import setupUtil from './utils/SetupUtil';
|
||||||
import request from 'request';
|
|
||||||
import docker from './utils/DockerUtil';
|
import docker from './utils/DockerUtil';
|
||||||
import hub from './utils/HubUtil';
|
import hub from './utils/HubUtil';
|
||||||
import Router from 'react-router';
|
import Router from 'react-router';
|
||||||
import routes from './routes';
|
import routes from './routes';
|
||||||
import routerContainer from './router';
|
import routerContainer from './router';
|
||||||
import repositoryActions from './actions/RepositoryActions';
|
import repositoryActions from './actions/RepositoryActions';
|
||||||
import util from './utils/Util';
|
import machine from './utils/DockerMachineUtil';
|
||||||
var app = remote.require('app');
|
|
||||||
|
|
||||||
hubUtil.init();
|
hubUtil.init();
|
||||||
|
|
||||||
|
|
@ -47,6 +47,8 @@ var router = Router.create({
|
||||||
router.run(Handler => React.render(<Handler/>, document.body));
|
router.run(Handler => React.render(<Handler/>, document.body));
|
||||||
routerContainer.set(router);
|
routerContainer.set(router);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setupUtil.setup().then(() => {
|
setupUtil.setup().then(() => {
|
||||||
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
|
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
|
||||||
docker.init();
|
docker.init();
|
||||||
|
|
@ -63,7 +65,7 @@ setupUtil.setup().then(() => {
|
||||||
throw err;
|
throw err;
|
||||||
});
|
});
|
||||||
|
|
||||||
ipc.on('application:quitting', () => {
|
ipcRenderer.on('application:quitting', () => {
|
||||||
if (localStorage.getItem('settings.closeVMOnQuit') === 'true') {
|
if (localStorage.getItem('settings.closeVMOnQuit') === 'true') {
|
||||||
machine.stop();
|
machine.stop();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
import app from 'app';
|
import electron from 'electron';
|
||||||
import BrowserWindow from 'browser-window';
|
const app = electron.app;
|
||||||
|
const BrowserWindow = electron.BrowserWindow;
|
||||||
|
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import os from 'os';
|
import os from 'os';
|
||||||
var ipc = require('electron').ipcMain;
|
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import child_process from 'child_process';
|
import child_process from 'child_process';
|
||||||
|
|
||||||
|
|
@ -18,29 +20,6 @@ try {
|
||||||
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, 'settings.json'), 'utf8'));
|
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, 'settings.json'), 'utf8'));
|
||||||
} catch (err) {}
|
} 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 () {
|
app.on('ready', function () {
|
||||||
var mainWindow = new BrowserWindow({
|
var mainWindow = new BrowserWindow({
|
||||||
width: size.width || 1080,
|
width: size.width || 1080,
|
||||||
|
|
@ -66,25 +45,18 @@ app.on('ready', function () {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var updating = false;
|
|
||||||
ipc.on('application:quit-install', function () {
|
|
||||||
updating = true;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (os.platform() === 'win32') {
|
if (os.platform() === 'win32') {
|
||||||
mainWindow.on('close', function () {
|
mainWindow.on('close', function () {
|
||||||
mainWindow.webContents.send('application:quitting');
|
mainWindow.webContents.send('application:quitting');
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
app.on('window-all-closed', function() {
|
app.on('window-all-closed', function () {
|
||||||
app.quit();
|
app.quit();
|
||||||
});
|
});
|
||||||
} else if (os.platform() === 'darwin') {
|
} else if (os.platform() === 'darwin') {
|
||||||
app.on('before-quit', function () {
|
app.on('before-quit', function () {
|
||||||
if (!updating) {
|
mainWindow.webContents.send('application:quitting');
|
||||||
mainWindow.webContents.send('application:quitting');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,9 @@ import shell from 'shell';
|
||||||
import util from '../utils/Util';
|
import util from '../utils/Util';
|
||||||
import metrics from '../utils/MetricsUtil';
|
import metrics from '../utils/MetricsUtil';
|
||||||
import containerActions from '../actions/ContainerActions';
|
import containerActions from '../actions/ContainerActions';
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var dialog = remote.require('dialog');
|
const remote = electron.remote;
|
||||||
|
const dialog = remote.dialog;
|
||||||
import mkdirp from 'mkdirp';
|
import mkdirp from 'mkdirp';
|
||||||
|
|
||||||
var ContainerHomeFolder = React.createClass({
|
var ContainerHomeFolder = React.createClass({
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import $ from 'jquery';
|
import $ from 'jquery';
|
||||||
import React from 'react/addons';
|
import React from 'react/addons';
|
||||||
import Router from 'react-router';
|
import Router from 'react-router';
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var dialog = remote.require('dialog');
|
const remote = electron.remote;
|
||||||
|
const dialog = remote.dialog;
|
||||||
import metrics from '../utils/MetricsUtil';
|
import metrics from '../utils/MetricsUtil';
|
||||||
import {OverlayTrigger, Tooltip} from 'react-bootstrap';
|
import {OverlayTrigger, Tooltip} from 'react-bootstrap';
|
||||||
import containerActions from '../actions/ContainerActions';
|
import containerActions from '../actions/ContainerActions';
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import _ from 'underscore';
|
import _ from 'underscore';
|
||||||
import React from 'react/addons';
|
import React from 'react/addons';
|
||||||
import metrics from '../utils/MetricsUtil';
|
import metrics from '../utils/MetricsUtil';
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var dialog = remote.require('dialog');
|
const remote = electron.remote;
|
||||||
|
const dialog = remote.dialog;
|
||||||
import ContainerUtil from '../utils/ContainerUtil';
|
import ContainerUtil from '../utils/ContainerUtil';
|
||||||
import containerActions from '../actions/ContainerActions';
|
import containerActions from '../actions/ContainerActions';
|
||||||
import util from '../utils/Util';
|
import util from '../utils/Util';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import _ from 'underscore';
|
import _ from 'underscore';
|
||||||
import React from 'react/addons';
|
import React from 'react/addons';
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var dialog = remote.require('dialog');
|
const remote = electron.remote;
|
||||||
|
const dialog = remote.dialog;
|
||||||
import shell from 'shell';
|
import shell from 'shell';
|
||||||
import util from '../utils/Util';
|
import util from '../utils/Util';
|
||||||
import metrics from '../utils/MetricsUtil';
|
import metrics from '../utils/MetricsUtil';
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import React from 'react/addons';
|
import React from 'react/addons';
|
||||||
import remote from 'remote';
|
|
||||||
import RetinaImage from 'react-retina-image';
|
import RetinaImage from 'react-retina-image';
|
||||||
import ipc from 'ipc';
|
|
||||||
import util from '../utils/Util';
|
import util from '../utils/Util';
|
||||||
import metrics from '../utils/MetricsUtil';
|
import metrics from '../utils/MetricsUtil';
|
||||||
var Menu = remote.require('menu');
|
import electron from 'electron';
|
||||||
var MenuItem = remote.require('menu-item');
|
const remote = electron.remote;
|
||||||
|
const Menu = remote.Menu;
|
||||||
|
const MenuItem = remote.MenuItem;
|
||||||
import accountStore from '../stores/AccountStore';
|
import accountStore from '../stores/AccountStore';
|
||||||
import accountActions from '../actions/AccountActions';
|
import accountActions from '../actions/AccountActions';
|
||||||
import Router from 'react-router';
|
import Router from 'react-router';
|
||||||
|
|
@ -25,12 +25,6 @@ var Header = React.createClass({
|
||||||
document.addEventListener('keyup', this.handleDocumentKeyUp, false);
|
document.addEventListener('keyup', this.handleDocumentKeyUp, false);
|
||||||
|
|
||||||
accountStore.listen(this.update);
|
accountStore.listen(this.update);
|
||||||
|
|
||||||
ipc.on('application:update-available', () => {
|
|
||||||
this.setState({
|
|
||||||
updateAvailable: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
componentWillUnmount: function () {
|
componentWillUnmount: function () {
|
||||||
document.removeEventListener('keyup', this.handleDocumentKeyUp, false);
|
document.removeEventListener('keyup', this.handleDocumentKeyUp, false);
|
||||||
|
|
@ -79,10 +73,6 @@ var Header = React.createClass({
|
||||||
handleFullscreenHover: function () {
|
handleFullscreenHover: function () {
|
||||||
this.update();
|
this.update();
|
||||||
},
|
},
|
||||||
handleAutoUpdateClick: function () {
|
|
||||||
metrics.track('Restarted to Update');
|
|
||||||
ipc.send('application:quit-install');
|
|
||||||
},
|
|
||||||
handleUserClick: function (e) {
|
handleUserClick: function (e) {
|
||||||
let menu = new Menu();
|
let menu = new Menu();
|
||||||
|
|
||||||
|
|
@ -166,7 +156,6 @@ var Header = React.createClass({
|
||||||
</div>
|
</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 (
|
return (
|
||||||
<div className={headerClasses}>
|
<div className={headerClasses}>
|
||||||
<div className="left-header">
|
<div className="left-header">
|
||||||
|
|
@ -174,9 +163,6 @@ var Header = React.createClass({
|
||||||
{username}
|
{username}
|
||||||
</div>
|
</div>
|
||||||
<div className="right-header">
|
<div className="right-header">
|
||||||
<div className="updates">
|
|
||||||
{updateWidget}
|
|
||||||
</div>
|
|
||||||
{util.isWindows () ? this.renderWindowButtons() : this.renderLogo()}
|
{util.isWindows () ? this.renderWindowButtons() : this.renderLogo()}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
|
const remote = electron.remote;
|
||||||
import shell from 'shell';
|
import shell from 'shell';
|
||||||
import router from './router';
|
import router from './router';
|
||||||
import util from './utils/Util';
|
import util from './utils/Util';
|
||||||
|
|
@ -6,7 +7,7 @@ import metrics from './utils/MetricsUtil';
|
||||||
import machine from './utils/DockerMachineUtil';
|
import machine from './utils/DockerMachineUtil';
|
||||||
import docker from './utils/DockerUtil';
|
import docker from './utils/DockerUtil';
|
||||||
|
|
||||||
var app = remote.require('app');
|
const app = remote.app;
|
||||||
|
|
||||||
// main.js
|
// main.js
|
||||||
var MenuTemplate = function () {
|
var MenuTemplate = function () {
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,6 @@ export default {
|
||||||
await machine.create();
|
await machine.create();
|
||||||
} else {
|
} else {
|
||||||
let state = await machine.status();
|
let state = await machine.status();
|
||||||
console.log(state);
|
|
||||||
if (state !== 'Running') {
|
if (state !== 'Running') {
|
||||||
if (state === 'Saved') {
|
if (state === 'Saved') {
|
||||||
router.get().transitionTo('setup');
|
router.get().transitionTo('setup');
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,10 @@ import Promise from 'bluebird';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import crypto from 'crypto';
|
import crypto from 'crypto';
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var dialog = remote.require('dialog');
|
const remote = electron.remote;
|
||||||
var app = remote.require('app');
|
const dialog = remote.dialog;
|
||||||
|
const app = remote.app;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
execFile: function (args, options) {
|
execFile: function (args, options) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import remote from 'remote';
|
import electron from 'electron';
|
||||||
var app = remote.require('app');
|
const remote = electron.remote;
|
||||||
|
const app = remote.app;
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import util from './Util';
|
import util from './Util';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue