edit_user.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. applyRandomPassword = function (min_length = 16) {
  2. $('input[name=v_password]').val(randomString(min_length));
  3. App.Actions.WEB.update_password_meter();
  4. };
  5. App.Actions.WEB.update_password_meter = () => {
  6. /**
  7. * @type string
  8. */
  9. const password = document.querySelector('input[name=v_password]').value;
  10. const validations = [
  11. password.length >= 8, // Min length of 8
  12. password.search(/[a-z]/) > -1, // Contains 1 lowercase letter
  13. password.search(/[A-Z]/) > -1, // Contains 1 uppercase letter
  14. password.search(/[0-9]/) > -1, // Contains 1 number
  15. ];
  16. const strength = validations.reduce((acc, cur) => acc + cur, 0);
  17. document.querySelector('.js-password-meter').value = strength;
  18. };
  19. App.Listeners.WEB.keypress_v_password = () => {
  20. const updateTimeout = (evt) => {
  21. clearTimeout(window.frp_usr_tmt);
  22. window.frp_usr_tmt = setTimeout(() => {
  23. App.Actions.WEB.update_password_meter(evt.target, evt.target.value);
  24. }, 100);
  25. };
  26. const passwordInput = document.querySelector('input[name="v_password"]');
  27. passwordInput.addEventListener('keypress', updateTimeout);
  28. passwordInput.addEventListener('input', updateTimeout);
  29. };
  30. App.Listeners.WEB.keypress_v_password();
  31. (function () {
  32. $('.js-add-ns').click(function () {
  33. var n = $('input[name^=v_ns]').length;
  34. if (n < 8) {
  35. var t = $($('input[name=v_ns1]').parents('div')[0]).clone(true, true);
  36. t.find('input').attr({ value: '', name: 'v_ns' + (n + 1) });
  37. t.find('span').show();
  38. $('.js-add-ns').before(t);
  39. }
  40. if (n == 7) {
  41. $('.js-add-ns').addClass('u-hidden');
  42. }
  43. });
  44. $('.js-remove-ns').click(function () {
  45. $(this).parents('div')[0].remove();
  46. $('input[name^=v_ns]').each(function (i, ns) {
  47. $(ns).attr({ name: 'v_ns' + (i + 1) });
  48. i < 2 ? $(ns).parent().find('span').hide() : $(ns).parent().find('span').show();
  49. });
  50. $('.js-add-ns').removeClass('u-hidden');
  51. });
  52. $('input[name^=v_ns]').each(function (i, ns) {
  53. i < 2 ? $(ns).parent().find('span').hide() : $(ns).parent().find('span').show();
  54. });
  55. })();