(function(){ var $picker; tb.users = { init: function(){ var $body = $('body'); $body.on('click', '.btn-generate-password', clickedGeneratePassword); $body.on('change', '#spud_user_password', changedUserPassword); $picker = $('.tb-user-select'); if($picker.length > 0){ $picker.on('change', changedUserSelect).trigger('change'); $body.on('click', '.tb-user-select-edit', clickedPickerEdit); $body.on('click', '.tb-user-select-add', clickedPickerAdd); $('.modal-body').on('ajax:success', '.user-form', savedModalUser); } } }; /* * Set a randomly generated password */ var clickedGeneratePassword = function(e){ e.preventDefault(); var randomPassword = generatePassword(12); $('#spud_user_password').val(randomPassword).trigger('change'); $('#spud_user_password_confirmation').val(randomPassword); $('.generated-password').text("Generated: " + randomPassword); $('#spud_user_requires_password_change').prop('checked', true); $('#send_email').prop('checked', true); }; var generatePassword = function(length){ var charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var password = ''; for(var i=0, n=charset.length; i', { value: json.id, text: json.first_name + ' ' + json.last_name + ' (' + json.email + ')' }); var $existingOption = $('.tb-user-select option[value=' + json.id + ']'); if($existingOption.length > 0){ $existingOption.replaceWith($option); } else{ $picker.append($option); } $picker.val(json.id); tb.modal.hide(); return false; }; document.addEventListener('DOMContentLoaded', tb.users.init); })();