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 (
-
- # |
- Status |
- Actions |
-
+
+ # |
+ |
+ |
+
{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 (
{e.preventDefault(); this.props.loadTransform(index); }}>{index} |
{transform.type} |
- |
+
+
+
+
+ |
);
},
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}
)
: (
)}
- create a new workspace:
+