InstallerForm.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { translate } from 'react-i18next';
  4. class InstallerForm extends React.Component {
  5. render() {
  6. return (
  7. <form role="form" action="/installer/createAdmin" method="post" id="register-form">
  8. <div className="input-group" id="input-group-username">
  9. <span className="input-group-addon"><i className="icon-user"></i></span>
  10. <input type="text" className="form-control" placeholder={ this.props.t('User ID') }
  11. name="registerForm[username]" defaultValue={this.props.userName} required />
  12. </div>
  13. <p className="help-block">
  14. <span id="help-block-username"></span>
  15. </p>
  16. <div className="input-group">
  17. <span className="input-group-addon"><i className="icon-tag"></i></span>
  18. <input type="text" className="form-control" placeholder={ this.props.t('Name') } name="registerForm[name]" defaultValue={ this.props.name } required />
  19. </div>
  20. <div className="input-group">
  21. <span className="input-group-addon"><i className="icon-envelope"></i></span>
  22. <input type="email" className="form-control" placeholder={ this.props.t('Email') } name="registerForm[email]" defaultValue={ this.props.email } required />
  23. </div>
  24. <div className="input-group">
  25. <span className="input-group-addon"><i className="icon-lock"></i></span>
  26. <input type="password" className="form-control" placeholder={ this.props.t('Password') } name="registerForm[password]" required />
  27. </div>
  28. <input type="hidden" name="_csrf" value={ this.props.csrf } />
  29. <div className="input-group m-t-30 m-b-20 d-flex justify-content-center">
  30. <button type="submit" className="fcbtn btn btn-success btn-1b btn-register">
  31. <span className="btn-label"><i className="icon-user-follow"></i></span>
  32. { this.props.t('Create') }
  33. </button>
  34. </div>
  35. <div className="input-group m-t-30 d-flex justify-content-center">
  36. <a href="https://growi.org" className="link-growi-org">
  37. <span className="growi">GROWI</span>.<span className="org">ORG</span>
  38. </a>
  39. </div>
  40. </form>
  41. );
  42. }
  43. }
  44. InstallerForm.propTypes = {
  45. // i18next
  46. t: PropTypes.func.isRequired,
  47. // for input value
  48. userName: PropTypes.string,
  49. name: PropTypes.string,
  50. email: PropTypes.string,
  51. csrf: PropTypes.string,
  52. };
  53. export default translate()(InstallerForm);