ProjectEditorHandler.coffee 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. _ = require("underscore")
  2. module.exports = ProjectEditorHandler =
  3. buildProjectModelView: (project, members) ->
  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. result.features = # defaults
  18. collaborators: -1 # Infinite
  19. versioning: false
  20. dropbox:false
  21. compileTimeout: 60
  22. compileGroup:"standard"
  23. templates: false
  24. references: false
  25. owner = null
  26. for member in members
  27. if member.privilegeLevel == "admin"
  28. owner = member.user
  29. else
  30. result.members.push @buildUserModelView member.user, member.privilegeLevel
  31. result.owner = @buildUserModelView owner, "owner"
  32. if owner?.features?
  33. if owner.features.collaborators?
  34. result.features.collaborators = owner.features.collaborators
  35. if owner.features.versioning?
  36. result.features.versioning = owner.features.versioning
  37. if owner.features.dropbox?
  38. result.features.dropbox = owner.features.dropbox
  39. if owner.features.compileTimeout?
  40. result.features.compileTimeout = owner.features.compileTimeout
  41. if owner.features.compileGroup?
  42. result.features.compileGroup = owner.features.compileGroup
  43. if owner.features.templates?
  44. result.features.templates = owner.features.templates
  45. if owner.features.references?
  46. result.features.references = owner.features.references
  47. return result
  48. buildUserModelView: (user, privileges) ->
  49. _id : user._id
  50. first_name : user.first_name
  51. last_name : user.last_name
  52. email : user.email
  53. privileges : privileges
  54. signUpDate : user.signUpDate
  55. buildFolderModelView: (folder) ->
  56. fileRefs = _.filter folder.fileRefs, (file)-> file?
  57. _id : folder._id
  58. name : folder.name
  59. folders : @buildFolderModelView childFolder for childFolder in folder.folders
  60. fileRefs : @buildFileModelView file for file in fileRefs
  61. docs : @buildDocModelView doc for doc in folder.docs
  62. buildFileModelView: (file) ->
  63. _id : file._id
  64. name : file.name
  65. buildDocModelView: (doc) ->
  66. _id : doc._id
  67. name : doc.name