ShareProjectModalController.coffee 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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.openMakePublicModal = () ->
  49. $modal.open {
  50. templateUrl: "makePublicModalTemplate"
  51. controller: "MakePublicModalController"
  52. scope: $scope
  53. }
  54. $scope.openMakePrivateModal = () ->
  55. $modal.open {
  56. templateUrl: "makePrivateModalTemplate"
  57. controller: "MakePrivateModalController"
  58. scope: $scope
  59. }
  60. $scope.done = () ->
  61. $modalInstance.close()
  62. $scope.cancel = () ->
  63. $modalInstance.dismiss()
  64. ]
  65. App.controller "MakePublicModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
  66. $scope.inputs = {
  67. privileges: "readAndWrite"
  68. }
  69. $scope.makePublic = () ->
  70. $scope.project.publicAccesLevel = $scope.inputs.privileges
  71. settings.saveProjectSettings({publicAccessLevel: $scope.inputs.privileges})
  72. $modalInstance.close()
  73. $scope.cancel = () ->
  74. $modalInstance.dismiss()
  75. ]
  76. App.controller "MakePrivateModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
  77. $scope.makePrivate = () ->
  78. $scope.project.publicAccesLevel = "private"
  79. settings.saveProjectSettings({publicAccessLevel: "private"})
  80. $modalInstance.close()
  81. $scope.cancel = () ->
  82. $modalInstance.dismiss()
  83. ]