Polished installation steps.
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 91 KiB |
|
@ -3,6 +3,7 @@ var Router = require('react-router');
|
||||||
var Radial = require('./Radial.react.js');
|
var Radial = require('./Radial.react.js');
|
||||||
var SetupStore = require('./SetupStore');
|
var SetupStore = require('./SetupStore');
|
||||||
var RetinaImage = require('react-retina-image');
|
var RetinaImage = require('react-retina-image');
|
||||||
|
var Header = require('./Header.react');
|
||||||
|
|
||||||
var Setup = React.createClass({
|
var Setup = React.createClass({
|
||||||
mixins: [ Router.Navigation ],
|
mixins: [ Router.Navigation ],
|
||||||
|
@ -28,9 +29,10 @@ var Setup = React.createClass({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
renderDownloadingVirtualboxStep: function () {
|
renderDownloadingVirtualboxStep: function () {
|
||||||
var message = 'Kitematic needs VirtualBox to run containers. VirtualBox is being downloaded from Oracle\'s website.';
|
var message = "VirtualBox is being downloaded from Oracle's servers. Kitematic requires VirtualBox to run.";
|
||||||
return (
|
return (
|
||||||
<div className="setup">
|
<div className="setup">
|
||||||
|
<Header />
|
||||||
<div className="image">
|
<div className="image">
|
||||||
<div className="contents">
|
<div className="contents">
|
||||||
<RetinaImage img src="virtualbox.png"/>
|
<RetinaImage img src="virtualbox.png"/>
|
||||||
|
@ -41,6 +43,7 @@ var Setup = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
<div className="desc">
|
<div className="desc">
|
||||||
<div className="content">
|
<div className="content">
|
||||||
|
<h4>Step 1 out of 4</h4>
|
||||||
<h1>Downloading VirtualBox</h1>
|
<h1>Downloading VirtualBox</h1>
|
||||||
<p>{message}</p>
|
<p>{message}</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -49,9 +52,10 @@ var Setup = React.createClass({
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
renderInstallingVirtualboxStep: function () {
|
renderInstallingVirtualboxStep: function () {
|
||||||
var message = 'VirtualBox is being installed. Administrative privileges are required.';
|
var message = 'VirtualBox is being installed in the background. We may need you to type in your password to continue.';
|
||||||
return (
|
return (
|
||||||
<div className="setup">
|
<div className="setup">
|
||||||
|
<Header />
|
||||||
<div className="image">
|
<div className="image">
|
||||||
<div className="contents">
|
<div className="contents">
|
||||||
<RetinaImage img src="virtualbox.png"/>
|
<RetinaImage img src="virtualbox.png"/>
|
||||||
|
@ -62,6 +66,7 @@ var Setup = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
<div className="desc">
|
<div className="desc">
|
||||||
<div className="content">
|
<div className="content">
|
||||||
|
<h4>Step 2 out of 4</h4>
|
||||||
<h1>Installing VirtualBox</h1>
|
<h1>Installing VirtualBox</h1>
|
||||||
<p>{message}</p>
|
<p>{message}</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -70,9 +75,10 @@ var Setup = React.createClass({
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
renderInitBoot2DockerStep: function () {
|
renderInitBoot2DockerStep: function () {
|
||||||
var message = 'Containers run in a virtual machine provided by Boot2Docker. Kitematic is setting up that Linux VM.';
|
var message = 'To run Docker containers on your computer, we are setting up a Linux virtual machine provided by boot2docker.';
|
||||||
return (
|
return (
|
||||||
<div className="setup">
|
<div className="setup">
|
||||||
|
<Header />
|
||||||
<div className="image">
|
<div className="image">
|
||||||
<div className="contents">
|
<div className="contents">
|
||||||
<RetinaImage img src="boot2docker.png"/>
|
<RetinaImage img src="boot2docker.png"/>
|
||||||
|
@ -83,7 +89,8 @@ var Setup = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
<div className="desc">
|
<div className="desc">
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<h1>Setting up the Docker VM</h1>
|
<h4>Step 3 out of 4</h4>
|
||||||
|
<h1>Setting up Docker VM</h1>
|
||||||
<p>{message}</p>
|
<p>{message}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -91,9 +98,10 @@ var Setup = React.createClass({
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
renderStartBoot2DockerStep: function () {
|
renderStartBoot2DockerStep: function () {
|
||||||
var message = 'Kitematic is starting the Boot2Docker Linux VM.';
|
var message = 'Kitematic is starting the boot2docker VM. This may take about a minute.';
|
||||||
return (
|
return (
|
||||||
<div className="setup">
|
<div className="setup">
|
||||||
|
<Header />
|
||||||
<div className="image">
|
<div className="image">
|
||||||
<div className="contents">
|
<div className="contents">
|
||||||
<RetinaImage img src="boot2docker.png"/>
|
<RetinaImage img src="boot2docker.png"/>
|
||||||
|
@ -104,7 +112,8 @@ var Setup = React.createClass({
|
||||||
</div>
|
</div>
|
||||||
<div className="desc">
|
<div className="desc">
|
||||||
<div className="content">
|
<div className="content">
|
||||||
<h1>Starting the Docker VM</h1>
|
<h4>Step 4 out of 4</h4>
|
||||||
|
<h1>Starting Docker VM</h1>
|
||||||
<p>{message}</p>
|
<p>{message}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -132,8 +141,22 @@ var Setup = React.createClass({
|
||||||
if (this.state.error) {
|
if (this.state.error) {
|
||||||
return (
|
return (
|
||||||
<div className="setup">
|
<div className="setup">
|
||||||
<Radial error={true} spin="true" progress="100"/>;
|
<Header />
|
||||||
<p className="error">Error: {this.state.error}</p>
|
<div className="image">
|
||||||
|
<div className="contents">
|
||||||
|
<RetinaImage img src="install-error.png"/>
|
||||||
|
<div className="detail">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="desc">
|
||||||
|
<div className="content">
|
||||||
|
<h4>Installation Error</h4>
|
||||||
|
<h1>We're Sorry!</h1>
|
||||||
|
<p>There seem to be an unexpected error with Kitematic:</p>
|
||||||
|
<p className="error">{this.state.error}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
-webkit-app-region: drag;
|
//-webkit-app-region: drag;
|
||||||
|
|
||||||
.image {
|
.image {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -13,12 +13,13 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
padding-right: 40px;
|
padding-right: 40px;
|
||||||
|
padding-left: 80px;
|
||||||
|
|
||||||
.contents {
|
.contents {
|
||||||
position: relative;
|
position: relative;
|
||||||
.detail {
|
.detail {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: -20px;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,13 +37,24 @@
|
||||||
max-width: 320px;
|
max-width: 320px;
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
margin-top: -30px;
|
color: @gray-darkest;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
}
|
}
|
||||||
|
h4 {
|
||||||
|
color: @gray-lightest;
|
||||||
|
font-size: 13px;
|
||||||
|
margin-top: -30px;
|
||||||
|
}
|
||||||
p {
|
p {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: @gray-normal;
|
color: @gray-normal;
|
||||||
|
&.error {
|
||||||
|
color: @brand-negative;
|
||||||
|
background-color: lighten(@brand-negative, 32%);
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-user-select: text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|