improve angular validation on images and trim input so trailing whitespace is ignored on save
parent
d7d4727c0f
commit
d26a4efea4
|
@ -93,11 +93,6 @@ exports.getEmailSignup = function(req, res) {
|
|||
*/
|
||||
|
||||
exports.postEmailSignup = function(req, res, next) {
|
||||
console.log('post email signup called');
|
||||
req.assert('email', 'Email is not valid').isEmail();
|
||||
req.assert('password', 'Password must be at least 4 characters long').len(4);
|
||||
req.assert('confirmPassword', 'Passwords do not match')
|
||||
.equals(req.body.password);
|
||||
|
||||
var errors = req.validationErrors();
|
||||
|
||||
|
@ -108,10 +103,10 @@ exports.postEmailSignup = function(req, res, next) {
|
|||
}
|
||||
|
||||
var user = new User({
|
||||
email: req.body.email,
|
||||
email: req.body.email.trim(),
|
||||
password: req.body.password,
|
||||
profile : {
|
||||
username: req.body.username
|
||||
username: req.body.username.trim()
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -322,26 +317,26 @@ exports.postUpdateProfile = function(req, res, next) {
|
|||
return res.redirect('/account');
|
||||
}
|
||||
var user = req.user;
|
||||
user.email = req.body.email || '';
|
||||
user.profile.name = req.body.name || '';
|
||||
user.profile.username = req.body.username || '';
|
||||
user.profile.location = req.body.location || '';
|
||||
user.profile.githubProfile = req.body.githubProfile || '';
|
||||
user.profile.coderbyteProfile = req.body.coderbyteProfile || '';
|
||||
user.profile.linkedinProfile = req.body.linkedinProfile || '';
|
||||
user.profile.codepenProfile = req.body.codepenProfile || '';
|
||||
user.profile.twitterHandle = req.body.twitterHandle || '';
|
||||
user.profile.bio = req.body.bio || '';
|
||||
user.profile.picture = req.body.picture || '';
|
||||
user.portfolio.website1Title = req.body.website1Title || '';
|
||||
user.portfolio.website1Link = req.body.website1Link || '';
|
||||
user.portfolio.website1Image = req.body.website1Image || '';
|
||||
user.portfolio.website2Title = req.body.website2Title || '';
|
||||
user.portfolio.website2Link = req.body.website2Link || '';
|
||||
user.portfolio.website2Image = req.body.website2Image || '';
|
||||
user.portfolio.website3Title = req.body.website3Title || '';
|
||||
user.portfolio.website3Link = req.body.website3Link || '';
|
||||
user.portfolio.website3Image = req.body.website3Image || '';
|
||||
user.email = req.body.email.trim() || '';
|
||||
user.profile.name = req.body.name.trim() || '';
|
||||
user.profile.username = req.body.username.trim() || '';
|
||||
user.profile.location = req.body.location.trim() || '';
|
||||
user.profile.githubProfile = req.body.githubProfile.trim() || '';
|
||||
user.profile.coderbyteProfile = req.body.coderbyteProfile.trim() || '';
|
||||
user.profile.linkedinProfile = req.body.linkedinProfile.trim() || '';
|
||||
user.profile.codepenProfile = req.body.codepenProfile.trim() || '';
|
||||
user.profile.twitterHandle = req.body.twitterHandle.trim() || '';
|
||||
user.profile.bio = req.body.bio.trim() || '';
|
||||
user.profile.picture = req.body.picture.trim() || '';
|
||||
user.portfolio.website1Title = req.body.website1Title.trim() || '';
|
||||
user.portfolio.website1Link = req.body.website1Link.trim() || '';
|
||||
user.portfolio.website1Image = req.body.website1Image.trim() || '';
|
||||
user.portfolio.website2Title = req.body.website2Title.trim() || '';
|
||||
user.portfolio.website2Link = req.body.website2Link.trim() || '';
|
||||
user.portfolio.website2Image = req.body.website2Image.trim() || '';
|
||||
user.portfolio.website3Title = req.body.website3Title.trim() || '';
|
||||
user.portfolio.website3Link = req.body.website3Link.trim() || '';
|
||||
user.portfolio.website3Image = req.body.website3Image.trim() || '';
|
||||
|
||||
|
||||
user.save(function (err) {
|
||||
|
|
|
@ -77,12 +77,15 @@ block content
|
|||
.form-group
|
||||
label.col-sm-3.col-sm-offset-2.control-label(for='email') Link to Profile Photo (1:1 ratio)
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='picture', id='picture', ng-model='user.profile.picture', placeholder='http://')
|
||||
input.form-control(type='url', name='picture', id='picture', ng-model='user.profile.picture', placeholder='http://www.example.com/image.jpg', ng-pattern="/[\.](jpg|png|jpeg|gif)\s?$/")
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.picture.$error.url && !profileForm.picture.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
|
||||
| Please enter a valid URL format (http://www.example.com/image.jpg).
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.picture.$error.pattern")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| The image URL must end in .jpg, .png, .jpeg or .gif.
|
||||
.form-group
|
||||
label.col-sm-3.col-sm-offset-2.control-label(for='bio') Bio (140 characters)
|
||||
.col-sm-4
|
||||
|
@ -184,11 +187,15 @@ block content
|
|||
.form-group
|
||||
label.col-sm-3.col-sm-offset-2.control-label(for='website1Image') Image Link (4:3 ratio)
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='website1Image', id='website1Image', autocomplete="off", ng-model='user.portfolio.website1Image', placeholder='http://')
|
||||
input.form-control(type='url', name='website1Image', id='website1Image', autocomplete="off", ng-model='user.portfolio.website1Image', placeholder='http://www.example.com/image.jpg', ng-pattern="/[\.](jpg|png|jpeg|gif)\s?$/")
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.website1Image.$error.url && !profileForm.website1Image.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
| Please enter a valid URL format (http://www.example.com/image.jpg).
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.website1Image.$error.pattern")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| The image URL must end in .jpg, .png, .jpeg or .gif.
|
||||
|
||||
.col-sm-4.col-sm-offset-5.flat-top
|
||||
h3 Second Portfolio Project
|
||||
|
@ -213,11 +220,15 @@ block content
|
|||
.form-group
|
||||
label.col-sm-3.col-sm-offset-2.control-label(for='website2Image') Image Link (4:3 ratio)
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='website2Image', id='website2Image', autocomplete="off", ng-model='user.portfolio.website2Image', placeholder='http://')
|
||||
input.form-control(type='url', name='website2Image', id='website2Image', autocomplete="off", ng-model='user.portfolio.website2Image', placeholder='http://www.example.com/image.jpg', ng-pattern="/[\.](jpg|png|jpeg|gif)\s?$/")
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.website2Image.$error.url && !profileForm.website2Image.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
| Please enter a valid URL format (http://www.example.com/image.jpg).
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.website2Image.$error.pattern")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| The image URL must end in .jpg, .png, .jpeg or .gif.
|
||||
|
||||
.col-sm-4.col-sm-offset-5.flat-top
|
||||
h3 Third Portfolio Project
|
||||
|
@ -243,11 +254,15 @@ block content
|
|||
.form-group
|
||||
label.col-sm-3.col-sm-offset-2.control-label(for='website3Image') Image Link (4:3 ratio)
|
||||
.col-sm-4
|
||||
input.form-control(type='url', name='website3Image', id='website3Image', autocomplete="off", ng-model='user.portfolio.website3Image', placeholder='http://')
|
||||
input.form-control(type='url', name='website3Image', id='website3Image', autocomplete="off", ng-model='user.portfolio.website3Image', placeholder='http://www.example.com/image.jpg', ng-pattern="/[\.](jpg|png|jpeg|gif)?$/")
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.website3Image.$error.url && !profileForm.website3Image.$pristine")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| Please enter a valid URL format (http://www.example.com).
|
||||
| Please enter a valid URL format (http://www.example.com/image.jpg).
|
||||
.col-sm-4.col-sm-offset-5(ng-show="profileForm.website3Image.$error.pattern")
|
||||
alert(type='danger')
|
||||
span.ion-close-circled
|
||||
| The image URL must end in .jpg, .png, .jpeg or .gif.
|
||||
|
||||
.form-group
|
||||
.col-sm-offset-5.col-sm-4
|
||||
|
|
Loading…
Reference in New Issue