diff --git a/public/src/forum/admin/users.js b/public/src/forum/admin/users.js index 44504f021c..0f162ab8eb 100644 --- a/public/src/forum/admin/users.js +++ b/public/src/forum/admin/users.js @@ -64,6 +64,39 @@ define(function() { }); } + function handleUserCreate() { + $('#createUser').on('click', function() { + $('#create-modal').modal('show'); + }); + + $('#create-modal-go').on('click', function() { + var username = $('#create-user-name').val(), + email = $('#create-user-email').val(), + password = $('#create-user-password').val(), + passwordAgain = $('#create-user-password-again').val(), + errorEl = $('#create-modal-error'); + + if(password !== passwordAgain) { + return errorEl.html('Error
Passwords must match!
').removeClass('hide'); + } + + var user = { + username: username, + email: email, + password: password + }; + + socket.emit('api:admin.user.createUser', user, function(err, data) { + if(err) { + return errorEl.html('Error' + err + '
').removeClass('hide'); + } + $('#create-modal').modal('hide'); + app.alertSuccess('User created!'); + }); + + }); + } + jQuery('document').ready(function() { @@ -99,6 +132,8 @@ define(function() { initUsers(); + handleUserCreate(); + socket.removeAllListeners('api:admin.user.search'); socket.on('api:admin.user.search', function(data) { diff --git a/public/src/forum/register.js b/public/src/forum/register.js index d4b1781134..65c698c263 100644 --- a/public/src/forum/register.js +++ b/public/src/forum/register.js @@ -41,10 +41,11 @@ define(function() { if (!utils.isEmailValid(emailEl.val())) { showError(email_notify, 'Invalid email address.'); - } else + } else { socket.emit('user.email.exists', { email: emailEl.val() }); + } } emailEl.on('blur', function() { diff --git a/public/templates/admin/settings.tpl b/public/templates/admin/settings.tpl index 5d022cf19c..66343f3acb 100644 --- a/public/templates/admin/settings.tpl +++ b/public/templates/admin/settings.tpl @@ -77,6 +77,11 @@