edit_db.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. //
  2. //
  3. // Updates database username dynamically, showing its prefix
  4. App.Actions.DB.update_db_username_hint = function (elm, hint) {
  5. if (hint.trim() == '') {
  6. $(elm).parent().find('.hint').text('');
  7. }
  8. $(elm)
  9. .parent()
  10. .find('.hint')
  11. .text(GLOBAL.DB_USER_PREFIX + hint);
  12. };
  13. //
  14. //
  15. // Updates database name dynamically, showing its prefix
  16. App.Actions.DB.update_db_databasename_hint = function (elm, hint) {
  17. if (hint.trim() == '') {
  18. $(elm).parent().find('.hint').text('');
  19. }
  20. $(elm)
  21. .parent()
  22. .find('.hint')
  23. .text(GLOBAL.DB_DBNAME_PREFIX + hint);
  24. };
  25. //
  26. // listener that triggers database user hint updating
  27. App.Listeners.DB.keypress_db_username = function () {
  28. var ref = $('input[name="v_dbuser"]');
  29. var current_val = ref.val();
  30. if (current_val.trim() != '') {
  31. App.Actions.DB.update_db_username_hint(ref, current_val);
  32. }
  33. ref.bind('keypress input', function (evt) {
  34. clearTimeout(window.frp_usr_tmt);
  35. window.frp_usr_tmt = setTimeout(function () {
  36. var elm = $(evt.target);
  37. App.Actions.DB.update_db_username_hint(elm, $(elm).val());
  38. }, 100);
  39. });
  40. };
  41. //
  42. // listener that triggers database name hint updating
  43. App.Listeners.DB.keypress_db_databasename = function () {
  44. var ref = $('input[name="v_database"]');
  45. var current_val = ref.val();
  46. if (current_val.indexOf(GLOBAL.DB_DBNAME_PREFIX) == 0) {
  47. current_val = current_val.slice(GLOBAL.DB_DBNAME_PREFIX.length, current_val.length);
  48. ref.val(current_val);
  49. }
  50. if (current_val.trim() != '') {
  51. App.Actions.DB.update_db_username_hint(ref, current_val);
  52. }
  53. ref.bind('keypress input', function (evt) {
  54. clearTimeout(window.frp_dbn_tmt);
  55. window.frp_dbn_tmt = setTimeout(function () {
  56. var elm = $(evt.target);
  57. App.Actions.DB.update_db_databasename_hint(elm, $(elm).val());
  58. }, 100);
  59. });
  60. };
  61. App.Actions.DB.update_password_meter = function () {
  62. var password = $('input[name="v_password"]').val();
  63. var min_small = new RegExp(/^(?=.*[a-z]).+$/);
  64. var min_cap = new RegExp(/^(?=.*[A-Z]).+$/);
  65. var min_num = new RegExp(/^(?=.*\d).+$/);
  66. var min_length = 8;
  67. var score = 0;
  68. if (password.length >= min_length) {
  69. score = score + 1;
  70. }
  71. if (min_small.test(password)) {
  72. score = score + 1;
  73. }
  74. if (min_cap.test(password)) {
  75. score = score + 1;
  76. }
  77. if (min_num.test(password)) {
  78. score = score + 1;
  79. }
  80. $('.password-meter').val(score);
  81. };
  82. App.Listeners.DB.keypress_v_password = function () {
  83. var ref = $('input[name="v_password"]');
  84. ref.bind('keypress input', function (evt) {
  85. clearTimeout(window.frp_usr_tmt);
  86. window.frp_usr_tmt = setTimeout(function () {
  87. var elm = $(evt.target);
  88. App.Actions.DB.update_password_meter(elm, $(elm).val());
  89. }, 100);
  90. });
  91. };
  92. App.Listeners.DB.keypress_v_password();
  93. //
  94. // Page entry point
  95. // Trigger listeners
  96. App.Listeners.DB.keypress_db_username();
  97. App.Listeners.DB.keypress_db_databasename();
  98. applyRandomString = function (min_length = 16) {
  99. $('input[name=v_password]').val(randomString2(min_length));
  100. App.Actions.DB.update_password_meter();
  101. };