ProjectEditorHandler.coffee 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. versioningVisible : !!project.existsInVersioningApi
  13. dropboxEnabled : !!project.existsInDropbox
  14. compiler : project.compiler
  15. description: project.description
  16. spellCheckLanguage: project.spellCheckLanguage
  17. deletedByExternalDataSource : project.deletedByExternalDataSource || false
  18. if options.includeUsers
  19. result.features =
  20. collaborators: -1 # Infinite
  21. versioning: false
  22. dropbox:false
  23. if project.owner_ref.features?
  24. if project.owner_ref.features.collaborators?
  25. result.features.collaborators = project.owner_ref.features.collaborators
  26. if project.owner_ref.features.versioning?
  27. result.features.versioning = project.owner_ref.features.versioning
  28. if project.owner_ref.features.dropbox?
  29. result.features.dropbox = project.owner_ref.features.dropbox
  30. result.owner = @buildUserModelView project.owner_ref, "owner"
  31. result.members = []
  32. for ref in project.readOnly_refs
  33. result.members.push @buildUserModelView ref, "readOnly"
  34. for ref in project.collaberator_refs
  35. result.members.push @buildUserModelView ref, "readAndWrite"
  36. return result
  37. buildUserModelView: (user, privileges) ->
  38. _id : user._id
  39. first_name : user.first_name
  40. last_name : user.last_name
  41. email : user.email
  42. privileges : privileges
  43. signUpDate : user.signUpDate
  44. buildFolderModelView: (folder) ->
  45. _id : folder._id
  46. name : folder.name
  47. folders : @buildFolderModelView childFolder for childFolder in folder.folders
  48. fileRefs : @buildFileModelView file for file in folder.fileRefs
  49. docs : @buildDocModelView doc for doc in folder.docs
  50. buildFileModelView: (file) ->
  51. _id : file._id
  52. name : file.name
  53. buildDocModelView: (doc) ->
  54. _id : doc._id
  55. name : doc.name