Update existing forms on the site to use formsy

Or not in the case of the search form
This commit is contained in:
Ray Schamp 2016-05-12 17:42:28 -04:00
parent b5c615b1fa
commit 175a71711d
3 changed files with 20 additions and 23 deletions

View file

@ -4,6 +4,7 @@ var React = require('react');
var Api = require('../../mixins/api.jsx'); var Api = require('../../mixins/api.jsx');
var jar = require('../../lib/jar.js'); var jar = require('../../lib/jar.js');
var languages = require('../../../languages.json'); var languages = require('../../../languages.json');
var Form = require('../forms/form.jsx');
var Select = require('../forms/select.jsx'); var Select = require('../forms/select.jsx');
/** /**
@ -20,9 +21,8 @@ var LanguageChooser = React.createClass({
locale: window._locale locale: window._locale
}; };
}, },
onSetLanguage: function (e) { onSetLanguage: function (name, value) {
e.preventDefault(); jar.set('scratchlanguage', value);
jar.set('scratchlanguage', e.target.value);
window.location.reload(); window.location.reload();
}, },
render: function () { render: function () {
@ -30,17 +30,16 @@ var LanguageChooser = React.createClass({
'language-chooser', 'language-chooser',
this.props.className this.props.className
); );
var languageOptions = Object.keys(this.props.languages).map(function (value) {
return {value: value, label: this.props.languages[value]};
}.bind(this));
return ( return (
<div className={classes}> <Form className={classes}>
<Select name="language" defaultValue={this.props.locale} onChange={this.onSetLanguage}> <Select name="language"
{Object.keys(this.props.languages).map(function (value) { options={languageOptions}
return <option value={value} key={value}> defaultValue={this.props.locale}
{this.props.languages[value]} onChange={this.onSetLanguage} />
</option>; </Form>
}.bind(this))}
</Select>
</div>
); );
} }
}); });

View file

@ -1,9 +1,9 @@
var React = require('react'); var React = require('react');
var ReactDOM = require('react-dom');
var FormattedMessage = require('react-intl').FormattedMessage; var FormattedMessage = require('react-intl').FormattedMessage;
var log = require('../../lib/log.js'); var log = require('../../lib/log.js');
var Form = require('../forms/form.jsx');
var Input = require('../forms/input.jsx'); var Input = require('../forms/input.jsx');
var Button = require('../forms/button.jsx'); var Button = require('../forms/button.jsx');
var Spinner = require('../spinner/spinner.jsx'); var Spinner = require('../spinner/spinner.jsx');
@ -21,13 +21,9 @@ var Login = React.createClass({
waiting: false waiting: false
}; };
}, },
handleSubmit: function (event) { handleSubmit: function (formData) {
event.preventDefault();
this.setState({waiting: true}); this.setState({waiting: true});
this.props.onLogIn({ this.props.onLogIn(formData, function (err) {
'username': ReactDOM.findDOMNode(this.refs.username).value,
'password': ReactDOM.findDOMNode(this.refs.password).value
}, function (err) {
if (err) log.error(err); if (err) log.error(err);
this.setState({waiting: false}); this.setState({waiting: false});
}.bind(this)); }.bind(this));
@ -39,7 +35,7 @@ var Login = React.createClass({
} }
return ( return (
<div className="login"> <div className="login">
<form onSubmit={this.handleSubmit}> <Form onSubmit={this.handleSubmit}>
<label htmlFor="username" key="usernameLabel"> <label htmlFor="username" key="usernameLabel">
<FormattedMessage <FormattedMessage
id='general.username' id='general.username'
@ -69,7 +65,7 @@ var Login = React.createClass({
defaultMessage={'Forgot Password?'} /> defaultMessage={'Forgot Password?'} />
</a> </a>
{error} {error}
</form> </Form>
</div> </div>
); );
} }

View file

@ -11,6 +11,7 @@ var Api = require('../../../mixins/api.jsx');
var Avatar = require('../../avatar/avatar.jsx'); var Avatar = require('../../avatar/avatar.jsx');
var Button = require('../../forms/button.jsx'); var Button = require('../../forms/button.jsx');
var Dropdown = require('../../dropdown/dropdown.jsx'); var Dropdown = require('../../dropdown/dropdown.jsx');
var Form = require('../../forms/form.jsx');
var Input = require('../../forms/input.jsx'); var Input = require('../../forms/input.jsx');
var log = require('../../../lib/log.js'); var log = require('../../../lib/log.js');
var Login = require('../../login/login.jsx'); var Login = require('../../login/login.jsx');
@ -220,7 +221,8 @@ var Navigation = React.createClass({
<Input type="text" <Input type="text"
aria-label={formatMessage({id: 'general.search'})} aria-label={formatMessage({id: 'general.search'})}
placeholder={formatMessage({id: 'general.search'})} placeholder={formatMessage({id: 'general.search'})}
name="q" /> name="q"
noformsy />
</form> </form>
</li> </li>
{this.props.session.status === sessionActions.Status.FETCHED ? ( {this.props.session.status === sessionActions.Status.FETCHED ? (