team-invite-controller.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* eslint-disable
  2. max-len,
  3. no-return-assign,
  4. */
  5. // TODO: This file was created by bulk-decaffeinate.
  6. // Fix any style issues and re-enable lint.
  7. /*
  8. * decaffeinate suggestions:
  9. * DS102: Remove unnecessary code created because of implicit returns
  10. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  11. */
  12. import App from '../../base'
  13. import getMeta from '../../utils/meta'
  14. import { debugConsole } from '@/utils/debugging'
  15. export default App.controller('TeamInviteController', function ($scope, $http) {
  16. $scope.inflight = false
  17. const hideJoinSubscription = getMeta('ol-cannot-join-subscription')
  18. const hasIndividualRecurlySubscription = getMeta(
  19. 'ol-hasIndividualRecurlySubscription'
  20. )
  21. if (hideJoinSubscription) {
  22. $scope.view = 'restrictedByManagedGroup'
  23. } else if (hasIndividualRecurlySubscription) {
  24. $scope.view = 'hasIndividualRecurlySubscription'
  25. } else {
  26. $scope.view = 'teamInvite'
  27. }
  28. $scope.keepPersonalSubscription = () => ($scope.view = 'teamInvite')
  29. $scope.cancelPersonalSubscription = function () {
  30. $scope.inflight = true
  31. const request = $http.post('/user/subscription/cancel', {
  32. _csrf: window.csrfToken,
  33. })
  34. request.then(function () {
  35. $scope.inflight = false
  36. return ($scope.view = 'teamInvite')
  37. })
  38. return request.catch(() => {
  39. $scope.inflight = false
  40. $scope.cancel_error = true
  41. debugConsole.error('the request failed')
  42. })
  43. }
  44. return ($scope.joinTeam = function () {
  45. $scope.inflight = true
  46. const inviteToken = getMeta('ol-inviteToken')
  47. const request = $http.put(`/subscription/invites/${inviteToken}/`, {
  48. _csrf: window.csrfToken,
  49. })
  50. request.then(function (response) {
  51. const { status } = response
  52. $scope.inflight = false
  53. $scope.view = 'inviteAccepted'
  54. if (status !== 200) {
  55. // assume request worked
  56. return ($scope.requestSent = false)
  57. }
  58. })
  59. return request.catch(() => debugConsole.error('the request failed'))
  60. })
  61. })