IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

61 řádky
2.1KB

  1. import { h, Component } from 'preact';
  2. import { route } from 'preact-router';
  3. import WBNavbar from 'wb-navbar';
  4. import linkState from 'linkstate';
  5. import makeArvadosRequest from 'make-arvados-request';
  6. class WBSignIn extends Component {
  7. onSubmit() {
  8. let { appState } = this.props;
  9. let { arvHost, arvToken } = this.state;
  10. let prom = makeArvadosRequest(arvHost, arvToken, '/arvados/v1/users/current');
  11. prom = prom.then(xhr => {
  12. window.localStorage['arvHost'] = arvHost;
  13. window.localStorage['arvToken'] = arvToken;
  14. window.localStorage['currentUser'] = JSON.stringify(xhr.response);
  15. appState.arvHost = arvHost;
  16. appState.arvToken = arvToken;
  17. appState.currentUser = xhr.response;
  18. route('/browse/' + xhr.response['uuid']);
  19. });
  20. prom = prom.catch(() => {
  21. alert('Sign in unsuccessful. Verify your input and try again.')
  22. });
  23. }
  24. render({}, { arvHost, arvToken }) {
  25. return (
  26. <div>
  27. <WBNavbar />
  28. <div class="container my-3">
  29. <div class="row justify-content-center">
  30. <div class="col-6">
  31. <h1>Sign In</h1>
  32. <form>
  33. <div class="form-group">
  34. <label for="arvHost">Arvados API Host</label>
  35. <input type="text" class="form-control" id="arvHost"
  36. placeholder="Enter Arvados API Host"
  37. value={ arvHost }
  38. onInput={ linkState(this, 'arvHost') } />
  39. </div>
  40. <div class="form-group">
  41. <label for="arvToken">Token</label>
  42. <input type="text" class="form-control" id="arvToken"
  43. placeholder="Enter Arvados API Token"
  44. value={ arvToken }
  45. onInput={ linkState(this, 'arvToken') } />
  46. </div>
  47. <button type="submit" class="btn btn-primary"
  48. onclick={ e => { e.preventDefault(); this.onSubmit(); } }>Submit</button>
  49. </form>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. );
  55. }
  56. }
  57. export default WBSignIn;