Blame view

imports/client/app/routes.js 4.42 KB
c42d4eeac   themeteorchef   handful of changes
1
  /* eslint-disable max-len */
b48d5cb1c   Deepak   added css
2
3
4
5
6
  import React                                from 'react';
  import { render }                           from 'react-dom';
  import { Router, Route,
    IndexRoute, browserHistory }              from 'react-router';
  import { Meteor }                           from 'meteor/meteor';
48c0461d6   Deepak   some more file re...
7
8
9
10
  
  /**
   * General Components
   */
b48d5cb1c   Deepak   added css
11
  import Index                                from '/imports/client/views/app/module/Index';
8c4a3096b   Deepak   added settings an...
12
  import NotFound                             from '/imports/client/views/org/NotFound';
48c0461d6   Deepak   some more file re...
13
14
15
16
  
  /**
   * Org Components
   */
c4d3e07d0   Deepak   added login/reset...
17
  import { App }                              from '/imports/client/layouts/OrgApp';
39d8f536d   Deepak   some more cleamup
18
  import { AppModule }                        from '/imports/client/views/org/app/module/Index';
b48d5cb1c   Deepak   added css
19
  import { Orgs }                             from '/imports/collections/orgs/index';
13ef5ba8c   Deepak   added a form samp...
20
  import { importCsvController }              from '/imports/client/views/org/importCsv/index'
d0099dd88   Deepak   student detail pa...
21
22
  //admin
  import { StudentDataController }            from '/imports/client/views/org/admin/students/index'
a8c5a7fb6   Deepak   added teachers view
23
  import { teachersViewController }           from '/imports/client/views/org/admin/teachers/index'
8c4a3096b   Deepak   added settings an...
24
25
26
27
28
  //students
  
  //teachers
  
  //parents
d0099dd88   Deepak   student detail pa...
29

13ef5ba8c   Deepak   added a form samp...
30

6be49625f   Deepak   created route def...
31

48c0461d6   Deepak   some more file re...
32
33
34
  /**
   * NonOrg Components
   */
b48d5cb1c   Deepak   added css
35
  import Signup                               from '/imports/client/views/nonOrg/enter/SignupView';
8c4a3096b   Deepak   added settings an...
36
  import { NonOrgApp }                        from '/imports/client/layouts/NonOrgApp';
878ca8a15   Deepak   added signup form...
37
  import {NonOrgAppModule}                    from '/imports/client/views/nonOrg/app/module/Index';
48c0461d6   Deepak   some more file re...
38
39
40
41
  
  /**
   * Invalid Org Components
   */
cc8fd8a94   Deepak   Moved all files t...
42
43
44
45
46
47
  /**
  There are three types of routes
  1)getOrgRoutes: all the routes that should be present for a registered org
  2)getInvalidOrgRoute: all the routes where someone tries to enter a subdomain which hasn't been registered yet (404 mostly :D)
  3)getNonOrgRoutes: all routes linked to normal site, ie signing up a new org. CHeking out demo and everything internal
  **/
6be49625f   Deepak   created route def...
48
49
50
  const getOrgRoutes = () => (
    <Router history={ browserHistory }>
      <Route path="/"                                                           component={ App }>
39d8f536d   Deepak   some more cleamup
51
        <IndexRoute name="index"                                                component={ AppModule } />
13ef5ba8c   Deepak   added a form samp...
52
        <Route name="import"            path="/import"                          component={ importCsvController } />
a8c5a7fb6   Deepak   added teachers view
53
54
        <Route name="student"           path="/students"                        component={ StudentDataController } />
        <Route name="teachers"          path="/teachers"                        component={ teachersViewController } />
6be49625f   Deepak   created route def...
55
56
57
58
        <Route path="*"                                                         component={ NotFound } />
      </Route>
    </Router>
  )
cc8fd8a94   Deepak   Moved all files t...
59

b48d5cb1c   Deepak   added css
60

cc8fd8a94   Deepak   Moved all files t...
61
  const getInvalidOrgRoute = () => (
6be49625f   Deepak   created route def...
62
63
    <Router history={ browserHistory }>
      <Route path="/"                                                           component={ App }>
cc8fd8a94   Deepak   Moved all files t...
64
        <IndexRoute name="index"                                                component={ NotFound } />
6be49625f   Deepak   created route def...
65
66
67
68
        <Route path="*"                                                         component={ NotFound } />
      </Route>
    </Router>
  )
ff976df49   Deepak   added orgs public...
69

cc8fd8a94   Deepak   Moved all files t...
70
  const getNonOrgRoutes = () => (
6be49625f   Deepak   created route def...
71
    <Router history={ browserHistory }>
8c4a3096b   Deepak   added settings an...
72
      <Route path="/"                                                           component={ NonOrgApp }>
878ca8a15   Deepak   added signup form...
73
        <IndexRoute name="index"                                                component={ NonOrgAppModule } />
cc8fd8a94   Deepak   Moved all files t...
74
        <Route name="signup"            path="/signup"                          component={ Signup } />
6be49625f   Deepak   created route def...
75
76
77
78
        <Route path="*"                                                         component={ NotFound } />
      </Route>
    </Router>
  )
2b1ad7917   tmcdeveloper   wip moving to Met...
79

8c4a3096b   Deepak   added settings an...
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
  //Authenticate function to give access to users only
  const authenticate = (nextState, replace) => {
    if (!Meteor.loggingIn() && !Meteor.userId()) {
      replace({
        pathname: '/login',
        state: { nextPathname: nextState.location.pathname },
      });
    }
  };
  
  
  /**
  
  **/
  const detectOrg = () => {
    orgSlug = "";
    var hostnameArray = document.location.hostname.split( "." );
    if(hostnameArray[1]=='localhost'){
      orgSlug = hostnameArray[0];
    }
    if(orgSlug!=""){
      Meteor.call('checkExistingOrg', {slug:orgSlug}, function(err, res) {
        if(res){
          Session.set('orgId', res._id);
          Session.set('orgSlug', orgSlug);
          render(getOrgRoutes(),document.getElementById('app'));
        }else{
          render(getInvalidOrgRoute(),document.getElementById('app'));
        }
      });
    }else{
      render(getNonOrgRoutes(),document.getElementById('app'));
    }
  }
  const checkSlug = (nextState, replace) => {
    orgId = Session.get('orgId');
  }
27ed00b55   Deepak Jha   test
117

6be49625f   Deepak   created route def...
118
119
  Meteor.startup(() => {
    detectOrg();
2b1ad7917   tmcdeveloper   wip moving to Met...
120
  });