Merge branch 'master' of github.com:designcreateplay/NodeBB

v1.18.x
Julian Lam 12 years ago
commit 51990142d5

@ -99,6 +99,22 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) {
return false; return false;
}); });
function showError(element, msg) {
element.html(msg);
element.parent()
.removeClass('alert-success')
.addClass('alert-danger');
element.show();
validationError = true;
}
function showSuccess(element, msg) {
element.html(msg);
element.parent()
.removeClass('alert-danger')
.addClass('alert-success');
element.show();
}
(function handlePasswordChange() { (function handlePasswordChange() {
var currentPassword = $('#inputCurrentPassword'); var currentPassword = $('#inputCurrentPassword');
@ -108,44 +124,31 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) {
var password_confirm = $('#inputNewPasswordAgain'); var password_confirm = $('#inputNewPasswordAgain');
var passwordvalid = false; var passwordvalid = false;
var passwordsmatch = false; var passwordsmatch = false;
var successIcon = '<i class="fa fa-check"></i>';
function onPasswordChanged() { function onPasswordChanged() {
passwordvalid = utils.isPasswordValid(password.val()); passwordvalid = utils.isPasswordValid(password.val());
if (password.val().length < config.minimumPasswordLength) { if (password.val().length < config.minimumPasswordLength) {
password_notify.html('Password too short'); showError(password_notify, 'Password too short!');
password_notify.attr('class', 'alert alert-danger');
password_notify.removeClass('hide');
} else if (!passwordvalid) { } else if (!passwordvalid) {
password_notify.html('Invalid password'); showError(password_notify, 'Invalid password!');
password_notify.attr('class', 'alert alert-danger');
password_notify.removeClass('hide');
} else { } else {
password_notify.html('OK!'); showSuccess(password_notify, successIcon);
password_notify.attr('class', 'alert alert-success');
password_notify.removeClass('hide');
} }
onPasswordConfirmChanged();
} }
function onPasswordConfirmChanged() { function onPasswordConfirmChanged() {
if (password_notify.hasClass('alert-danger') || !password_confirm.val()) { if(password.val()) {
password_confirm_notify.addClass('hide');
return;
}
if (password.val() !== password_confirm.val()) { if (password.val() !== password_confirm.val()) {
password_confirm_notify.html('Passwords must match!'); showError(password_confirm_notify, 'Passwords must match!')
password_confirm_notify.attr('class', 'alert alert-danger');
password_confirm_notify.removeClass('hide');
passwordsmatch = false; passwordsmatch = false;
} else { } else {
password_confirm_notify.html('OK!'); showSuccess(password_confirm_notify, successIcon);
password_confirm_notify.attr('class', 'alert alert-success');
password_confirm_notify.removeClass('hide');
passwordsmatch = true; passwordsmatch = true;
} }
} }
}
password.on('blur', onPasswordChanged); password.on('blur', onPasswordChanged);
password_confirm.on('blur', onPasswordConfirmChanged); password_confirm.on('blur', onPasswordConfirmChanged);
@ -161,8 +164,6 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) {
currentPassword.val(''); currentPassword.val('');
password.val(''); password.val('');
password_confirm.val(''); password_confirm.val('');
password_notify.addClass('hide');
password_confirm_notify.addClass('hide');
passwordsmatch = false; passwordsmatch = false;
passwordvalid = false; passwordvalid = false;

@ -1,7 +1,7 @@
define(function() { define(function() {
var Topic = {}, var Topic = {},
infiniteLoaderActive = false; infiniteLoaderActive = false,
pagination;
function showBottomPostBar() { function showBottomPostBar() {
if($('#post-container .post-row').length > 1) { if($('#post-container .post-row').length > 1) {
@ -775,9 +775,13 @@ define(function() {
var pagination;
Topic.postCount = templates.get('postcount'); Topic.postCount = templates.get('postcount');
window.onscroll = updateHeader;
window.onload = updateHeader;
};
function updateHeader() { function updateHeader() {
if (pagination == null) { if (pagination == null) {
jQuery('.pagination-block i:first').on('click', function() { jQuery('.pagination-block i:first').on('click', function() {
@ -794,6 +798,7 @@ define(function() {
var scrollBottom = scrollTop + windowHeight; var scrollBottom = scrollTop + windowHeight;
var progressBar = $('.progress-bar'); var progressBar = $('.progress-bar');
var progressBarContainer = $('.progress-container'); var progressBarContainer = $('.progress-container');
var tid = templates.get('topic_id');
pagination.parentNode.style.display = 'block'; pagination.parentNode.style.display = 'block';
progressBarContainer.css('display', ''); progressBarContainer.css('display', '');
@ -840,10 +845,6 @@ define(function() {
}, 100); }, 100);
} }
window.onscroll = updateHeader;
window.onload = updateHeader;
};
Topic.scrollToPost = function(pid) { Topic.scrollToPost = function(pid) {
if (!pid) { if (!pid) {
return; return;
@ -944,8 +945,13 @@ define(function() {
} }
function updatePostCount() { function updatePostCount() {
Topic.postCount = $('#post-container li[data-pid]:not(.deleted)').length; socket.emit('api:topics.postcount', templates.get('topic_id'), function(err, postcount) {
if(!err) {
Topic.postCount = postcount;
$('#topic-post-count').html(Topic.postCount); $('#topic-post-count').html(Topic.postCount);
updateHeader();
}
})
} }
function loadMorePosts(tid, callback) { function loadMorePosts(tid, callback) {

@ -115,17 +115,21 @@
<div class="control-group"> <div class="control-group">
<label class="control-label" for="inputNewPassword">Password</label> <label class="control-label" for="inputNewPassword">Password</label>
<div class="controls"> <div class="input-group">
<input class="form-control" type="password" id="inputNewPassword" placeholder="New Password" value=""> <input class="form-control" type="password" id="inputNewPassword" placeholder="New Password" value="">
<div id="password-notify" class="alert alert-danger hide"></div> <span class="input-group-addon">
<span id="password-notify"><i class="fa fa-circle-o"></i></span>
</span>
</div> </div>
</div> </div>
<div class="control-group"> <div class="control-group">
<label class="control-label" for="inputNewPasswordAgain">Confirm Password</label> <label class="control-label" for="inputNewPasswordAgain">Confirm Password</label>
<div class="controls"> <div class="input-group">
<input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="Confirm Password" value=""> <input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="Confirm Password" value="">
<div id="password-confirm-notify" class="alert alert-danger hide"></div> <span class="input-group-addon">
<span id="password-confirm-notify"><i class="fa fa-circle-o"></i></span>
</span>
</div> </div>
</div> </div>
<br/> <br/>

@ -340,8 +340,8 @@ module.exports.init = function(io) {
if (uid) { if (uid) {
user.setUserFields(uid, { user.setUserFields(uid, {
showemail: data.showemail showemail: data.showemail
}, function(err) { }, function(err, result) {
callback(err ? err.message : null); callback(err);
}); });
} }
}); });
@ -403,6 +403,10 @@ module.exports.init = function(io) {
}); });
socket.on('api:topics.postcount', function(tid, callback) {
topics.getTopicField(tid, 'postcount', callback);
});
socket.on('api:topics.markAllRead', function(data, callback) { socket.on('api:topics.markAllRead', function(data, callback) {
topics.markAllRead(uid, function(err, success) { topics.markAllRead(uid, function(err, success) {
if (!err && success) { if (!err && success) {

Loading…
Cancel
Save