nodebb/public/src/forum/reset_code.js

57 lines
1.5 KiB
JavaScript

define(function() {
var ResetCode = {};
ResetCode.init = function() {
var reset_code = templates.get('reset_code');
var resetEl = $('#reset'),
password = $('#password'),
repeat = $('#repeat'),
noticeEl = $('#notice');
resetEl.on('click', function() {
if (password.val().length < 6) {
$('#error').addClass('hide').hide();
noticeEl.find('strong').html('Invalid Password');
noticeEl.find('p').html('The password entered is too short, please pick a different password.');
noticeEl.removeClass('hide').css({display: 'block'});
} else if (password.value !== repeat.value) {
$('#error').hide();
noticeEl.find('strong').html('Invalid Password');
noticeEl.find('p').html('The two passwords you\'ve entered do not match.');
noticeEl.removeClass('hide').css({display: 'block'});
} else {
socket.emit('user.reset.commit', {
code: reset_code,
password: password.val()
}, function(err) {
if(err) {
return app.alert(err.message);
}
$('#error').addClass('hide').hide();
$('#notice').addClass('hide').hide();
$('#success').removeClass('hide').addClass('show').show();
});
}
});
socket.emit('user.reset.valid', {
code: reset_code
}, function(err, valid) {
if(err) {
return app.alertError(err.message);
}
if (valid) {
resetEl.prop('disabled', false);
} else {
var formEl = $('#reset-form');
// Show error message
$('#error').show();
formEl.remove();
}
});
};
return ResetCode;
});