team-invite-controller.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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', [
  16. '$scope',
  17. '$http',
  18. function ($scope, $http) {
  19. $scope.inflight = false
  20. const hideJoinSubscription = getMeta('ol-cannot-join-subscription')
  21. const hasIndividualRecurlySubscription = getMeta(
  22. 'ol-hasIndividualRecurlySubscription'
  23. )
  24. const groupSSOActive = getMeta('ol-groupSSOActive', false)
  25. if (groupSSOActive) {
  26. const subscriptionId = getMeta('ol-subscriptionId')
  27. $scope.doneLink = `/subscription/${subscriptionId}/sso_enrollment`
  28. } else {
  29. $scope.doneLink = '/project'
  30. }
  31. if (hideJoinSubscription) {
  32. $scope.view = 'restrictedByManagedGroup'
  33. } else if (hasIndividualRecurlySubscription) {
  34. $scope.view = 'hasIndividualRecurlySubscription'
  35. } else {
  36. $scope.view = 'teamInvite'
  37. }
  38. $scope.keepPersonalSubscription = () => ($scope.view = 'teamInvite')
  39. $scope.cancelPersonalSubscription = function () {
  40. $scope.inflight = true
  41. const request = $http.post('/user/subscription/cancel', {
  42. _csrf: window.csrfToken,
  43. })
  44. request.then(function () {
  45. $scope.inflight = false
  46. return ($scope.view = 'teamInvite')
  47. })
  48. return request.catch(() => {
  49. $scope.inflight = false
  50. $scope.cancel_error = true
  51. debugConsole.error('the request failed')
  52. })
  53. }
  54. return ($scope.joinTeam = function () {
  55. $scope.inflight = true
  56. const inviteToken = getMeta('ol-inviteToken')
  57. const request = $http.put(`/subscription/invites/${inviteToken}/`, {
  58. _csrf: window.csrfToken,
  59. })
  60. request.then(function (response) {
  61. const { status } = response
  62. $scope.inflight = false
  63. $scope.view = 'inviteAccepted'
  64. if (status !== 200) {
  65. // assume request worked
  66. return ($scope.requestSent = false)
  67. }
  68. })
  69. return request.catch(() => debugConsole.error('the request failed'))
  70. })
  71. },
  72. ])