From 7545d55b220d981259bd74435b3584d0b8362bd2 Mon Sep 17 00:00:00 2001 From: barisusakli <barisusakli@gmail.com> Date: Thu, 10 Apr 2014 22:01:00 -0400 Subject: [PATCH] jshint and refactor accountedit --- public/language/en_GB/user.json | 1 + public/src/forum/accountedit.js | 318 ++++++++++++++++---------------- 2 files changed, 155 insertions(+), 164 deletions(-) diff --git a/public/language/en_GB/user.json b/public/language/en_GB/user.json index d7f2d83b2d..110dd9698e 100644 --- a/public/language/en_GB/user.json +++ b/public/language/en_GB/user.json @@ -23,6 +23,7 @@ "follow": "Follow", "unfollow": "Unfollow", + "profile_update_success": "Profile has been updated successfully!", "change_picture": "Change Picture", "edit": "Edit", "uploaded_picture": "Uploaded Picture", diff --git a/public/src/forum/accountedit.js b/public/src/forum/accountedit.js index 701c97ff74..071cb31a3a 100644 --- a/public/src/forum/accountedit.js +++ b/public/src/forum/accountedit.js @@ -1,82 +1,82 @@ +'use strict'; + +/* globals define, ajaxify, socket, app, config, utils, translator */ + define(['forum/accountheader', 'uploader'], function(header, uploader) { var AccountEdit = {}, gravatarPicture = '', - uploadedPicture = ''; + uploadedPicture = '', + selectedImageType = ''; AccountEdit.init = function() { - header.init(); - gravatarPicture = ajaxify.variables.get('gravatarpicture'); uploadedPicture = ajaxify.variables.get('uploadedpicture'); - var selectedImageType = ''; - - $('#submitBtn').on('click', function() { + header.init(); - var userData = { - uid: $('#inputUID').val(), - username: $('#inputUsername').val(), - email: $('#inputEmail').val(), - fullname: $('#inputFullname').val(), - website: $('#inputWebsite').val(), - birthday: $('#inputBirthday').val(), - location: $('#inputLocation').val(), - signature: $('#inputSignature').val() - }; + $('#submitBtn').on('click', updateProfile); - socket.emit('user.updateProfile', userData, function(err, data) { - if(err) { - return app.alertError(err.message); - } + handleImageChange(); + handleImageUpload(); + handlePasswordChange(); + updateSignature(); + }; - if (!data) { - return app.alertError('There was an error updating the profile!'); - } + function updateProfile() { + var userData = { + uid: $('#inputUID').val(), + username: $('#inputUsername').val(), + email: $('#inputEmail').val(), + fullname: $('#inputFullname').val(), + website: $('#inputWebsite').val(), + birthday: $('#inputBirthday').val(), + location: $('#inputLocation').val(), + signature: $('#inputSignature').val() + }; - app.alertSuccess('Profile has been updated successfully!'); - if (data.picture) { - $('#user-current-picture').attr('src', data.picture); - $('#user_label img').attr('src', data.picture); - } + socket.emit('user.updateProfile', userData, function(err, data) { + if (err) { + return app.alertError(err.message); + } - if (data.gravatarpicture) { - $('#user-gravatar-picture').attr('src', data.gravatarpicture); - gravatarPicture = data.gravatarpicture; - } + app.alertSuccess('[[user:profile_update_success]]'); - if(data.userslug) { - var oldslug = $('.account-username-box').attr('data-userslug'); - $('.account-username-box a').each(function(index) { - $(this).attr('href', $(this).attr('href').replace(oldslug, data.userslug)); - }); + if (data.picture) { + $('#user-current-picture').attr('src', data.picture); + $('#user_label img').attr('src', data.picture); + } - $('.account-username-box').attr('data-userslug', data.userslug); + if (data.gravatarpicture) { + $('#user-gravatar-picture').attr('src', data.gravatarpicture); + gravatarPicture = data.gravatarpicture; + } - $('#user-profile-link').attr('href', config.relative_path + '/user/' + data.userslug); - $('#user-profile-link span').html(' ' + userData.username); - } - }); - return false; - }); + if (data.userslug) { + var oldslug = $('.account-username-box').attr('data-userslug'); + $('.account-username-box a').each(function(index) { + $(this).attr('href', $(this).attr('href').replace(oldslug, data.userslug)); + }); + $('.account-username-box').attr('data-userslug', data.userslug); - function getSignatureCharsLeft() { - if($('#inputSignature').length) { - return '(' + $('#inputSignature').val().length + '/' + config.maximumSignatureLength + ')'; - } else { - return ''; + $('#user-profile-link').attr('href', config.relative_path + '/user/' + data.userslug); + $('#user-profile-link span').html(' ' + userData.username); } - } + }); - $('#signatureCharCountLeft').html(getSignatureCharsLeft()); + return false; + } - $('#inputSignature').on('keyup change', function(ev) { - $('#signatureCharCountLeft').html(getSignatureCharsLeft()); - }); + function handleImageChange() { + function selectImageType(type) { + $('#gravatar-box .fa-check').toggle(type === 'gravatar'); + $('#uploaded-box .fa-check').toggle(type === 'uploaded'); + selectedImageType = type; + } $('#changePictureBtn').on('click', function() { selectedImageType = ''; - AccountEdit.updateImages(); + updateImages(); $('#change-picture-modal').modal('show'); $('#change-picture-modal').removeClass('hide'); @@ -85,31 +85,29 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) { }); $('#gravatar-box').on('click', function() { - $('#gravatar-box .fa-check').show(); - $('#uploaded-box .fa-check').hide(); - selectedImageType = 'gravatar'; + selectImageType('gravatar'); }); $('#uploaded-box').on('click', function() { - $('#gravatar-box .fa-check').hide(); - $('#uploaded-box .fa-check').show(); - selectedImageType = 'uploaded'; + selectImageType('uploaded'); }); $('#savePictureChangesBtn').on('click', function() { $('#change-picture-modal').modal('hide'); if (selectedImageType) { - AccountEdit.changeUserPicture(selectedImageType); + changeUserPicture(selectedImageType); - if (selectedImageType == 'gravatar') + if (selectedImageType === 'gravatar') { $('#user-current-picture').attr('src', gravatarPicture); - else if (selectedImageType == 'uploaded') + } else if (selectedImageType === 'uploaded') { $('#user-current-picture').attr('src', uploadedPicture); + } } - }); + } + function handleImageUpload() { $('#upload-picture-modal').on('hide', function() { $('#userPhotoInput').val(''); }); @@ -117,7 +115,7 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) { $('#uploadPictureBtn').on('click', function() { $('#change-picture-modal').modal('hide'); - uploader.open(RELATIVE_PATH + '/user/uploadpicture', {uid: ajaxify.variables.get('theirid')}, config.maximumProfileImageSize, function(imageUrlOnServer) { + uploader.open(config.relative_path + '/user/uploadpicture', {uid: ajaxify.variables.get('theirid')}, config.maximumProfileImageSize, function(imageUrlOnServer) { imageUrlOnServer = imageUrlOnServer + '?' + new Date().getTime(); $('#user-current-picture').attr('src', imageUrlOnServer); @@ -130,137 +128,129 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) { }, app.updateHeader); }); - return false; }); + } - function showError(element, msg) { - translator.translate(msg, function(msg) { - element.html(msg); - element.parent() - .removeClass('alert-success') - .addClass('alert-danger'); - element.show(); - validationError = true; - }); - } - - function showSuccess(element, msg) { - translator.translate(msg, function(msg) { - element.html(msg); - element.parent() - .removeClass('alert-danger') - .addClass('alert-success'); - element.show(); - }); + function handlePasswordChange() { + var currentPassword = $('#inputCurrentPassword'); + var password_notify = $('#password-notify'); + var password_confirm_notify = $('#password-confirm-notify'); + var password = $('#inputNewPassword'); + var password_confirm = $('#inputNewPasswordAgain'); + var passwordvalid = false; + var passwordsmatch = false; + var successIcon = '<i class="fa fa-check"></i>'; + + function onPasswordChanged() { + passwordvalid = utils.isPasswordValid(password.val()); + if (password.val().length < config.minimumPasswordLength) { + showError(password_notify, '[[user:change_password_error_length]]'); + } else if (!passwordvalid) { + showError(password_notify, '[[user:change_password_error]]'); + } else { + showSuccess(password_notify, successIcon); + } } - (function handlePasswordChange() { - var currentPassword = $('#inputCurrentPassword'); - var password_notify = $('#password-notify'); - var password_confirm_notify = $('#password-confirm-notify'); - var password = $('#inputNewPassword'); - var password_confirm = $('#inputNewPasswordAgain'); - var passwordvalid = false; - var passwordsmatch = false; - var successIcon = '<i class="fa fa-check"></i>'; - - - function onPasswordChanged() { - passwordvalid = utils.isPasswordValid(password.val()); - if (password.val().length < config.minimumPasswordLength) { - showError(password_notify, '[[user:change_password_error_length]]'); - } else if (!passwordvalid) { - showError(password_notify, '[[user:change_password_error]]'); + function onPasswordConfirmChanged() { + if(password.val()) { + if (password.val() !== password_confirm.val()) { + showError(password_confirm_notify, '[[user:change_password_error_match]]'); + passwordsmatch = false; } else { - showSuccess(password_notify, successIcon); + showSuccess(password_confirm_notify, successIcon); + passwordsmatch = true; } } + } - function onPasswordConfirmChanged() { - if(password.val()) { - if (password.val() !== password_confirm.val()) { - showError(password_confirm_notify, '[[user:change_password_error_match]]') - passwordsmatch = false; - } else { - showSuccess(password_confirm_notify, successIcon); - passwordsmatch = true; + password.on('blur', onPasswordChanged); + password_confirm.on('blur', onPasswordConfirmChanged); + + $('#changePasswordBtn').on('click', function() { + if ((passwordvalid && passwordsmatch) || app.isAdmin) { + socket.emit('user.changePassword', { + 'currentPassword': currentPassword.val(), + 'newPassword': password.val(), + 'uid': ajaxify.variables.get('theirid') + }, function(err) { + currentPassword.val(''); + password.val(''); + password_confirm.val(''); + passwordsmatch = false; + passwordvalid = false; + + if (err) { + return app.alertError(err.message); } - } - } - - password.on('blur', onPasswordChanged); - password_confirm.on('blur', onPasswordConfirmChanged); - - $('#changePasswordBtn').on('click', function() { - if ((passwordvalid && passwordsmatch) || app.isAdmin) { - socket.emit('user.changePassword', { - 'currentPassword': currentPassword.val(), - 'newPassword': password.val(), - 'uid': ajaxify.variables.get('theirid') - }, function(err) { - currentPassword.val(''); - password.val(''); - password_confirm.val(''); - passwordsmatch = false; - passwordvalid = false; - - if (err) { - return app.alertError(err.message); - } - - app.alertSuccess('[[user:change_password_success]]'); - }); - } - return false; - }); - - }()); - }; + app.alertSuccess('[[user:change_password_success]]'); + }); + } + return false; + }); + } - AccountEdit.changeUserPicture = function(type) { - var userData = { + function changeUserPicture(type) { + socket.emit('user.changePicture', { type: type, uid: ajaxify.variables.get('theirid') - }; - - socket.emit('user.changePicture', userData, function(err) { + }, function(err) { if(err) { app.alertError(err.message); } }); } - AccountEdit.updateImages = function() { + function updateImages() { var currentPicture = $('#user-current-picture').attr('src'); if (gravatarPicture) { $('#user-gravatar-picture').attr('src', gravatarPicture); - $('#gravatar-box').show(); - } else { - $('#gravatar-box').hide(); } if (uploadedPicture) { $('#user-uploaded-picture').attr('src', uploadedPicture); - $('#uploaded-box').show(); - } else { - $('#uploaded-box').hide(); } + $('#gravatar-box').toggle(!!gravatarPicture); + $('#uploaded-box').toggle(!!uploadedPicture); - if (currentPicture == gravatarPicture) { - $('#gravatar-box .fa-check').show(); - } else { - $('#gravatar-box .fa-check').hide(); - } + $('#gravatar-box .fa-check').toggle(currentPicture === gravatarPicture); + $('#uploaded-box .fa-check').toggle(currentPicture === uploadedPicture); + } - if (currentPicture == uploadedPicture) { - $('#uploaded-box .fa-check').show(); - } else { - $('#uploaded-box .fa-check').hide(); + function updateSignature() { + function getSignatureCharsLeft() { + return $('#inputSignature').length ? '(' + $('#inputSignature').val().length + '/' + config.maximumSignatureLength + ')' : ''; } + + $('#signatureCharCountLeft').html(getSignatureCharsLeft()); + + $('#inputSignature').on('keyup change', function(ev) { + $('#signatureCharCountLeft').html(getSignatureCharsLeft()); + }); + } + + function showError(element, msg) { + translator.translate(msg, function(msg) { + element.html(msg); + element.parent() + .removeClass('alert-success') + .addClass('alert-danger'); + element.show(); + }); + } + + function showSuccess(element, msg) { + translator.translate(msg, function(msg) { + element.html(msg); + element.parent() + .removeClass('alert-danger') + .addClass('alert-success'); + element.show(); + }); } return AccountEdit;