ProjectEditorHandler.coffee 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. deletedDocs: project.deletedDocs
  18. if options.includeUsers
  19. result.features =
  20. collaborators: -1 # Infinite
  21. versioning: false
  22. dropbox:false
  23. compileTimeout: 60
  24. compileGroup:"standard"
  25. if project.owner_ref.features?
  26. if project.owner_ref.features.collaborators?
  27. result.features.collaborators = project.owner_ref.features.collaborators
  28. if project.owner_ref.features.versioning?
  29. result.features.versioning = project.owner_ref.features.versioning
  30. if project.owner_ref.features.dropbox?
  31. result.features.dropbox = project.owner_ref.features.dropbox
  32. if project.owner_ref.features.compileTimeout?
  33. result.features.compileTimeout = project.owner_ref.features.compileTimeout
  34. if project.owner_ref.features.compileGroup?
  35. result.features.compileGroup = project.owner_ref.features.compileGroup
  36. result.owner = @buildUserModelView project.owner_ref, "owner"
  37. result.members = []
  38. for ref in project.readOnly_refs
  39. result.members.push @buildUserModelView ref, "readOnly"
  40. for ref in project.collaberator_refs
  41. result.members.push @buildUserModelView ref, "readAndWrite"
  42. return result
  43. buildUserModelView: (user, privileges) ->
  44. _id : user._id
  45. first_name : user.first_name
  46. last_name : user.last_name
  47. email : user.email
  48. privileges : privileges
  49. signUpDate : user.signUpDate
  50. buildFolderModelView: (folder) ->
  51. _id : folder._id
  52. name : folder.name
  53. folders : @buildFolderModelView childFolder for childFolder in folder.folders
  54. fileRefs : @buildFileModelView file for file in folder.fileRefs
  55. docs : @buildDocModelView doc for doc in folder.docs
  56. buildFileModelView: (file) ->
  57. _id : file._id
  58. name : file.name
  59. buildDocModelView: (doc) ->
  60. _id : doc._id
  61. name : doc.name