var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); var remote = require('remote'); var dialog = remote.require('dialog'); var metrics = require('../utils/MetricsUtil'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; var containerActions = require('../actions/ContainerActions'); var ContainerListItem = React.createClass({ handleItemMouseEnter: function () { var $action = $(this.getDOMNode()).find('.action'); $action.show(); }, handleItemMouseLeave: function () { var $action = $(this.getDOMNode()).find('.action'); $action.hide(); }, handleDeleteContainer: function (e) { e.preventDefault(); e.stopPropagation(); dialog.showMessageBox({ message: 'Are you sure you want to delete this container?', buttons: ['Delete', 'Cancel'] }, function (index) { if (index === 0) { metrics.track('Deleted Container', { from: 'list', type: 'existing' }); containerActions.destroy(this.props.container.Name); } }.bind(this)); }, render: function () { var self = this; var container = this.props.container; var imageNameTokens = container.Config.Image.split('/'); var repo; if (imageNameTokens.length > 1) { repo = imageNameTokens[1]; } else { repo = imageNameTokens[0]; } var imageName = ( {container.Config.Image}}> {repo} ); // Synchronize all animations var style = { WebkitAnimationDelay: 0 + 'ms' }; var state; if (container.State.Downloading) { state = ( Downloading}>
); } else if (container.State.Running && !container.State.Paused) { state = ( Running}>
); } else if (container.State.Restarting) { state = ( Restarting}>
); } else if (container.State.Paused) { state = ( Paused}>
); } else if (container.State.ExitCode) { state = ( Stopped}>
); } else { state = ( Stopped}>
); } return (
  • {state}
    {container.Name}
    {imageName}
  • ); } }); module.exports = ContainerListItem;