ShareProjectModalController.coffee 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. 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. $scope.project.members.push user
  32. .catch () ->
  33. $scope.state.inflight = false
  34. $scope.state.error = "Sorry, something went wrong :("
  35. $scope.removeMember = (member) ->
  36. $scope.state.error = null
  37. $scope.state.inflight = true
  38. projectMembers
  39. .removeMember(member)
  40. .then () ->
  41. $scope.state.inflight = false
  42. index = $scope.project.members.indexOf(member)
  43. return if index == -1
  44. $scope.project.members.splice(index, 1)
  45. .catch () ->
  46. $scope.state.inflight = false
  47. $scope.state.error = "Sorry, something went wrong :("
  48. $scope.startFreeTrial = () ->
  49. ga?('send', 'event', 'subscription-funnel', 'upgraded-free-trial', "projectMembers")
  50. window.open("/user/subscription/plans")
  51. $scope.state.startedFreeTrial = true
  52. $scope.openMakePublicModal = () ->
  53. $modal.open {
  54. templateUrl: "makePublicModalTemplate"
  55. controller: "MakePublicModalController"
  56. scope: $scope
  57. }
  58. $scope.openMakePrivateModal = () ->
  59. $modal.open {
  60. templateUrl: "makePrivateModalTemplate"
  61. controller: "MakePrivateModalController"
  62. scope: $scope
  63. }
  64. $scope.done = () ->
  65. $modalInstance.close()
  66. $scope.cancel = () ->
  67. $modalInstance.dismiss()
  68. ]
  69. App.controller "MakePublicModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
  70. $scope.inputs = {
  71. privileges: "readAndWrite"
  72. }
  73. $scope.makePublic = () ->
  74. $scope.project.publicAccesLevel = $scope.inputs.privileges
  75. settings.saveProjectSettings({publicAccessLevel: $scope.inputs.privileges})
  76. $modalInstance.close()
  77. $scope.cancel = () ->
  78. $modalInstance.dismiss()
  79. ]
  80. App.controller "MakePrivateModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
  81. $scope.makePrivate = () ->
  82. $scope.project.publicAccesLevel = "private"
  83. settings.saveProjectSettings({publicAccessLevel: "private"})
  84. $modalInstance.close()
  85. $scope.cancel = () ->
  86. $modalInstance.dismiss()
  87. ]