ScraperInterface.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import React from 'react'
  2. import { FormGroup, ControlLabel, FormControl, Button } from 'react-bootstrap'
  3. class ScraperLogin extends React.Component {
  4. constructor () {
  5. super()
  6. this.loginStart = this.loginStart.bind(this)
  7. }
  8. loginStart (event) {
  9. event.preventDefault()
  10. const { actions } = this.props
  11. actions.loginStart({id: this.formId.value, pwd: this.formPwd.value})
  12. }
  13. render () {
  14. const { loginState } = this.props.state
  15. return (
  16. <form>
  17. <FormGroup controlId='id'>
  18. <ControlLabel>Turniernummer</ControlLabel>
  19. <FormControl inputRef={input => { this.formId = input }} type='text' placeholder='Turniernummer eingeben' />
  20. </FormGroup>
  21. <FormGroup controlId='pwd'>
  22. <ControlLabel>Passwort</ControlLabel>
  23. <FormControl inputRef={input => { this.formPwd = input }} type='password' />
  24. </FormGroup>
  25. <Button type='submit' onClick={this.loginStart}>
  26. Login
  27. </Button>
  28. {(loginState === 'not_logged_in')
  29. ? <div className='alert alert-warning'>Nicht eingeloggt.</div>
  30. : (loginState === 'logging_in')
  31. ? <div className='alert alert-info'>Login läft...</div>
  32. : (loginState === 'login_failure')
  33. ? <div className='alert alert-danger'>Login fehlgeschlagen.</div>
  34. : <div className='alert alert-info'>Erfolgreich eingeloggt.</div>
  35. }
  36. </form>
  37. )
  38. }
  39. }
  40. class ScraperTournamentSelection extends React.Component {
  41. render () {
  42. return (
  43. <form>
  44. <FormGroup controlId='formControlsSelect'>
  45. <ControlLabel>Turnier</ControlLabel>
  46. <FormControl componentClass='select' placeholder='Turnier auswählen'>
  47. <option value='select'>select</option>
  48. <option value='other'>...</option>
  49. </FormControl>
  50. </FormGroup>
  51. <Button type='submit'>
  52. Turnier laden
  53. </Button>
  54. </form>
  55. )
  56. }
  57. }
  58. class ScraperProgress extends React.Component {
  59. render () {
  60. return (
  61. <div />
  62. )
  63. }
  64. }
  65. class ScraperInterface extends React.Component {
  66. render () {
  67. const { actions } = this.props
  68. return (
  69. <div>
  70. <ScraperLogin {...this.props} />
  71. <ScraperTournamentSelection />
  72. <button onClick={actions.startScraping}>Turnier laden</button>
  73. <ScraperProgress />
  74. </div>
  75. )
  76. }
  77. }
  78. export default ScraperInterface