ProjectEditorHandler.coffee 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. module.exports = ProjectEditorHandler =
  2. buildProjectModelView: (project, options) ->
  3. options ||= {}
  4. if !options.includeUsers?
  5. options.includeUsers = true
  6. result =
  7. _id : project._id
  8. name : project.name
  9. rootDoc_id : project.rootDoc_id
  10. rootFolder : [@buildFolderModelView project.rootFolder[0]]
  11. publicAccesLevel : project.publicAccesLevel
  12. dropboxEnabled : !!project.existsInDropbox
  13. compiler : project.compiler
  14. description: project.description
  15. spellCheckLanguage: project.spellCheckLanguage
  16. deletedByExternalDataSource : project.deletedByExternalDataSource || false
  17. if options.includeUsers
  18. result.features =
  19. collaborators: -1 # Infinite
  20. versioning: false
  21. dropbox:false
  22. if project.owner_ref.features?
  23. if project.owner_ref.features.collaborators?
  24. result.features.collaborators = project.owner_ref.features.collaborators
  25. if project.owner_ref.features.versioning?
  26. result.features.versioning = project.owner_ref.features.versioning
  27. if project.owner_ref.features.dropbox?
  28. result.features.dropbox = project.owner_ref.features.dropbox
  29. result.owner = @buildUserModelView project.owner_ref, "owner"
  30. result.members = []
  31. for ref in project.readOnly_refs
  32. result.members.push @buildUserModelView ref, "readOnly"
  33. for ref in project.collaberator_refs
  34. result.members.push @buildUserModelView ref, "readAndWrite"
  35. return result
  36. buildUserModelView: (user, privileges) ->
  37. _id : user._id
  38. first_name : user.first_name
  39. last_name : user.last_name
  40. email : user.email
  41. privileges : privileges
  42. signUpDate : user.signUpDate
  43. buildFolderModelView: (folder) ->
  44. _id : folder._id
  45. name : folder.name
  46. folders : @buildFolderModelView childFolder for childFolder in folder.folders
  47. fileRefs : @buildFileModelView file for file in folder.fileRefs
  48. docs : @buildDocModelView doc for doc in folder.docs
  49. buildFileModelView: (file) ->
  50. _id : file._id
  51. name : file.name
  52. buildDocModelView: (doc) ->
  53. _id : doc._id
  54. name : doc.name