Blame view

imports/client/app/routes.js 8.67 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';
d532f2f02   Deepak   made changes in r...
7
  import { Users }                          from '/imports/collections/users/index';
48c0461d6   Deepak   some more file re...
8
9
10
11
  
  /**
   * General Components
   */
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
   */
d532f2f02   Deepak   made changes in r...
17
  import { EnterModule }                    from '/imports/client/views/org/enter/module/index';
48c0461d6   Deepak   some more file re...
18

d532f2f02   Deepak   made changes in r...
19
20
21
  
  import { AdminAppModule }                   from '/imports/client/views/org/admin/app/module/Index';
  import { DashboardController }              from '/imports/client/views/org/admin/dashboard/index';
b48d5cb1c   Deepak   added css
22
  import { Orgs }                             from '/imports/collections/orgs/index';
13ef5ba8c   Deepak   added a form samp...
23
  import { importCsvController }              from '/imports/client/views/org/importCsv/index'
5a9f270de   Deepak   added mail views
24
25
26
  /**
  Admin
  **/
ddc029ad3   Deepak   merged Ajay's cha...
27
28
29
30
31
  //settings
  import { AdminSettingsModule }              from '/imports/client/views/org/admin/settings/module/index'
  import { AdminSettingsController }          from '/imports/client/views/org/admin/settings/basic/index'
  import { UserRolesController }              from '/imports/client/views/org/admin/settings/userroles/index'
  import { ClassInfoController }              from '/imports/client/views/org/admin/settings/classinfo/index'
e277faafa   Deepak   added different u...
32
33
34
35
36
  import { AdminUsersModule }                 from '/imports/client/views/org/admin/users/module/index'
  import { AdminUsersListController }         from '/imports/client/views/org/admin/users/list/index'
  import { StudentDataController }            from '/imports/client/views/org/admin/users/students/index'
  import { staffViewController }              from '/imports/client/views/org/admin/users/staff/index'
  import { ParentViewController }             from '/imports/client/views/org/admin/users/parents/index'
5a9f270de   Deepak   added mail views
37
38
39
40
41
42
  //Admin mail
  import { AdminMailModule }                  from '/imports/client/views/org/admin/mailbox/module/index'
  import { AdminInboxController }             from '/imports/client/views/org/admin/mailbox/inbox/index'
  import { AdminComposeMailController }       from '/imports/client/views/org/admin/mailbox/compose/index'
  import { AdminSentMailController }          from '/imports/client/views/org/admin/mailbox/sent/index'
  import { AdminImportantMailController }     from '/imports/client/views/org/admin/mailbox/important/index'
6adcdac35   Sunny Negi   second commit
43
  import { FeeInfoController }              from '/imports/client/views/org/admin/finance/feestrucure/index'
5a9f270de   Deepak   added mail views
44

8c4a3096b   Deepak   added settings an...
45
46
47
48
49
  //students
  
  //teachers
  
  //parents
d0099dd88   Deepak   student detail pa...
50

48c0461d6   Deepak   some more file re...
51
52
53
  /**
   * Invalid Org Components
   */
cc8fd8a94   Deepak   Moved all files t...
54
55
56
57
58
59
  /**
  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
  **/
d532f2f02   Deepak   made changes in r...
60
  const getOrgAdminRoutes = () => (
6be49625f   Deepak   created route def...
61
    <Router history={ browserHistory }>
e277faafa   Deepak   added different u...
62
63
64
65
      <Route path="/"                                                           component = { AdminAppModule } >
        <IndexRoute name="index"                                                component = { DashboardController } />
        <Route name="import"            path="/import"                          component = { importCsvController } />
        <Route name="settings"          path="/settings"                        component = { AdminSettingsController } />
ddc029ad3   Deepak   merged Ajay's cha...
66
67
68
69
70
71
        <Route name="settings"          exact={true} path = "/settings"         component = { AdminSettingsModule}>
          <IndexRoute                                                           component = { AdminSettingsController} />
          <Route name="userroles"       path = "/settings/userroles"            component = { UserRolesController} />
          <Route name="classinfo"       path = "/settings/classinfo"            component = { ClassInfoController} />
        </Route>
        <Route name="users"            exact={true} path = "/users"             component = {AdminUsersModule}>
e277faafa   Deepak   added different u...
72
73
74
75
76
          <IndexRoute                                                           component = {AdminUsersListController} />
          <Route name="students"        path = "/users/students"                component = {StudentDataController} />
          <Route name="staff"           path = "/users/staff"                   component = {staffViewController} />
          <Route name="parents"         path = "/users/parents"                 component = {ParentViewController} />
        </Route>
5a9f270de   Deepak   added mail views
77
78
79
80
81
82
        <Route name="mail"              path = "/mail"                          component = {AdminMailModule}>
          <IndexRoute                                                           component = {AdminInboxController} />
          <Route name="mail-compose"    path = "/mail/compose"                  component = {AdminComposeMailController} />
          <Route name="mail-sent"       path = "/mail/sent"                     component = {AdminSentMailController} />
          <Route name="mail-important"  path = "/mail/important"                component = {AdminImportantMailController} />
        </Route>
6adcdac35   Sunny Negi   second commit
83
84
85
86
        <Route>
          <IndexRoute                                                           component = {AdminUsersListController} />
          <Route name="feestructure"  path = "/fee/feestructure"                component = {FeeInfoController} />
        </Route>
e277faafa   Deepak   added different u...
87
        <Route path="*"                                                         component = { NotFound } />
6be49625f   Deepak   created route def...
88
89
90
      </Route>
    </Router>
  )
