ShareProjectModalController.coffee 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. define [
  2. "base"
  3. ], (App) ->
  4. App.controller "ShareProjectModalController", ["$scope", "$modalInstance", "$timeout", "projectMembers", ($scope, $modalInstance, $timeout, projectMembers) ->
  5. $scope.inputs = {
  6. privileges: "readAndWrite"
  7. email: ""
  8. }
  9. $scope.state = {
  10. error: null
  11. inflight: false
  12. }
  13. $modalInstance.opened.then () ->
  14. $timeout () ->
  15. $scope.$broadcast "open"
  16. , 200
  17. INFINITE_COLLABORATORS = -1
  18. $scope.$watch "project.members.length", (noOfMembers) ->
  19. allowedNoOfMembers = $scope.project.features.collaborators
  20. $scope.canAddCollaborators = noOfMembers < allowedNoOfMembers or allowedNoOfMembers == INFINITE_COLLABORATORS
  21. $scope.addMember = () ->
  22. console.log "EMAIL", $scope.inputs.email
  23. return if !$scope.inputs.email? or $scope.inputs.email == ""
  24. $scope.state.error = null
  25. $scope.state.inflight = true
  26. projectMembers
  27. .addMember($scope.inputs.email, $scope.inputs.privileges)
  28. .then (user) ->
  29. $scope.state.inflight = false
  30. $scope.inputs.email = ""
  31. console.log "GOT USER", user
  32. $scope.project.members.push user
  33. .catch () ->
  34. $scope.state.inflight = false
  35. $scope.state.error = "Sorry, something went wrong :("
  36. $scope.removeMember = (member) ->
  37. $scope.state.error = null
  38. $scope.state.inflight = true
  39. projectMembers
  40. .removeMember(member)
  41. .then () ->
  42. $scope.state.inflight = false
  43. index = $scope.project.members.indexOf(member)
  44. return if index == -1
  45. $scope.project.members.splice(index, 1)
  46. .catch () ->
  47. $scope.state.inflight = false
  48. $scope.state.error = "Sorry, something went wrong :("
  49. $scope.done = () ->
  50. $modalInstance.close()
  51. ]