checkconfigureproduct.tpl 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <script>
  2. function checkPW(customFields) {
  3. var pwlengthOK = false;
  4. var numericOK = false;
  5. var symbolsOK = false;
  6. var upperOK = false;
  7. var pw = $(customFields[4]).val();
  8. console.log(pw);
  9. var pwlength = (pw.length);
  10. if (pwlength > 7) {
  11. pwlengthOK = true;
  12. $("#hintLength").text('');
  13. } else {
  14. pwlengthOK = false;
  15. $("#hintLength").text('Benutzen Sie mindestens 8 Zeichen');
  16. }
  17. var numeric = pw.replace(/[0-9]/g, "");
  18. var numnumeric = (pw.length - numeric.length);
  19. if (numnumeric > 0) {
  20. numericOK = true;
  21. $("#hintNumeric").text('');
  22. } else {
  23. numericOK = false;
  24. $("#hintNumeric").text('Benutzen Sie mindestens eine Zahl');
  25. }
  26. var symbols = pw.replace(/\W/g, "");
  27. var numsymbols = (pw.length - symbols.length);
  28. if (numsymbols > 0) {
  29. symbolsOK = true;
  30. $("#hintSymbols").text('');
  31. } else {
  32. symbolsOK = false;
  33. $("#hintSymbols").text('Benutzen Sie auch mindestens ein Symbol oder Sonderzeichen (# $ ! % & + - etc...)');
  34. }
  35. var upper = pw.replace(/[A-Z]/g, "");
  36. var numupper = (pw.length - upper.length);
  37. var lower = pw.replace(/[a-z]/g, "");
  38. var numlower = (pw.length - lower.length);
  39. if ((numupper > 0) && (numlower > 0)) {
  40. upperlowerOK = true;
  41. $("#hintUpperLower").text('');
  42. } else {
  43. upperlowerOK = false;
  44. $("#hintUpperLower").text('Benutzen Sie Groß- und Kleinschreibung');
  45. }
  46. $(customFields[4]).removeClass('has-error has-warning has-success');
  47. if (pwlengthOK && numericOK && symbolsOK && upperlowerOK) {
  48. $(customFields[5]).prop("disabled",false);
  49. $(customFields[4]).addClass('has-success');
  50. $(customFields[4]).css('background-color', '#0f03');;
  51. $("#hintHead").text('');
  52. } else {
  53. $(customFields[5]).prop("disabled",true);
  54. $(customFields[4]).addClass('has-error');
  55. $(customFields[4]).css('background-color', '#f003');;
  56. $("#hintHead").text('Tipps für ein gutes Passwort');
  57. }
  58. };
  59. function checkPWRepeat(customFields) {
  60. if ($(customFields[5]).val() == $(customFields[4]).val()) {
  61. $("#btnCompleteProductConfig").prop("disabled",false);
  62. $(customFields[5]).addClass('has-success');
  63. $(customFields[5]).css('background-color', '#0f03');;
  64. $("#hintHead").text('');
  65. } else {
  66. $("#btnCompleteProductConfig").prop("disabled",true);
  67. $(customFields[5]).addClass('has-error');
  68. $(customFields[5]).css('background-color', '#f003');;
  69. $("#hintHead").text('Passworte stimmen nicht überein!');
  70. }
  71. };
  72. function checkMailAddress ( mailname, maildomain, pid) {
  73. var xhttp = new XMLHttpRequest();
  74. var success = false;
  75. xhttp.onreadystatechange = function() {
  76. if (this.readyState == 4 && this.status == 200) {
  77. if( this.responseText.trim() == 'yes') {
  78. console.log(this.responseText);
  79. $(customFields[4]).prop("disabled",false);
  80. $(customFields[5]).prop("disabled",true);
  81. $(customFields[2]).addClass('has-success');
  82. $(customFields[2]).css('background-color', '#0f03');;
  83. $("#hintHead").text('');
  84. $("#hintLength").text('');
  85. $("#hintNumeric").text('');
  86. $("#hintSymbols").text('');
  87. $("#hintUpperLower").text('');
  88. } else {
  89. console.log(this.responseText);
  90. $(customFields[4]).prop("disabled",true);
  91. $(customFields[5]).prop("disabled",true);
  92. $(customFields[2]).addClass('has-error');
  93. $(customFields[2]).css('background-color', '#f003');;
  94. $("#hintHead").text('Mailadresse ' + $(customFields[2]).val() + '@' + $(customFields[3]).val() + ' nicht verfügbar!');
  95. $("#hintLength").text('');
  96. $("#hintNumeric").text('');
  97. $("#hintSymbols").text('');
  98. $("#hintUpperLower").text('');
  99. }
  100. }
  101. };
  102. xhttp.open("GET", "modules/servers/zimbraSingle/zimbraAddressAvailable.php?name=" + mailname + '&domain=' + maildomain + '&pid=' + pid, true);
  103. xhttp.send();
  104. };
  105. jQuery(document).ready(function(){
  106. customFields = $("*[id^='customfield']");
  107. $("#btnCompleteProductConfig").prop("disabled",true);
  108. checkMailAddress( $(customFields[2]).val(), $(customFields[3]).val(), {$productinfo['pid']});
  109. $(customFields[4]).prop("disabled",true);
  110. $(customFields[5]).prop("disabled",true);
  111. $(customFields[2]).blur(function () {
  112. checkMailAddress( $(customFields[2]).val(), $(customFields[3]).val(), {$productinfo['pid']});
  113. });
  114. $(customFields[2]).keyup(function () {
  115. checkMailAddress( $(customFields[2]).val(), $(customFields[3]).val(), {$productinfo['pid']});
  116. });
  117. $(customFields[3]).change(function () {
  118. checkMailAddress( $(customFields[2]).val(), $(customFields[3]).val(), {$productinfo['pid']});
  119. });
  120. $(customFields[4]).focus (function () {
  121. $("#hintHead").text('Tipps für ein gutes Passwort');
  122. $("#hintLength").text('Benutzen Sie mindestens 8 Zeichen');
  123. $("#hintNumeric").text('Benutzen Sie mindestens eine Zahl');
  124. $("#hintSymbols").text('Benutzen Sie auch mindestens eines der folgenden Symbole (# $ ! % + - etc...)');
  125. $("#hintUpperLower").text('Benutzen Sie Groß- und Kleinschreibung');
  126. });
  127. $(customFields[4]).keyup(checkPW(customFields));
  128. $(customFields[5]).keyup(checkPWRepeat(customFields));
  129. });
  130. </script>