ProjectOptionsHandler.coffee 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. Project = require('../../models/Project').Project
  2. logger = require('logger-sharelatex')
  3. _ = require('underscore')
  4. settings = require("settings-sharelatex")
  5. safeCompilers = ["xelatex", "pdflatex", "latex", "lualatex"]
  6. module.exports =
  7. setCompiler : (project_id, compiler, callback = ()->)->
  8. logger.log project_id:project_id, compiler:compiler, "setting the compiler"
  9. compiler = compiler.toLowerCase()
  10. if !_.contains safeCompilers, compiler
  11. return callback()
  12. conditions = {_id:project_id}
  13. update = {compiler:compiler}
  14. Project.update conditions, update, {}, (err)->
  15. if callback?
  16. callback()
  17. setSpellCheckLanguage: (project_id, languageCode, callback = ()->)->
  18. logger.log project_id:project_id, languageCode:languageCode, "setting the spell check language"
  19. languageIsSafe = false
  20. settings.languages.forEach (safeLang)->
  21. if safeLang.code == languageCode
  22. languageIsSafe = true
  23. if languageCode == ""
  24. languageIsSafe = true
  25. if languageIsSafe
  26. conditions = {_id:project_id}
  27. update = {spellCheckLanguage:languageCode}
  28. Project.update conditions, update, {}, (err)->
  29. callback()
  30. else
  31. logger.err project_id:project_id, languageCode:languageCode, "tryed to set unsafe language"
  32. callback()