diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 0000000000..e7817078cd
Binary files /dev/null and b/images/logo.png differ
diff --git a/images/logo@2x.png b/images/logo@2x.png
new file mode 100644
index 0000000000..51b2e73f68
Binary files /dev/null and b/images/logo@2x.png differ
diff --git a/src/ContainerDetails.react.js b/src/ContainerDetails.react.js
index e11f4d2092..cbc99e24c5 100644
--- a/src/ContainerDetails.react.js
+++ b/src/ContainerDetails.react.js
@@ -11,7 +11,6 @@ var dialog = remote.require('dialog');
var ContainerStore = require('./ContainerStore');
var ContainerUtil = require('./ContainerUtil');
var boot2docker = require('./Boot2Docker');
-var ProgressBar = require('react-bootstrap/ProgressBar');
var ContainerDetailsHeader = require('./ContainerDetailsHeader.react');
var ContainerHome = require('./ContainerHome.react');
var RetinaImage = require('react-retina-image');
diff --git a/src/ContainerHome.react.js b/src/ContainerHome.react.js
index a5660cee25..72eae2ec0d 100644
--- a/src/ContainerHome.react.js
+++ b/src/ContainerHome.react.js
@@ -3,6 +3,7 @@ var $ = require('jquery');
var React = require('react/addons');
var RetinaImage = require('react-retina-image');
var path = require('path');
+var exec = require('exec');
var ContainerHome = React.createClass({
handleResize: function () {
@@ -33,6 +34,18 @@ var ContainerHome = React.createClass({
this._oldHeight = parent[0].scrollHeight - parent.height();
}
},
+ handleClickFolder: function (path) {
+ exec(['open', path], function (err) {
+ if (err) { throw err; }
+ });
+ },
+ handleClickPreview: function () {
+ if (this.props.defaultPort) {
+ exec(['open', this.props.ports[this.props.defaultPort].url], function (err) {
+ if (err) { throw err; }
+ });
+ }
+ },
render: function () {
var preview;
if (this.props.defaultPort) {
@@ -40,19 +53,22 @@ var ContainerHome = React.createClass({
Web Preview
+
Not showing correctly?
);
}
console.log(this.props.container.Volumes);
- var folders = _.map(this.props.container.Volumes, function (val, key) {
+ var self = this;
+ var folders = _.map(self.props.container.Volumes, function (val, key) {
var firstFolder = key.split(path.sep)[1];
if (!val || val.indexOf(process.env.HOME) === -1) {
return;
} else {
return (
-
+
@@ -70,6 +86,7 @@ var ContainerHome = React.createClass({
Logs
@@ -77,6 +94,7 @@ var ContainerHome = React.createClass({
{folders}
+
Change Folders
diff --git a/src/Header.react.js b/src/Header.react.js
index e91bf9beaa..69b20baf08 100644
--- a/src/Header.react.js
+++ b/src/Header.react.js
@@ -1,5 +1,6 @@
var React = require('react/addons');
var remote = require('remote');
+var RetinaImage = require('react-retina-image');
var Header = React.createClass({
getInitialState: function () {
@@ -43,6 +44,7 @@ var Header = React.createClass({
+
);
} else {
@@ -53,6 +55,7 @@ var Header = React.createClass({
+
);
}
diff --git a/src/NewContainer.react.js b/src/NewContainer.react.js
index d6512783ea..5855140cc7 100644
--- a/src/NewContainer.react.js
+++ b/src/NewContainer.react.js
@@ -78,6 +78,7 @@ var NewContainer = React.createClass({
if (err) {
throw err;
}
+ $(document.body).find('.new-container-item').parent().fadeOut();
}.bind(this));
},
handleDropdownClick: function (name) {
diff --git a/styles/containers.less b/styles/containers.less
index 5fafe40909..b25da369e6 100644
--- a/styles/containers.less
+++ b/styles/containers.less
@@ -598,6 +598,9 @@
&.stopped {
color: @gray-lighter;
}
+ &.downloading {
+ color: @brand-action;
+ }
}
/*.details-header-actions {
@@ -631,9 +634,12 @@
}
.details-progress {
- margin: 26% auto 0;
+ margin: 20% auto 0;
text-align: center;
width: 300px;
+ h2 {
+ margin-bottom: 20px;
+ }
}
.details-panel {
@@ -642,6 +648,7 @@
background-color: #FFF;
&.home {
background-color: #F9F9F9;
+ overflow: hidden;
.content {
display: flex;
flex: 1 auto;
@@ -652,17 +659,54 @@
flex-direction: column;
.web-preview {
margin-right: 30px;
+ .subtext {
+ text-align: right;
+ color: @gray-lightest;
+ margin-top: 2px;
+ }
.widget {
background-color: white;
width: 100%;
height: 100%;
border-radius: 4px;
border: 1px solid @gray-lightest;
+ position: relative;
iframe {
border: 0;
border-radius: 4px;
+ /*width: 100%;
+ height: 100%;*/
+ position: relative;
+ top: -50%;
+ left: -50%;
+ width: 200%;
+ height: 200%;
+ transform: scale(0.5);
+ }
+ .iframe-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
width: 100%;
height: 100%;
+ z-index: 100;
+ color: transparent;
+ transition: all 0.25s;
+ .icon {
+ margin-top: 40%;
+ display: block;
+ font-size: 60px;
+ text-align: center;
+ }
+ .text {
+ font-size: 20px;
+ text-align: center;
+ }
+ &:hover {
+ color: white;
+ background-color: @gray-darkest;
+ opacity: 0.75;
+ }
}
}
}
@@ -673,22 +717,54 @@
.mini-logs {
margin-bottom: 50px;
.widget {
+ position: relative;
border-radius: 4px;
border: 1px solid @gray-lightest;
background-color: @gray-darkest;
color: @gray-lightest;
height: 100%;
padding: 10px;
- overflow: scroll;
+ overflow: hidden;
font-family: Menlo;
font-size: 8px;
white-space: pre-wrap;
p {
margin-bottom: 0px;
}
+ .mini-logs-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ color: transparent;
+ transition: all 0.25s;
+ .icon {
+ margin-top: 25%;
+ display: block;
+ font-size: 60px;
+ text-align: center;
+ }
+ .text {
+ font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 20px;
+ text-align: center;
+ }
+ &:hover {
+ color: white;
+ background-color: @gray-darkest;
+ opacity: 0.75;
+ }
+ }
}
}
.folders {
+ .subtext {
+ text-align: right;
+ color: @gray-lightest;
+ margin-top: 2px;
+ }
.widget {
padding: 20px 10px;
background-color: white;
diff --git a/styles/header.less b/styles/header.less
index a55c503aab..58337f4a67 100644
--- a/styles/header.less
+++ b/styles/header.less
@@ -13,6 +13,14 @@
-webkit-app-region: no-drag;
}
+ .logo {
+ position: relative;
+ float: right;
+ top: 10px;
+ right: 10px;
+ z-index: 1000;
+ }
+
.buttons {
display: inline-block;
position: relative;
diff --git a/styles/theme.less b/styles/theme.less
index 132faa7545..2a404974b3 100644
--- a/styles/theme.less
+++ b/styles/theme.less
@@ -5,6 +5,11 @@
@import "bootstrap/variables.less";
@import "bootstrap/mixins.less";
+h2 {
+ font-size: 18px;
+ color: @gray-normal;
+}
+
h3 {
font-size: 14px;
color: @gray-darkest;