add_web.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // Page entry point
  2. // Trigger listeners
  3. App.Listeners.DB.keypress_custom_folder();
  4. App.Listeners.DB.change_custom_doc();
  5. App.Actions.WEB.update_ftp_username_hint = function (elm, hint) {
  6. if (hint.trim() == '') {
  7. $(elm).parent().find('.hint').text('');
  8. }
  9. hint = hint.replace(/[^\w\d]/gi, '');
  10. $(elm).parent().find('.v-ftp-user').val(hint);
  11. $(elm)
  12. .parent()
  13. .find('.hint')
  14. .text(Alpine.store('globals').FTP_USER_PREFIX + hint);
  15. };
  16. App.Listeners.WEB.keypress_ftp_username = function () {
  17. var ftp_user_inputs = $('.v-ftp-user');
  18. $.each(ftp_user_inputs, function (i, ref) {
  19. var ref = $(ref);
  20. var current_val = ref.val();
  21. if (current_val.trim() != '') {
  22. App.Actions.WEB.update_ftp_username_hint(ref, current_val);
  23. }
  24. ref.bind('keypress input', function (evt) {
  25. clearTimeout(window.frp_usr_tmt);
  26. window.frp_usr_tmt = setTimeout(function () {
  27. var elm = $(evt.target);
  28. App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
  29. }, 100);
  30. });
  31. });
  32. };
  33. App.Listeners.WEB.keypress_domain_name = function () {
  34. $('#v_domain').bind('keypress input', function () {
  35. clearTimeout(window.frp_usr_tmt);
  36. window.frp_usr_tmt = setTimeout(function () {
  37. var domain = $('.js-ftp-path-prefix').text(
  38. Alpine.store('globals').FTP_USER_PREPATH + '/' + $('#v_domain').val()
  39. );
  40. $('#v-custom-doc-domain-main').text($('#v_domain').val());
  41. $('#v-custom-doc-domain-main').val($('#v_domain').val());
  42. App.Actions.WEB.update_custom_doc_root(13, 12);
  43. }, 100);
  44. });
  45. };
  46. App.Actions.WEB.toggle_letsencrypt = function (elm) {
  47. if ($(elm).prop('checked')) {
  48. $(
  49. '#ssltable textarea[name=v_ssl_crt],#ssltable textarea[name=v_ssl_key], #ssltable textarea[name=v_ssl_ca]'
  50. ).attr('disabled', 'disabled');
  51. $('#generate-csr').hide();
  52. } else {
  53. $(
  54. '#ssltable textarea[name=v_ssl_crt],#ssltable textarea[name=v_ssl_key], #ssltable textarea[name=v_ssl_ca]'
  55. ).removeAttr('disabled');
  56. $('#generate-csr').show();
  57. }
  58. };
  59. //
  60. // Page entry point
  61. App.Listeners.WEB.keypress_ftp_username();
  62. App.Listeners.WEB.keypress_ftp_path();
  63. App.Listeners.WEB.keypress_domain_name();
  64. $(function () {
  65. $('#v_domain').change(function () {
  66. var prefix = 'www.';
  67. if (document.getElementById('v_domain').value.split('.').length > 2) {
  68. document.getElementById('v_aliases').value = '';
  69. } else {
  70. document.getElementById('v_aliases').value =
  71. prefix + document.getElementById('v_domain').value;
  72. }
  73. });
  74. App.Actions.WEB.toggle_letsencrypt($('input[name=v_letsencrypt]'));
  75. $('select[name="v_stats"]').change(function (evt) {
  76. var select = $(evt.target);
  77. if (select.val() == 'none') {
  78. $('.stats-auth').hide();
  79. } else {
  80. $('.stats-auth').show();
  81. }
  82. });
  83. });
  84. function WEBrandom() {
  85. document.v_add_web.v_stats_password.value = randomString(16);
  86. }
  87. document.getElementById('vstobjects').addEventListener('submit', function () {
  88. $('input[disabled]').each(function (i, elm) {
  89. $(elm).removeAttr('disabled');
  90. });
  91. });