team-invite-controller.js 2.1 KB

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