TemplatesController.coffee 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. define [
  2. "base"
  3. "ide/permissions/PermissionsManager"
  4. ], (App, PermissionsManager) ->
  5. App.controller "TemplatesController", ($scope, $modal, ide) ->
  6. $scope.openPublishTemplateModal = () ->
  7. resetState = ->
  8. $scope.problemTalkingToTemplateApi = false
  9. resetState()
  10. modal = $modal.open {
  11. templateUrl: "publishProjectAsTemplateModalTemplate"
  12. controller: "PublishProjectAsTemplateModalController"
  13. scope:$scope
  14. }
  15. modal.result.then(resetState, resetState)
  16. App.controller "PublishProjectAsTemplateModalController", ($scope, $modalInstance, ide) ->
  17. user_id = ide.$scope.user.id
  18. $scope.templateDetails = {exists:false}
  19. $scope.state =
  20. publishInflight: false
  21. unpublishInflight: false
  22. problemTalkingToTemplateApi = ->
  23. $scope.problemTalkingToTemplateApi = true
  24. refreshPublishedStatus = ->
  25. ide.socket.emit "getPublishedDetails", user_id, (err, data)->
  26. if !data? or err? then return problemTalkingToTemplateApi()
  27. $scope.templateDetails = data
  28. $scope.templateDetails.publishedDate = moment(data.publishedDate).format("Do MMM YYYY, h:mm a")
  29. $scope.templateDetails.description = data.description
  30. refreshPublishedStatus()
  31. $scope.$watch $scope.problemTalkingToTemplateApi, refreshPublishedStatus
  32. $scope.updateProjectDescription = ->
  33. description = $scope.templateDetails.description
  34. if description?
  35. ide.socket.emit 'updateProjectDescription', description, (err) =>
  36. if err? then return problemTalkingToTemplateApi()
  37. $scope.publishTemplate = ->
  38. $scope.state.publishInflight = true
  39. ide.socket.emit 'publishProjectAsTemplate', user_id, (error) =>
  40. if err? then return problemTalkingToTemplateApi()
  41. refreshPublishedStatus()
  42. $scope.state.publishInflight = false
  43. $scope.unpublishTemplate = ->
  44. $scope.state.unpublishInflight = true
  45. ide.socket.emit 'unPublishProjectAsTemplate', user_id, (error) =>
  46. if err? then return problemTalkingToTemplateApi()
  47. refreshPublishedStatus()
  48. $scope.state.unpublishInflight = false
  49. $scope.cancel = () ->
  50. $modalInstance.dismiss()