ShareProjectModalController.coffee 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. define [
  2. "base"
  3. ], (App) ->
  4. App.controller "ShareProjectModalController", ["$scope", "$modalInstance", "$timeout", "projectMembers", "$modal", ($scope, $modalInstance, $timeout, projectMembers, $modal) ->
  5. $scope.inputs = {
  6. privileges: "readAndWrite"
  7. email: ""
  8. }
  9. $scope.state = {
  10. error: null
  11. inflight: false
  12. startedFreeTrial: false
  13. }
  14. $modalInstance.opened.then () ->
  15. $timeout () ->
  16. $scope.$broadcast "open"
  17. , 200
  18. INFINITE_COLLABORATORS = -1
  19. $scope.$watch "project.members.length", (noOfMembers) ->
  20. allowedNoOfMembers = $scope.project.features.collaborators
  21. $scope.canAddCollaborators = noOfMembers < allowedNoOfMembers or allowedNoOfMembers == INFINITE_COLLABORATORS
  22. $scope.addMember = () ->
  23. console.log "EMAIL", $scope.inputs.email
  24. return if !$scope.inputs.email? or $scope.inputs.email == ""
  25. $scope.state.error = null
  26. $scope.state.inflight = true
  27. projectMembers
  28. .addMember($scope.inputs.email, $scope.inputs.privileges)
  29. .then (user) ->
  30. $scope.state.inflight = false
  31. $scope.inputs.email = ""
  32. console.log "GOT USER", user
  33. $scope.project.members.push user
  34. .catch () ->
  35. $scope.state.inflight = false
  36. $scope.state.error = "Sorry, something went wrong :("
  37. $scope.removeMember = (member) ->
  38. $scope.state.error = null
  39. $scope.state.inflight = true
  40. projectMembers
  41. .removeMember(member)
  42. .then () ->
  43. $scope.state.inflight = false
  44. index = $scope.project.members.indexOf(member)
  45. return if index == -1
  46. $scope.project.members.splice(index, 1)
  47. .catch () ->
  48. $scope.state.inflight = false
  49. $scope.state.error = "Sorry, something went wrong :("
  50. $scope.startFreeTrial = () ->
  51. ga?('send', 'event', 'subscription-funnel', 'upgraded-free-trial', "projectMembers")
  52. window.open("/user/subscription/plans")
  53. $scope.state.startedFreeTrial = true
  54. $scope.openMakePublicModal = () ->
  55. $modal.open {
  56. templateUrl: "makePublicModalTemplate"
  57. controller: "MakePublicModalController"
  58. scope: $scope
  59. }
  60. $scope.openMakePrivateModal = () ->
  61. $modal.open {
  62. templateUrl: "makePrivateModalTemplate"
  63. controller: "MakePrivateModalController"
  64. scope: $scope
  65. }
  66. $scope.done = () ->
  67. $modalInstance.close()
  68. $scope.cancel = () ->
  69. $modalInstance.dismiss()
  70. ]
  71. App.controller "MakePublicModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
  72. $scope.inputs = {
  73. privileges: "readAndWrite"
  74. }
  75. $scope.makePublic = () ->
  76. $scope.project.publicAccesLevel = $scope.inputs.privileges
  77. settings.saveProjectSettings({publicAccessLevel: $scope.inputs.privileges})
  78. $modalInstance.close()
  79. $scope.cancel = () ->
  80. $modalInstance.dismiss()
  81. ]
  82. App.controller "MakePrivateModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
  83. $scope.makePrivate = () ->
  84. $scope.project.publicAccesLevel = "private"
  85. settings.saveProjectSettings({publicAccessLevel: "private"})
  86. $modalInstance.close()
  87. $scope.cancel = () ->
  88. $modalInstance.dismiss()
  89. ]