routes.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. Router.onBeforeAction('loading');
  2. Router.configure({
  3. loadingTemplate: 'loading'
  4. });
  5. Router.route("/", {
  6. template: "home"
  7. });
  8. Router.route("/login", {
  9. action: function() {
  10. var user = Meteor.user();
  11. if (user === undefined || user === null) {
  12. this.render("login");
  13. } else {
  14. this.redirect("/");
  15. }
  16. }
  17. });
  18. Router.route("/signup", {
  19. action: function() {
  20. var user = Meteor.user();
  21. if (user === undefined || user === null) {
  22. this.render("register");
  23. } else {
  24. this.redirect("/");
  25. }
  26. }
  27. });
  28. Router.route("/terms", {
  29. template: "terms"
  30. });
  31. Router.route("/api", {
  32. template: "api"
  33. });
  34. Router.route("/privacy", {
  35. template: "privacy"
  36. });
  37. Router.route("/about", {
  38. template: "about"
  39. });
  40. Router.route("/admin", {
  41. waitOn: function() {
  42. return Meteor.subscribe("isAdmin", Meteor.userId());
  43. },
  44. action: function() {
  45. var user = Meteor.users.findOne({});
  46. if (user !== undefined && user.profile !== undefined && user.profile.rank === "admin") {
  47. this.render("admin");
  48. } else {
  49. this.redirect("/");
  50. }
  51. }
  52. });
  53. Router.route("/stations", {
  54. waitOn: function() {
  55. return Meteor.subscribe("isAdmin", Meteor.userId());
  56. },
  57. action: function() {
  58. var user = Meteor.users.findOne({});
  59. if (user !== undefined && user.profile !== undefined && user.profile.rank === "admin") {
  60. this.render("stations");
  61. } else {
  62. this.redirect("/");
  63. }
  64. }
  65. });
  66. Router.route("/admin/alerts", {
  67. waitOn: function() {
  68. return Meteor.subscribe("isAdmin", Meteor.userId());
  69. },
  70. action: function() {
  71. var user = Meteor.users.findOne({});
  72. if (user !== undefined && user.profile !== undefined && user.profile.rank === "admin") {
  73. this.render("alertsDashboard");
  74. } else {
  75. this.redirect("/");
  76. }
  77. }
  78. });
  79. Router.route("/:type", {
  80. template: "room"
  81. });
  82. Router.route("/u/:user", {
  83. template: "profile"
  84. });