зеркало из https://github.com/docker/kitematic.git
WIP button
This commit is contained in:
Родитель
09bebcd7dd
Коммит
e92678508b
|
@ -16,6 +16,7 @@ var _progress = {};
|
|||
var _muted = {};
|
||||
var _blocked = {};
|
||||
var _error = null;
|
||||
var _pendingCreates = [];
|
||||
|
||||
var ContainerStore = assign(Object.create(EventEmitter.prototype), {
|
||||
CLIENT_CONTAINER_EVENT: 'client_container_event',
|
||||
|
@ -238,7 +239,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), {
|
|||
}
|
||||
},
|
||||
init: function (callback) {
|
||||
// TODO: Load cached data from db on loading
|
||||
this.fetchAllContainers(err => {
|
||||
if (err) {
|
||||
_error = err;
|
||||
|
@ -249,6 +249,9 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), {
|
|||
} else {
|
||||
callback();
|
||||
}
|
||||
_pendingCreates.forEach(e => {
|
||||
this.create(e.repository, e.tag, () => {});
|
||||
});
|
||||
var placeholderData = JSON.parse(localStorage.getItem('store.placeholders'));
|
||||
if (placeholderData) {
|
||||
_placeholders = _.omit(placeholderData, _.keys(_containers));
|
||||
|
@ -305,6 +308,15 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), {
|
|||
});
|
||||
},
|
||||
create: function (repository, tag, callback) {
|
||||
if (!docker.host()) {
|
||||
console.log('buffering ' + repository);
|
||||
_pendingCreates.push({
|
||||
repository: repository,
|
||||
tag: tag
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
tag = tag || 'latest';
|
||||
var imageName = repository + ':' + tag;
|
||||
var containerName = this._generateName(repository);
|
||||
|
|
19
src/Main.js
19
src/Main.js
|
@ -27,6 +27,19 @@ setInterval(function () {
|
|||
|
||||
router.run(Handler => React.render(<Handler/>, document.body));
|
||||
|
||||
ipc.on('application:quitting', opts => {
|
||||
if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') {
|
||||
machine.stop();
|
||||
}
|
||||
});
|
||||
|
||||
ipc.on('application:open-url', opts => {
|
||||
console.log('Creating container');
|
||||
var url = opts.url.substr(19);
|
||||
console.log(url);
|
||||
ContainerStore.create(url, 'latest', () => {});
|
||||
});
|
||||
|
||||
SetupStore.setup().then(() => {
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(template()));
|
||||
ContainerStore.on(ContainerStore.SERVER_ERROR_EVENT, (err) => {
|
||||
|
@ -43,9 +56,3 @@ SetupStore.setup().then(() => {
|
|||
console.log(err);
|
||||
bugsnag.notify(err);
|
||||
});
|
||||
|
||||
ipc.on('application:quitting', opts => {
|
||||
if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') {
|
||||
machine.stop();
|
||||
}
|
||||
});
|
||||
|
|
|
@ -10,6 +10,8 @@ process.env.RESOURCES_PATH = path.join(__dirname, '/../resources');
|
|||
process.chdir(path.join(__dirname, '..'));
|
||||
process.env.PATH = '/usr/local/bin:' + process.env.PATH;
|
||||
|
||||
console.log(process.argv);
|
||||
|
||||
var size = {}, settingsjson = {};
|
||||
try {
|
||||
size = JSON.parse(fs.readFileSync(path.join(process.env[(process.platform === 'win32') ? 'USERPROFILE' : 'HOME'], 'Library', 'Application\ Support', 'Kitematic', 'size')));
|
||||
|
@ -18,6 +20,13 @@ try {
|
|||
settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8'));
|
||||
} catch (err) {}
|
||||
|
||||
|
||||
var openURL = null;
|
||||
app.on('open-url', function (event, url) {
|
||||
event.preventDefault();
|
||||
openURL = url;
|
||||
});
|
||||
|
||||
app.on('ready', function () {
|
||||
var mainWindow = new BrowserWindow({
|
||||
width: size.width || 1000,
|
||||
|
@ -65,6 +74,18 @@ app.on('ready', function () {
|
|||
mainWindow.show();
|
||||
mainWindow.focus();
|
||||
|
||||
if (openURL) {
|
||||
mainWindow.webContents.send('application:open-url', {
|
||||
url: openURL
|
||||
});
|
||||
}
|
||||
app.on('open-url', function (event, url) {
|
||||
event.preventDefault();
|
||||
mainWindow.webContents.send('application:open-url', {
|
||||
url: url
|
||||
});
|
||||
});
|
||||
|
||||
if (process.env.NODE_ENV !== 'development') {
|
||||
autoUpdater.setFeedUrl('https://updates.kitematic.com/releases/latest?version=' + app.getVersion() + '&beta=' + !!settingsjson.beta);
|
||||
}
|
||||
|
|
|
@ -26,5 +26,16 @@
|
|||
<string>AtomApplication</string>
|
||||
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
||||
<true/>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>kitematic</string>
|
||||
</array>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>Kitematic Session Protocol</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Загрузка…
Ссылка в новой задаче