diff --git a/imports/collections/orgs/publications.js b/imports/collections/orgs/publications.js index 75e11ac..42f4621 100644 --- a/imports/collections/orgs/publications.js +++ b/imports/collections/orgs/publications.js @@ -12,6 +12,5 @@ Meteor.publish('orgs.current', function () { }); Meteor.publish('allOrgsSlug', function () { - console.log(Orgs.find({},{fields: Orgs.publicFields}).fetch()); return Orgs.find({},{fields: Orgs.publicFields}); }); diff --git a/imports/modules/signup.js b/imports/modules/signup.js index 66cc54c..1171c90 100644 --- a/imports/modules/signup.js +++ b/imports/modules/signup.js @@ -5,6 +5,7 @@ import { Accounts } from 'meteor/accounts-base'; import { Bert } from 'meteor/themeteorchef:bert'; import { Loading } from '/imports/client/components/Loading'; import './validation.js'; +import { Orgs } from '/imports/collections/orgs/index'; let component; @@ -31,10 +32,26 @@ const signup = () => { } }); }; - +$.validator.addMethod( + "uniqueSlug", + function(value, element) { + slug = Orgs.find({slug:value}).fetch(); + console.log(slug); + if(slug.length>0){ + return false; + }else{ + return true + } + }, + "Name is Already Taken" +); const validate = () => { $(component.signupForm).validate({ rules: { + orgSlug: { + required: true, + uniqueSlug: true + }, firstName: { required: true, }, @@ -53,6 +70,7 @@ const validate = () => { messages: { firstName: { required: 'First name?', + uniqueSlug: "This Name is already taken" }, lastName: { required: 'Last name?', diff --git a/imports/ui/pages/Signup.js b/imports/ui/pages/Signup.js index e4dac82..bf67559 100644 --- a/imports/ui/pages/Signup.js +++ b/imports/ui/pages/Signup.js @@ -10,7 +10,7 @@ export default class Signup extends React.Component { constructor(props) { super(props); this.state = { - newSlug: "" + orgSlug: "" }; } componentWillMount(){ @@ -20,13 +20,21 @@ export default class Signup extends React.Component { componentDidMount() { handleSignup({ component: this }); } - + handleChange(e) { + this.setState({ orgSlug: e.target.value }); + } handleSubmit(event) { event.preventDefault(); } - checkExistingOrgSlug(e) { - searchOrg = Orgs.find({}).fetch(); - console.log(searchOrg); + checkExistingOrgSlug() { + console.log(this.state.orgSlug); + if(this.state.orgSlug==""){return null} + searchOrg = Orgs.find({slug:this.state.orgSlug}).fetch(); + if(searchOrg.length>0){ + return "error" + }else{ + return "success" + } } render() { return ( @@ -40,15 +48,15 @@ export default class Signup extends React.Component { > - + Organisation name this.checkExistingOrgSlug(e)} + type ="text" + ref ="orgSlug" + name ="orgSlug" + placeholder ="School Name" + onChange = {(e) => this.handleChange(e)} /> @yd.com