ProjectEditorHandler.coffee 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. _ = require("underscore")
  2. module.exports = ProjectEditorHandler =
  3. buildProjectModelView: (project, members, invites) ->
  4. result =
  5. _id : project._id
  6. name : project.name
  7. rootDoc_id : project.rootDoc_id
  8. rootFolder : [@buildFolderModelView project.rootFolder[0]]
  9. publicAccesLevel : project.publicAccesLevel
  10. dropboxEnabled : !!project.existsInDropbox
  11. compiler : project.compiler
  12. description: project.description
  13. spellCheckLanguage: project.spellCheckLanguage
  14. deletedByExternalDataSource : project.deletedByExternalDataSource || false
  15. deletedDocs: project.deletedDocs
  16. members: []
  17. invites: invites || []
  18. owner = null
  19. for member in members
  20. if member.privilegeLevel == "owner"
  21. owner = member.user
  22. else
  23. result.members.push @buildUserModelView member.user, member.privilegeLevel
  24. if owner?
  25. result.owner = @buildUserModelView owner, "owner"
  26. result.features = _.defaults(owner?.features or {}, {
  27. collaborators: -1 # Infinite
  28. versioning: false
  29. dropbox:false
  30. compileTimeout: 60
  31. compileGroup:"standard"
  32. templates: false
  33. references: false
  34. })
  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. fileRefs = _.filter (folder.fileRefs or []), (file)-> file?
  45. _id : folder._id
  46. name : folder.name
  47. folders : @buildFolderModelView childFolder for childFolder in (folder.folders or [])
  48. fileRefs : @buildFileModelView file for file in fileRefs
  49. docs : @buildDocModelView doc for doc in (folder.docs or [])
  50. buildFileModelView: (file) ->
  51. _id : file._id
  52. name : file.name
  53. buildDocModelView: (doc) ->
  54. _id : doc._id
  55. name : doc.name