diff --git a/package.json b/package.json index 2f06bdf0ca..88fb701a22 100644 --- a/package.json +++ b/package.json @@ -11,13 +11,12 @@ }, "bugs": "https://github.com/kitematic/kitematic/issues", "scripts": { - "start": "gulp", + "start": "grunt", "test": "jest -c jest-unit.json", "integration": "jest -c jest-integration.json", "release": "grunt release", "release:beta": "grunt release --beta=true", - "lint": "jsxhint src", - "reset": "gulp reset" + "lint": "jsxhint src" }, "licenses": [ { diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 67c383e14f..e4793d6d5b 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -1,3 +1,4 @@ +var $ = require('jquery'); var _ = require('underscore'); var React = require('react'); var exec = require('exec'); @@ -6,8 +7,10 @@ var metrics = require('../utils/MetricsUtil'); var ContainerUtil = require('../utils/ContainerUtil'); var util = require('../utils/Util'); var machine = require('../utils/DockerMachineUtil'); +var RetinaImage = require('react-retina-image'); var classNames = require('classnames'); var resources = require('../utils/ResourcesUtil'); +var dockerUtil = require('../utils/DockerUtil'); var containerActions = require('../actions/ContainerActions'); var dockerMachineUtil = require('../utils/DockerMachineUtil'); diff --git a/src/components/ContainerHomePreview.react.js b/src/components/ContainerHomePreview.react.js index 63644bbb11..29ff41c9de 100644 --- a/src/components/ContainerHomePreview.react.js +++ b/src/components/ContainerHomePreview.react.js @@ -62,6 +62,7 @@ var ContainerHomePreview = React.createClass({ {frame} +
); diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 449afb4835..521001629a 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -6,6 +6,7 @@ var containerStore = require('../stores/ContainerStore'); var ContainerList = require('./ContainerList.react'); var Header = require('./Header.react'); var metrics = require('../utils/MetricsUtil'); +var RetinaImage = require('react-retina-image'); var shell = require('shell'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/Header.react.js b/src/components/Header.react.js index f1f59b861a..2452cc8a5f 100644 --- a/src/components/Header.react.js +++ b/src/components/Header.react.js @@ -139,7 +139,12 @@ var Header = React.createClass({ username = (
- {this.state.username} {this.state.verified ? null : '(Unverified)'} + + + {this.state.username} + {this.state.verified ? null : '(Unverified)'} + +
); diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index 954d0eafa3..d5ce1ab14a 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -126,7 +126,7 @@ module.exports = React.createClass({

Please verify your Docker Hub account email address

- {spinner} + {spinner}
diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index 304fec7131..3899a878e7 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -3,6 +3,7 @@ import deepExtend from 'deep-extend'; import alt from '../alt'; import containerServerActions from '../actions/ContainerServerActions'; import containerActions from '../actions/ContainerActions'; +var LogStore = require('./LogStore'); class ContainerStore { constructor () { @@ -87,6 +88,8 @@ class ContainerStore { if (!containers[container.Name] || containers[container.Name].State.Updating) { return; } + // Trigger log update + LogStore.fetch(container.Name); containers[container.Name] = container; diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index 1cab123ad7..bc92d0463a 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -149,7 +149,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { var vboxNeedsInstall = !virtualBox.installed(); required.download = vboxNeedsInstall && (!fs.existsSync(vboxfile) || setupUtil.checksum(vboxfile) !== virtualBox.checksum()); - required.install = vboxNeedsInstall || !virtualBox.active(); + required.install = vboxNeedsInstall || (util.isWindows() && !virtualBox.active()); required.init = required.install || !(yield machine.exists()) || (yield machine.state()) !== 'Running' || !isoversion || util.compareVersions(isoversion, packagejson['docker-version']) < 0; var exists = yield machine.exists(); diff --git a/src/utils/RegHubUtil.js b/src/utils/RegHubUtil.js index bb7b1f5734..cf00640249 100644 --- a/src/utils/RegHubUtil.js +++ b/src/utils/RegHubUtil.js @@ -5,6 +5,7 @@ var util = require('../utils/Util'); var hubUtil = require('../utils/HubUtil'); var repositoryServerActions = require('../actions/RepositoryServerActions'); var tagServerActions = require('../actions/TagServerActions'); +var Promise = require('bluebird'); let REGHUB2_ENDPOINT = process.env.REGHUB2_ENDPOINT || 'https://registry.hub.docker.com/v2'; let searchReq = null; @@ -61,7 +62,7 @@ module.exports = { let data = JSON.parse(body); let repos = data.repos; async.map(repos, (repo, cb) => { - var name = repo.repo; + let name = repo.repo; if (util.isOfficialRepo(name)) { name = 'library/' + name; } diff --git a/src/utils/Util.js b/src/utils/Util.js index b18debb743..4566025bf5 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -15,7 +15,7 @@ module.exports = { fn(args, options, (stderr, stdout, code) => { if (code) { var cmd = Array.isArray(args) ? args.join(' ') : args; - reject(new Error(cmd + ' returned non zero exit code.\n===== Stderr =====\n ' + stderr + '\n===== Stdout =====\n' + stdout)); + reject(new Error(cmd + ' returned non zero exit code. Stderr: ' + stderr)); } else { resolve(stdout); } diff --git a/styles/container-home.less b/styles/container-home.less index 9b1db79789..3dde3e42be 100644 --- a/styles/container-home.less +++ b/styles/container-home.less @@ -82,22 +82,6 @@ height: 100%; z-index: 100; color: transparent; - transition: background-color 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; - } } } } diff --git a/styles/header.less b/styles/header.less index d679229e6f..9d01630f14 100644 --- a/styles/header.less +++ b/styles/header.less @@ -17,6 +17,12 @@ display: flex; min-width: @sidebar-width + 1px; } + + .right-header { + display: flex; + justify-content: flex-end; + flex: 1 0; + } .updates { flex: 1 auto; @@ -27,9 +33,7 @@ } .logo { - position: absolute; - right: 1rem; - top: 0.8rem; + padding: 0.9rem 1rem 0 0; } .login-wrapper { @@ -46,15 +50,18 @@ border-right: 1px solid @color-divider; padding: 0 1rem 0 1rem; .box-button(); - - &:active { - img, span { - -webkit-filter: brightness(0.9); - } + .text { + max-width: 70px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } - img { - margin: 0 5px; + position: relative; + top: 0.1rem; + margin: 0 0rem 0 0.4rem; + width: 8px; + height: 5px; } } diff --git a/styles/new-container.less b/styles/new-container.less index 61f99f719b..0aaa7c2d11 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -55,7 +55,7 @@ } .verify { - margin: 15px 0; + margin: 0.5rem 0 3rem 0; position: relative; .spinner { @@ -405,6 +405,12 @@ color: white; border: 1px solid darken(@brand-primary, 10%); } + &:active { + box-shadow: 0 0 15px fade(@brand-action, 25%); + background-color: darken(@brand-action, 5%); + border: 1px solid darken(@brand-primary, 10%); + color: white; + } } } } diff --git a/styles/theme.less b/styles/theme.less index 6b70e109a6..65c37aab87 100644 --- a/styles/theme.less +++ b/styles/theme.less @@ -203,8 +203,8 @@ input[type="text"] { } &.small { - font-size: 11px; - padding: 3px 8px 3px 8px; + font-size: 10px; + padding: 0.3rem 0.7rem; height: 22px; .icon { font-size: 10px;