/* eslint-disable max-len */
import React from 'react';
import { render } from 'react-dom';
import { Router, Route,
IndexRoute, browserHistory } from 'react-router';
import { Meteor } from 'meteor/meteor';
import { Users } from '/imports/collections/users/index';
/**
* General Components
*/
import NotFound from '/imports/client/views/org/NotFound';
/**
* Org Components
*/
import { EnterModule } from '/imports/client/views/org/enter/module/index';
import { AdminAppModule } from '/imports/client/views/org/admin/app/module/Index';
import { DashboardController } from '/imports/client/views/org/admin/dashboard/index';
import { Orgs } from '/imports/collections/orgs/index';
import { importCsvController } from '/imports/client/views/org/importCsv/index'
/**
Admin
**/
//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'
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'
//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'
import { FeeInfoController } from '/imports/client/views/org/admin/finance/feestrucure/index'
//students
//teachers
//parents
/**
* Invalid Org Components
*/
/**
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
**/
const getOrgAdminRoutes = () => (
)
const getOrgNonLoggedInRoutes = () => (
)
const getInvalidOrgRoute = () => (
)
/**
* 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';
const getNonOrgRoutes = () => (
)
//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 = "";
//www.app.ydapp.in
//
var hostnameArray = document.location.hostname.split( "." );
//['www','app', 'ydapp','in'];
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];
}
}
if(orgSlug!==""){
console.log(orgSlug);
Meteor.call('checkExistingOrg', {slug:orgSlug}, function(err, res) {
console.log(err);
console.log(res);
if(res){
Session.set('orgId', res._id);
Session.set('orgSlug', orgSlug);
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'));
}
}else{
render(getInvalidOrgRoute(),document.getElementById('app'));
}
});
}else{
render(getNonOrgRoutes(),document.getElementById('app'));
}
}
const checkSlug = (nextState, replace) => {
orgId = Session.get('orgId');
}
Meteor.startup(() => {
detectOrg();
});