{
const panelHeader = helpPanelDom.getElementsByClassName('panel-heading').item(0);
expect(panelHeader).toExist();
expect(panelHeader.innerHTML.indexOf("HELP") !== -1).toBe(true);
-
- // text in body
- const panelBody = helpPanelDom.getElementsByClassName('panel-body').item(0);
- expect(panelBody).toExist();
- expect(panelBody.innerHTML).toBe("");
});
it('creates the component with custom props', () => {
diff --git a/web/client/components/manager/importer/Workspace.jsx b/web/client/components/manager/importer/Workspace.jsx
index 1feac47902..815f4786b4 100644
--- a/web/client/components/manager/importer/Workspace.jsx
+++ b/web/client/components/manager/importer/Workspace.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
const Select = require('react-select');
-const {Input, Button, Alert} = require('react-bootstrap');
+const {FormControl, Button, Alert} = require('react-bootstrap');
const Message = require('../../I18N/Message');
const LocaleUtils = require('../../../utils/LocaleUtils');
@@ -74,7 +74,7 @@ module.exports = React.createClass({
/>)}
-
-
-
+
+
{this.renderInvalid()}
);
},
diff --git a/web/client/components/manager/importer/transforms/GdalTranslateTransform.jsx b/web/client/components/manager/importer/transforms/GdalTranslateTransform.jsx
index fe0bd56765..877eabbdc8 100644
--- a/web/client/components/manager/importer/transforms/GdalTranslateTransform.jsx
+++ b/web/client/components/manager/importer/transforms/GdalTranslateTransform.jsx
@@ -6,7 +6,7 @@
* LICENSE file in the root directory of this source tree.
*/
const React = require('react');
-const {Input, Alert} = require('react-bootstrap');
+const {FormControl, Alert} = require('react-bootstrap');
const assign = require('object-assign');
const {Message} = require('../../../I18N/I18N');
@@ -38,7 +38,7 @@ const GdalTranslateTransform = React.createClass({
},
render() {
return (
-
+
{this.renderInvalid()}
);
},
diff --git a/web/client/components/manager/users/GroupDialog.jsx b/web/client/components/manager/users/GroupDialog.jsx
index f52a207b0b..444acb4481 100644
--- a/web/client/components/manager/users/GroupDialog.jsx
+++ b/web/client/components/manager/users/GroupDialog.jsx
@@ -15,7 +15,7 @@
const React = require('react');
const UsersTable = require('./UsersTable');
-const {Alert, Tabs, Tab, Button, Glyphicon, Input} = require('react-bootstrap');
+const {Alert, Tabs, Tab, Button, Glyphicon, FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
const Dialog = require('../../../components/misc/Dialog');
const assign = require('object-assign');
@@ -78,26 +78,30 @@ const GroupDialog = React.createClass({
},
renderGeneral() {
return (
- }
- onChange={this.handleChange}
- maxLength={this.props.nameLimit}
- value={this.props.group && this.props.group.groupName}/>
- }
- onChange={this.handleChange}
- value={this.props.group && this.props.group.description || ""}/>
+
+
+
+
+
+
+
+
);
},
diff --git a/web/client/components/manager/users/UserDialog.jsx b/web/client/components/manager/users/UserDialog.jsx
index 0f111425e7..4950820e5c 100644
--- a/web/client/components/manager/users/UserDialog.jsx
+++ b/web/client/components/manager/users/UserDialog.jsx
@@ -15,7 +15,7 @@
const React = require('react');
-const {Alert, Tabs, Tab, Button, Glyphicon, Input} = require('react-bootstrap');
+const {Alert, Tabs, Tab, Button, Glyphicon, Checkbox, FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
const Dialog = require('../../../components/misc/Dialog');
const UserGroups = require('./UserGroups');
@@ -82,10 +82,10 @@ const UserDialog = React.createClass({
}
},
getPwStyle() {
- if (!this.refs.newPassword) {
+ if (!this.props.user || !this.props.user.newPassword) {
return null;
}
- let pw = this.refs.newPassword.getValue();
+ let pw = this.props.user.newPassword;
if (pw.length === 0) {
return null;
}
@@ -94,56 +94,63 @@ const UserDialog = React.createClass({
},
renderGeneral() {
return (
- }
- onChange={this.handleChange}
- value={this.props.user && this.props.user.name}/>
- }
- onChange={this.handleChange} />
- }
- onChange={this.handleChange} />
+
+
+
+
+
+
+
+
+
+
+
+
- }
- onClick={(evt) => {this.props.onChange("enabled", evt.target.checked ? true : false); }} />
+
+
+ {this.props.onChange("enabled", evt.target.checked ? true : false); }} />
+
);
},
renderAttributes() {
return this.props.attributes.map((attr) => {
- return (
+
{attr.name}
+
);
+ value={this.getAttributeValue(attr.name)} />);
});
},
renderSaveButtonContent() {
diff --git a/web/client/components/mapcontrols/mouseposition/CRSSelector.jsx b/web/client/components/mapcontrols/mouseposition/CRSSelector.jsx
index 037e39a1b0..ac920f7705 100644
--- a/web/client/components/mapcontrols/mouseposition/CRSSelector.jsx
+++ b/web/client/components/mapcontrols/mouseposition/CRSSelector.jsx
@@ -7,14 +7,13 @@
*/
var React = require('react');
var ReactDOM = require('react-dom');
-var BootstrapReact = require('react-bootstrap');
-var {Input} = BootstrapReact;
+var {FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
var CoordinatesUtils = require('../../../utils/CoordinatesUtils');
let CRSSelector = React.createClass({
propTypes: {
id: React.PropTypes.string,
- inputProps: React.PropTypes.object,
+ label: React.PropTypes.oneOfType([React.PropTypes.func, React.PropTypes.string, React.PropTypes.object]),
availableCRS: React.PropTypes.object,
crs: React.PropTypes.string,
enabled: React.PropTypes.bool,
@@ -49,20 +48,23 @@ let CRSSelector = React.createClass({
value={this.props.crs}
onChange={this.launchNewCRSAction}
bsSize="small"
- {...this.props.inputProps}>
+ >
{list}
);
} else if (this.props.enabled && !this.props.useRawInput) {
return (
-
- {list}
- );
+
+ {this.props.label}
+
+ {list}
+
+ );
}
return null;
},
diff --git a/web/client/components/mapcontrols/scale/ScaleBox.jsx b/web/client/components/mapcontrols/scale/ScaleBox.jsx
index 6170218094..e24c29bbcf 100644
--- a/web/client/components/mapcontrols/scale/ScaleBox.jsx
+++ b/web/client/components/mapcontrols/scale/ScaleBox.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
-const {Input} = require('react-bootstrap');
+const {FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
const mapUtils = require('../../../utils/MapUtils');
const {isEqual} = require('lodash');
@@ -62,9 +62,12 @@ var ScaleBox = React.createClass({
);
} else {
control = (
-
- {this.getOptions()}
-
+
+ {this.props.label}
+
+ {this.getOptions()}
+
+
);
}
return (
diff --git a/web/client/components/mapcontrols/search/SearchBar.jsx b/web/client/components/mapcontrols/search/SearchBar.jsx
index b16a98adf0..c15358fa4a 100644
--- a/web/client/components/mapcontrols/search/SearchBar.jsx
+++ b/web/client/components/mapcontrols/search/SearchBar.jsx
@@ -7,7 +7,7 @@
*/
var React = require('react');
-var {Input, Glyphicon, OverlayTrigger, Tooltip} = require('react-bootstrap');
+var {FormControl, FormGroup, Glyphicon, OverlayTrigger, Tooltip} = require('react-bootstrap');
var LocaleUtils = require('../../../utils/LocaleUtils');
var Spinner = require('react-spinkit');
@@ -62,8 +62,8 @@ let SearchBar = React.createClass({
searchText: ""
};
},
- onChange() {
- var text = this.refs.input.getValue();
+ onChange(e) {
+ var text = e.target.value;
this.props.onSearchTextChange(text);
if (this.props.typeAhead) {
delay(() => {this.search(); }, this.props.delay);
@@ -100,7 +100,7 @@ let SearchBar = React.createClass({
let tooltip =
{this.props.error && this.props.error.message || null};
addonAfter.push(
);
}
- return addonAfter;
+ return
{addonAfter};
},
render() {
// const innerGlyphicon =
;
@@ -116,25 +116,28 @@ let SearchBar = React.createClass({
return (
-
+
+
+ {this.renderAddonAfter()}
+
+
);
},
search() {
- var text = this.refs.input.getValue();
+ var text = this.props.searchText;
if (text === undefined || text === "") {
this.props.onSearchReset();
} else {
diff --git a/web/client/components/mapcontrols/search/__tests__/SearchBar-test.jsx b/web/client/components/mapcontrols/search/__tests__/SearchBar-test.jsx
index 24b7729900..db78c9482e 100644
--- a/web/client/components/mapcontrols/search/__tests__/SearchBar-test.jsx
+++ b/web/client/components/mapcontrols/search/__tests__/SearchBar-test.jsx
@@ -117,7 +117,7 @@ describe("test the SearchBar", () => {
const spy = expect.spyOn(testHandlers, 'onSearchHandler');
const spyReset = expect.spyOn(testHandlers, 'onPurgeResultsHandler');
- var tb = ReactDOM.render(
, document.getElementById("container"));
+ let tb = ReactDOM.render(, document.getElementById("container"));
let input = TestUtils.scryRenderedDOMComponentsWithTag(tb, "input")[0];
expect(input).toExist();
input = ReactDOM.findDOMNode(input);
diff --git a/web/client/components/maps/forms/Metadata.jsx b/web/client/components/maps/forms/Metadata.jsx
index 56cca6c8b5..208381320a 100644
--- a/web/client/components/maps/forms/Metadata.jsx
+++ b/web/client/components/maps/forms/Metadata.jsx
@@ -14,7 +14,7 @@
*/
const React = require('react');
-const {Input} = require('react-bootstrap');
+const {FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
/**
* A DropDown menu for user details:
@@ -45,33 +45,33 @@ const Metadata = React.createClass({
},
render() {
return ();
},
- setMapNameValue(newName) {
- this.refs.mapName.setValue(newName || "");
+ changeName(e) {
+ this.props.onChange('name', e.target.value);
},
- isValid() {
- if (!this.refs.mapName) {
- return false;
- }
- let pw = this.refs.mapName.getValue();
- return pw !== null;
+ changeDescription(e) {
+ this.props.onChange('description', e.target.value);
}
});
diff --git a/web/client/components/maps/modals/MetadataModal.jsx b/web/client/components/maps/modals/MetadataModal.jsx
index cc9c152e16..07470070d4 100644
--- a/web/client/components/maps/modals/MetadataModal.jsx
+++ b/web/client/components/maps/modals/MetadataModal.jsx
@@ -69,6 +69,12 @@ const MetadataModal = React.createClass({
contextTypes: {
messages: React.PropTypes.object
},
+ getInitialState() {
+ return {
+ name: this.props.map && this.props.map.name || '',
+ description: this.props.map && this.props.map.description || ''
+ };
+ },
getDefaultProps() {
return {
id: "MetadataModal",
@@ -108,9 +114,12 @@ const MetadataModal = React.createClass({
groups: []
};
},
- setMapNameValue(newName) {
- if (this.refs.mapMetadataForm) {
- this.refs.mapMetadataForm.setMapNameValue(newName);
+ componentWillMount() {
+ if (this.props.map && this.props.map.name) {
+ this.setState({
+ name: this.props.map.name,
+ description: this.props.map.description || ''
+ });
}
},
componentWillReceiveProps(nextProps) {
@@ -120,6 +129,12 @@ const MetadataModal = React.createClass({
});
this.props.onClose();
}
+ if (nextProps.map && nextProps.map.name) {
+ this.setState({
+ name: nextProps.map.name,
+ description: nextProps.map.description || ''
+ });
+ }
},
componentDidUpdate(prevProps) {
if (this.props.show && !prevProps.show) {
@@ -145,8 +160,8 @@ const MetadataModal = React.createClass({
let metadata = null;
if ( this.isMetadataChanged() ) {
- let name = this.refs.mapMetadataForm.refs.mapName.getValue();
- let description = this.refs.mapMetadataForm.refs.mapDescription.getValue();
+ let name = this.state.name;
+ let description = this.state.description;
metadata = {
name: name,
description: description
@@ -207,8 +222,10 @@ const MetadataModal = React.createClass({
);
const body = (
{
- this.setState({metadataValid: this.refs.mapMetadataForm.isValid()});
+ onChange={(prop, value ) => {
+ this.setState({
+ [prop]: value
+ });
}}
map={this.props.map}
nameFieldText={}
@@ -296,8 +313,8 @@ const MetadataModal = React.createClass({
},
isMetadataChanged() {
return this.props.map && (
- this.refs.mapMetadataForm.refs.mapDescription.getValue() !== this.props.map.description ||
- this.refs.mapMetadataForm.refs.mapName.getValue() !== this.props.map.name
+ this.state.description !== this.props.map.description ||
+ this.state.name !== this.props.map.name
);
},
isThumbnailChanged() {
diff --git a/web/client/components/misc/FeatureInfoFormatSelector.jsx b/web/client/components/misc/FeatureInfoFormatSelector.jsx
index 49085a7468..465dcef5bd 100644
--- a/web/client/components/misc/FeatureInfoFormatSelector.jsx
+++ b/web/client/components/misc/FeatureInfoFormatSelector.jsx
@@ -10,12 +10,12 @@ const React = require('react');
const ReactDOM = require('react-dom');
const MapInfoUtils = require('../../utils/MapInfoUtils');
-const {Input} = require('react-bootstrap');
+const {FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
var FeatureInfoFormatSelector = React.createClass({
propTypes: {
id: React.PropTypes.string,
- inputProps: React.PropTypes.object,
+ label: React.PropTypes.oneOfType([React.PropTypes.func, React.PropTypes.string, React.PropTypes.object]),
availableInfoFormat: React.PropTypes.object,
infoFormat: React.PropTypes.string,
onInfoFormatChange: React.PropTypes.func
@@ -36,15 +36,16 @@ var FeatureInfoFormatSelector = React.createClass({
});
return (
-
- {list}
-
+
+ {this.props.label}
+
+ {list}
+
+
);
},
launchChangeInfoFormatAction() {
diff --git a/web/client/components/print/Choice.jsx b/web/client/components/print/Choice.jsx
index c0e970c140..5fbb244506 100644
--- a/web/client/components/print/Choice.jsx
+++ b/web/client/components/print/Choice.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
-const {Input} = require('react-bootstrap');
+const {FormControl, FormGroup, ControlLabel} = require('react-bootstrap');
const Choice = React.createClass({
propTypes: {
@@ -24,19 +24,19 @@ const Choice = React.createClass({
selected: ''
};
},
- onChange() {
- this.props.onChange(this.refs.input.getValue());
- },
- getValue() {
- return this.refs.input.getValue();
+ onChange(e) {
+ this.props.onChange(e.target.value);
},
render() {
const options = this.props.items
.map((item) => );
return (
-
- {options}
-
+
+ {this.props.label ? {this.props.label} : null}
+
+ {options}
+
+
);
}
});
diff --git a/web/client/components/print/Font.jsx b/web/client/components/print/Font.jsx
index c46c61fb24..c3ea0435f1 100644
--- a/web/client/components/print/Font.jsx
+++ b/web/client/components/print/Font.jsx
@@ -8,7 +8,7 @@
const React = require('react');
const Choice = require('./Choice');
-const {Grid, Row, Col, Input, Button, Glyphicon} = require('react-bootstrap');
+const {Grid, Row, Col, FormControl, Button, Glyphicon} = require('react-bootstrap');
const Font = React.createClass({
propTypes: {
@@ -35,11 +35,11 @@ const Font = React.createClass({
italic: false
};
},
- onChangeFamily() {
- this.props.onChangeFamily(this.refs.family.getValue());
+ onChangeFamily(family) {
+ this.props.onChangeFamily(family);
},
- onChangeSize() {
- this.props.onChangeSize(this.refs.size.getValue());
+ onChangeSize(size) {
+ this.props.onChangeSize(size);
},
render() {
return (
@@ -55,7 +55,7 @@ const Font = React.createClass({
selected={this.props.family}/>
-
+
diff --git a/web/client/components/print/PrintOption.jsx b/web/client/components/print/PrintOption.jsx
index d2818da28a..f50e465069 100644
--- a/web/client/components/print/PrintOption.jsx
+++ b/web/client/components/print/PrintOption.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
-const {Input} = require('react-bootstrap');
+const {Checkbox} = require('react-bootstrap');
const PrintOption = React.createClass({
propTypes: {
@@ -32,9 +32,9 @@ const PrintOption = React.createClass({
},
render() {
return (
-
+ {this.props.label}
);
},
isEnabled() {
diff --git a/web/client/components/print/PrintOptions.jsx b/web/client/components/print/PrintOptions.jsx
index 39a678985f..29ea4586c6 100644
--- a/web/client/components/print/PrintOptions.jsx
+++ b/web/client/components/print/PrintOptions.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
-const {Input} = require('react-bootstrap');
+const {Radio} = require('react-bootstrap');
const LocaleUtils = require('../../utils/LocaleUtils');
const PrintOptions = React.createClass({
@@ -35,14 +35,13 @@ const PrintOptions = React.createClass({
this.props.onChange(e.target.value);
},
renderOptions() {
- return this.props.options.map((option) => );
+ >{LocaleUtils.getMessageById(this.context.messages, option.label)});
},
render() {
return (
diff --git a/web/client/components/security/forms/LoginForm.jsx b/web/client/components/security/forms/LoginForm.jsx
index 8b0505d420..77ce504257 100644
--- a/web/client/components/security/forms/LoginForm.jsx
+++ b/web/client/components/security/forms/LoginForm.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
-const {Input, ButtonInput, Alert} = require('react-bootstrap');
+const {FormControl, FormGroup, ControlLabel, Button, Alert} = require('react-bootstrap');
const Spinner = require('react-spinkit');
const Message = require('../../../components/I18N/Message');
const LocaleUtils = require('../../../utils/LocaleUtils');
@@ -63,7 +63,11 @@ const LoginForm = React.createClass({
} );
},
getInitialState() {
- return {loading: false};
+ return {
+ loading: false,
+ username: '',
+ password: ''
+ };
},
renderError() {
let error = this.props.loginError;
@@ -84,7 +88,8 @@ const LoginForm = React.createClass({
},
renderSubmit() {
if (this.props.showSubmitButton) {
- return ();
@@ -93,23 +98,41 @@ const LoginForm = React.createClass({
render() {
return (
);
},
+ setUser(e) {
+ this.setState({
+ username: e.target.value
+ });
+ },
+ setPassword(e) {
+ this.setState({
+ password: e.target.value
+ });
+ },
handleSubmit(e) {
e.preventDefault();
this.submit();
@@ -121,8 +144,8 @@ const LoginForm = React.createClass({
},
submit() {
- let username = this.refs.username && this.refs.username.getValue();
- let password = this.refs.password && this.refs.password.getValue();
+ let username = this.state.username;
+ let password = this.state.password;
if (!username || !password) {
this.props.onError({status: 0});
}
diff --git a/web/client/components/security/forms/PasswordReset.jsx b/web/client/components/security/forms/PasswordReset.jsx
index ebe972f9e3..14335817d6 100644
--- a/web/client/components/security/forms/PasswordReset.jsx
+++ b/web/client/components/security/forms/PasswordReset.jsx
@@ -7,7 +7,7 @@
*/
const React = require('react');
-const {Input, Alert} = require('react-bootstrap');
+const {FormControl, FormGroup, ControlLabel, Alert} = require('react-bootstrap');
const Message = require('../../../components/I18N/Message');
const LocaleUtils = require('../../../utils/LocaleUtils');
/**
@@ -27,6 +27,12 @@ const PasswordReset = React.createClass({
contextTypes: {
messages: React.PropTypes.object
},
+ getInitialState() {
+ return {
+ password: '',
+ passwordcheck: ''
+ };
+ },
getDefaultProps() {
return {
// config
@@ -40,16 +46,11 @@ const PasswordReset = React.createClass({
passwordCheckText:
};
},
- getPassword() {
- if (this.isValid()) {
- return this.refs.password.getValue();
- }
- },
getPwStyle() {
- if (!this.refs.password) {
+ if (!this.state.password) {
return null;
}
- let pw = this.refs.password.getValue();
+ let pw = this.state.password;
if (pw.length === 0) {
return null;
}
@@ -57,44 +58,60 @@ const PasswordReset = React.createClass({
},
renderWarning() {
- if (!this.refs.password) {
+ if (!this.state.password) {
return null;
}
- let pw = this.refs.password.getValue();
+ let pw = this.state.password;
if (pw !== null && pw.length < this.props.minPasswordSize && pw.length > 0) {
return ;
- } else if (pw !== null && pw !== this.refs.passwordcheck.getValue() ) {
+ } else if (pw !== null && pw !== this.state.passwordcheck ) {
return ;
}
return null;
},
render() {
return ();
},
- isValid() {
- if (!this.refs.password) {
+ isValid(password, passwordcheck) {
+ let p = password || this.state.password;
+ let p2 = passwordcheck || this.state.passwordcheck;
+ if (!p) {
return false;
}
- let pw = this.refs.password.getValue();
- return pw !== null && pw.length >= this.props.minPasswordSize && pw === this.refs.passwordcheck.getValue();
+ return p !== null && p.length >= this.props.minPasswordSize && p === p2;
+ },
+ changePassword(e) {
+ this.setState({
+ password: e.target.value
+ });
+ this.props.onChange(e.target.value, this.isValid(e.target.value, this.state.passwordcheck));
+ },
+ changePasswordCheck(e) {
+ this.setState({
+ passwordcheck: e.target.value
+ });
+ this.props.onChange(this.state.password, this.isValid(this.state.password, e.target.value));
}
});
diff --git a/web/client/components/security/forms/__tests__/LoginForm-test.jsx b/web/client/components/security/forms/__tests__/LoginForm-test.jsx
index bb6e008bf0..ac71584040 100644
--- a/web/client/components/security/forms/__tests__/LoginForm-test.jsx
+++ b/web/client/components/security/forms/__tests__/LoginForm-test.jsx
@@ -54,12 +54,14 @@ describe("Test the login form component", () => {
let username = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(cmp, "input")[0]);
expect(username).toExist();
username.value = "test";
+ ReactTestUtils.Simulate.change(username);
let password = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(cmp, "input")[1]);
expect(password).toExist();
password.value = "test";
+ ReactTestUtils.Simulate.change(password);
- let button = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(cmp, "input")[2]);
+ let button = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(cmp, "button")[0]);
ReactTestUtils.Simulate.click(button);
expect(spy.calls.length).toEqual(1);
diff --git a/web/client/components/security/forms/__tests__/PasswordReset-test.jsx b/web/client/components/security/forms/__tests__/PasswordReset-test.jsx
index 31bc569ad4..738b2b5fd8 100644
--- a/web/client/components/security/forms/__tests__/PasswordReset-test.jsx
+++ b/web/client/components/security/forms/__tests__/PasswordReset-test.jsx
@@ -36,20 +36,23 @@ describe("Test the password reset form component", () => {
let password = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(cmp, "input")[0]);
expect(password).toExist();
password.value = "test";
+ ReactTestUtils.Simulate.change(password);
expect(cmp.isValid()).toEqual(false);
let password2 = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(cmp, "input")[1]);
expect(password2).toExist();
password2.value = "test2";
+ ReactTestUtils.Simulate.change(password2);
expect(cmp.isValid()).toEqual(false);
password2.value = "test";
+ ReactTestUtils.Simulate.change(password2);
// size is < then 6
expect(cmp.isValid()).toEqual(false);
- expect(!cmp.getPassword()).toEqual(true);
// test valid
password.value = "password";
password2.value = "password";
+ ReactTestUtils.Simulate.change(password);
+ ReactTestUtils.Simulate.change(password2);
expect(cmp.isValid()).toEqual(true);
- expect(cmp.getPassword()).toEqual("password");
});
});
diff --git a/web/client/components/security/modals/PasswordResetModal.jsx b/web/client/components/security/modals/PasswordResetModal.jsx
index 58f6fe25f9..2986b7bd68 100644
--- a/web/client/components/security/modals/PasswordResetModal.jsx
+++ b/web/client/components/security/modals/PasswordResetModal.jsx
@@ -68,11 +68,12 @@ const PasswordResetModal = React.createClass({
getInitialState() {
return {
passwordValid: false,
- loading: false
+ loading: false,
+ password: ''
};
},
onPasswordChange() {
- this.props.onPasswordChange(this.props.user, this.refs.passwordResetForm.getPassword());
+ this.props.onPasswordChange(this.props.user, this.state.password);
},
renderLoading() {
return this.state.loading ? : null;
@@ -98,8 +99,8 @@ const PasswordResetModal = React.createClass({
},
getBody() {
return ( {
- this.setState({passwordValid: this.refs.passwordResetForm.isValid()});
+ onChange={(password, valid) => {
+ this.setState({passwordValid: valid, password});
}} />);
},
renderModal() {
diff --git a/web/client/components/security/modals/__tests__/LoginModal-test.jsx b/web/client/components/security/modals/__tests__/LoginModal-test.jsx
index 62d875b8b7..a3bed05137 100644
--- a/web/client/components/security/modals/__tests__/LoginModal-test.jsx
+++ b/web/client/components/security/modals/__tests__/LoginModal-test.jsx
@@ -11,8 +11,6 @@ const React = require('react');
const ReactDOM = require('react-dom');
const ReactTestUtils = require('react-addons-test-utils');
const LoginForm = require('../LoginModal');
-const {Modal} = require('react-bootstrap');
-
describe("Test the login modal", () => {
beforeEach((done) => {
@@ -34,8 +32,7 @@ describe("Test the login modal", () => {
it('creates empty component with error', () => {
const cmp = ReactDOM.render(, document.getElementById("container"));
expect(cmp).toExist();
- let modalInstance = ReactTestUtils.findRenderedComponentWithType(cmp, Modal);
- let node = ReactTestUtils.scryRenderedDOMComponentsWithClass(modalInstance._modal, "alert-danger");
+ let node = document.getElementsByClassName('alert-danger');
expect(node.length).toBe(1);
});
@@ -53,17 +50,18 @@ describe("Test the login modal", () => {
const spySuccess = expect.spyOn(testHandlers, 'onLoginSuccess');
const cmp = ReactDOM.render(, document.getElementById("container"));
expect(cmp).toExist();
- let modalInstance = ReactTestUtils.findRenderedComponentWithType(cmp, Modal);
- let username = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(modalInstance._modal, "input")[0]);
+ let username = document.getElementsByTagName("input")[0];
expect(username).toExist();
username.value = "test";
+ ReactTestUtils.Simulate.change(username);
- let password = ReactDOM.findDOMNode(ReactTestUtils.scryRenderedDOMComponentsWithTag(modalInstance._modal, "input")[1]);
+ let password = document.getElementsByTagName("input")[1];
expect(password).toExist();
password.value = "test";
+ ReactTestUtils.Simulate.change(password);
- let button = cmp.refs.submit;
- button.props.onClick();
+ let button = document.getElementsByTagName("button")[1];
+ ReactTestUtils.Simulate.click(button);
expect(spy.calls.length).toEqual(1);
ReactDOM.render(, document.getElementById("container"));
expect(spySuccess.calls.length).toEqual(1);
diff --git a/web/client/components/security/modals/__tests__/PasswordResetModal-test.jsx b/web/client/components/security/modals/__tests__/PasswordResetModal-test.jsx
index 8c6eb261a5..7b9fee16b2 100644
--- a/web/client/components/security/modals/__tests__/PasswordResetModal-test.jsx
+++ b/web/client/components/security/modals/__tests__/PasswordResetModal-test.jsx
@@ -11,7 +11,6 @@ const React = require('react');
const ReactDOM = require('react-dom');
const ReactTestUtils = require('react-addons-test-utils');
const PRModal = require('../PasswordResetModal');
-const {Modal} = require('react-bootstrap');
describe("Test password reset modal", () => {
beforeEach((done) => {
@@ -45,16 +44,13 @@ describe("Test password reset modal", () => {
let spy = expect.spyOn(callbacks, 'onPasswordChange');
const cmp = ReactDOM.render(, document.getElementById("container"));
expect(cmp).toExist();
- let modalInstance = ReactTestUtils.findRenderedComponentWithType(cmp, Modal);
- let inputs = ReactTestUtils.scryRenderedDOMComponentsWithTag(modalInstance._modal, "input");
- inputs.forEach((i) => {
+ let inputs = document.getElementsByTagName("input");
+ Array.prototype.forEach.call(inputs, (i) => {
i.value = "password";
-
+ ReactTestUtils.Simulate.change(i);
});
- // force onChange event to enable form button
- cmp.refs.passwordResetForm.refs.password.props.onChange();
- let button = cmp.refs.passwordChangeButton;
- button.props.onClick();
+ let button = document.getElementsByTagName("button")[1];
+ ReactTestUtils.Simulate.click(button);
expect(spy.calls.length).toEqual(1);
});
});
diff --git a/web/client/components/security/modals/__tests__/UserDetailsModal-test.jsx b/web/client/components/security/modals/__tests__/UserDetailsModal-test.jsx
index 49536fe805..310782456e 100644
--- a/web/client/components/security/modals/__tests__/UserDetailsModal-test.jsx
+++ b/web/client/components/security/modals/__tests__/UserDetailsModal-test.jsx
@@ -9,9 +9,7 @@
const expect = require('expect');
const React = require('react');
const ReactDOM = require('react-dom');
-const ReactTestUtils = require('react-addons-test-utils');
const UDModal = require('../UserDetailsModal');
-const {Modal} = require('react-bootstrap');
describe("Test user details modal", () => {
beforeEach((done) => {
@@ -72,7 +70,8 @@ describe("Test user details modal", () => {
};
const cmp = ReactDOM.render(, document.getElementById("container"));
expect(cmp).toExist();
- let modalInstance = ReactTestUtils.findRenderedComponentWithType(cmp, Modal);
- expect(ReactTestUtils.scryRenderedDOMComponentsWithTag(modalInstance._modal, "th").length).toEqual(2);
+ const modalDOM = document.getElementsByClassName('modal')[0];
+
+ expect(modalDOM.getElementsByTagName('th').length).toEqual(2);
});
});
diff --git a/web/client/components/share/ShareLink.jsx b/web/client/components/share/ShareLink.jsx
index 90182f2709..2d89c46493 100644
--- a/web/client/components/share/ShareLink.jsx
+++ b/web/client/components/share/ShareLink.jsx
@@ -15,7 +15,7 @@
const React = require('react');
const CopyToClipboard = require('react-copy-to-clipboard');
const Message = require('../../components/I18N/Message');
-const {Glyphicon, Input, Tooltip, OverlayTrigger, Button} = require('react-bootstrap');
+const {Glyphicon, FormControl, FormGroup, Tooltip, OverlayTrigger, Button} = require('react-bootstrap');
// css required
require('./share.css');
@@ -43,7 +43,12 @@ const ShareLink = React.createClass({
- ev.target.select()} ref="copytext" type="text" value={this.props.shareUrl} addonAfter={copyTo} readOnly/>
+
+
+ ev.target.select()} ref="copytext" type="text" value={this.props.shareUrl} readOnly/>
+ {copyTo}
+
+
);
}
diff --git a/web/client/examples/featuregrid/containers/FeatureGrid.jsx b/web/client/examples/featuregrid/containers/FeatureGrid.jsx
index 66561cf72e..4274d63f49 100644
--- a/web/client/examples/featuregrid/containers/FeatureGrid.jsx
+++ b/web/client/examples/featuregrid/containers/FeatureGrid.jsx
@@ -61,7 +61,7 @@ FeatureGrid.propTypes = {
module.exports = connect((state) => {
return {
- locale: state.locale && state.locale.locale,
+ locale: state.locale && state.locale.current,
messages: state.locale && state.locale.messages || {}
};
})(FeatureGrid);
diff --git a/web/client/examples/mouseposition/components/mouseposition.css b/web/client/examples/mouseposition/components/mouseposition.css
index 258978abae..d739ddcdba 100644
--- a/web/client/examples/mouseposition/components/mouseposition.css
+++ b/web/client/examples/mouseposition/components/mouseposition.css
@@ -141,7 +141,6 @@
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: middle;
- height: 20px;
font-size: 1.2em;
}
#google .label-info {
diff --git a/web/client/examples/plugins/app.jsx b/web/client/examples/plugins/app.jsx
index 53a14a4b05..701c4d191d 100644
--- a/web/client/examples/plugins/app.jsx
+++ b/web/client/examples/plugins/app.jsx
@@ -36,7 +36,7 @@ const startApp = () => {
const {Provider} = require('react-redux');
- const {Input} = require('react-bootstrap');
+ const {FormControl, FormGroup} = require('react-bootstrap');
const SaveAndLoad = require('./components/SaveAndLoad');
@@ -196,11 +196,13 @@ const startApp = () => {