d532f2f02   Deepak   made changes in r...
91
92
93
94
95
96
97
  const getOrgNonLoggedInRoutes = () => (
    <Router history={ browserHistory }>
      <Route path="/"                                                           component={ EnterModule }>
        <Route path="*"                                                         component={ NotFound } />
      </Route>
    </Router>
  )
b48d5cb1c   Deepak   added css
98

cc8fd8a94   Deepak   Moved all files t...
99
  const getInvalidOrgRoute = () => (
6be49625f   Deepak   created route def...
100
101
    <Router history={ browserHistory }>
      <Route path="/"                                                           component={ App }>
cc8fd8a94   Deepak   Moved all files t...
102
        <IndexRoute name="index"                                                component={ NotFound } />
6be49625f   Deepak   created route def...
103
104
105
106
        <Route path="*"                                                         component={ NotFound } />
      </Route>
    </Router>
  )
ff976df49   Deepak   added orgs public...
107

bdd4abb61   Deepak   some cleanup
108
109
110
111
112
113
114
  
  /**
   * NonOrg Components
   */
  import Signup                               from '/imports/client/views/nonOrg/enter/SignupView';
  import { NonOrgApp }                        from '/imports/client/layouts/NonOrgApp';
  import {NonOrgAppModule}                    from '/imports/client/views/nonOrg/app/module/Index';
cc8fd8a94   Deepak   Moved all files t...
115
  const getNonOrgRoutes = () => (
6be49625f   Deepak   created route def...
116
    <Router history={ browserHistory }>
8c4a3096b   Deepak   added settings an...
117
      <Route path="/"                                                           component={ NonOrgApp }>
878ca8a15   Deepak   added signup form...
118
        <IndexRoute name="index"                                                component={ NonOrgAppModule } />
cc8fd8a94   Deepak   Moved all files t...
119
        <Route name="signup"            path="/signup"                          component={ Signup } />
6be49625f   Deepak   created route def...
120
121
122
123
        <Route path="*"                                                         component={ NotFound } />
      </Route>
    </Router>
  )
2b1ad7917   tmcdeveloper   wip moving to Met...
124

8c4a3096b   Deepak   added settings an...
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
  //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 = "";
bdd4abb61   Deepak   some cleanup
141
142
    //www.app.ydapp.in
    //
8c4a3096b   Deepak   added settings an...
143
    var hostnameArray = document.location.hostname.split( "." );
bdd4abb61   Deepak   some cleanup
144
    //['www','app', 'ydapp','in'];
ad69864f3   Deepak Jha   added ydapp.in su...
145
146
147
148
149
150
151
152
    if(hostnameArray[0] !== "www"){
      if((hostnameArray[1]==='localhost'||hostnameArray[1]==='ydapp')){
        orgSlug = hostnameArray[0];
      }
    }else{
      if((hostnameArray[2]==='localhost'||hostnameArray[2]==='ydapp')){
        orgSlug = hostnameArray[1];
      }
8c4a3096b   Deepak   added settings an...
153
    }
925ffa9d3   Deepak   changed teachers ...
154

ad69864f3   Deepak Jha   added ydapp.in su...
155
156
    if(orgSlug!==""){
      console.log(orgSlug);
8c4a3096b   Deepak   added settings an...
157
      Meteor.call('checkExistingOrg', {slug:orgSlug}, function(err, res) {
bdd4abb61   Deepak   some cleanup
158
159
        console.log(err);
        console.log(res);
d532f2f02   Deepak   made changes in r...
160

8c4a3096b   Deepak   added settings an...
161
162
163
        if(res){
          Session.set('orgId', res._id);
          Session.set('orgSlug', orgSlug);
d532f2f02   Deepak   made changes in r...
164
165
166
167
168
169
170
171
172
173
174
          if(Meteor.loggingIn() || Meteor.userId()){
            userRole = _.find(res.users, {userId: Meteor.user()._id}).role;
            Session.set('userRole', userRole);
            if(userRole=='ADMIN'){
              render(getOrgAdminRoutes(),document.getElementById('app'));
            }else{
  
            }
          }else{
            render(getOrgNonLoggedInRoutes(),document.getElementById('app'));
          }
8c4a3096b   Deepak   added settings an...
175
176
177
178
179
180
181
182
183
184
185
        }else{
          render(getInvalidOrgRoute(),document.getElementById('app'));
        }
      });
    }else{
      render(getNonOrgRoutes(),document.getElementById('app'));
    }
  }
  const checkSlug = (nextState, replace) => {
    orgId = Session.get('orgId');
  }
27ed00b55   Deepak Jha   test
186

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