2016-01-25 17:14:42 +01:00
ActiveEntry = { } ;
ActiveEntry . isAbc = function ( ) {
return "abc" ;
} ;
if ( Meteor . isClient ) {
Session . setDefault ( 'Photonic.ActiveEntry' , {
logo : {
url : "https://upload.wikimedia.org/wikipedia/commons/1/1a/Photon-photon_scattering.png" ,
displayed : true
} ,
signIn : {
displayFullName : true ,
destination : "/"
} ,
signUp : {
destination : "/"
} ,
themeColors : {
primary : ""
}
} ) ;
}
if ( Meteor . isClient ) {
ActiveEntry . errorMessages = new ReactiveDict ( 'errorMessages' ) ;
ActiveEntry . errorMessages . set ( 'signInError' , false ) ;
2016-02-02 16:25:02 +01:00
// Success messages
ActiveEntry . successMessages = new ReactiveDict ( 'successMessages' ) ;
2016-01-25 17:14:42 +01:00
}
ActiveEntry . configure = function ( configObject ) {
if ( Meteor . isClient ) {
Session . set ( 'Photonic.ActiveEntry' , configObject ) ;
}
} ;
ActiveEntry . verifyPassword = function ( password ) {
if ( password . length === 0 ) {
ActiveEntry . errorMessages . set ( 'password' , 'Password is required' ) ;
2016-02-02 16:25:02 +01:00
ActiveEntry . successMessages . set ( 'password' , null ) ;
} else if ( ! validatePassword ( password ) ) {
2016-02-02 21:31:01 +01:00
ActiveEntry . errorMessages . set ( 'password' , 'Password must have at least 8 characters. It must contain at least 1 uppercase, 1 lowercase, 1 number and 1 special character.' ) ;
2016-02-02 16:25:02 +01:00
ActiveEntry . successMessages . set ( 'password' , null ) ;
} else {
//ActiveEntry.errorMessages.set('password', 'Password present');
ActiveEntry . errorMessages . set ( 'password' , null ) ;
ActiveEntry . successMessages . set ( 'password' , 'Password present' ) ;
2016-01-25 17:14:42 +01:00
}
2016-02-02 16:25:02 +01:00
2016-01-25 17:14:42 +01:00
} ;
2016-02-03 20:41:51 +01:00
2016-01-25 17:14:42 +01:00
ActiveEntry . verifyConfirmPassword = function ( password , confirmPassword ) {
if ( confirmPassword === password ) {
2016-02-02 16:25:02 +01:00
//ActiveEntry.errorMessages.set('confirm', 'Passwords match');
ActiveEntry . errorMessages . set ( 'confirm' , null ) ;
ActiveEntry . successMessages . set ( 'confirm' , 'Passwords match' ) ;
2016-02-02 21:31:01 +01:00
} else {
ActiveEntry . errorMessages . set ( 'confirm' , 'Passwords do not match' ) ;
ActiveEntry . successMessages . set ( 'confirm' , null ) ;
2016-01-25 17:14:42 +01:00
}
} ;
2016-02-03 20:41:51 +01:00
2016-01-25 17:14:42 +01:00
ActiveEntry . verifyEmail = function ( email ) {
if ( email . length === 0 ) {
ActiveEntry . errorMessages . set ( 'email' , 'Email is required' ) ;
2016-02-02 16:25:02 +01:00
ActiveEntry . successMessages . set ( 'email' , null ) ;
2016-01-25 17:14:42 +01:00
} else if ( email . indexOf ( "@" ) === - 1 ) {
ActiveEntry . errorMessages . set ( 'email' , 'Email is poorly formatted' ) ;
2016-02-02 16:25:02 +01:00
ActiveEntry . successMessages . set ( 'email' , null ) ;
2016-01-25 17:14:42 +01:00
} else if ( email . indexOf ( "@" ) >= 0 ) {
2016-02-02 16:25:02 +01:00
//ActiveEntry.errorMessages.set('email', 'Email present');
ActiveEntry . errorMessages . set ( 'email' , null ) ;
ActiveEntry . successMessages . set ( 'email' , 'Email present' ) ;
2016-01-25 17:14:42 +01:00
}
} ;
2016-02-03 20:41:51 +01:00
2016-01-25 17:14:42 +01:00
ActiveEntry . verifyFullName = function ( fullName ) {
if ( fullName . length === 0 ) {
ActiveEntry . errorMessages . set ( 'fullName' , 'Name is required' ) ;
2016-02-02 16:25:02 +01:00
ActiveEntry . successMessages . set ( 'fullName' , null ) ;
2016-01-25 17:14:42 +01:00
} else if ( fullName . indexOf ( " " ) === - 1 ) {
ActiveEntry . errorMessages . set ( 'fullName' , 'Name is probably not complete' ) ;
2016-02-02 16:25:02 +01:00
ActiveEntry . successMessages . set ( 'fullName' , null ) ;
2016-01-25 17:14:42 +01:00
} else if ( fullName . indexOf ( " " ) >= 0 ) {
2016-02-02 16:25:02 +01:00
//ActiveEntry.errorMessages.set('fullName', 'Name present');
ActiveEntry . errorMessages . set ( 'fullName' , null ) ;
ActiveEntry . successMessages . set ( 'fullName' , 'Name present' ) ;
2016-01-25 17:14:42 +01:00
}
} ;
ActiveEntry . signIn = function ( emailValue , passwordValue ) {
ActiveEntry . verifyPassword ( passwordValue ) ;
ActiveEntry . verifyEmail ( emailValue ) ;
Meteor . loginWithPassword ( { email : emailValue } , passwordValue , function ( error , result ) {
if ( error ) {
ActiveEntry . errorMessages . set ( 'signInError' , error . message ) ;
} else {
console . log ( 'result' , result ) ;
var ActiveEntryConfig = Session . get ( 'Photonic.ActiveEntry' ) ;
console . log ( 'ActiveEntryConfig' , JSON . stringify ( ActiveEntryConfig ) ) ;
Router . go ( ActiveEntryConfig . signIn . destination ) ;
}
} ) ;
} ;
ActiveEntry . signUp = function ( emailValue , passwordValue , confirmPassword , fullName ) {
ActiveEntry . verifyEmail ( emailValue ) ;
ActiveEntry . verifyPassword ( passwordValue ) ;
ActiveEntry . verifyConfirmPassword ( passwordValue , confirmPassword ) ;
ActiveEntry . verifyFullName ( fullName ) ;
2016-02-02 21:31:01 +01:00
ActiveEntry . errorMessages . set ( 'signInError' , null ) ;
2016-01-25 17:14:42 +01:00
2016-02-02 16:25:02 +01:00
var errorIsFound = false ;
Object . keys ( ActiveEntry . errorMessages . keys ) . forEach ( function ( key ) {
if ( ActiveEntry . errorMessages . get ( key ) !== "null" && ActiveEntry . errorMessages . get ( key ) !== null ) {
errorIsFound = true ;
}
} ) ;
if ( errorIsFound ) {
return ;
}
2016-01-25 17:14:42 +01:00
Accounts . createUser ( {
email : emailValue ,
password : passwordValue ,
profile : {
fullName : fullName
}
} , function ( error , result ) {
if ( error ) {
console . log ( error ) ;
ActiveEntry . errorMessages . set ( 'signInError' , error . message ) ;
} else {
var ActiveEntryConfig = Session . get ( 'Photonic.ActiveEntry' ) ;
Router . go ( ActiveEntryConfig . signUp . destination ) ;
}
} ) ;
// Meteor.loginWithPassword({email: emailValue}, passwordValue, function (error, result) {
// if (error) {
// console.log(error);
// Session.set('errorMessage', error);
// }
//
// if (result) {
// console.log('result', result);
// }
// var ActiveEntryConfig = Session.get('Photonic.ActiveEntry');
// console.log('ActiveEntryConfig', JSON.stringify(ActiveEntryConfig));
// Router.go(ActiveEntryConfig.signIn.destination);
// });
} ;
ActiveEntry . signOut = function ( ) {
Meteor . logout ( ) ;
} ;
ActiveEntry . reset = function ( ) {
2016-02-02 21:31:01 +01:00
ActiveEntry . errorMessages . set ( 'signInError' , false ) ;
2016-01-25 17:14:42 +01:00
ActiveEntry . errorMessages . set ( 'fullName' , false ) ;
ActiveEntry . errorMessages . set ( 'email' , false ) ;
ActiveEntry . errorMessages . set ( 'confirm' , false ) ;
ActiveEntry . errorMessages . set ( 'password' , false ) ;
} ;
2016-02-03 20:41:51 +01:00
2016-01-25 17:14:42 +01:00
ActiveEntry . logoIsDisplayed = function ( ) {
var ActiveEntryConfig = Session . get ( 'Photonic.ActiveEntry' ) ;
return ActiveEntryConfig . logo . displayed ;
2016-02-03 20:41:51 +01:00
} ;