diff --git a/web/client/components/manager/importer/Import.jsx b/web/client/components/manager/importer/Import.jsx index 6090e41c0b..036770c6a5 100644 --- a/web/client/components/manager/importer/Import.jsx +++ b/web/client/components/manager/importer/Import.jsx @@ -10,7 +10,7 @@ const Spinner = require('react-spinkit'); const Message = require('../../I18N/Message'); const TaskProgress = require('./TaskProgress'); const ImporterUtils = require('../../../utils/ImporterUtils'); -const {Grid, Row, Panel, Label, Table, Button, Glyphicon} = require('react-bootstrap'); +const {Grid, Row, Panel, Label, Table, Button, Glyphicon, OverlayTrigger, Tooltip} = require('react-bootstrap'); require("./style/importer.css"); const Task = React.createClass({ @@ -23,13 +23,20 @@ const Task = React.createClass({ runImport: React.PropTypes.func, updateProgress: React.PropTypes.func, deleteImport: React.PropTypes.func, - deleteTask: React.PropTypes.func + deleteTask: React.PropTypes.func, + deleteAction: React.PropTypes.node, + editAction: React.PropTypes.node, + placement: React.PropTypes.string }, contextTypes: { - router: React.PropTypes.object + router: React.PropTypes.object, + messages: React.PropTypes.object }, getDefaultProps() { return { + placement: "bottom", + deleteAction: , + editAction: , timeout: 10000, "import": {}, loadTask: () => {}, @@ -72,18 +79,24 @@ const Task = React.createClass({ } }, renderTask(task) { - + let tooltipDelete = {this.props.deleteAction}; + let tooltipEdit = {this.props.editAction}; return ( {e.preventDefault(); this.props.loadTask(task.id); }} >{task.id} {this.renderProgressTask(task)}{this.renderLoadingTask(task)} - + + + {task.state === "COMPLETE" ? - + + + : null} ); diff --git a/web/client/components/manager/importer/ImportsGrid.jsx b/web/client/components/manager/importer/ImportsGrid.jsx index c1fffc4386..d5813de77a 100644 --- a/web/client/components/manager/importer/ImportsGrid.jsx +++ b/web/client/components/manager/importer/ImportsGrid.jsx @@ -9,18 +9,24 @@ const React = require('react'); const Spinner = require('react-spinkit'); const Message = require('../../I18N/Message'); const ImporterUtils = require('../../../utils/ImporterUtils'); -const {Table, Glyphicon, Button, Label} = require('react-bootstrap'); +const {Table, Glyphicon, Button, Label, OverlayTrigger, Tooltip} = require('react-bootstrap'); const ImportsGrid = React.createClass({ propTypes: { loading: React.PropTypes.bool, loadImport: React.PropTypes.func, deleteImport: React.PropTypes.func, - imports: React.PropTypes.array + imports: React.PropTypes.array, + deleteAction: React.PropTypes.object, + placement: React.PropTypes.string + }, + contextTypes: { + messages: React.PropTypes.object }, getDefaultProps() { return { - + placement: "bottom", + deleteAction: , loadImport: () => {}, deleteImport: () => {}, imports: [] @@ -32,7 +38,7 @@ const ImportsGrid = React.createClass({ renderLoadingMessage(importObj) { switch (importObj.message) { case "deleting": - return ; + return ; default: return null; } @@ -44,10 +50,15 @@ const ImportsGrid = React.createClass({ return null; }, renderImport(importObj) { + let tooltip = {this.props.deleteAction}; return ( {e.preventDefault(); this.props.loadImport(importObj.id); }} >{importObj.id} {this.renderLoadingImport(importObj)} - + + + + + ); }, render() { @@ -57,11 +68,11 @@ const ImportsGrid = React.createClass({ return ( - - - - - + + + + + {this.props.imports.map(this.renderImport)} diff --git a/web/client/components/manager/importer/TransformsGrid.jsx b/web/client/components/manager/importer/TransformsGrid.jsx index 8aee9fbe4c..5010422124 100644 --- a/web/client/components/manager/importer/TransformsGrid.jsx +++ b/web/client/components/manager/importer/TransformsGrid.jsx @@ -8,7 +8,7 @@ const React = require('react'); const Spinner = require('react-spinkit'); const Message = require('../../I18N/Message'); -const {Panel, Table, Button, Glyphicon} = require('react-bootstrap'); +const {Panel, Table, Button, Glyphicon, OverlayTrigger, Tooltip} = require('react-bootstrap'); const TransformsGrid = React.createClass({ propTypes: { @@ -17,20 +17,33 @@ const TransformsGrid = React.createClass({ type: React.PropTypes.string, loadTransform: React.PropTypes.func, deleteTransform: React.PropTypes.func, - transforms: React.PropTypes.array + transforms: React.PropTypes.array, + deleteAction: React.PropTypes.object, + placement: React.PropTypes.string + }, + contextTypes: { + messages: React.PropTypes.object }, getDefaultProps() { + // TODO check translations return { + placement: "bottom", + deleteAction: , transforms: [], loadTransform: () => {}, deleteTransform: () => {} }; }, renderTransform(transform, index) { + let tooltip = {this.props.deleteAction}; return ( - + ); }, render() { diff --git a/web/client/components/manager/importer/Workspace.jsx b/web/client/components/manager/importer/Workspace.jsx index 51836b5461..95a3897661 100644 --- a/web/client/components/manager/importer/Workspace.jsx +++ b/web/client/components/manager/importer/Workspace.jsx @@ -8,6 +8,9 @@ const React = require('react'); const Select = require('react-select'); const {Input, Button, Alert} = require('react-bootstrap'); +const Message = require('../../I18N/Message'); +const LocaleUtils = require('../../../utils/LocaleUtils'); + module.exports = React.createClass({ propTypes: { enabled: React.PropTypes.bool, @@ -20,6 +23,9 @@ module.exports = React.createClass({ datastoreTemplates: React.PropTypes.array, createWorkspace: React.PropTypes.func }, + contextTypes: { + messages: React.PropTypes.object + }, getDefaultProps() { return { loadWorkspaces: () => {}, @@ -46,7 +52,7 @@ module.exports = React.createClass({ }, render() { return (
- target workspace: + {this.props.enabled ? (
{this.props.selectedWorkSpace}
) : (
#StatusActions
#
{e.preventDefault(); this.props.loadTransform(index); }}>{index} {transform.type} + + + +