diff --git a/web/client/components/TOC/DefaultLayer.jsx b/web/client/components/TOC/DefaultLayer.jsx
index 9b9c9b17f6..d5b2e506d0 100644
--- a/web/client/components/TOC/DefaultLayer.jsx
+++ b/web/client/components/TOC/DefaultLayer.jsx
@@ -12,11 +12,11 @@ var VisibilityCheck = require('./fragments/VisibilityCheck');
var Title = require('./fragments/Title');
var InlineSpinner = require('../misc/spinners/InlineSpinner/InlineSpinner');
var WMSLegend = require('./fragments/WMSLegend');
-const ConfirmButton = require('../buttons/ConfirmButton');
+const ConfirmModal = require('../maps/modals/ConfirmModal');
const LayersTool = require('./fragments/LayersTool');
const SettingsModal = require('./fragments/SettingsModal');
const Message = require('../I18N/Message');
-const {Glyphicon} = require('react-bootstrap');
+const {Glyphicon, Button} = require('react-bootstrap');
var DefaultLayer = React.createClass({
propTypes: {
@@ -39,6 +39,7 @@ var DefaultLayer = React.createClass({
saveText: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.element]),
closeText: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.element]),
confirmDeleteText: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.element]),
+ confirmDeleteMessage: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.element]),
modalOptions: React.PropTypes.object,
settingsOptions: React.PropTypes.object,
visibilityCheckType: React.PropTypes.string,
@@ -58,10 +59,20 @@ var DefaultLayer = React.createClass({
includeDeleteButtonInSettings: false,
modalOptions: {},
settingsOptions: {},
- confirmDeleteText: ,
+ confirmDeleteText: ,
+ confirmDeleteMessage: ,
visibilityCheckType: "glyph"
};
},
+ onConfirmDelete() {
+ this.props.removeNode(this.props.node.id, "layers");
+ this.closeDeleteDialog();
+ },
+ getInitialState: function() {
+ return {
+ showDeleteDialog: false
+ };
+ },
renderCollapsible() {
if (this.props.node && this.props.node.type === 'wms') {
return ;
@@ -72,14 +83,11 @@ var DefaultLayer = React.createClass({
const tools = [];
if (this.props.activateRemoveLayer) {
tools.push(
- )}
- style={{"float": "right", cursor: "pointer", backgroundColor: "transparent", marginRight: 3, padding: 0, outline: "none"}}
- confirming={{text: this.props.confirmDeleteText,
- style: {"float": "right", cursor: "pointer", marginTop: -5}}}
- onConfirm={() => {
- this.props.removeNode(this.props.node.id, "layers");
- }}/>
+
);
}
if (this.props.activateSettingsTool) {
@@ -141,8 +149,19 @@ var DefaultLayer = React.createClass({
/>
{this.renderCollapsible()}
{this.renderTools()}
+ } body={this.props.confirmDeleteMessage} />
);
+ },
+ closeDeleteDialog() {
+ this.setState({
+ showDeleteDialog: false
+ });
+ },
+ displayDeleteDialog() {
+ this.setState({
+ showDeleteDialog: true
+ });
}
});
diff --git a/web/client/components/TOC/__tests__/DefaultLayer-test.jsx b/web/client/components/TOC/__tests__/DefaultLayer-test.jsx
index 3e5c3fa191..1fdd4cd8e6 100644
--- a/web/client/components/TOC/__tests__/DefaultLayer-test.jsx
+++ b/web/client/components/TOC/__tests__/DefaultLayer-test.jsx
@@ -156,7 +156,7 @@ describe('test DefaultLayer module component', () => {
const tool = ReactDOM.findDOMNode(TestUtils.scryRenderedDOMComponentsWithClass(comp, "clayer_removal_button")[0]);
expect(tool).toExist();
tool.click();
- const confirmButton = ReactDOM.findDOMNode(TestUtils.scryRenderedDOMComponentsWithClass(comp, "btn-warning")[0]);
+ const confirmButton = document.getElementsByClassName("clayer_removal_confirm_button")[0];
expect(confirmButton).toExist();
confirmButton.click();
expect(spy.calls.length).toBe(1);
diff --git a/web/client/components/TOC/fragments/css/layertool.css b/web/client/components/TOC/fragments/css/layertool.css
index 9eee272716..c34b560928 100644
--- a/web/client/components/TOC/fragments/css/layertool.css
+++ b/web/client/components/TOC/fragments/css/layertool.css
@@ -1,6 +1,5 @@
.toc-layer-tool {
float: right;
margin-top: 5px;
- margin-right: 10px;
cursor: pointer;
}
diff --git a/web/client/components/TOC/fragments/css/visibilitycheck.css b/web/client/components/TOC/fragments/css/visibilitycheck.css
index b7376823b9..b5fa9623c4 100644
--- a/web/client/components/TOC/fragments/css/visibilitycheck.css
+++ b/web/client/components/TOC/fragments/css/visibilitycheck.css
@@ -12,9 +12,6 @@ input[type="checkbox"].visibility-check,input[type="radio"].visibility-check {
margin-right: 5px;
margin-top: 5px;
}
-button.confirm-button.clayer_removal_button {
- border-color: transparent;
-}
-button.confirm-button.clayer_removal_button .glyphicon {
- color: #a94442!important;
+button.clayer_removal_button.btn.btn-default {
+ border: transparent;
}
diff --git a/web/client/components/maps/modals/ConfirmModal.jsx b/web/client/components/maps/modals/ConfirmModal.jsx
index 8e149ebb18..677252c19e 100644
--- a/web/client/components/maps/modals/ConfirmModal.jsx
+++ b/web/client/components/maps/modals/ConfirmModal.jsx
@@ -20,6 +20,7 @@ const assign = require('object-assign');
const ConfirmModal = React.createClass({
propTypes: {
// props
+ className: React.PropTypes.string,
show: React.PropTypes.bool,
options: React.PropTypes.object,
onConfirm: React.PropTypes.func,
@@ -39,6 +40,7 @@ const ConfirmModal = React.createClass({
onConfirm: ()=> {},
onClose: () => {},
options: {},
+ className: "",
useModal: true,
closeGlyph: "",
style: {},
@@ -56,6 +58,7 @@ const ConfirmModal = React.createClass({
const footer = (