diff --git a/browser/main.js b/browser/main.js index 767e9de3cb..4df27d91d3 100644 --- a/browser/main.js +++ b/browser/main.js @@ -34,7 +34,7 @@ var windowOptions = { 'min-height': 700, resizable: true, frame: false, - show: false + show: true }; app.on('activate-with-no-open-windows', function () { diff --git a/images/docker-terminal.png b/images/docker-terminal.png new file mode 100644 index 0000000000..1322910950 Binary files /dev/null and b/images/docker-terminal.png differ diff --git a/images/docker-terminal@2x.png b/images/docker-terminal@2x.png new file mode 100644 index 0000000000..780604d8d9 Binary files /dev/null and b/images/docker-terminal@2x.png differ diff --git a/images/preferences.png b/images/preferences.png new file mode 100644 index 0000000000..a7cbb88ade Binary files /dev/null and b/images/preferences.png differ diff --git a/images/preferences@2x.png b/images/preferences@2x.png new file mode 100644 index 0000000000..8979f53dca Binary files /dev/null and b/images/preferences@2x.png differ diff --git a/images/report-issue.png b/images/report-issue.png new file mode 100644 index 0000000000..737c300406 Binary files /dev/null and b/images/report-issue.png differ diff --git a/images/report-issue@2x.png b/images/report-issue@2x.png new file mode 100644 index 0000000000..426d002eb0 Binary files /dev/null and b/images/report-issue@2x.png differ diff --git a/src/ContainerListItem.react.js b/src/ContainerListItem.react.js index 9d35cb4f9a..2ed466bda8 100644 --- a/src/ContainerListItem.react.js +++ b/src/ContainerListItem.react.js @@ -31,7 +31,7 @@ var ContainerListItem = React.createClass({ }); ContainerStore.remove(this.props.container.Name, () => { var containers = ContainerStore.sorted(); - if (containers.length === 0) { + if (containers.length === 1) { $(document.body).find('.new-container-item').parent().fadeIn(); } }); diff --git a/src/ContainerSettingsGeneral.react.js b/src/ContainerSettingsGeneral.react.js index 53a6f78865..d44a8baa58 100644 --- a/src/ContainerSettingsGeneral.react.js +++ b/src/ContainerSettingsGeneral.react.js @@ -20,7 +20,7 @@ var containerNameSlugify = function (text) { for (var i=0, l=from.length ; i {}); + }, + handleClickReportIssue: function () { + util.exec(['open', 'https://github.com/kitematic/kitematic/issues/new']); + }, + handleMouseEnterDockerTerminal: function () { + this.setState({ + currentButtonLabel: 'Open terminal to use Docker CLI.' + }); + }, + handleMouseLeaveDockerTerminal: function () { + this.setState({ + currentButtonLabel: '' + }); + }, + handleMouseEnterReportIssue: function () { + this.setState({ + currentButtonLabel: 'Report issues or suggest feedbacks.' + }); + }, + handleMouseLeaveReportIssue: function () { + this.setState({ + currentButtonLabel: '' + }); + }, + handleMouseEnterPreferences: function () { + this.setState({ + currentButtonLabel: 'Change app preferences.' + }); + }, + handleMouseLeavePreferences: function () { + this.setState({ + currentButtonLabel: '' + }); + }, render: function () { var sidebarHeaderClass = 'sidebar-header'; if (this.state.sidebarOffset) { sidebarHeaderClass += ' sep'; } - var updateNotification; - var updatePadding; + var updateWidget; if (this.state.updateAvailable) { - updateNotification = ( -
Update AvailableUpdate Now
- ); - updatePadding = ( -
+ updateWidget = ( + New Update ); } var container = this.getParams().name ? this.state.containers[this.getParams().name] : {}; @@ -117,8 +159,14 @@ var Containers = React.createClass({
- {updatePadding} - {updateNotification} +
+
{this.state.currentButtonLabel}
+ + + + {updateWidget} +
+
diff --git a/src/Main.js b/src/Main.js index 7c8d9993ea..06d4ed4bce 100644 --- a/src/Main.js +++ b/src/Main.js @@ -51,7 +51,18 @@ Menu.setApplicationMenu(menu); document.onkeydown = function (e) { e = e || window.event; + var doPrevent; if (e.keyCode === 8) { + var d = e.srcElement || e.target; + if (d.tagName.toUpperCase() === 'INPUT' || d.tagName.toUpperCase() === 'TEXTAREA') { + doPrevent = d.readOnly || d.disabled; + } else { + doPrevent = true; + } + } else { + doPrevent = false; + } + if (doPrevent) { e.preventDefault(); } }; diff --git a/src/Setup.react.js b/src/Setup.react.js index 891c97eecf..0138d3277d 100644 --- a/src/Setup.react.js +++ b/src/Setup.react.js @@ -52,7 +52,7 @@ var Setup = React.createClass({
- +
); @@ -86,8 +86,13 @@ var Setup = React.createClass({

Setup Cancelled

Couldn't Install Requirements

Kitematic didn't receive the administrative privileges required to install or upgrade VirtualBox & Docker.

+<<<<<<< HEAD

Please click retry. If VirtualBox is not installed, you can download & install it manually from the official Oracle website.

+======= +

Please retry or download & install VirutalBox manually from the official Oracle website.

+

+>>>>>>> master diff --git a/styles/animation.less b/styles/animation.less index 641545c055..d1fa4923b8 100644 --- a/styles/animation.less +++ b/styles/animation.less @@ -34,3 +34,12 @@ -webkit-transform: translateY(20px); } } + +@-webkit-keyframes fadein { + from { + opacity: 0; + } + to { + opacity: 1; + } +} diff --git a/styles/header.less b/styles/header.less index 0a040fabc0..946c32a430 100644 --- a/styles/header.less +++ b/styles/header.less @@ -19,6 +19,7 @@ position: relative; top: 10px; left: 15px; + z-index: 1000; &:hover { .button-minimize.enabled { .at2x('minimize.png', 10px, 10px); diff --git a/styles/left-panel.less b/styles/left-panel.less index e4b7eba970..ecba94e97c 100644 --- a/styles/left-panel.less +++ b/styles/left-panel.less @@ -1,6 +1,7 @@ /* Sidebar */ .sidebar { + .fade-in(); padding-top: 28px; background-color: white; margin: 0; @@ -222,28 +223,34 @@ } } -/* Auto-Update */ +/* Sidebar Buttons */ -.update-notification { +.sidebar-buttons { background-color: white; + width: 259px; opacity: 0.9; position: fixed; bottom: 0; - width: 259px; - padding: 10px; - color: @gray-normal; - font-size: 12px; - .text { - position: relative; - top: 3px; + padding: 15px; + padding-top: 5px; + z-index: 10000; + .btn-label { + color: @gray-lighter; + font-size: 10px; + height: 18px; + } + .btn-sidebar { + display: inline-block; + margin-right: 7px; } .btn { position: relative; + top: 1px; float: right; } } -.update-padding { +.sidebar-buttons-padding { position: relative; - height: 40px; + height: 62px; } diff --git a/styles/mixins.less b/styles/mixins.less index 3ff7438f6c..44e9460ca2 100644 --- a/styles/mixins.less +++ b/styles/mixins.less @@ -28,3 +28,10 @@ position: relative; overflow: hidden; } + +.fade-in() { + opacity: 0; + -webkit-animation: fadein ease-in 1; + -webkit-animation-fill-mode: forwards; + -webkit-animation-duration: 0.2s; +} diff --git a/styles/right-panel.less b/styles/right-panel.less index aa5b1820f6..4d9153e237 100644 --- a/styles/right-panel.less +++ b/styles/right-panel.less @@ -1,4 +1,5 @@ .details { + .fade-in(); background-color: @color-background; margin: 0; padding: 0; diff --git a/styles/setup.less b/styles/setup.less index 35a5c7f674..761fe6b4fb 100644 --- a/styles/setup.less +++ b/styles/setup.less @@ -1,4 +1,5 @@ .setup { + .fade-in(); display: flex; height: 100%; width: 100%;