178 lines
5.6 KiB
JavaScript
Executable File
178 lines
5.6 KiB
JavaScript
Executable File
|
|
|
|
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);
|
|
|
|
// Success messages
|
|
ActiveEntry.successMessages = new ReactiveDict('successMessages');
|
|
}
|
|
|
|
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');
|
|
ActiveEntry.successMessages.set('password', null);
|
|
} else if (!validatePassword(password)) {
|
|
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.');
|
|
ActiveEntry.successMessages.set('password', null);
|
|
} else {
|
|
//ActiveEntry.errorMessages.set('password', 'Password present');
|
|
ActiveEntry.errorMessages.set('password', null);
|
|
ActiveEntry.successMessages.set('password', 'Password present');
|
|
}
|
|
|
|
};
|
|
|
|
ActiveEntry.verifyConfirmPassword = function (password, confirmPassword) {
|
|
if (confirmPassword === password) {
|
|
//ActiveEntry.errorMessages.set('confirm', 'Passwords match');
|
|
ActiveEntry.errorMessages.set('confirm', null);
|
|
ActiveEntry.successMessages.set('confirm', 'Passwords match');
|
|
} else{
|
|
ActiveEntry.errorMessages.set('confirm', 'Passwords do not match');
|
|
ActiveEntry.successMessages.set('confirm', null);
|
|
}
|
|
};
|
|
|
|
ActiveEntry.verifyEmail = function (email) {
|
|
if (email.length === 0) {
|
|
ActiveEntry.errorMessages.set('email', 'Email is required');
|
|
ActiveEntry.successMessages.set('email', null);
|
|
} else if (email.indexOf("@") === -1){
|
|
ActiveEntry.errorMessages.set('email', 'Email is poorly formatted');
|
|
ActiveEntry.successMessages.set('email', null);
|
|
} else if (email.indexOf("@") >= 0){
|
|
//ActiveEntry.errorMessages.set('email', 'Email present');
|
|
ActiveEntry.errorMessages.set('email', null);
|
|
ActiveEntry.successMessages.set('email', 'Email present');
|
|
}
|
|
};
|
|
|
|
ActiveEntry.verifyFullName = function (fullName) {
|
|
if (fullName.length === 0) {
|
|
ActiveEntry.errorMessages.set('fullName', 'Name is required');
|
|
ActiveEntry.successMessages.set('fullName', null);
|
|
} else if (fullName.indexOf(" ") === -1){
|
|
ActiveEntry.errorMessages.set('fullName', 'Name is probably not complete');
|
|
ActiveEntry.successMessages.set('fullName', null);
|
|
} else if (fullName.indexOf(" ") >= 0){
|
|
//ActiveEntry.errorMessages.set('fullName', 'Name present');
|
|
ActiveEntry.errorMessages.set('fullName', null);
|
|
ActiveEntry.successMessages.set('fullName', 'Name present');
|
|
}
|
|
};
|
|
|
|
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);
|
|
ActiveEntry.errorMessages.set('signInError', null);
|
|
|
|
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;
|
|
}
|
|
|
|
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 (){
|
|
ActiveEntry.errorMessages.set('signInError', false);
|
|
ActiveEntry.errorMessages.set('fullName', false);
|
|
ActiveEntry.errorMessages.set('email', false);
|
|
ActiveEntry.errorMessages.set('confirm', false);
|
|
ActiveEntry.errorMessages.set('password', false);
|
|
};
|
|
|
|
ActiveEntry.logoIsDisplayed = function (){
|
|
var ActiveEntryConfig = Session.get('Photonic.ActiveEntry');
|
|
return ActiveEntryConfig.logo.displayed;
|
|
};
|