diff --git a/.meteor/packages b/.meteor/packages
index 3a5c064..272054d 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -8,7 +8,7 @@ meteor-base@1.0.4 # Packages every Meteor app needs to have
mobile-experience@1.0.4 # Packages for a great mobile UX
mongo@1.1.15 # The database Meteor supports right now
reactive-var@1.0.11 # Reactive variable for tracker
-session@1.1.7
+session
tracker@1.1.2 # Meteor's client-side reactive programming library
standard-minifier-css@1.3.3 # CSS minifier run for production mode
diff --git a/imports/collections/orgs/methods.js b/imports/collections/orgs/methods.js
new file mode 100644
index 0000000..ce69eb5
--- /dev/null
+++ b/imports/collections/orgs/methods.js
@@ -0,0 +1,36 @@
+// import { } from '/imports/collections/orgs/methods';
+import _ from 'lodash';
+import { Meteor } from 'meteor/meteor';
+import { ValidatedMethod } from 'meteor/mdg:validated-method';
+import { SimpleSchema } from 'meteor/aldeed:simple-schema';
+import { DDPRateLimiter } from 'meteor/ddp-rate-limiter';
+import { Bert } from 'meteor/themeteorchef:bert';
+import { Users } from '/imports/collections/users/index';
+import { Orgs } from '/imports/collections/orgs/index';
+// import { sendNotificationAPN } from '/imports/server/push/methods';
+export const orgMethod = new ValidatedMethod({
+ name: 'org.method',
+
+ validate: new SimpleSchema({
+ itemId: { type: String },
+ }).validator(),
+
+ run({itemId}) {
+ return {};
+ },
+
+});
+
+export const checkExistingOrg = new ValidatedMethod({
+ name: 'checkExistingOrg',
+ validate: new SimpleSchema({
+ slug: { type: String },
+ }).validator(),
+
+ run({slug}) {
+ org = Orgs.find({slug:slug}).fetch();
+ console.log(org);
+ return org;
+ },
+
+});
diff --git a/imports/modules/signup.js b/imports/modules/signup.js
index 1171c90..4376a4e 100644
--- a/imports/modules/signup.js
+++ b/imports/modules/signup.js
@@ -68,9 +68,12 @@ const validate = () => {
},
},
messages: {
+ orgSlug: {
+ required: 'Choose your school url',
+ uniqueSlug: 'This has already been taken!'
+ },
firstName: {
required: 'First name?',
- uniqueSlug: "This Name is already taken"
},
lastName: {
required: 'Last name?',
diff --git a/imports/startup/client/routes.js b/imports/startup/client/routes.js
index 572cff1..7b1042e 100644
--- a/imports/startup/client/routes.js
+++ b/imports/startup/client/routes.js
@@ -1,20 +1,22 @@
/* 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 App from '../../ui/layouts/App.js';
-import Documents from '../../ui/pages/Documents.js';
-import NewDocument from '../../ui/pages/NewDocument.js';
-import EditDocument from '../../ui/containers/EditDocument.js';
-import ViewDocument from '../../ui/containers/ViewDocument.js';
-import Index from '../../ui/pages/Index.js';
-import Login from '../../ui/pages/Login.js';
-import NotFound from '../../ui/pages/NotFound.js';
-import RecoverPassword from '../../ui/pages/RecoverPassword.js';
-import ResetPassword from '../../ui/pages/ResetPassword.js';
-import Signup from '../../ui/pages/Signup.js';
+import React from 'react';
+import { render } from 'react-dom';
+import { Router, Route, IndexRoute, browserHistory } from 'react-router';
+import { Meteor } from 'meteor/meteor';
+import App from '../../ui/layouts/App.js';
+import Documents from '../../ui/pages/Documents.js';
+import NewDocument from '../../ui/pages/NewDocument.js';
+import EditDocument from '../../ui/containers/EditDocument.js';
+import ViewDocument from '../../ui/containers/ViewDocument.js';
+import Index from '../../ui/pages/Index.js';
+import Login from '../../ui/pages/Login.js';
+import NotFound from '../../ui/pages/NotFound.js';
+import RecoverPassword from '../../ui/pages/RecoverPassword.js';
+import ResetPassword from '../../ui/pages/ResetPassword.js';
+import Signup from '../../ui/pages/Signup.js';
+import { Orgs } from '/imports/collections/orgs/index';
+
const authenticate = (nextState, replace) => {
if (!Meteor.loggingIn() && !Meteor.userId()) {
@@ -24,34 +26,63 @@ const authenticate = (nextState, replace) => {
});
}
};
-const detectOrg = () => {
+const detectOrg = (nextState, replace) => {
+ 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.length>0){
+ console.log(res);
+ console.log(res[0]._id._str);
+ Session.set('orgId', res[0]._id._str);
+ render(getOrgRoutes(),document.getElementById('react-root'));
+ }else{
+ render(getInvalidOrgRoute(),document.getElementById('react-root'));
+ }
+ });
}else{
- orgSlug = hostnameArray[0];
+ render(getNonOrgRoutes(),document.getElementById('react-root'));
}
-
}
+const checkSlug = (nextState, replace) => {
+ orgId = Session.get('orgId');
+ console.log("orgId");
+ console.log(orgId);
+}
+const getOrgRoutes = () => (
+
+
+
+
+
+
+
+
+
+)
+const getNonOrgRoutes = () => (
+
+
+
+
+
+
+
+)
+const getInvalidOrgRoute = () => (
+
+
+
+
+
+
+)
-Meteor.startup(() => {
- render(
-
-
-
-
-
-
-
-
-
-
-
-
-
- ,
- document.getElementById('react-root')
- );
+Meteor.startup(() => {
+ detectOrg();
});
diff --git a/imports/startup/server/api.js b/imports/startup/server/api.js
index d284bbb..a5e8d21 100644
--- a/imports/startup/server/api.js
+++ b/imports/startup/server/api.js
@@ -1,2 +1,5 @@
import '../../api/documents/methods.js';
import '../../api/documents/server/publications.js';
+
+import '/imports/collections/orgs/publications'
+import '/imports/collections/orgs/methods';
diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js
index 1e35f2a..7806cb2 100644
--- a/imports/startup/server/index.js
+++ b/imports/startup/server/index.js
@@ -3,7 +3,3 @@ import './accounts/creation';
import './browser-policy';
import './fixtures';
import './api';
-
-
-
-import '/imports/collections/orgs/publications'