From e4c535f9fba781724e2e4dbf757d60cee7db96dd Mon Sep 17 00:00:00 2001 From: Sean Li Date: Tue, 3 Feb 2015 14:11:27 -0800 Subject: [PATCH] Added stricter lint standard. --- .jshintrc | 23 ++++++++ app/ContainerListItem.react.js | 84 +++++++++++++++++++++++++++++ src/Boot2Docker.js | 5 +- src/ContainerDetails.react.js | 17 +++--- src/ContainerDetailsHeader.react.js | 11 ---- src/ContainerHome.react.js | 11 ---- src/ContainerList.react.js | 11 ---- src/ContainerListItem.react.js | 8 +-- src/ContainerModal.react.js | 15 +++--- src/ContainerStore.js | 28 +++++----- src/ContainerUtil.js | 2 +- src/Containers.react.js | 6 +-- src/Header.react.js | 1 - src/Main.js | 15 +----- src/Menu.js | 3 +- src/NoContainers.react.js | 1 - src/Preferences.react.js | 2 +- src/Registry.js | 4 +- src/Setup.react.js | 8 +-- src/SetupStore.js | 8 +-- src/SetupUtil.js | 4 +- src/Virtualbox.js | 4 +- styles/containers.less | 26 +++------ 23 files changed, 159 insertions(+), 138 deletions(-) create mode 100644 .jshintrc create mode 100644 app/ContainerListItem.react.js diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000000..73c8cb3691 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,23 @@ +{ + "curly": false, + "noempty": true, + "newcap": true, + "eqeqeq": true, + "eqnull": true, + "esnext": true, + "undef": true, + "unused": true, + "devel": true, + "node": true, + "browser": true, + "evil": false, + "latedef": true, + "nonew": true, + "trailing": true, + "immed": true, + "smarttabs": true, + "strict": false, + "globals": { + "define": true + } +} diff --git a/app/ContainerListItem.react.js b/app/ContainerListItem.react.js new file mode 100644 index 0000000000..6ff3251262 --- /dev/null +++ b/app/ContainerListItem.react.js @@ -0,0 +1,84 @@ +var async = require('async'); +var _ = require('underscore'); +var $ = require('jquery'); +var React = require('react/addons'); +var Router = require('react-router'); +var Modal = require('react-bootstrap/Modal'); +var RetinaImage = require('react-retina-image'); +var ModalTrigger = require('react-bootstrap/ModalTrigger'); +var ContainerModal = require('./ContainerModal.react'); +var Header = require('./Header.react'); +var docker = require('./docker'); + +var ContainerListItem = React.createClass({ + componentWillMount: function () { + this._start = Date.now(); + }, + handleItemMouseEnter: function () { + var $action = $(this.getDOMNode()).find('.action'); + $action.show(); + }, + handleItemMouseLeave: function () { + var $action = $(this.getDOMNode()).find('.action'); + $action.hide(); + }, + render: function () { + var self = this; + var container = this.props.container; + var downloadingImage = null, downloading = false; + var env = container.Config.Env; + if (env.length) { + var obj = _.object(env.map(function (e) { + return e.split('='); + })); + if (obj.KITEMATIC_DOWNLOADING) { + downloading = true; + } + downloadingImage = obj.KITEMATIC_DOWNLOADING_IMAGE || null; + } + + var imageName = downloadingImage || container.Config.Image; + + // Synchronize all animations + var style = { + WebkitAnimationDelay: (self._start - Date.now()) + 'ms' + }; + + var state; + if (downloading) { + state =
; + } else if (container.State.Running && !container.State.Paused) { + state =
; + } else if (container.State.Restarting) { + state =
; + } else if (container.State.Paused) { + state =
; + } else if (container.State.ExitCode) { + // state =
; + state =
; + } else { + state =
; + } + + return ( + +
  • + {state} +
    +
    + {container.Name} +
    +
    + {imageName} +
    +
    +
    + +
    +
  • +
    + ); + } +}); + +module.exports = ContainerListItem; diff --git a/src/Boot2Docker.js b/src/Boot2Docker.js index 5f5d63a41f..e702c77a04 100644 --- a/src/Boot2Docker.js +++ b/src/Boot2Docker.js @@ -1,3 +1,4 @@ +var _ = require('underscore'); var exec = require('exec'); var path = require('path'); var fs = require('fs'); @@ -54,7 +55,7 @@ var Boot2Docker = { return path.join(process.cwd(), 'resources', 'boot2docker-' + this.version()); }, exists: function (callback) { - cmdExec([Boot2Docker.command(), 'info'], function (err, out) { + cmdExec([Boot2Docker.command(), 'info'], function (err) { if (err) { callback(null, false); } else { @@ -170,7 +171,7 @@ var Boot2Docker = { }); }, createScratchImage: function (callback) { - cmdExec([Boot2Docker.command(), 'ssh', 'tar cv --files-from /dev/null | docker import - scratch'], function (err, out) { + cmdExec([Boot2Docker.command(), 'ssh', 'tar cv --files-from /dev/null | docker import - scratch'], function (err) { callback(err); }); }, diff --git a/src/ContainerDetails.react.js b/src/ContainerDetails.react.js index c8a680de2a..d7ed9124cb 100644 --- a/src/ContainerDetails.react.js +++ b/src/ContainerDetails.react.js @@ -4,18 +4,15 @@ var React = require('react/addons'); var Router = require('react-router'); var exec = require('exec'); var path = require('path'); -var assign = require('object-assign'); var remote = require('remote'); var dialog = remote.require('dialog'); var ContainerStore = require('./ContainerStore'); var ContainerUtil = require('./ContainerUtil'); -var docker = require('./Docker'); var boot2docker = require('./Boot2Docker'); var ProgressBar = require('react-bootstrap/ProgressBar'); var ContainerDetailsHeader = require('./ContainerDetailsHeader.react'); var ContainerHome = require('./ContainerHome.react'); - var ContainerDetails = React.createClass({ mixins: [Router.State, Router.Navigation], _oldHeight: 0, @@ -121,6 +118,8 @@ var ContainerDetails = React.createClass({ }, handleView: function () { console.log('CLICKED'); + console.log(this.state.ports); + console.log(this.state.defaultPort); if (this.state.defaultPort) { console.log(this.state.defaultPort); console.log(this.state.ports[this.state.defaultPort].url); @@ -267,7 +266,7 @@ var ContainerDetails = React.createClass({ disabledClass = 'disabled'; } - var buttonClass = React.addons.classSet({ + /*var buttonClass = React.addons.classSet({ btn: true, 'btn-action': true, 'with-icon': true, @@ -302,9 +301,9 @@ var ContainerDetails = React.createClass({ 'only-icon': true, 'active': this.state.page === this.PAGE_SETTINGS, disabled: this.props.container.State.Downloading - }); + });*/ - var ports = _.map(_.pairs(self.state.ports), function (pair, index, list) { + var ports = _.map(_.pairs(self.state.ports), function (pair) { var key = pair[0]; var val = pair[1]; return ( @@ -427,7 +426,7 @@ var ContainerDetails = React.createClass({ disabled: this.props.container.State.Downloading }); - var tabPortsClasses = React.addons.classSet({ + /*var tabPortsClasses = React.addons.classSet({ 'tab': true, 'active': this.state.page === this.PAGE_PORTS, disabled: this.props.container.State.Downloading @@ -437,7 +436,7 @@ var ContainerDetails = React.createClass({ 'tab': true, 'active': this.state.page === this.PAGE_VOLUMES, disabled: this.props.container.State.Downloading - }); + });*/ var tabSettingsClasses = React.addons.classSet({ 'tab': true, @@ -451,7 +450,7 @@ var ContainerDetails = React.createClass({
    - + Run
    diff --git a/src/ContainerDetailsHeader.react.js b/src/ContainerDetailsHeader.react.js index 289de0819e..187d943840 100644 --- a/src/ContainerDetailsHeader.react.js +++ b/src/ContainerDetailsHeader.react.js @@ -1,15 +1,4 @@ -var async = require('async'); -var _ = require('underscore'); -var $ = require('jquery'); var React = require('react/addons'); -var Router = require('react-router'); -var Modal = require('react-bootstrap/Modal'); -var RetinaImage = require('react-retina-image'); -var ModalTrigger = require('react-bootstrap/ModalTrigger'); -var ContainerModal = require('./ContainerModal.react'); -var ContainerListItem = require('./ContainerListItem.react'); -var Header = require('./Header.react'); -var docker = require('./Docker'); var ContainerDetailsHeader = React.createClass({ render: function () { diff --git a/src/ContainerHome.react.js b/src/ContainerHome.react.js index d81fdf6755..d6e784dffd 100644 --- a/src/ContainerHome.react.js +++ b/src/ContainerHome.react.js @@ -1,15 +1,4 @@ -var async = require('async'); -var _ = require('underscore'); -var $ = require('jquery'); var React = require('react/addons'); -var Router = require('react-router'); -var Modal = require('react-bootstrap/Modal'); -var RetinaImage = require('react-retina-image'); -var ModalTrigger = require('react-bootstrap/ModalTrigger'); -var ContainerModal = require('./ContainerModal.react'); -var ContainerListItem = require('./ContainerListItem.react'); -var Header = require('./Header.react'); -var docker = require('./Docker'); var ContainerHome = React.createClass({ render: function () { diff --git a/src/ContainerList.react.js b/src/ContainerList.react.js index ab47065d6e..3d59457b1f 100644 --- a/src/ContainerList.react.js +++ b/src/ContainerList.react.js @@ -1,19 +1,8 @@ -var async = require('async'); -var _ = require('underscore'); -var $ = require('jquery'); var React = require('react/addons'); -var Router = require('react-router'); -var Modal = require('react-bootstrap/Modal'); -var RetinaImage = require('react-retina-image'); -var ModalTrigger = require('react-bootstrap/ModalTrigger'); -var ContainerModal = require('./ContainerModal.react'); var ContainerListItem = require('./ContainerListItem.react'); -var Header = require('./Header.react'); -var docker = require('./Docker'); var ContainerList = React.createClass({ render: function () { - var self = this; var containers = this.props.containers.map(function (container) { console.log(container); return ( diff --git a/src/ContainerListItem.react.js b/src/ContainerListItem.react.js index 4057bb5963..d8b6348004 100644 --- a/src/ContainerListItem.react.js +++ b/src/ContainerListItem.react.js @@ -1,16 +1,10 @@ -var async = require('async'); var _ = require('underscore'); var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); -var Modal = require('react-bootstrap/Modal'); -var RetinaImage = require('react-retina-image'); -var ModalTrigger = require('react-bootstrap/ModalTrigger'); -var ContainerModal = require('./ContainerModal.react'); -var Header = require('./Header.react'); -var docker = require('./docker'); var remote = require('remote'); var dialog = remote.require('dialog'); +var ContainerStore = require('./ContainerStore'); var ContainerListItem = React.createClass({ componentWillMount: function () { diff --git a/src/ContainerModal.react.js b/src/ContainerModal.react.js index 64543d6f5f..ba35c6b425 100644 --- a/src/ContainerModal.react.js +++ b/src/ContainerModal.react.js @@ -1,13 +1,9 @@ -var async = require('async'); var $ = require('jquery'); var assign = require('object-assign'); var React = require('react/addons'); var Modal = require('react-bootstrap').Modal; var OverlayTrigger = require('react-bootstrap'); var Popover = require('react-bootstrap/Popover'); -var SplitButton = require('react-bootstrap/SplitButton'); -var MenuItem = require('react-bootstrap/MenuItem'); - var RetinaImage = require('react-retina-image'); var ContainerStore = require('./ContainerStore'); var OverlayTrigger = require('react-bootstrap/OverlayTrigger'); @@ -81,20 +77,20 @@ var ContainerModal = React.createClass({ }, 200); } }, - handleClick: function (name, event) { - ContainerStore.create(name, 'latest', function (err, containerName) { + handleClick: function (name) { + ContainerStore.create(name, 'latest', function (err) { if (err) { throw err; } this.props.onRequestHide(); }.bind(this)); }, - handleTagClick: function (tag, name, event) { - ContainerStore.create(name, tag, function (err, containerName) { + handleTagClick: function (tag, name) { + ContainerStore.create(name, tag, function () { this.props.onRequestHide(); }.bind(this)); }, - handleDropdownClick: function (name, event) { + handleDropdownClick: function (name) { this.setState({ active: name }); @@ -207,6 +203,7 @@ var ContainerModal = React.createClass({ ); var tagData = self.state.tags[this.state.active]; + var tags; if (tagData) { var list = tagData.map(function (t) { return
  • {t.name}
  • ; diff --git a/src/ContainerStore.js b/src/ContainerStore.js index 82f3eaa4e2..f8bb709d4b 100644 --- a/src/ContainerStore.js +++ b/src/ContainerStore.js @@ -4,14 +4,12 @@ var EventEmitter = require('events').EventEmitter; var async = require('async'); var path = require('path'); var assign = require('object-assign'); -var Stream = require('stream'); var Convert = require('ansi-to-html'); var docker = require('./Docker'); var registry = require('./Registry'); var ContainerUtil = require('./ContainerUtil'); var convert = new Convert(); - var _recommended = []; var _containers = {}; var _progress = {}; @@ -35,7 +33,7 @@ var ContainerStore = assign(EventEmitter.prototype, { return; } stream.setEncoding('utf8'); - stream.on('data', function (data) {}); + stream.on('data', function () {}); stream.on('end', function () { callback(); }); @@ -120,8 +118,8 @@ var ContainerStore = assign(EventEmitter.prototype, { if (containerData.Config && containerData.Config.Image) { containerData.Image = containerData.Config.Image; } - existing.kill(function (err, data) { - existing.remove(function (err, data) { + existing.kill(function () { + existing.remove(function () { docker.client().getImage(containerData.Image).inspect(function (err, data) { var binds = []; if (data.Config.Volumes) { @@ -170,7 +168,7 @@ var ContainerStore = assign(EventEmitter.prototype, { ], Cmd: 'placeholder', name: name - }, function (err, container) { + }, function (err) { if (err) { callback(err); return; @@ -203,7 +201,7 @@ var ContainerStore = assign(EventEmitter.prototype, { downloading.forEach(function (container) { docker.client().pull(container.KitematicDownloadingImage, function (err, stream) { stream.setEncoding('utf8'); - stream.on('data', function (data) {}); + stream.on('data', function () {}); stream.on('end', function () { self._createContainer(container.Name, {Image: container.KitematicDownloadingImage}, function () {}); }); @@ -259,7 +257,7 @@ var ContainerStore = assign(EventEmitter.prototype, { this._resumePulling(); this._startListeningToEvents(); }.bind(this)); - this.fetchRecommended(function (err) { + this.fetchRecommended(function () { this.emit(this.CLIENT_RECOMMENDED_EVENT); }.bind(this)); }, @@ -280,7 +278,7 @@ var ContainerStore = assign(EventEmitter.prototype, { container.State.Downloading = !!env.KITEMATIC_DOWNLOADING; container.KitematicDownloadingImage = env.KITEMATIC_DOWNLOADING_IMAGE; - this.fetchLogs(container.Name, function (err) { + this.fetchLogs(container.Name, function () { }.bind(this)); _containers[container.Name] = container; @@ -299,7 +297,7 @@ var ContainerStore = assign(EventEmitter.prototype, { self.fetchContainer(container.Id, function (err) { callback(err); }); - }, function (err, results) { + }, function (err) { callback(err); }); }); @@ -308,11 +306,10 @@ var ContainerStore = assign(EventEmitter.prototype, { if (_recommended.length) { return; } - var self = this; $.ajax({ url: 'https://kitematic.com/recommended.json', dataType: 'json', - success: function (res, status) { + success: function (res) { var recommended = res.recommended; async.map(recommended, function (repository, callback) { $.get('https://registry.hub.docker.com/v1/search?q=' + repository, function (data) { @@ -354,7 +351,7 @@ var ContainerStore = assign(EventEmitter.prototype, { stream.on('data', function (buf) { // Every other message is a header if (index % 2 === 1) { - var time = buf.substr(0,buf.indexOf(' ')); + //var time = buf.substr(0,buf.indexOf(' ')); var msg = buf.substr(buf.indexOf(' ')+1); if (timeout) { clearTimeout(timeout); @@ -393,7 +390,7 @@ var ContainerStore = assign(EventEmitter.prototype, { _muted[containerName] = true; _progress[containerName] = 0; self._pullImage(repository, tag, function () { - self._createContainer(containerName, {Image: imageName}, function (err, container) { + self._createContainer(containerName, {Image: imageName}, function () { delete _progress[containerName]; _muted[containerName] = false; self.emit(self.CLIENT_CONTAINER_EVENT, containerName); @@ -406,7 +403,7 @@ var ContainerStore = assign(EventEmitter.prototype, { }); } else { // If not then directly create the container - self._createContainer(containerName, {Image: imageName}, function (err, container) { + self._createContainer(containerName, {Image: imageName}, function () { self.emit(ContainerStore.CLIENT_CONTAINER_EVENT, containerName, 'create'); callback(null, containerName); }); @@ -432,7 +429,6 @@ var ContainerStore = assign(EventEmitter.prototype, { }); }, remove: function (name, callback) { - var self = this; var container = docker.client().getContainer(name); if (_containers[name].State.Paused) { container.unpause(function (err) { diff --git a/src/ContainerUtil.js b/src/ContainerUtil.js index 61159f7186..8ff36e6620 100644 --- a/src/ContainerUtil.js +++ b/src/ContainerUtil.js @@ -12,7 +12,7 @@ var ContainerUtil = { return splits; })); }, - ports: function (container, callback) { + ports: function (container) { var res = {}; var ip = docker.host; _.each(container.NetworkSettings.Ports, function (value, key) { diff --git a/src/Containers.react.js b/src/Containers.react.js index 58174829b5..3f9cfbff32 100644 --- a/src/Containers.react.js +++ b/src/Containers.react.js @@ -1,15 +1,11 @@ -var async = require('async'); -var _ = require('underscore'); -var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); -var RetinaImage = require('react-retina-image'); var ModalTrigger = require('react-bootstrap/ModalTrigger'); var ContainerModal = require('./ContainerModal.react'); var ContainerStore = require('./ContainerStore'); var ContainerList = require('./ContainerList.react'); var Header = require('./Header.react'); -var docker = require('./Docker'); + var Containers = React.createClass({ mixins: [Router.Navigation, Router.State], getInitialState: function () { diff --git a/src/Header.react.js b/src/Header.react.js index 30af89c47d..e91bf9beaa 100644 --- a/src/Header.react.js +++ b/src/Header.react.js @@ -35,7 +35,6 @@ var Header = React.createClass({ this.update(); }, render: function () { - var buttons; if (this.state.fullscreen) { return (
    diff --git a/src/Main.js b/src/Main.js index e58c34486a..5c48980e0c 100644 --- a/src/Main.js +++ b/src/Main.js @@ -1,22 +1,9 @@ var React = require('react'); -var Router = require('react-router'); -var RetinaImage = require('react-retina-image'); -var async = require('async'); var docker = require('./Docker'); var router = require('./router'); var boot2docker = require('./boot2docker'); var ContainerStore = require('./ContainerStore'); var SetupStore = require('./ContainerStore'); -var Menu = require('./Menu'); -var remote = require('remote'); -var app = remote.require('app'); -var ipc = require('ipc'); - -var Route = Router.Route; -var NotFoundRoute = Router.NotFoundRoute; -var DefaultRoute = Router.DefaultRoute; -var Link = Router.Link; -var RouteHandler = Router.RouteHandler; if (process.env.NODE_ENV === 'development') { var script = document.createElement('script'); @@ -27,7 +14,7 @@ if (process.env.NODE_ENV === 'development') { } if (!window.location.hash.length || window.location.hash === '#/') { - SetupStore.run(function (err) { + SetupStore.run(function () { boot2docker.ip(function (err, ip) { if (err) console.log(err); docker.setHost(ip); diff --git a/src/Menu.js b/src/Menu.js index 336209f99f..7f1a85569e 100644 --- a/src/Menu.js +++ b/src/Menu.js @@ -1,7 +1,6 @@ var remote = require('remote'); var app = remote.require('app'); var Menu = remote.require('menu'); -var MenuItem = remote.require('menu-item'); var BrowserWindow = remote.require('browser-window'); var router = require('./Router'); @@ -136,7 +135,7 @@ var template = [ }, ]; -menu = Menu.buildFromTemplate(template); +var menu = Menu.buildFromTemplate(template); Menu.setApplicationMenu(menu); module.exports = menu; diff --git a/src/NoContainers.react.js b/src/NoContainers.react.js index 4d15223be6..2be1c9d0eb 100644 --- a/src/NoContainers.react.js +++ b/src/NoContainers.react.js @@ -1,5 +1,4 @@ var React = require('react/addons'); -var RetinaImage = require('react-retina-image'); var NoContainers = React.createClass({ render: function () { diff --git a/src/Preferences.react.js b/src/Preferences.react.js index c18ddc782c..233ab721a1 100644 --- a/src/Preferences.react.js +++ b/src/Preferences.react.js @@ -15,7 +15,7 @@ var Preferences = React.createClass({ report_analytics: true }, data || {}); }, - handleChange: function (key, e) { + handleChange: function (key) { var change = {}; change[key] = !this.state[key]; console.log(change); diff --git a/src/Registry.js b/src/Registry.js index 2fc0dcf0be..8b4352d9f5 100644 --- a/src/Registry.js +++ b/src/Registry.js @@ -22,7 +22,7 @@ var Registry = { headers: { Authorization: 'Token ' + token }, - success: function (layers, status, xhr) { + success: function (layers) { callback(null, layers); }, error: function (err) { @@ -36,7 +36,7 @@ var Registry = { headers: { Authorization: 'Token ' + token }, - success: function (res, status, xhr) { + success: function (res) { callback(null, res); }, error: function (err) { diff --git a/src/Setup.react.js b/src/Setup.react.js index c86f389ed4..7baa722006 100644 --- a/src/Setup.react.js +++ b/src/Setup.react.js @@ -1,12 +1,6 @@ var React = require('react/addons'); var Router = require('react-router'); var Radial = require('./Radial.react.js'); -var async = require('async'); -var assign = require('object-assign'); -var fs = require('fs'); -var path = require('path'); -var virtualbox = require('./Virtualbox'); -var util = require('./Util'); var SetupStore = require('./SetupStore'); var Setup = React.createClass({ @@ -23,7 +17,7 @@ var Setup = React.createClass({ componentDidMount: function () { }, update: function () { - + }, render: function () { var radial; diff --git a/src/SetupStore.js b/src/SetupStore.js index 3dcf5fbdb1..f1a56bebd6 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -59,7 +59,7 @@ var SetupStore = assign(EventEmitter.prototype, { } var iconPath = path.join(setupUtil.resourceDir(), 'kitematic.icns'); setupUtil.isSudo(function (err, isSudo) { - sudoCmd = isSudo ? ['sudo'] : [path.join(setupUtil.resourceDir(), 'cocoasudo'), '--icon=' + iconPath, '--prompt=Kitematic requires administrative privileges to install VirtualBox and copy itself to the Applications folder.']; + var sudoCmd = isSudo ? ['sudo'] : [path.join(setupUtil.resourceDir(), 'cocoasudo'), '--icon=' + iconPath, '--prompt=Kitematic requires administrative privileges to install VirtualBox and copy itself to the Applications folder.']; sudoCmd.push.apply(sudoCmd, ['installer', '-pkg', '/Volumes/VirtualBox/VirtualBox.pkg', '-target', '/']); exec(sudoCmd, function (stderr, stdout, code) { if (code) { @@ -105,7 +105,7 @@ var SetupStore = assign(EventEmitter.prototype, { }, cleanupKitematicStep: { run: function (callback) { - virtualbox.vmdestroy('kitematic-vm', function (err, removed) { + virtualbox.vmdestroy('kitematic-vm', function (err) { if (err) { console.log(err); } @@ -129,7 +129,7 @@ var SetupStore = assign(EventEmitter.prototype, { } else { boot2docker.isoVersion(function (err, version) { if (err || setupUtil.compareVersions(version, boot2docker.version()) < 0) { - boot2docker.stop(function(err) { + boot2docker.stop(function() { boot2docker.upgrade(function (err) { callback(err); }); @@ -147,7 +147,7 @@ var SetupStore = assign(EventEmitter.prototype, { }, startBoot2DockerStep: { run: function (callback) { - boot2docker.waitWhileStatus('saving', function (err) { + boot2docker.waitWhileStatus('saving', function () { boot2docker.status(function (err, status) { if (err) {callback(err); return;} if (status !== 'running') { diff --git a/src/SetupUtil.js b/src/SetupUtil.js index d3b8d696e9..6e096571c7 100644 --- a/src/SetupUtil.js +++ b/src/SetupUtil.js @@ -6,7 +6,7 @@ var fs = require('fs'); var exec = require('exec'); var SetupUtil = { - supportDir: function (callback) { + supportDir: function () { var dirs = ['Library', 'Application\ Support', 'Kitematic']; var acc = process.env.HOME; dirs.forEach(function (d) { @@ -17,7 +17,7 @@ var SetupUtil = { }); return acc; }, - resourceDir: function (callback) { + resourceDir: function () { return process.env.RESOURCES_PATH; }, isSudo: function (callback) { diff --git a/src/Virtualbox.js b/src/Virtualbox.js index 446537c461..df94e94599 100644 --- a/src/Virtualbox.js +++ b/src/Virtualbox.js @@ -1,8 +1,6 @@ var fs = require('fs'); var exec = require('exec'); -var path = require('path'); var async = require('async'); -var util = require('./Util'); var VirtualBox = { command: function () { @@ -68,7 +66,7 @@ var VirtualBox = { }, vmdestroy: function (name, callback) { var self = this; - this.vmstate(name, function (err, state) { + this.vmstate(name, function (err) { // No VM found if (err) { callback(null, false); return; } exec('/usr/bin/VBoxManage controlvm ' + name + ' acpipowerbutton', function (stderr, stdout, code) { diff --git a/styles/containers.less b/styles/containers.less index 8c1fc39679..5bf7647653 100644 --- a/styles/containers.less +++ b/styles/containers.less @@ -309,7 +309,7 @@ position: relative; //border-top: 1px solid #EEE; border-bottom: 1px solid #DCE2E2; - background-color: #F9F9F9; + background-color: white; height: 57px; padding: 6px 10px 10px 24px; font-size: 13px; @@ -341,13 +341,9 @@ &.icon:before { text-align: center; } - /*background: linear-gradient(-180deg, #24B8EB 4%, #24A3EB 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent;*/ color: @gray-normal; font-size: 30px; - margin-right: 35px; - //color: @gray-darker; + margin-right: 30px; transition: all 0.25s; &:hover { color: @brand-action; @@ -355,12 +351,6 @@ -webkit-background-clip: text; -webkit-text-fill-color: transparent;*/ } - &.view-icon { - position: relative; - top: 1px; - font-size: 35px; - //color: @gray-darkest; - } } .btn-label { position: relative; @@ -380,18 +370,16 @@ margin-top: 6px; .tab { margin-left: 16px; - padding: 3px 10px; - transition: all 0.25s; + padding: 6px 10px; font-weight: 400; &:hover { - color: @brand-action; + border-radius: 40px; + background-color: #F9F9F9; } &.active { - background-color: #D2EEF8; - background-color: @brand-action; border-radius: 40px; - color: #365B64; color: white; + background-image: linear-gradient(-180deg, #24B8EB 4%, #24A3EB 100%); } } } @@ -403,7 +391,7 @@ flex-direction: row; padding: 31px 24px 18px 24px; position: relative; - background-color: #F9F9F9; + background-color: white; height: 75px; h1 { margin: 0;