Auto-update UI and fixed menu.

This commit is contained in:
Sean Li 2015-02-16 15:40:48 -08:00
parent a4669e2240
commit 7390b83cc3
4 changed files with 44 additions and 6 deletions

View File

@ -78,6 +78,7 @@ var Containers = React.createClass({
this.transitionTo('new'); this.transitionTo('new');
}, },
handleAutoUpdateClick: function () { handleAutoUpdateClick: function () {
console.log('CLICKED UPDATE');
ipc.send('command', 'application:quit-install'); ipc.send('command', 'application:quit-install');
}, },
render: function () { render: function () {
@ -85,7 +86,16 @@ var Containers = React.createClass({
if (this.state.sidebarOffset) { if (this.state.sidebarOffset) {
sidebarHeaderClass += ' sep'; sidebarHeaderClass += ' sep';
} }
var updateNotification;
var updatePadding;
if (this.state.updateAvailable) {
updateNotification = (
<div className="update-notification"><span className="text">Update Available</span><a className="btn btn-action small" onClick={this.handleAutoUpdateClick}>Update Now</a></div>
);
updatePadding = (
<div className="update-padding"></div>
);
}
var container = this.getParams().name ? this.state.containers[this.getParams().name] : {}; var container = this.getParams().name ? this.state.containers[this.getParams().name] : {};
return ( return (
<div className="containers"> <div className="containers">
@ -100,6 +110,8 @@ var Containers = React.createClass({
</section> </section>
<section className="sidebar-containers" onScroll={this.handleScroll}> <section className="sidebar-containers" onScroll={this.handleScroll}>
<ContainerList containers={this.state.sorted} newContainer={this.state.newContainer} /> <ContainerList containers={this.state.sorted} newContainer={this.state.newContainer} />
{updatePadding}
{updateNotification}
</section> </section>
</div> </div>
<Router.RouteHandler container={container}/> <Router.RouteHandler container={container}/>

View File

@ -9,6 +9,8 @@ var router = require('./router');
var boot2docker = require('./boot2docker'); var boot2docker = require('./boot2docker');
var ContainerStore = require('./ContainerStore'); var ContainerStore = require('./ContainerStore');
var SetupStore = require('./SetupStore'); var SetupStore = require('./SetupStore');
var MenuTemplate = require('./MenuTemplate');
var Menu = remote.require('menu');
var settingsjson; var settingsjson;
try { try {
@ -32,6 +34,9 @@ bugsnag.releaseStage = process.env.NODE_ENV === 'development' ? 'development' :
bugsnag.notifyReleaseStages = ['production']; bugsnag.notifyReleaseStages = ['production'];
bugsnag.appVersion = app.getVersion(); bugsnag.appVersion = app.getVersion();
var menu = Menu.buildFromTemplate(MenuTemplate);
Menu.setApplicationMenu(menu);
router.run(Handler => React.render(<Handler/>, document.body)); router.run(Handler => React.render(<Handler/>, document.body));
SetupStore.run().then(boot2docker.ip).then(ip => { SetupStore.run().then(boot2docker.ip).then(ip => {
console.log(ip); console.log(ip);

View File

@ -2,13 +2,12 @@ var remote = require('remote');
var app = remote.require('app'); var app = remote.require('app');
var path = require('path'); var path = require('path');
var docker = require('./Docker'); var docker = require('./Docker');
var Menu = remote.require('menu');
var BrowserWindow = remote.require('browser-window'); var BrowserWindow = remote.require('browser-window');
var router = require('./Router'); var router = require('./Router');
var util = require('./Util'); var util = require('./Util');
// main.js // main.js
var template = [ var MenuTemplate = [
{ {
label: 'Kitematic', label: 'Kitematic',
submenu: [ submenu: [
@ -160,7 +159,5 @@ var template = [
}, },
]; ];
var menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
module.exports = menu; module.exports = MenuTemplate;

View File

@ -61,6 +61,30 @@ html, body {
border: 1px solid #ddd; border: 1px solid #ddd;
} }
.update-notification {
background-color: white;
opacity: 0.9;
position: fixed;
bottom: 0;
width: 259px;
padding: 10px;
//border-top: 1px solid darken(#FCF8E3, 5%);
color: @gray-normal;
font-size: 12px;
.text {
position: relative;
top: 3px;
}
.btn {
position: relative;
float: right;
}
}
.update-padding {
position: relative;
height: 40px;
}
@-webkit-keyframes spin { @-webkit-keyframes spin {
from { from {