mirror of https://github.com/docker/docs.git
214 lines
5.1 KiB
JavaScript
214 lines
5.1 KiB
JavaScript
var remote = require('remote');
|
|
var app = remote.require('app');
|
|
var shell = require('shell');
|
|
var router = require('./router');
|
|
var util = require('./utils/Util');
|
|
var setupUtil = require('./utils/SetupUtil');
|
|
var metrics = require('./utils/MetricsUtil');
|
|
var machine = require('./utils/DockerMachineUtil');
|
|
var dialog = remote.require('dialog');
|
|
import docker from './utils/DockerUtil';
|
|
|
|
// main.js
|
|
var MenuTemplate = function () {
|
|
return [
|
|
{
|
|
label: 'Kitematic',
|
|
submenu: [
|
|
{
|
|
label: 'About Kitematic',
|
|
//selector: 'orderFrontStandardAboutPanel:'
|
|
click: function () {
|
|
metrics.track('Opened About', {
|
|
from: 'menu'
|
|
});
|
|
router.get().transitionTo('about');
|
|
}
|
|
},
|
|
{
|
|
type: 'separator'
|
|
},
|
|
{
|
|
label: 'Preferences',
|
|
accelerator: util.CommandOrCtrl() + '+,',
|
|
enabled: !!docker.host,
|
|
click: function () {
|
|
metrics.track('Opened Preferences', {
|
|
from: 'menu'
|
|
});
|
|
router.get().transitionTo('preferences');
|
|
}
|
|
},
|
|
{
|
|
type: 'separator'
|
|
},
|
|
{
|
|
label: 'Install Docker Commands',
|
|
enabled: true,
|
|
click: function () {
|
|
metrics.track('Installed Docker Commands');
|
|
if (!setupUtil.shouldUpdateBinaries()) {
|
|
dialog.showMessageBox({
|
|
message: 'Docker binaries are already installed in /usr/local/bin',
|
|
buttons: ['OK']
|
|
});
|
|
return;
|
|
}
|
|
|
|
let copy = setupUtil.needsBinaryFix() ?
|
|
util.exec(setupUtil.macSudoCmd(setupUtil.copyBinariesCmd() + ' && ' + setupUtil.fixBinariesCmd())) :
|
|
util.exec(setupUtil.copyBinariesCmd());
|
|
|
|
copy.then(() => {
|
|
dialog.showMessageBox({
|
|
message: 'Docker binaries have been installed under /usr/local/bin',
|
|
buttons: ['OK']
|
|
});
|
|
}).catch((err) => {
|
|
console.log(err);
|
|
});
|
|
},
|
|
},
|
|
{
|
|
type: 'separator'
|
|
}, {
|
|
label: 'Hide Kitematic',
|
|
accelerator: util.CommandOrCtrl() + '+H',
|
|
selector: 'hide:'
|
|
},
|
|
{
|
|
label: 'Hide Others',
|
|
accelerator: util.CommandOrCtrl() + '+Shift+H',
|
|
selector: 'hideOtherApplications:'
|
|
},
|
|
{
|
|
label: 'Show All',
|
|
selector: 'unhideAllApplications:'
|
|
},
|
|
{
|
|
type: 'separator'
|
|
},
|
|
{
|
|
label: 'Quit',
|
|
accelerator: util.CommandOrCtrl() + '+Q',
|
|
click: function() {
|
|
app.quit();
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: 'File',
|
|
submenu: [
|
|
{
|
|
label: 'Open File',
|
|
accelerator: util.CommandOrCtrl() + '+O',
|
|
selector: 'openDocument:'
|
|
},
|
|
{
|
|
type: 'separator'
|
|
},
|
|
{
|
|
label: 'Open Docker Command Line Terminal',
|
|
accelerator: util.CommandOrCtrl() + '+Shift+T',
|
|
enabled: !!docker.host,
|
|
click: function() {
|
|
metrics.track('Opened Docker Terminal', {
|
|
from: 'menu'
|
|
});
|
|
machine.dockerTerminal();
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: 'Edit',
|
|
submenu: [
|
|
{
|
|
label: 'Undo',
|
|
accelerator: util.CommandOrCtrl() + '+Z',
|
|
selector: 'undo:'
|
|
},
|
|
{
|
|
label: 'Redo',
|
|
accelerator: 'Shift+' + util.CommandOrCtrl() + '+Z',
|
|
selector: 'redo:'
|
|
},
|
|
{
|
|
type: 'separator'
|
|
},
|
|
{
|
|
label: 'Cut',
|
|
accelerator: util.CommandOrCtrl() + '+X',
|
|
selector: 'cut:'
|
|
},
|
|
{
|
|
label: 'Copy',
|
|
accelerator: util.CommandOrCtrl() + '+C',
|
|
selector: 'copy:'
|
|
},
|
|
{
|
|
label: 'Paste',
|
|
accelerator: util.CommandOrCtrl() + '+V',
|
|
selector: 'paste:'
|
|
},
|
|
{
|
|
label: 'Select All',
|
|
accelerator: util.CommandOrCtrl() + '+A',
|
|
selector: 'selectAll:'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: 'View',
|
|
submenu: [
|
|
{
|
|
label: 'Toggle DevTools',
|
|
accelerator: 'Alt+' + util.CommandOrCtrl() + '+I',
|
|
click: function() { remote.getCurrentWindow().toggleDevTools(); }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: 'Window',
|
|
submenu: [
|
|
{
|
|
label: 'Minimize',
|
|
accelerator: util.CommandOrCtrl() + '+M',
|
|
selector: 'performMiniaturize:'
|
|
},
|
|
{
|
|
label: 'Close',
|
|
accelerator: util.CommandOrCtrl() + '+W',
|
|
click: function () {
|
|
remote.getCurrentWindow().hide();
|
|
}
|
|
},
|
|
{
|
|
type: 'separator'
|
|
},
|
|
{
|
|
label: 'Bring All to Front',
|
|
selector: 'arrangeInFront:'
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: 'Help',
|
|
submenu: [
|
|
{
|
|
label: 'Report Issue or Suggest Feedback',
|
|
click: function () {
|
|
metrics.track('Opened Issue Reporter', {
|
|
from: 'menu'
|
|
});
|
|
shell.openExternal('https://github.com/kitematic/kitematic/issues/new');
|
|
}
|
|
}
|
|
]
|
|
}
|
|
];
|
|
};
|
|
|
|
module.exports = MenuTemplate;
|