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!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.0KB

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