HomeController.coffee 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. logger = require('logger-sharelatex')
  2. Settings = require('settings-sharelatex')
  3. _ = require('underscore')
  4. Features = require "../../infrastructure/Features"
  5. Path = require "path"
  6. fs = require "fs"
  7. ErrorController = require "../Errors/ErrorController"
  8. AuthenticationController = require('../Authentication/AuthenticationController')
  9. slHomepageExists = fs.existsSync Path.resolve(__dirname + "/../../../views/external/home/sl.pug")
  10. v2HomepageExists = fs.existsSync Path.resolve(__dirname + "/../../../views/external/home/v2.pug")
  11. module.exports = HomeController =
  12. index : (req,res)->
  13. if AuthenticationController.isUserLoggedIn(req)
  14. if req.query.scribtex_path?
  15. res.redirect "/project?scribtex_path=#{req.query.scribtex_path}"
  16. else
  17. res.redirect '/project'
  18. else
  19. HomeController.home(req, res)
  20. home: (req, res, next)->
  21. if Features.hasFeature('homepage') and !Settings.overleaf and slHomepageExists
  22. res.render 'external/home/sl'
  23. else if Features.hasFeature('homepage') and Settings.overleaf and v2HomepageExists
  24. res.render 'external/home/v2'
  25. else
  26. res.redirect '/login'
  27. externalPage: (page, title) ->
  28. return (req, res, next = (error) ->) ->
  29. path = Path.resolve(__dirname + "/../../../views/external/#{page}.pug")
  30. fs.exists path, (exists) -> # No error in this callback - old method in Node.js!
  31. if exists
  32. res.render "external/#{page}.pug",
  33. title: title
  34. else
  35. ErrorController.notFound(req, res, next)